36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import sys
|
|
import json
|
|
import asyncio
|
|
import logging
|
|
from . import config, client, seen_videos
|
|
from .workers import check_channels, video_worker, upload_worker
|
|
from .utils import update_seen_videos
|
|
|
|
async def main(nodl):
|
|
await client.start(bot_token=config['telegram']['bot_token'])
|
|
try:
|
|
message = await client.get_messages(config['config']['storage_chat_id'], ids=config['config']['storage_message_id'])
|
|
resp = await message.download_media(bytes)
|
|
seen_videos.extend(json.loads(resp))
|
|
except BaseException:
|
|
logging.exception('Exception encountered when downloading seen videos')
|
|
if nodl:
|
|
await check_channels(True)
|
|
await update_seen_videos()
|
|
await client.disconnect()
|
|
else:
|
|
await asyncio.gather(
|
|
check_channels(False),
|
|
*[video_worker() for _ in range(config['config'].get('video_workers', 1))],
|
|
*[upload_worker() for _ in range(config['config'].get('upload_workers', 1))]
|
|
)
|
|
await client.disconnect()
|
|
|
|
if len(sys.argv) not in (1, 2):
|
|
print('Usage:', sys.executable, '-m', __package__, '[nodl]', file=sys.stderr)
|
|
exit(1)
|
|
if len(sys.argv) == 2 and sys.argv[1] != 'nodl':
|
|
print('Usage:', sys.executable, '-m', __package__, '[nodl]', file=sys.stderr)
|
|
exit(1)
|
|
client.loop.run_until_complete(main(sys.argv[-1] == 'nodl'))
|