-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathbot.py
More file actions
82 lines (74 loc) · 2.97 KB
/
bot.py
File metadata and controls
82 lines (74 loc) · 2.97 KB
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
from pyrogram import Client, __version__, filters
from info import API_ID, API_HASH, BOT_TOKEN, PORT, ADMINS, LOG_CHANNEL, F_SUB
import os, math, logging, pytz
from datetime import date, datetime
from pytz import timezone
import logging.config
from pyrogram.errors import BadRequest, Unauthorized
from typing import Union, Optional, AsyncGenerator
from plugins import web_server
import pytz
import aiohttp
from aiohttp import web
from utils import temp
from pyrogram.raw.all import layer
from pyrogram import types
from Script import script
import aiohttp
logging.config.fileConfig("logging.conf")
logging.getLogger().setLevel(logging.INFO)
logger = logging.getLogger(__name__)
class Bot(Client):
def __init__(self):
super().__init__(
name="simple-bot",
api_id=API_ID,
api_hash=API_HASH,
bot_token=BOT_TOKEN,
workers=50,
plugins={"root": "plugins"},
sleep_threshold=5,
)
async def start(self):
await super().start()
me = await self.get_me()
temp.ME = me.id
temp.U_NAME = me.username
temp.B_NAME = me.first_name
self.username = '@' + me.username
self.f_channel = F_SUB
logging.info(f"{me.first_name} with for Pyrogram v{__version__} (Layer {layer}) started on {me.username}.")
app = web.AppRunner(await web_server())
await app.setup()
await web.TCPSite(app, "0.0.0.0", 8080).start()
logger.info("Running...")
print(f"{me.first_name} | @{me.username} started...")
tz = pytz.timezone('Asia/Kolkata')
today = date.today()
now = datetime.now(tz)
time = now.strftime("%H:%M:%S %p")
await self.send_message(chat_id=LOG_CHANNEL, text=f"**__{me.mention} Iꜱ Rᴇsᴛᴀʀᴛᴇᴅ !!**\n\n📅 Dᴀᴛᴇ : `{today}`\n⏰ Tɪᴍᴇ : `{time}`\n🌐 Tɪᴍᴇᴢᴏɴᴇ : `Asia/Kolkata`\n\n💻 Vᴇʀsɪᴏɴ : `v{__version__} (Layer {layer})`</b>")
if F_SUB:
try:
link = await self.export_chat_invite_link(F_SUB)
self.invitelink = link
except Exception as e:
logging.warning(e)
logging.warning("Mᴀᴋᴇ Sᴜʀᴇ Bᴏᴛ ᴀᴅᴍɪɴ ɪɴ ғᴏʀᴄᴇ sᴜʙ ᴄʜᴀɴɴᴇʟ")
self.f_channel = None
async def stop(self, *args):
await super().stop()
print("Bot Restarting...")
async def iter_messages(self, chat_id: Union[int, str], limit: int, offset: int = 0) -> Optional[AsyncGenerator["types.Message", None]]:
current = offset
while True:
new_diff = min(200, limit - current)
if new_diff <= 0:
return
messages = await self.get_messages(chat_id, list(range(current, current+new_diff+1)))
for message in messages:
yield message
current += 1
if __name__ == "__main__":
app = Bot()
app.run()