mirror of
https://github.com/statbate/docs.git
synced 2026-08-11 02:42:41 +00:00
Create rooms.py
This commit is contained in:
parent
8b038fd533
commit
3017f6c1d3
1 changed files with 53 additions and 0 deletions
53
scripts/rooms.py
Normal file
53
scripts/rooms.py
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
import requests, json, redis, sys
|
||||||
|
|
||||||
|
proxies = {"xx": "ip:port", "zz": "ip:port"}
|
||||||
|
|
||||||
|
try:
|
||||||
|
rdb = redis.ConnectionPool(connection_class=redis.UnixDomainSocketConnection, path="/var/run/redis/redis-server.sock")
|
||||||
|
conn = redis.Redis(connection_pool=rdb)
|
||||||
|
conn.ping()
|
||||||
|
except redis.ConnectionError:
|
||||||
|
raise SystemExit('Connecting to Redis server has failed')
|
||||||
|
|
||||||
|
def getFromAPI(proxies, data):
|
||||||
|
try:
|
||||||
|
r = requests.get("https://chaturbate.com/affiliates/api/onlinerooms/?format=json&wm=AfLsg42", proxies=proxies, timeout=10)
|
||||||
|
r.raise_for_status()
|
||||||
|
except requests.exceptions.Timeout:
|
||||||
|
print("Request timeout")
|
||||||
|
return
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
print(proxies, e)
|
||||||
|
return
|
||||||
|
except requests.exceptions.HTTPError as e:
|
||||||
|
print(proxies, e)
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
dist = json.loads(r.text)
|
||||||
|
except ValueError:
|
||||||
|
print('Decoding JSON has failed')
|
||||||
|
return
|
||||||
|
|
||||||
|
for val in dist: data.append({'username': val["username"], 'gender': val["gender"], 'current_show': val["current_show"], 'num_users': val["num_users"], 'num_followers': val["num_followers"], 'block_from_countries': val["block_from_countries"]})
|
||||||
|
|
||||||
|
|
||||||
|
data = []
|
||||||
|
for proxy in proxies:
|
||||||
|
print("Start getFromAPI", proxies[proxy])
|
||||||
|
getFromAPI({'http': "http://"+proxies[proxy], 'https': "http://"+proxies[proxy]}, data)
|
||||||
|
|
||||||
|
data.sort(key=lambda item: item["num_users"], reverse=True)
|
||||||
|
|
||||||
|
rooms = {}
|
||||||
|
for val in data:
|
||||||
|
if val["username"] in rooms:
|
||||||
|
continue
|
||||||
|
rooms[val["username"]] = {'gender': val["gender"], 'current_show': val["current_show"], 'num_users': val["num_users"], 'num_followers': val["num_followers"], 'block_from_countries': val["block_from_countries"]}
|
||||||
|
|
||||||
|
print(len(rooms))
|
||||||
|
|
||||||
|
try:
|
||||||
|
conn.set('chaturbateList', json.dumps(rooms), ex=86400)
|
||||||
|
except redis.ConnectionError:
|
||||||
|
raise SystemExit('Writing JSON to Redis server has failed')
|
||||||
Loading…
Add table
Add a link
Reference in a new issue