Spaces:
Running
Running
File size: 3,741 Bytes
b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 541eb7f b00d2c6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
import sys
import glob
import importlib
from pathlib import Path
from pyrogram import idle
import logging
import logging.config
# Get logging configurations
logging.config.fileConfig('logging.conf')
logging.getLogger().setLevel(logging.INFO)
logging.getLogger("pyrogram").setLevel(logging.ERROR)
logging.getLogger("imdbpy").setLevel(logging.ERROR)
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
logging.getLogger("aiohttp").setLevel(logging.ERROR)
logging.getLogger("aiohttp.web").setLevel(logging.ERROR)
from pyrogram import Client, __version__
from pyrogram.raw.all import layer
from database.ia_filterdb import Media
from database.users_chats_db import db
from info import *
from utils import temp
from typing import Union, Optional, AsyncGenerator
from pyrogram import types
from Script import script
from datetime import date, datetime
import pytz
from aiohttp import web
from plugins import web_server
import asyncio
from pyrogram import idle
from lazybot import LazyPrincessBot
from util.keepalive import ping_server
from lazybot.clients import initialize_clients
ppath = "plugins/*.py"
files = glob.glob(ppath)
LazyPrincessBot.start()
loop = asyncio.get_event_loop()
async def Lazy_start():
print('\n')
print('Initializing The Movie Provider Bot')
# Get bot info
bot_info = await LazyPrincessBot.get_me()
LazyPrincessBot.username = bot_info.username
# Start other clients
await initialize_clients()
# Load plugins
for name in files:
with open(name) as a:
patt = Path(a.name)
plugin_name = patt.stem.replace(".py", "")
plugins_dir = Path(f"plugins/{plugin_name}.py")
import_path = "plugins.{}".format(plugin_name)
spec = importlib.util.spec_from_file_location(import_path, plugins_dir)
load = importlib.util.module_from_spec(spec)
spec.loader.exec_module(load)
sys.modules["plugins." + plugin_name] = load
print("The Movie Provider Imported => " + plugin_name)
# Ping if on Heroku
if ON_HEROKU:
asyncio.create_task(ping_server())
# Load banned users/chats
b_users, b_chats = await db.get_banned()
temp.BANNED_USERS = b_users
temp.BANNED_CHATS = b_chats
# Ensure DB indexes
await Media.ensure_indexes()
# Re-fetch bot info for display
me = await LazyPrincessBot.get_me()
temp.ME = me.id
temp.U_NAME = me.username
temp.B_NAME = me.first_name
LazyPrincessBot.username = '@' + me.username
# Logging info
logging.info(f"{me.first_name} with Pyrogram v{__version__} (Layer {layer}) started on @{me.username}.")
logging.info(LOG_STR)
logging.info(script.LOGO)
# Get current time
tz = pytz.timezone('Asia/Kolkata')
today = date.today()
now = datetime.now(tz)
time = now.strftime("%H:%M:%S %p")
# Try sending restart message to log channel
try:
chat = await LazyPrincessBot.get_chat(LOG_CHANNEL)
await LazyPrincessBot.send_message(chat_id=LOG_CHANNEL, text=script.RESTART_TXT.format(today, time))
logging.info(f"[LOG] Sent restart message to {chat.title} ({chat.id})")
except Exception as e:
logging.warning(f"[LOG WARNING] Could not send message to LOG_CHANNEL: {e}")
# Start aiohttp web server
app = web.AppRunner(await web_server())
await app.setup()
bind_address = "0.0.0.0"
await web.TCPSite(app, bind_address, PORT).start()
# Idle wait (Pyrogram)
await idle()
if __name__ == '__main__':
try:
loop.run_until_complete(Lazy_start())
except KeyboardInterrupt:
logging.info('Service Stopped Bye π')
|