autoytarchive/autoytarchive/__main__.py

32 lines
1.2 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(), upload_worker())
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'))