Exemple #1
0
        current_file_name = os.path.join(input_directory, file_name)
        if os.path.isdir(current_file_name):
            return get_lst_of_files(current_file_name, output_lst)
        output_lst.append(current_file_name)
    return output_lst


def zipdir(path, ziph):
    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(root, file))
            os.remove(os.path.join(root, file))


@javes.on(rekcah05(pattern=f"telegraph (media|text)$", allow_sudo=True))
@javes05(outgoing=True, pattern="^!telegraph (media|text)$")
async def telegraphs(graph):
    try:
        sender = await graph.get_sender()
        me = await graph.client.get_me()
        if not sender.id == me.id:
            rkp = await graph.reply("`processing`")
        else:
            rkp = await graph.edit("`processing`")
        if graph.text[0].isalpha() or graph.text[0] in ("/", "#",
                                                        "@") or graph.fwd_from:
            return
        if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY):
            os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
        if graph.reply_to_msg_id:
    t_response = stdout.decode().strip()
    os.remove(downloaded_file_name)
    if not t_response:
        logger.info(e_response)
        logger.info(t_response)
        await qr_e.edit("Failed to decode.")
        return
        LOGS.info(e_response)
        LOGS.info(t_response)
        return await qr_e.edit("Failed to decode.")
    soup = BeautifulSoup(t_response, "html.parser")
    qr_contents = soup.find_all("pre")[0].text
    await qr_e.edit(qr_contents)


@javes.on(rekcah05(pattern=f"decodeqr$", allow_sudo=True))
async def parseqr(qr_e):
    downloaded_file_name = await qr_e.client.download_media(
        await qr_e.get_reply_message())
    # parse the Official ZXing webpage to decode the QRCode
    command_to_exec = [
        "curl", "-X", "POST", "-F", "f=@" + downloaded_file_name + "",
        "https://zxing.org/w/decode"
    ]
    process = await asyncio.create_subprocess_exec(
        *command_to_exec,
        # stdout must a pipe to be accessible as process.stdout
        stdout=asyncio.subprocess.PIPE,
        stderr=asyncio.subprocess.PIPE,
    )
    # Wait for the subprocess to finish
Exemple #3
0
                    if USERS[sender.sender_id] % randint(2, 4) == 0:
                        if AFKREASON:
                            await sender.reply(
                                f"`{JAVES_NNAME}: ` **In case you didn't notice,  My master Still Offline**\
                        \n\n`Reason:` **{AFKREASON}**\n`Since :`**{afk_since}**"
                            )
                        else:
                            await sender.reply(str(choice(AFKSTR)))
                        USERS[sender.sender_id] = USERS[sender.sender_id] + 1
                        COUNT_MSG = COUNT_MSG + 1
                    else:
                        USERS[sender.sender_id] = USERS[sender.sender_id] + 1
                        COUNT_MSG = COUNT_MSG + 1


@javes.on(rekcah05(pattern=f"userinfo(?: |$)(.*)", allow_sudo=True))
@javes05(outgoing=True, pattern="^\!userinfo(?: |$)(.*)")
async def _(event):
    sender = await event.get_sender()
    me = await event.client.get_me()
    if not sender.id == me.id:
        rkp = await event.reply("`processing`")
    else:
        rkp = await event.edit("`processing`")
    if event.fwd_from:
        return
    ruser, rdhs = await get_full_user(event)
    if ruser is None:
        await rkp.edit("Error please mention user")
        return False
    ruser_profile_photos = await event.client(
Exemple #4
0
    for search_result in search_response.get("items", []):
        if search_result["id"]["kind"] == "youtube#video":
            videos.append(search_result)
    try:
        nexttok = search_response["nextPageToken"]
        return (nexttok, videos)
    except HttpError:
        nexttok = "last_page"
        return (nexttok, videos)
    except KeyError:
        nexttok = "KeyError, try again."
        return (nexttok, videos)


@javes.on(rekcah05(pattern=f"read(?: |$)(.*)", allow_sudo=True))
async def ocr(event):
    if OCR_SPACE_API_KEY is None:
        await event.reply(
            f"`{JAVES_NNAME}:` **ocr api key missing please add it before use**"
        )
    else:
        await event.reply(f"`{JAVES_NNAME}:` **Reading...**")
        if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY):
            os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
        lang_code = event.pattern_match.group(1)
        downloaded_file_name = await bot.download_media(
            await event.get_reply_message(), TEMP_DOWNLOAD_DIRECTORY)
        test_file = await ocr_space_file(filename=downloaded_file_name,
                                         language=lang_code)
        try:
                                                reply_message.from_id,
                                                until_date=None,
                                                view_messages=False)
            reply = "{} warnings, <u><a href='tg://user?id={}'>user</a></u> has been banned!".format(
                limit, reply_message.from_id)
    else:
        reply = "<u><a href='tg://user?id={}'>user</a></u> has {}/{} warnings... watch out!".format(
            reply_message.from_id, num_warns, limit)
        if warn_reason:
            reply += "\nReason for last warn:\n{}".format(
                html.escape(warn_reason))
    #
    await event.edit(reply, parse_mode="html")


