mirror of
https://github.com/Balshgit/different
synced 2025-09-11 02:50:41 +03:00
update goodgame and github scripts
This commit is contained in:
parent
66e8f9e757
commit
2687794443
@ -47,8 +47,8 @@ SERVICES: dict[str: dict[str, Any]] = {
|
||||
'mosgortrans': {
|
||||
'deprecated': False,
|
||||
'components': [
|
||||
{'name': 'selenoid/chrome', 'version': '119.0'},
|
||||
{'name': 'aerokube/selenoid', 'version': '1.11.0'},
|
||||
{'name': 'selenoid/chrome', 'version': '120.0'},
|
||||
{'name': 'aerokube/selenoid', 'version': '1.11.1'},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
26
goodgame.py
26
goodgame.py
@ -41,9 +41,11 @@ logger = configure_logger()
|
||||
|
||||
|
||||
class GoodGame:
|
||||
BASE_URL = 'https://goodgame.ru/api/4/streams'
|
||||
BASE_URL = 'https://goodgame.ru'
|
||||
API_URL = BASE_URL + '/api/4/streams'
|
||||
PAGES_FOR_ASYNC_SCAN = 25
|
||||
CURRENT_WATCHERS_FILTER = 1
|
||||
INTERESTING_STREAMERS = ('snowboy', 'hell_girl', )
|
||||
|
||||
def __init__(self) -> None:
|
||||
self.all_streams: dict[int, dict[str, Any]] = dict()
|
||||
@ -67,8 +69,8 @@ class GoodGame:
|
||||
Deprecated
|
||||
"""
|
||||
last_page = 1
|
||||
for page in range(20, 0, -1):
|
||||
response = requests.get(f'{self.BASE_URL}?page={page}')
|
||||
for page in range(self.PAGES_FOR_ASYNC_SCAN, 0, -1):
|
||||
response = requests.get(f'{self.API_URL}?page={page}')
|
||||
if response.json()["streams"]:
|
||||
last_page = page
|
||||
break
|
||||
@ -78,7 +80,7 @@ class GoodGame:
|
||||
"""
|
||||
Deprecated
|
||||
"""
|
||||
response = requests.get(f'{self.BASE_URL}?page=1')
|
||||
response = requests.get(f'{self.API_URL}?page=1')
|
||||
max_current_viewers = response.json()['streams'][0].get('viewers', None)
|
||||
return max_current_viewers
|
||||
|
||||
@ -114,13 +116,21 @@ class GoodGame:
|
||||
watchers_0 = self.__count_streams_with_watchers(current_watchers=[0])
|
||||
watchers_1 = self.__count_streams_with_watchers(current_watchers=[1])
|
||||
minimal_watchers = self.__count_streams_with_watchers(current_watchers=[0, 1])
|
||||
trimmed_streams = self._sort_trim_dict(total_viewers)
|
||||
return (
|
||||
f'Total streams: {len(self.all_streams)} -> '
|
||||
f'with minimal watchers {round(minimal_watchers / len(self.all_streams) * 100)}%\n'
|
||||
f'Total streams with 0 viewers: {watchers_0} -> {round(watchers_0/len(self.all_streams) * 100)}%\n'
|
||||
f'Total streams with 1 viewer: {watchers_1} -> {round(watchers_1/len(self.all_streams) * 100)}%\n'
|
||||
f'Total viewers: {sum(total_viewers.values())}\n'
|
||||
f'Streams: {self._sort_trim_dict(total_viewers)}\n'
|
||||
f'Streams: {trimmed_streams}\n'
|
||||
f'Interesting streams: '
|
||||
f'{
|
||||
{
|
||||
stream: viewers for stream, viewers in trimmed_streams.items()
|
||||
if any([True for streamer in self.INTERESTING_STREAMERS if streamer in stream.lower()])
|
||||
}
|
||||
}\n'
|
||||
f'{"-" * 76}'
|
||||
)
|
||||
|
||||
@ -148,7 +158,7 @@ class GoodGame:
|
||||
|
||||
streams = await asyncio.gather(
|
||||
*[
|
||||
self._async_request(session, f'{self.BASE_URL}?page={page}')
|
||||
self._async_request(session, f'{self.API_URL}?page={page}')
|
||||
for page in range(1, self.PAGES_FOR_ASYNC_SCAN + 1)
|
||||
],
|
||||
return_exceptions=True,
|
||||
@ -167,14 +177,14 @@ class GoodGame:
|
||||
def sync_counter(self) -> str:
|
||||
page = 1
|
||||
|
||||
response = requests.get(f'{self.BASE_URL}?page={page}', timeout=2)
|
||||
response = requests.get(f'{self.API_URL}?page={page}', timeout=2)
|
||||
streams = response.json()['streams']
|
||||
for stream in streams:
|
||||
self.all_streams.update({stream['id']: stream})
|
||||
max_current_viewers = streams[0]['viewers']
|
||||
while streams:
|
||||
page += 1
|
||||
response = requests.get(f'{self.BASE_URL}?page={page}')
|
||||
response = requests.get(f'{self.API_URL}?page={page}', timeout=2)
|
||||
streams = response.json()['streams']
|
||||
for stream in streams:
|
||||
self.all_streams.update({stream['id']: stream})
|
||||
|
Loading…
x
Reference in New Issue
Block a user