Spaces:
Runtime error
Runtime error
| import telethon.errors.rpcerrorlist as telethonErrors | |
| from aiogram.dispatcher import Dispatcher | |
| from telethon.sync import TelegramClient | |
| from aiogram import ( | |
| executor, | |
| types, | |
| Bot | |
| ) | |
| import aiogram.utils.exceptions as expts | |
| from docs.lang_file import lang | |
| from termcolor import colored, cprint | |
| from teleredis import RedisSession | |
| from aiogram.dispatcher.webhook import ( | |
| AnswerCallbackQuery, | |
| get_new_configured_app, | |
| ) | |
| from datetime import datetime | |
| from aiogram.types import ( | |
| ReplyKeyboardMarkup, | |
| ReplyKeyboardRemove, | |
| KeyboardButton, | |
| InputMediaPhoto, | |
| InputTextMessageContent, | |
| InlineQueryResultArticle, | |
| InlineQueryResultCachedPhoto, | |
| InlineQueryResultCachedGif, | |
| InlineQueryResultCachedSticker, | |
| InlineQueryResultCachedVideo, | |
| InlineQueryResultCachedVoice, | |
| InputMediaVideo, | |
| InlineKeyboardMarkup as iMarkup, | |
| InlineKeyboardButton as iButtun, | |
| InlineQueryResultPhoto, | |
| ) | |
| from config_bot import ( | |
| telegram_datas, | |
| server_datas, | |
| sudo_users, | |
| IDs_datas, | |
| db | |
| ) | |
| from aiohttp import web | |
| from time import time | |
| import coloredlogs | |
| import asyncio | |
| import logging | |
| import string | |
| import random | |
| import redis | |
| import ssl | |
| import re | |
| import os | |
| coloredlogs.install() | |
| logging.getLogger("aiohttp").setLevel(logging.WARNING) | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format="%(asctime)s - [%(name)s] %(message)s", | |
| datefmt="%d-%b-%y %H:%M:%S", | |
| file="aio.log", | |
| ) | |
| log = logging.getLogger("broadcast") | |
| stroge = redis.Redis( | |
| host="localhost", port=6379, db=3, decode_responses=False, encoding="utf-8" | |
| ) | |
| session = RedisSession(db, stroge) | |
| client = TelegramClient( | |
| session, | |
| api_id=telegram_datas["api_id"], | |
| api_hash=telegram_datas["api_hash"], | |
| device_model = telegram_datas['device_model'], | |
| system_version = telegram_datas['system_version'], | |
| app_version = telegram_datas['app_version'] | |
| ) | |
| client.session.save_entities = False | |
| rds = redis.Redis( | |
| host="localhost", port=6379, db=3, decode_responses=True, encoding="utf-8" | |
| ) | |
| loop = asyncio.get_event_loop() | |
| bot = Bot(token=telegram_datas["botToken"], loop=loop) | |
| dp = Dispatcher(bot) | |
| sudo_id = IDs_datas["sudo_id"] | |
| bot_id = IDs_datas["bot_id"] | |
| global user_steps | |
| user_steps = {} | |
| class DataBase: | |
| def get(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.get(hash) | |
| def delete(hash, *hash2): | |
| hash3 = [] | |
| hash3.append("{}.{}".format(db, hash)) | |
| for i in hash2: | |
| hash3.append("{}.{}".format(db, i)) | |
| return rds.delete(*hash3) | |
| def set(hash, value): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.set(hash, value) | |
| def mset(hash): | |
| hash2 = {} | |
| for i in hash: | |
| k = "{}.{}".format(db, i) | |
| hash2.update({k: hash[i]}) | |
| return rds.mset(hash2) | |
| def setex(hash, time, value): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.setex(hash, time, value) | |
| def incr(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.incr(hash) | |
| def incrby(hash, value): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.incrby(hash, value) | |
| def decr(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.decr(hash) | |
| def decrby(hash, value): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.decrby(hash, value) | |
| def ttl(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.ttl(hash) | |
| def hget(hash, value): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.hget(hash, value) | |
| def hset(hash, value, field): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.hset(hash, value, field) | |
| def hdel(hash, value): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.hdel(hash, value) | |
| def sadd(hash, member): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.sadd(hash, member) | |
| def srem(hash, member): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.srem(hash, member) | |
| def sismember(hash, member): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.sismember(hash, member) | |
| def smembers(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.smembers(hash) | |
| def scard(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.scard(hash) | |
| def keys(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.keys(hash) | |
| def hash_type(hash): | |
| hash = "{}.{}".format(db, hash) | |
| return rds.type(hash) | |
| class GlobalValues: | |
| def __init__(self): | |
| self.ipAdd = server_datas["ip"] | |
| self.ipAdD = "http://{}:{}".format( | |
| self.ipAdd, server_datas["port_server"] | |
| ) | |
| self.WEBHOOK_URL_PATH = "/{}".format(telegram_datas["botToken"]) | |
| self.port = server_datas["port_tg"] | |
| self.WEBHOOK_URL = "https://{}:{}{}".format( | |
| self.ipAdd, self.port, self.WEBHOOK_URL_PATH | |
| ) | |
| self.WEBHOOK_SSL_CERT = "webhook_cert.pem" | |
| self.WEBHOOK_SSL_PRIV = "webhook_pkey.pem" | |
| self.botID = int(rds.hget(db, "id") or bot_id) | |
| self.botName = rds.hget(db, "name") or "None" | |
| self.botUser = rds.hget(db, "user") or "None" | |
| self.sudoID = int(DataBase.hget("sudo", "id") or sudo_id) | |
| self.supchat = int(rds.hget(db, "supchat") or self.sudoID) | |
| self.logchat = int(rds.hget(db, "logchat") or self.sudoID) | |
| self.linkyCH = rds.hget(db, "linkyCH") or "None" | |
| self.sudoUser = DataBase.hget("sudo", "user") or "None" | |
| self.sudo_users = (self.sudoID, self.botID) + sudo_users | |
| self.chLink = IDs_datas["chLink"] | |
| self.chId = int(DataBase.hget("channel", "id") or 0) | |
| class CheckMsg: | |
| def __init__(self, msg, echoMsg=False): | |
| if "text" in msg: | |
| self.content = "Text" | |
| elif "audio" in msg: | |
| self.content = "Audio" | |
| elif "voice" in msg: | |
| self.content = "Voice" | |
| elif "video" in msg: | |
| self.content = "Video" | |
| elif "video_note" in msg: | |
| self.content = "VideoNote" | |
| elif "photo" in msg: | |
| self.content = "Photo" | |
| elif "document" in msg: | |
| self.content = "File" | |
| elif "animation" in msg: | |
| self.content = "Gif" | |
| elif "poll" in msg: | |
| self.content = "Poll" | |
| elif "edit_date" in msg: | |
| self.content = "Edited" | |
| elif "game" in msg: | |
| self.content = "Game" | |
| elif "sticker" in msg: | |
| self.content = "Sticker" | |
| elif "contact" in msg: | |
| self.content = "Contact" | |
| elif "venue" in msg: | |
| self.content = "Venue" | |
| elif "location" in msg: | |
| self.content = "Location" | |
| elif "new_chat_members" in msg: | |
| self.content = "NewChatMembers" | |
| elif "left_chat_member" in msg: | |
| self.content = "LeftChatMember" | |
| elif "new_chat_title" in msg: | |
| self.content = "NewChatTitle" | |
| elif "new_chat_photo" in msg: | |
| self.content = "NewChatPhoto" | |
| elif "delete_chat_photo" in msg: | |
| self.content = "DeleteChatPhoto" | |
| elif "group_chat_created" in msg: | |
| self.content = "GroupChatCreated" | |
| elif "supergroup_chat_created" in msg: | |
| self.content = "SupergroupChatCreated" | |
| elif "channel_chat_created" in msg: | |
| self.content = "ChannelChatCreated" | |
| elif "migrate_to_chat_id" in msg: | |
| self.content = "MigrateToChatId" | |
| elif "pinned_message" in msg: | |
| self.content = "PinnedMessage" | |
| elif "invoice" in msg: | |
| self.content = "Invoice" | |
| elif "successful_payment" in msg: | |
| self.content = "SuccessfulPayment" | |
| elif "connected_website" in msg: | |
| self.content = "ConnectedWebsite" | |
| elif "passport_data" in msg: | |
| self.content = "PassportData" | |
| elif "reply_markup" in msg: | |
| self.content = "ReplyMarkup" | |
| elif "caption" in msg: | |
| self.content = "caption" | |
| if "reply_to_message" in msg: | |
| msg = msg.reply_to_message | |
| if "forward_from" in msg: | |
| self.user = msg.forward_from | |
| elif "from" in msg: | |
| self.user = msg.from_user | |
| else: | |
| if "forward_from" in msg: | |
| self.user = msg.forward_from | |
| elif "from" in msg: | |
| self.user = msg.from_user |