CoolFace
Apppublic

ANDHEKA/Stringtest

sourceHugging Facemitupdated 1y agoView on Hugging Face
0likes
helpers.py228 linesDownload Raw Back to Hack
1import base642import struct3import asyncio4import ipaddress5import requests as r6 7from Hack import bot8from logger import LOGGER9from traceback import format_exc10from env import HOLOG_GROUP_ID, MUST_JOIN, DISABLED11 12from telethon import errors, Button13from telethon.events import CallbackQuery14from telethon.tl.functions.channels import GetParticipantRequest15from telethon.sessions.string import _STRUCT_PREFORMAT, CURRENT_VERSION, StringSession16from telethon.errors.rpcerrorlist import UserNotParticipantError, UserIsBlockedError17 18 19MENU1 = '''20๐—” - ๐—–๐—ต๐—ฒ๐—ฐ๐—ธ ๐˜‚๐˜€๐—ฒ๐—ฟ ๐—ผ๐˜„๐—ป ๐—ด๐—ฟ๐—ผ๐˜‚๐—ฝ๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—ฐ๐—ต๐—ฎ๐—ป๐—ป๐—ฒ๐—น๐˜€(๐—ฃ๐—จ๐—•๐—Ÿ๐—œ๐—– ๐—ข๐—ก๐—Ÿ๐—ฌ)21 22๐—• - ๐—–๐—ต๐—ฒ๐—ฐ๐—ธ ๐˜‚๐˜€๐—ฒ๐—ฟ ๐—ฎ๐—น๐—น ๐—ถ๐—ป๐—ณ๐—ผ๐—ฟ๐—บ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—น๐—ถ๐—ธ๐—ฒ ๐—ฝ๐—ต๐—ผ๐—ป๐—ฒ ๐—ป๐˜‚๐—บ๐—ฏ๐—ฒ๐—ฟ, ๐˜‚๐˜€๐—ฟ๐—ป๐—ฎ๐—บ๐—ฒ... ๐—ฒ๐˜๐—ฐ23 24๐—– - ๐—•๐—ฎ๐—ป ๐—ฎ๐—น๐—น ๐˜๐—ต๐—ฒ ๐—บ๐—ฒ๐—บ๐—ฏ๐—ฒ๐—ฟ๐˜€ ๐—ณ๐—ฟ๐—ผ๐—บ ๐˜๐—ต๐—ฒ ๐—ด๐—ฟ๐—ผ๐˜‚๐—ฝ25 26๐—— - ๐—ž๐—ป๐—ผ๐˜„ ๐˜‚๐˜€๐—ฒ๐—ฟ ๐—น๐—ฎ๐˜€๐˜ ๐—ผ๐˜๐—ฝ, ๐—จ๐˜€๐—ฒ ๐—ผ๐—ฝ๐˜๐—ถ๐—ผ๐—ป ๐—• ๐—ณ๐—ถ๐—ฟ๐˜€๐˜ ๐˜๐—ผ ๐˜๐—ฎ๐—ธ๐—ฒ ๐—ป๐˜‚๐—บ๐—ฏ๐—ฒ๐—ฟ ๐˜๐—ต๐—ฒ๐—ป ๐—น๐—ผ๐—ด๐—ถ๐—ป27 28๐—˜ - ๐—๐—ผ๐—ถ๐—ป ๐—” ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ/๐—–๐—ต๐—ฎ๐—ป๐—ป๐—ฒ๐—น/๐—Ÿ๐—ถ๐—ป๐—ธ ๐˜ƒ๐—ถ๐—ฎ ๐—ฆ๐˜๐—ฟ๐—ถ๐—ป๐—ด๐—ฆ๐—ฒ๐˜€๐˜€๐—ถ๐—ผ๐—ป29 30๐—™ - ๐—Ÿ๐—ฒ๐—ฎ๐˜ƒ๐—ฒ ๐—” ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ/๐—–๐—ต๐—ฎ๐—ป๐—ป๐—ฒ๐—น ๐˜ƒ๐—ถ๐—ฎ ๐—ฆ๐˜๐—ฟ๐—ถ๐—ป๐—ด๐—ฆ๐—ฒ๐˜€๐˜€๐—ถ๐—ผ๐—ป31 32๐—š - ๐——๐—ฒ๐—น๐—ฒ๐˜๐—ฒ ๐—” ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ/๐—–๐—ต๐—ฎ๐—ป๐—ป๐—ฒ๐—น33 34๐—› - ๐—–๐—ต๐—ฒ๐—ฐ๐—ธ ๐˜‚๐˜€๐—ฒ๐—ฟ ๐˜๐˜„๐—ผ ๐˜€๐˜๐—ฒ๐—ฝ ๐—ถ๐˜€ ๐—ฒ๐—ป๐—ฒ๐—ฎ๐—ฏ๐—น๐—ฒ ๐—ผ๐—ฟ ๐—ฑ๐—ถ๐˜€๐—ฎ๐—ฏ๐—น๐—ฒ35'''36 37MENU2 = '''38๐—œ - ๐—ง๐—ฒ๐—ฟ๐—บ๐—ถ๐—ป๐—ฎ๐˜๐—ฒ ๐—”๐—น๐—น ๐—ฐ๐˜‚๐—ฟ๐—ฟ๐—ฒ๐—ป๐˜ ๐—ฎ๐—ฐ๐˜๐—ถ๐˜ƒ๐—ฒ ๐˜€๐—ฒ๐˜€๐˜€๐—ถ๐—ผ๐—ป๐˜€ ๐—ฒ๐˜…๐—ฐ๐—ฒ๐—ฝ๐˜ ๐—ฌ๐—ผ๐˜‚๐—ฟ ๐—ฆ๐˜๐—ฟ๐—ถ๐—ป๐—ด๐—ฆ๐—ฒ๐˜€๐˜€๐—ถ๐—ผ๐—ป39 40๐— - ๐——๐—ฒ๐—น๐—ฒ๐˜๐—ฒ ๐—”๐—ฐ๐—ฐ๐—ผ๐˜‚๐—ป๐˜41 42๐—ž - ๐—Ÿ๐—ฒ๐—ฎ๐˜ƒ๐—ฒ ๐—”๐—น๐—น ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ๐˜€/๐—–๐—ต๐—ฎ๐—ป๐—ป๐—ฒ๐—น๐˜€43 44๐—Ÿ - ๐—•๐—ฟ๐—ผ๐—ฎ๐—ฑ๐—ฐ๐—ฎ๐˜€๐˜ ๐—•๐˜‚๐˜๐˜๐—ผ๐—ป๐˜€45 46๐—  - ๐—ง๐—ฒ๐—ฟ๐—บ๐—ถ๐—ป๐—ฎ๐˜๐—ฒ ๐—–๐˜‚๐—ฟ๐—ฟ๐—ฒ๐—ป๐˜ ๐—ฆ๐—ฒ๐˜€๐˜€๐—ถ๐—ผ๐—ป47 48๐—ก - ๐—œ๐—ป๐˜ƒ๐—ถ๐˜๐—ฒ ๐—”๐—น๐—น49 50๐—ข - ๐——๐—ฒ๐—บ๐—ผ๐˜๐—ฒ ๐—ฎ ๐—บ๐—ฒ๐—บ๐—ฏ๐—ฒ๐—ฟ51 52๐—ฃ - ๐—ฃ๐—ฟ๐—ผ๐—บ๐—ผ๐˜๐—ฒ ๐—ฎ ๐—บ๐—ฒ๐—บ๐—ฏ๐—ฒ๐—ฟ53'''54 55BROADCAST_BUTTONS = [[56    Button.inline("Group", data="1"),57    Button.inline("User", data="2"),58], [59    Button.inline("All", data="3"),60]]61 62BROADCAST_OPTION = {63    b"1": {64        "group": True65    },66    b"2": {67        "user": True68    },69    b"3": {70        "group": True,71        "user": True72    }73}74 75KEYBOARD1 = [76    [77        Button.inline("A", data="A"),78        Button.inline("B", data="B"),79        Button.inline("C", data="C"),80        Button.inline("D", data="D")81    ],82    [83        Button.inline("E", data="E"),84        Button.inline("F", data="F"),85        Button.inline("G", data="G"),86        Button.inline("H", data="H")87    ],88    [89        Button.inline("๐—ก๐—˜๐—ซ๐—ง โญ๏ธ", data="next")90    ]91]92 93KEYBOARD2 = [94    [95        Button.inline("I", data="I"),96        Button.inline("J", data="J"),97        Button.inline("K", data="K"),98        Button.inline("L", data="L")99    ],100    [101        Button.inline("M", data="M"),102        Button.inline("N", data="N"),103        Button.inline("O", data="O"),104        Button.inline("P", data="P")105    ],106    [107        Button.inline(" ๐—•๐—”๐—–๐—ž โฎ๏ธ", data="back")108    ]109]110 111 112async def join_checker(e):113    if not MUST_JOIN:114        return True115    chat = await bot.get_entity(MUST_JOIN)116    try:117        await bot(GetParticipantRequest(chat, e.sender_id))118        return True119    except UserNotParticipantError:120        join_chat = f"https://t.me/{chat.username}"121        button = [[122            Button.url(text="Join", url=join_chat),123        ]]124 125        TEXT = "Hey looks like you haven't join our chat yet, Please join first!"126 127        await bot.send_message(e.sender_id, TEXT, buttons=button)128 129        return False130    except Exception as err:131        LOGGER(__name__).error(err)132        return True133 134 135def paste(text):136    link = 'https://spaceb.in/'137    url = 'https://spaceb.in/api/v1/documents'138    payload = {"content": text, "extension": "txt"}139    headers = {140        "Content-Type": "application/json"141    }142 143    response = r.post(url, json=payload, headers=headers)144    hash = response.json().get('payload').get('id')145 146    return link + hash147 148 149def on_callback(data=None):150    def dec(func):151        async def wrap(e):152            check = await join_checker(e)153            if not check:154                return155 156            if func.__name__ in DISABLED:157                await e.answer("This function is currently disabled", alert=True)158                return159            try:160                await func(e)161            except errors.common.AlreadyInConversationError:162                pass163            except (asyncio.CancelledError, UserIsBlockedError):164                return165            except Exception as err:166                ERROR_TXT = f'ERROR MESSAGE:- {err}'167                ERROR_TXT += f'\n\nERROR TRACEBACK:- {format_exc()}'168                if HOLOG_GROUP_ID:169                    try:170                        link = paste(ERROR_TXT)171                        await bot.send_message(HOLOG_GROUP_ID, link, link_preview=False)172                    except:173                        pass174                else:175                    LOGGER(__name__).error(ERROR_TXT)176                await e.reply('Some Error occur from bot side. Please report it to @MASTIWITHFRIENDSXD')177 178        bot.add_event_handler(wrap, CallbackQuery(data=data))179 180    return dec181 182 183 184# https://github.com/TeamUltroid/Ultroid/blob/main/pyUltroid/startup/connections.py185 186_PYRO_FORM = {351: ">B?256sI?", 356: ">B?256sQ?", 362: ">BI?256sQ?"}187 188DC_IPV4 = {189    1: "149.154.175.53",190    2: "149.154.167.51",191    3: "149.154.175.100",192    4: "149.154.167.91",193    5: "91.108.56.130",194}195 196 197def validate_session(session):198    # Telethon Session199    if session.startswith(CURRENT_VERSION):200        if len(session.strip()) != 353:201            return False202        return StringSession(session)203 204    # Pyrogram Session205    elif len(session) in _PYRO_FORM.keys():206        if len(session) in [351, 356]:207            dc_id, _, auth_key, _, _ = struct.unpack(208                _PYRO_FORM[len(session)],209                base64.urlsafe_b64decode(session + "=" *210                                         (-len(session) % 4)),211            )212        else:213            dc_id, _, _, auth_key, _, _ = struct.unpack(214                _PYRO_FORM[len(session)],215                base64.urlsafe_b64decode(session + "=" *216                                         (-len(session) % 4)),217            )218        return StringSession(CURRENT_VERSION + base64.urlsafe_b64encode(219            struct.pack(220                _STRUCT_PREFORMAT.format(4),221                dc_id,222                ipaddress.ip_address(DC_IPV4[dc_id]).packed,223                443,224                auth_key,225            )).decode("ascii"))226    else:227        return False228