@javes.on(rekcah05(pattern=f"warn(?: |$)(.*)", allow_sudo=True))
async def _(event):
    if event.fwd_from:
        return
    try:
        chat = await event.get_chat()
        admin = chat.admin_rights
        creator = chat.creator
        warn_reason = event.pattern_match.group(1)
        reply_message = await event.get_reply_message()
    except:
        return await event.reply("`Sorry canot warn users here`")
    if not admin and not creator:
        return await event.reply("`I have to be admin to warn people.`")
    if await is_admin(event.chat_id, reply_message.from_id):
        return await event.reply("`I'm not going to warn an admin!`")
Exemple #6
0
    "\U0001F680-\U0001F6FF"  # transport & map symbols
    "\U0001F700-\U0001F77F"  # alchemical symbols
    "\U0001F780-\U0001F7FF"  # Geometric Shapes Extended
    "\U0001F800-\U0001F8FF"  # Supplemental Arrows-C
    "\U0001F900-\U0001F9FF"  # Supplemental Symbols and Pictographs
    "\U0001FA00-\U0001FA6F"  # Chess Symbols
    "\U0001FA70-\U0001FAFF"  # Symbols and Pictographs Extended-A
    "\U00002702-\U000027B0"  # Dingbats
    "]+")


def deEmojify(inputString: str) -> str:
    return re.sub(EMOJI_PATTERN, '', inputString)


@javes.on(rekcah05(pattern=f"song2(?: |$)(.*)", allow_sudo=True))
@javes05(outgoing=True, pattern="^!song2(?: |$)(.*)")
async def _(event):
    sender = await event.get_sender()
    me = await event.client.get_me()
    if not sender.id == me.id:
        rkp = await event.reply("`processing...`")
    else:
        rkp = await event.edit("`processing...`")
    try:
        reply_message = event.pattern_match.group(1)
        if not reply_message:
            reply_message = await event.get_reply_message()
            if reply_message:
                if reply_message.media:
                    return await rkp.edit("`Reply to a text message`")
Exemple #7
0
                admin = chat.admin_rights
                creator = chat.creator
                if admin or creator:
                    try:
                        await client.edit_permissions(rkG.chat_id,
                                                      guser.id,
                                                      view_messages=False)
                        await rkG.reply(
                            f"`{JAVES_NNAME}:` ** Gbanned User Joined!!** \n"
                            f"**Victim Id**: [{guser.id}](tg://user?id={guser.id})\n"
                            f"**Action **  : `Banned`")
                    except:
                        return


@javes.on(rekcah05(pattern=f"gmute(?: |$)(.*)", allow_sudo=True))
@javes05(outgoing=True, pattern="^!gmute(?: |$)(.*)")
async def gspider(rk):
    lazy = rk
    sender = await lazy.get_sender()
    me = await lazy.client.get_me()
    if not sender.id == me.id:
        rkp = await lazy.reply("`processing...`")
    else:
        rkp = await lazy.edit("`processing...`")
    me = await rk.client.get_me()
    await rkp.edit(f"`Gmuting....`")
    my_mention = "[{}](tg://user?id={})".format(me.first_name, me.id)
    my_username = f"@{me.username}" if me.username else my_mention
    chat = await rk.get_chat()
    a = b = 0
Exemple #8
0

