navpan2's picture
Upload 29 files
157e137
raw
history blame
3.04 kB
import sys
import asyncio
import logging
import traceback
import logging.handlers as handlers
from .config import Telegram, Server
from aiohttp import web
from pyrogram import idle
from FileStream.bot import FileStream
from FileStream.server import web_server
from FileStream.utils import ping_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()
print("---------------------- Initializing Clients ----------------------")
await initialize_clients()
print("------------------------------ DONE ------------------------------")
if Server.KEEP_ALIVE:
print("------------------ Starting Keep Alive Service ------------------")
print()
asyncio.create_task(ping_server())
print()
print("--------------------- Initializing Web Server ---------------------")
await server.setup()
await web.TCPSite(server, Server.BIND_ADDRESS, Server.PORT).start()
print("------------------------------ DONE ------------------------------")
print()
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("------------------------------------------------------------------")
await idle()
async def cleanup():
await server.cleanup()
await FileStream.stop()
if __name__ == "__main__":
try:
loop.run_until_complete(start_services())
except KeyboardInterrupt:
pass
except Exception as err:
logging.error(traceback.format_exc())
finally:
loop.run_until_complete(cleanup())
loop.stop()
print("------------------------ Stopped Services ------------------------")