Spaces:
Running
Running
#Filestream/__main__.py | |
import sys | |
import asyncio | |
import logging | |
import traceback | |
import logging.handlers as handlers | |
from FileStream.config import Telegram, Server | |
from aiohttp import web | |
from pyrogram import idle | |
from FileStream.bot import FileStream | |
from FileStream.Tools import Time_ISTKolNow | |
from FileStream.server import web_server | |
from FileStream.bot.clients import initialize_clients | |
logging.basicConfig( | |
level=logging.INFO, | |
datefmt="%d/%m/%Y %H:%M:%S", | |
format= | |
'[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s', | |
handlers=[ | |
logging.StreamHandler(stream=sys.stdout), | |
handlers.RotatingFileHandler("streambot.log", | |
mode="a", | |
maxBytes=104857600, | |
backupCount=2, | |
encoding="utf-8") | |
], | |
) | |
logging.getLogger("aiohttp").setLevel(logging.ERROR) | |
logging.getLogger("pyrogram").setLevel(logging.ERROR) | |
logging.getLogger("aiohttp.web").setLevel(logging.ERROR) | |
server = web.AppRunner(web_server()) | |
loop = asyncio.get_event_loop() | |
async def start_services(): | |
print("****") | |
if Telegram.SECONDARY: | |
print("------------------ Starting as Secondary Server ------------------") | |
else: | |
print("------------------- Starting as Primary Server -------------------") | |
print( "****") | |
print("-------------------- Initializing Telegram Bot --------------------") | |
await FileStream.start() | |
bot_info = await FileStream.get_me() | |
FileStream.id = bot_info.id | |
FileStream.username = bot_info.username | |
FileStream.fname = bot_info.first_name | |
print("------------------------------ DONE ------------------------------") | |
print("\n") | |
print("---------------------- Initializing Clients ----------------------") | |
await initialize_clients() | |
print("------------------------------ DONE ------------------------------") | |
print("\n") | |
print("--------------------- Initializing Web Server ---------------------") | |
await server.setup() | |
await web.TCPSite(server, Server.BIND_ADDRESS, Server.PORT).start() | |
print("------------------------------ DONE ------------------------------") | |
print("\n") | |
print("------------------------- Service Started -------------------------") | |
print("Bot =>> {}".format(bot_info.first_name)) | |
if bot_info.dc_id: | |
print("DC ID =>> {}".format(str(bot_info.dc_id))) | |
print(" URL =>> {}".format(Server.URL)) | |
print("------------------------------------------------------------------") | |
""" | |
all_sources = [ | |
Telegram.ULOG_GROUP, Telegram.FLOG_CHANNEL, Telegram.PFLOG_CHANNEL | |
] | |
for source in all_sources: | |
await FileStream.send_message(chat_id=source, | |
text=f"Hi, I am Online @{ISTKolNow()}", | |
disable_web_page_preview=True) | |
""" | |
await idle() | |
async def cleanup(): | |
await server.cleanup() | |
#await FileStream.stop() | |
if __name__ == "__main__": | |
try: | |
loop.run_until_complete(start_services()) | |
except KeyboardInterrupt: | |
loop.stop() | |
print("------------------------ Stopped Services ------------------------") | |
except Exception as err: | |
logging.error(traceback.format_exc()) | |