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