@javes05(outgoing=True, pattern="^!saveblacklist ((.|\n)*)")
async def on_add_black_list(event):
    text = event.pattern_match.group(1)
    to_blacklist = list(
        set(trigger.strip() for trigger in text.split("\n")
            if trigger.strip()))
    for trigger in to_blacklist:
        sql.add_to_blacklist(event.chat_id, trigger.lower())
    await event.edit(
        "Added {} triggers to the blacklist in the current chat".format(
            len(to_blacklist)))


@javes.on(rekcah05(pattern=f"saveblacklist ((.|\n)*)", allow_sudo=True))
async def on_add_black_list(event):
    text = event.pattern_match.group(1)
    to_blacklist = list(
        set(trigger.strip() for trigger in text.split("\n")
            if trigger.strip()))
    for trigger in to_blacklist:
        sql.add_to_blacklist(event.chat_id, trigger.lower())
    await event.reply(
        "Added {} triggers to the blacklist in the current chat".format(
            len(to_blacklist)))


@javes05(outgoing=True, pattern="^!checkblacklist(?: |$)(.*)")
async def on_view_blacklist(listbl):
    all_blacklisted = sql.get_chat_blacklist(listbl.chat_id)
Exemple #9
0
    return f"[{full_name}](tg://user?id={user.id})"


def user_full_name(user):
    names = [user.first_name, user.last_name]
    names = [i for i in list(names) if i]
    full_name = ' '.join(names)
    return full_name
 





@javes05(outgoing=True, pattern="^!reupload (.*)")
@javes.on(rekcah05(pattern=f"reupload (.*)", allow_sudo=True))
async def _(event):
    if event.fwd_from:
        return
    thumb = None
    if os.path.exists(thumb_image_path):
        thumb = thumb_image_path    
    sender = await event.get_sender() ; me = await event.client.get_me()
    if not sender.id == me.id:
        rkp = await event.reply("`processing...`")
    else:
    	rkp = await event.edit("`processing...`")
    input_str = event.pattern_match.group(1)
    if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
    if event.reply_to_msg_id:
    if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.mkdir(TEMP_DOWNLOAD_DIRECTORY)
    prefs = {'download.default_directory': TEMP_DOWNLOAD_DIRECTORY}
    chrome_options.add_experimental_option('prefs', prefs)
    driver = webdriver.Chrome(executable_path=CHROME_DRIVER,
                              options=chrome_options)
    return driver
    



GITHUB = 'https://github.com'
DEVICES_DATA = 'https://raw.githubusercontent.com/androidtrackers/' \
               'certified-android-devices/master/devices.json'

@javes.on(rekcah05(pattern=f"app (.*)", allow_sudo=True))
@javes05(outgoing=True, pattern="^!app (.*)")
async def apk(e):
    sender = await e.get_sender() ; me = await e.client.get_me()
    if not sender.id == me.id:
        rkp = await e.reply("`processing...`")
    else:
    	rkp = await e.edit("`processing...`")
    try:
        app_name = e.pattern_match.group(1)
        remove_space = app_name.split(' ')
        final_name = '+'.join(remove_space)
        page = requests.get("https://play.google.com/store/search?q="+final_name+"&c=apps")
        lnk = str(page.status_code)
        soup = bs4.BeautifulSoup(page.content,'lxml', from_encoding='utf-8')
        results = soup.findAll("div","ZmHEEd")
Exemple #11
0
        else:
            await event.edit("Please specify a valid module name.")
    else:
        await event.edit("Usage: !help <module name>\
            \n Example - !help admin")
        string = ""
        for i in CMD_HELP:
            string += "`" + str(i)
            string += "`, "
        await event.reply(string)
 




@javes.on(rekcah05(pattern=f"help(?: |$)(.*)", allow_sudo=True))
async def help(event):
    """ For .help command,"""
    args = event.pattern_match.group(1).lower()
    if args:
        if args in CMD_HELP:
            await event.reply(str(CMD_HELP[args]))
        else:
            await event.reply("Please specify a valid module name.")
    else:
        await event.reply("Usage: !help <module name>\
            \n Example - !help admin")
        string = ""
        for i in CMD_HELP:
            string += "`" + str(i)
            string += "`, "
Exemple #12
0
    try:
        vr = vtotal.file_scan(vscan)
    except:
        return await event.edit(
            "`Unknown command type !help virus_scan for more info")
    test = vr['json_resp']
    link = test['permalink']
    scan_id = test['scan_id']
    response_code = test['response_code']
    return await event.edit(
        ""
        f"• **Virus Total Response Code:** `{response_code}`\n"
        f"• **Scan Results:** [ClickHere]({link}) ")


@javes.on(rekcah05(pattern=f"scan(?: |$)(.*)", allow_sudo=True))
async def vt(event):
    rkp = await event.reply(f"Analyzing Datas......")
    input_str = event.pattern_match.group(1)
    if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.makedirs(TEMP_DOWNLOAD_DIRECTORY)
    if "|" in input_str:
        url, file_name = input_str.split("|")
        url = url.strip()
        file_name = file_name.strip()
        head, tail = os.path.split(file_name)
        if head:
            if not os.path.isdir(os.path.join(TEMP_DOWNLOAD_DIRECTORY, head)):
                os.makedirs(os.path.join(TEMP_DOWNLOAD_DIRECTORY, head))
                file_name = os.path.join(head, tail)
        downloaded_file_name = TEMP_DOWNLOAD_DIRECTORY + "" + file_name
Exemple #13
0
    if stdout or stderr:
        if not len(text) > 4096:
            return await event.edit(text)
    output = open("term.txt", "w+")
    output.write(text)
    output.close()
    await event.client.send_file(
        event.chat_id,
        "term.txt",
        reply_to=event.id,
        caption=f"`{JAVES_NNAME}:` **Output too large, sending as file**")
    os.remove("term.txt")
    return


@javes.on(rekcah05(pattern=f"term(?: |$|\n)([\s\S]*)", allow_sudo=True))
async def evaluate(event):
    if not FULL_SUDO:
        await query.reply(
            f"`{JAVES_NNAME}:` **Sorry , Normal Sudo cant acess this comand,  active advance sudo by set  FULL_SUDO as true in heroku var**"
        )
    else:
        rkp = await event.reply(f"**{JAVES_NNAME}**: `Running Terminal.....`")
        message = (str(event.chat_id) + ':' + str(event.message.id))
        if running_processes.get(message, False):
            await rkp.edit("A process for this event is already running!")
            return
        cmd = event.pattern_match.group(1).strip()
        if not cmd:
            await rkp.edit("``` Give a command or use .help script.```")
            return
import asyncio
import traceback
import os
import userbot.events
from datetime import datetime
rekcah05 = rekcah05
command = zzaacckkyy
register = javes05
borg = bot
javes = bot
DELETE_TIMEOUT = 5
from userbot import CMD_HELP, ALIVE_NAME, PM_MESSAGE, JAVES_NAME, JAVES_MSG, ORI_MSG
JAVES_NNAME = str(JAVES_NAME) if JAVES_NAME else str(JAVES_MSG)


@javes.on(rekcah05(pattern=f"install$", allow_sudo=True))
async def install(event):
    if event.fwd_from:
        return
    if event.reply_to_msg_id:
        try:
            downloaded_file_name = await event.client.download_media(  # pylint:disable=E0602
                await event.get_reply_message(),
                "/root/userbot/userbot/modules/"  # pylint:disable=E0602
            )
            if "(" not in downloaded_file_name:
                path1 = Path(downloaded_file_name)
                shortname = path1.stem
                load_module(shortname.replace(".py", ""))
                await event.reply("Installed module `{}`".format(
                    os.path.basename(downloaded_file_name)))
Exemple #15
0

async def chrome(chrome_options=None):
    if chrome_options is None:
        chrome_options = await options()
    if not os.path.isdir(TEMP_DOWNLOAD_DIRECTORY):
        os.mkdir(TEMP_DOWNLOAD_DIRECTORY)
    prefs = {'download.default_directory': TEMP_DOWNLOAD_DIRECTORY}
    chrome_options.add_experimental_option('prefs', prefs)
    driver = webdriver.Chrome(executable_path=CHROME_DRIVER,
                              options=chrome_options)
    return driver


@javes05(outgoing=True, pattern="^!pic (.*)")
@javes.on(rekcah05(pattern=f"img (.*)", allow_sudo=True))
async def img_sampler(event):
    me = await event.client.get_me()
    query, limit = event.pattern_match.group(1).split(";")
    try:
        lim = limit
    except Exception as e:
        await event.edit(str(e))
    response = googleimagesdownload()
    arguments = {
        "keywords": query,
        "limit": int(lim),
        "format": "jpg",
        "no_directory": "no_directory"
    }
    paths = response.download(arguments)
    pack_emojis = []
    for document_sticker in get_stickerset.packs:
        if document_sticker.emoticon not in pack_emojis:
            pack_emojis.append(document_sticker.emoticon)

    OUTPUT = f"**Sticker Title:** `{get_stickerset.set.title}\n`" \
        f"**Sticker Short Name:** `{get_stickerset.set.short_name}`\n" \
        f"**Official:** `{get_stickerset.set.official}`\n" \
        f"**Archived:** `{get_stickerset.set.archived}`\n" \
        f"**Stickers In Pack:** `{len(get_stickerset.packs)}`\n" \
        f"**Emojis In Pack:**\n{' '.join(pack_emojis)}"

    await event.edit(OUTPUT)


@javes.on(rekcah05(pattern=f"kang", allow_sudo=True))
async def kang(args):
    """ For .kang command, kangs stickers or creates new ones. """
    kang_meme = random.choice(KANGING_STR)
    user = await bot.get_me()
    if not user.username:
        user.username = user.first_name
    message = await args.get_reply_message()
    photo = None
    emojibypass = False
    is_anim = False
    emoji = None

    if message and message.media:
        if isinstance(message.media, MessageMediaPhoto):
            #await args.reply(f"`{kang_meme}`")
Exemple #17
0
            f" °  `Os:` ** Kali GNU/Linux Rolling x86_64   **\n"
            f" °  `Heroku:` ** {herokurk} **\n"
            f" °  `LogChat:` ** {logrk} **\n"
            f" °  `Sudo:` ** {sudork} **\n"
            f" °  `SpamProtect:` ** {ss} **\n"
            f" °  `Uptime:` ** {str(datetime.now() - START_TIME).split('.')[0]} **\n\n"
            f"**{ALIVE_E_MMSG}**")


@javes05(outgoing=True, pattern="^\.alive$")
@javes05(outgoing=True, pattern="^\!alive$")
async def alive(alive):
    await alive.edit("Iam On type` !javes `or` !help `for more info")


@bot.on(rekcah05(pattern=f"sudo$", allow_sudo=True))
@bot.on(rekcah05(pattern=f"javes$", allow_sudo=True))
async def alive(alive):
    await alive.reply(
        ""
        f"**{ALIVE_S_MMSG}**\n\n"
        f" °  **{JAVES_NNAME}**: **{v}**\n"
        f" °  `Sudo Id:` ** {rksu} **\n"
        f" °  `Telethon`: ** {version.__version__} **\n"
        f" °  `Python` : ** {platform.python_version()} **\n"
        f" °  `Os:` ** Kali GNU/Linux Rolling x86_64   **\n"
        f" °  `Heroku:` ** {herokurk} **\n"
        f" °  `LogChat:` ** {logrk} **\n"
        f" °  `Sudo:` ** {sudork} **\n"
        f" °  `SpamProtect:` ** {ss} **\n"
        f" °  `Uptime:` ** {str(datetime.now() - START_TIME).split('.')[0]} **\n\n"
Exemple #18
0
import asyncio, os
from asyncio import wait, sleep
from userbot import BOTLOG, BOTLOG_CHATID, CMD_HELP
from userbot.events import javes05, rekcah05
from userbot import client as javes
FULL_SUDO = os.environ.get("FULL_SUDO", None)


@javes.on(rekcah05(pattern=f"(?:scam|ssc)\s(.*)", allow_sudo=True))
@javes05(outgoing=True, pattern=r"^\!(?:scam|ssc)\s(.*)")
async def scam(e):
    if not e.is_private:
        chat = await e.get_chat()
        admin = chat.admin_rights
        creator = chat.creator
        if not admin and not creator and chat.id == -1001288555028:
            return
    try:
        await e.delete()
    except:
        pass
    options = ('typing', 'game', 'voice', 'round', 'video', 'photo',
               'document')
    input_str = e.pattern_match.group(1)
    args = input_str.split()
    if len(args) == 2:
        scam_action = str(args[1]).lower()
        if not scam_action in options:
            return await e.reply(
                f"Failed \n\n •**Error:** Invalid Action\n\n You can use one of this \n{options}"
            )