Example #1
0
def got_message(message):
    global memory
    msg = message.messages[0]

    if isinstance(msg, MediaMessage):
        command = msg.caption
    else:
        command = msg.content

    if not command.startswith("מישה "):
        return
    command = command[5:]
    command_words = command.split(" ")
    command_first_word = command_words[0]

    if command_first_word == "מודל":
        driver.chat_send_message(msg.chat_id,
                                 moodle_message(get_moodle_current_data()))
    elif command_first_word == "סטיקר":
        if isinstance(msg, MediaMessage):
            img = Image.open(driver.download_media(msg, force_download=True))
            # Resize image
            if img.width > img.height:
                result_width = 512
                result_height = math.floor(img.height * (512 / img.width))
            else:
                result_height = 512
                result_width = math.floor(img.width * (512 / img.height))
            resized = img.resize((result_width, result_height)).convert("RGBA")
            sticker_img = Image.new("RGBA", (512, 512))
            sticker_img.paste(resized, ((512 - result_width) // 2,
                                        (512 - result_height) // 2))
            # Potentially add text
            semicolon_seperated = " ".join(command_words[1:]).split(";")
            if len(semicolon_seperated) != 0 and semicolon_seperated[0] != "":
                # draw text
                draw_text(sticker_img, semicolon_seperated[0], top=True)
                if len(semicolon_seperated) >= 2:
                    draw_text(sticker_img, semicolon_seperated[1], top=False)
            # Send result image
            webp_img = io.BytesIO()
            sticker_img.save(webp_img, "webp")
            webp_img.seek(0)
            img_base_64 = convert_to_base64(webp_img, is_thumbnail=True)
            return driver.wapi_functions.sendImageAsSticker(
                img_base_64, msg.chat_id, {})
        else:
            driver.chat_send_message(msg.chat_id, "אין פה תמונה")
    elif command_first_word == "מידע":
        driver.chat_send_message(
            msg.chat_id, """היי אני הבוט של מישה!
הפקודות שלי הן:
1. מישה סטיקר טקסט עליון;טקסט תחתון
2. מישה מודל - נותן את ההגשות של התרגילים במודל""")
Example #2
0
def recImageReplyCommand(Msg, Chat):
    caption = Msg.caption
    args = caption.split()[1:]
    ran = secrets.token_hex(7)
    if Msg.caption:
        kpt = Msg.caption.lower().split()[0]
        if kpt == "#wait":
            fn = Msg.save_media('./cache', Msg.media_key)
            res = WhatAnimeIsThis(fn)
            driver.wapi_functions.sendImage(
                convert_to_base64(BytesIO(res["video"].content)), Msg.chat_id,
                "wait.mp4", res["hasil"]
            ) if res["status"] else Msg.reply_message("Gagal di cari")
            os.remove(fn)
        elif kpt == "#quote1":
            arg = caption[8:].split('|')
            for i in range(arg.count('')):
                arg.remove('')
            print(arg)
            if len(arg) == 3:
                print("3333333")
                color = (0, 0, 0) if arg[2] == "1" else (255, 255, 255)
                fn = Msg.save_media("./cache", Msg.media_key)
                print("key")
                desain(fn, katakata=arg[0], author=arg[1], col=color)
                print("desain")
                driver.send_media(fn, Msg.chat_id, "Quote Berhasil Di Buat")
                print("kirim")
                os.remove(fn)
        elif kpt in ['#stiker', '#sticker']:
            try:
                fn = Msg.save_media('./cache', Msg.media_key)
                os.rename(fn, "cache/%s.png" % ran)
                pasteLayer("cache/%s.png" % ran)
                driver.send_image_as_sticker("cache/%s.png" % ran, Msg.chat_id)
                os.remove("cache/%s.png" % ran)
            except Exception as e:
                False
        elif kpt == "#upimg":
            fn = Msg.save_media("./cache", Msg.media_key)
            Msg.reply_message(
                imgUploader(base64.b64encode(open(fn, "rb").read()).decode()))
        elif kpt == '#qrreader':
            img = decode(Image.open(Msg.save_media('./cache', Msg.media_key)))
            Msg.reply_message(
                'Text : %s\nType : %s' %
                (img[0][0].decode(), img[0][1])) if img else Msg.reply_message(
                    'Gambar Tidak Valid')
        elif kpt == "#ocr":
            fn = Msg.save_media("./cache", Msg.media_key)
            Msg.reply_message(
                tesserocr.file_to_text(fn, lang="eng+ind+jap+chi").strip())
            os.remove(fn)
            if (profile := driver.get_profile_pic_from_id(d["wid"])):
                data_.update({"media": base64.b64encode(profile).decode()})
                print(data_)
            Client.emit("broadcast", data=data_, namespace="/bc")
    if cmd.split()[0] == "gbroadcast":
        for i in driver.get_all_chat_ids():
            Thread(target=driver.wapi_functions.sendMessage,
                   args=(
                       i,
                       cmd[len(cmd.split()[0]) + 1:],
                   )).start()
    if from_bot == driver.wapi_functions.getMe()["wid"] and data.get(
            "type") == "response":
        if data.get("media"):
            driver.wapi_functions.sendImage(
                convert_to_base64(
                    BytesIO(base64.b64decode(data["media"].encode()))),
                from_id, "bs.jpg", data["pesan"])
        else:
            driver.wapi_functions.sendMessage(from_id, data["pesan"])


def broadcast_serv(chat_id, cmd):
    Client.emit("broadcast",
                data={
                    "cmd": cmd,
                    "from_bot": driver.wapi_functions.getMe()["wid"],
                    "from_id": chat_id,
                    "type": "request"
                },
                namespace="/bc")
Example #4
0
def got_message(message):
    # log who sent this
    global memory, chat_state
    msg = message.messages[0]
    msg_author = msg.sender.id

    if message.chat.id not in chat_state:
        chat_state[message.chat.id] = {"message_times": {}, "remove_times": {}}

    c_st = chat_state[message.chat.id]

    # check for spam
    if msg_author in c_st["message_times"]:
        c_st["message_times"][msg_author] = [
            x for x in c_st["message_times"][msg_author]
            if (time.time() - x) < SPAM_TIME
        ]
        c_st["message_times"][msg_author] += [time.time()]
        msg_cnt = len(c_st["message_times"][msg_author])
        if msg_cnt >= SPAM_MAX:
            # remove from group
            try:
                remove_and_remember(message.chat, msg_author)
            except:
                pass
        elif msg_cnt >= SPAM_WARN:
            # warn for spam
            driver.chat_send_message(msg.chat_id,
                                     "די להספים! " + f"({msg_cnt}/{SPAM_MAX})")
    else:
        c_st["message_times"][msg_author] = [time.time()]

    if isinstance(msg, MediaMessage):
        command = msg.caption
    else:
        command = msg.content

    if not command.startswith("מישה "):
        return
    command = command[5:]
    command_words = command.split(" ")
    command_first_word = command_words[0]

    if command_first_word == "סטיקר":
        if isinstance(msg, MediaMessage):
            img = Image.open(driver.download_media(msg, force_download=True))
            # Resize image
            if img.width > img.height:
                result_width = 512
                result_height = math.floor(img.height * (512 / img.width))
            else:
                result_height = 512
                result_width = math.floor(img.width * (512 / img.height))
            resized = img.resize((result_width, result_height)).convert("RGBA")
            sticker_img = Image.new("RGBA", (512, 512))
            sticker_img.paste(resized, ((512 - result_width) // 2,
                                        (512 - result_height) // 2))
            # Potentially add text
            semicolon_seperated = " ".join(command_words[1:]).split(";")
            if len(semicolon_seperated) != 0 and semicolon_seperated[0] != "":
                # draw text
                draw_text(sticker_img, semicolon_seperated[0], top=True)
                if len(semicolon_seperated) >= 2:
                    draw_text(sticker_img, semicolon_seperated[1], top=False)
            # Send result image
            webp_img = io.BytesIO()
            sticker_img.save(webp_img, "webp")
            webp_img.seek(0)
            img_base_64 = convert_to_base64(webp_img, is_thumbnail=True)
            return driver.wapi_functions.sendImageAsSticker(
                img_base_64, msg.chat_id, {})
        else:
            driver.chat_send_message(msg.chat_id, "אין פה תמונה")
    elif command_first_word == "להוציא":
        remove_id = command_words[1][1:] + "@c.us"
        # save a tuple of timestamp and who wants to remove remove_id
        # in c_st["remove_times"][remove_id]
        if remove_id in c_st["remove_times"]:
            # remove historic data
            c_st["remove_times"][remove_id] = [
                x for x in c_st["remove_times"][remove_id]
                if (time.time() - x[0]) < REMOVE_VALIDITY_TIME
            ]

            # check for double-voting
            for x in c_st["remove_times"][remove_id]:
                if x[1] == msg_author:
                    driver.chat_send_message(msg.chat_id, "הצבעת פעמיים")
                    return
            # add this vote
            c_st["remove_times"][remove_id] += [(time.time(), msg_author)]
            rm_cnt = len(c_st["remove_times"][remove_id])
            driver.chat_send_message(msg.chat_id,
                                     f"הוצאה {rm_cnt}/{REMOVE_CONSENSUS}")
            if rm_cnt >= REMOVE_CONSENSUS:
                # remove from group
                try:
                    del c_st["remove_times"][remove_id]
                    remove_and_remember(message.chat, remove_id)
                except:
                    pass
        else:
            # add first vote
            c_st["remove_times"][remove_id] = [(time.time(), msg_author)]
            driver.chat_send_message(msg.chat_id,
                                     f"הוצאה 1/{REMOVE_CONSENSUS}")
    elif command_first_word == "man":
        if len(command_words) == 3:
            section = command_words[1]
            manpage_searched = command_words[2]
            page = manpages.read_manpage(manpage_searched, section)
        else:
            manpage_searched = command_words[1]
            page = manpages.read_manpage(manpage_searched)

        driver.chat_send_message(msg.chat_id, manpages.whatsapp_encoding(page))
    elif command_first_word == "מידע":
        driver.chat_send_message(
            msg.chat_id, """היי אני הבוט של מישה!
הפקודות שלי הן:
1. מישה סטיקר טקסט עליון;טקסט תחתון
""")
Example #5
0
def replyCommand(Msg, Chat):
    chat = Msg.content
    args = chat.split(' ')[1:]
    kpt = chat.lower().split(' ')[0].lower()
    chat_id = Msg.chat_id
    kpt = chat.lower().split(' ')[0].lower()
    jsObject = Msg.get_js_obj()
    ran = secrets.token_hex(7)
    if kpt == '#qrmaker':
        if len(kpt) == 1:
            Msg.reply_message('*salah*')
        else:
            pyqrcode.create(chat.replace(kpt + ' ', '')).png('cache/bar.png',
                                                             scale=6)
            driver.send_media('cache/bar.png', chat_id,
                              'text : %s' % (chat.replace(kpt, '')))
    elif kpt == "#igstalk":
        if args:
            Chat.send_message("Sedang Mencari 🔍")
            userProperty = igstalker(args[0].replace("@", ""))
            if userProperty:
                driver.wapi_functions.sendImage(
                    convert_to_base64(
                        BytesIO(requests.get(userProperty["pic"]).content)),
                    chat_id, "stalk.jpg", f'''
Nama Pengguna : {userProperty["username"]}
Mengikuti     : {userProperty["following"]}
Di Ikuti      : {userProperty["follower"]}
Jumlah Post   : {userProperty["post"]}
============BIO===========
{userProperty["bio"]}
''')
            else:
                Msg.reply_message("Nama Pengguna Tidak Ada ❌")
        else:
            Msg.reply_message("Masukan Nama Pengguna Yg Ingin Di Stalk")
    elif kpt == "#quote1":
        rep = GetRepMedia(Msg)
        if rep.type == "image":
            arg = chat[8:].split('|')
            for i in range(arg.count('')):
                arg.remove('')
            print(arg)
            print(len(arg))
            if len(arg) == 3:
                color = (0, 0, 0) if arg[2] == "1" else (255, 255, 255)
                wri = driver.download_media(rep)
                open("cache/%s.jpg" % ran, "wb").write(wri.read())
                desain("cache/%s.jpg" % ran,
                       katakata=arg[0],
                       author=arg[1],
                       col=color)
                driver.send_media("cache/%s.jpg" % ran, chat_id,
                                  "Apakah Kamu Suka")
            else:
                Msg.reply_message("Perintah Salah")
    elif kpt == '#qrreader':
        rep = GetRepMedia(Msg)
        if rep.type == "image":
            wri = driver.download_media(rep)
            img = decode(Image.open(wri))
            Msg.reply_message(
                'Text : %s\nType : %s' %
                (img[0][0].decode(), img[0][1])) if img else Msg.reply_message(
                    'Gambar Tidak Valid')
    elif kpt == "#wait":
        rep = GetRepMedia(Msg)
        if rep.type == "image":
            wri = driver.download_media(rep)
            open("cache/%s.jpg" % ran, "wb").write(wri.read())
            res = WhatAnimeIsThis("cache/%s.jpg" % ran)
            driver.wapi_functions.sendImage(
                convert_to_base64(BytesIO(
                    res["video"].content)), chat_id, "wait.mp4", res["hasil"]
            ) if res["status"] else Msg.reply_message("Gagal di cari")
            os.remove("cache/%s.jpg" % ran)
    elif kpt == "#grup":
        if '@g.us' in Msg.chat_id:
            cek = Change(Chat.id)
            driver.wapi_functions.sendImage(
                convert_to_base64(
                    BytesIO(driver.get_profile_pic_from_id(Chat.id))), chat_id,
                "Image.jpg",
                f"""Nama : {Chat.name}\nNsfw : {"Aktif" if cek.nsfwX() else "Nonaktif"}\nAntiToxic : {"Aktif" if cek.switch() else "Nonaktif"}\nMax : {cek.maxCount() if cek.switch() else "0"}"""
            )
        else:
            Msg.reply_message("Hanya Berlaku Di Dalam Grup")
    elif kpt == "#tulis":
        tulisan = tulis(chat[7:])
        for i in tulisan:
            ran = secrets.token_hex(7)
            i.save("cache/%s.jpg" % ran)
            driver.send_media("cache/%s.jpg" % ran, chat_id,
                              "Berhasil Ditulis 📝")
            os.remove("cache/%s.jpg" % ran)
    elif kpt == "#upimg":
        rep = GetRepMedia(Msg)
        if rep.type == "image":
            wri = driver.download_media(rep)
            Msg.reply_message(
                imgUploader(base64.b64encode(wri.read()).decode()))
    elif kpt == "#ocr":
        rep = GetRepMedia(Msg)
        if rep.type == "image":
            wri = driver.download_media(rep)
            open("%s.jpg" % ran, "wb").write(wri.read())
            Msg.reply_message(
                tesserocr.file_to_text("%s.jpg" % ran,
                                       lang="eng+ind+jap+chi").strip())
            os.remove("%s.jpg" % ran)
    elif kpt in ["#sticker", "#stiker"]:
        rep = GetRepMedia(Msg)
        if rep.type == "image":
            wri = driver.download_media(rep)
            open("cache/%s.png" % ran, "wb").write(wri.read())
            pasteLayer("cache/%s.png" % ran)
            driver.send_image_as_sticker("cache/%s.png" % ran, chat_id)
            os.remove("cache/%s.png" % ran)
    elif kpt == '#fb':
        link = fbvid(args[0])
        driver.wapi_functions.sendImage(
            convert_to_base64(BytesIO(requests.get(link["url"]).content)),
            chat_id, "fb.mp4", "") if link["status"] else Msg.reply_message(
                "Kemungkinan Link video salah/ video di privasikan")
    elif kpt == '#???':
        ksr = Kasar(chat_id)
        Msg.reply_message('You have said the harsh word %s times' %
                          (ksr.check()))
    elif kpt == '#intro':
        Msg.reply_message(
            '🙋‍♂Hallo Saya Gus-Bot Saya Di Bangun 🛠️ Dengan Bahasa Python3.8 🐍 Dan Beberapa API🔥'
        )
    elif kpt in ['#menu', '#help']:
        Chat.send_message('''.    🛠️ TOOLS 🛠️
-> # kata(mau bilang apa)
-> #sticker
-> #upimg
-> #ig
-> #igstalk [User]
-> #fb [Tautan Video]
-> #cari [Kata Kunci]
-> #qrmaker [Teks]
-> #qrreader
-> #? [Soal]
-> #wait
-> #tulis [Teks]
-> #ocr
-> #url2png [Tautan]
-> #run [Syntak]
-> #doujin [Kode Nuklir]
-> #film [Judul Film]
-> #kusonime [Judul Anime]
-> #otakudesu [Judul Anime]
-> #ts [cc] [text]
-> #tts [cc] [text]
-> #quotemaker|[quote]|[author]|[theme]
-> #yt2mp3 [Tautan Youtube]
-> #yt [Tautan Youtube]
-> #wiki [Kata Kunci]

     🕹️HIBURAN 🕹️
-> #dog
-> #neko
-> #quote
-> #kitsune
-> #gambar
-> # [chat]
-> #joke
-> #waifu
-> #bct [text]
    

     👁️‍🗨️   GRUP   👁️‍🗨️
-> #list-admin
-> #admin
-> #mentionall
-> #unadmin @tag
-> #delete @tag
-> #kick @tag
-> #add 62xxxx
-> #owner
-> #grup
-> #linkgroup
-> #revoke
-> #nsfw [1|0]
-> #notoxic [1|0] s/d

     🗣️  BANTUAN 🗣️
-> #cara-penggunaan

     ☕ DUKUNGAN ☕
-> #support
-> #intro

      & Author &
-> #bc [Teks]

''')
    elif kpt == '#joke':
        _help, dat = '''#joke <category> <flags>\ncategory:1:Programming\n         2:miscellaneous\n         3:dark\n         4:pun\nflags :1:nsfw\n       2:religious\n       3:political\n       4:racist\n       5:sexist''', {
            'flags': {
                '1': 'nsfw',
                '2': 'religious',
                '3': 'political',
                '4': 'racist',
                '5': 'sexist'
            },
            'category': {
                '1': 'Programming',
                '2': 'Miscellaneous',
                '3': 'Dark',
                '4': 'Pun'
            }
        }
        if (len(args) == 2 and args[0].isnumeric()) and (args[1].isnumeric()):
            try:
                global ffff
                ffff = json.loads(
                    requests.get(
                        'https://sv443.net/jokeapi/v2/joke/%s?blacklistFlags=%s'
                        % (dat['category'][args[0]],
                           dat['flags'][args[0]])).text)
            except:
                Msg.reply_message(_help)
            if ffff['error']:
                Msg.reply_message(_help)
            else:
                try:
                    Msg.reply_message(
                        tra.translate(text=ffff['joke'], dest='id').text)
                except KeyError:
                    Msg.reply_message(
                        tra.translate(text='%s\n%s' %
                                      (ffff['setup'], ffff['delivery']),
                                      dest='id').text)
        else:
            Msg.reply_message(_help)
    elif kpt == '#bct':
        try:
            Msg.reply_message(bacot(chat[5:]))
        except:
            Msg.reply_message('masukan Text')
    elif kpt == "#nsfw":
        if Msg.sender.id in [(x.id) for x in Chat.get_admins()]:
            if isAdmin(Chat.id):
                if args[0].isnumeric():
                    ns = Change(Chat.id)
                    if int(args[0]) == 1:
                        if ns.idGrup():
                            ns = Change(Chat.id, nsfw=1)
                            ns.nsfwEdit()
                            Chat.send_message("Mengaktifkan NSFW Berhasil")
                        else:
                            ns = Change(Chat.id, nsfw=1, switchInt=0)
                            ns.switchEdit()
                            ns.nsfwEdit()
                            Chat.send_message("Mengaktifkan NSFW Berhasil")
                    elif int(args[0]) == 0:
                        ns = Change(Chat.id, nsfw=0)
                        ns.nsfwEdit()
                        Chat.send_message("Menonaktifkan NSFW Berhasil")
                    else:
                        Chat.send_message(
                            "Masukan 1 untuk *mengaktifkan* dan 0 untuk *menonaktifkan*"
                        )
                else:
                    Chat.send_message(
                        "Masukan 1 untuk *mengaktifkan* dan 0 untuk *menonaktifkan*"
                    )
            else:
                Chat.send_message("Jadikan Saya Menjadi Admin Terlebih Dahulu")
        else:
            Msg.reply_message('Anda Bukan Admin Group')

    elif kpt == "#notoxic":
        if Msg.sender.id in [(x.id) for x in Chat.get_admins()]:
            if isAdmin(Chat.id):
                if int(args[0]) == 1:
                    if len(args) == 2:
                        if args[1].isnumeric():
                            alert = Change(Chat.id,
                                           maxint=int(args[1]),
                                           switchInt=1)
                            alert.switchEdit()
                            Chat.send_message(
                                f"Menyetel Anti Toxic dengan maksimal {args[1]} Peringatan Berhasil"
                            )
                        else:
                            Chat.send_message("Masukan Jumlah Max peringatan")
                    else:
                        Chat.send_message("Masukan Jumlah Max peringatan")
                elif int(args[0]) == 0:
                    alert = Change(Chat.id, switchInt=0)
                    alert.switchEdit()
                    Chat.send_message("Menonaktifkan Anti Toxic Berhasil")
                else:
                    Chat.send_message(
                        "Masukan 1 untuk *mengaktifkan* dan 0 untuk *menonaktifkan*"
                    )
            else:
                Chat.send_message("Jadikan Saya Menjadi Admin Terlebih Dahulu")
        else:
            Msg.reply_message('Anda Bukan Admin Group')
    elif kpt == '#kick':
        if "@g.us" in Msg.chat_id:
            for i in args:
                try:
                    if isAdmin(Chat.id):
                        (Chat.remove_participant_group(
                            i.replace('@', '') +
                            '@c.us') if len(args) == 1 else
                         Msg.reply_message('#kick @tag')) if Msg.sender.id in [
                             (x.id) for x in Chat.get_admins()
                         ] else Msg.reply_message(
                             'Anda Bukan Admin'
                         ) if '@g.us' in Msg.chat_id else Msg.reply_message(
                             "Hanya Berlaku Di Dalam Grup")
                    else:
                        Chat.send_message(
                            "Jadikan Saya Menjadi Admin Terlebih Dahulu")
                except Exception as e:
                    Msg.reply_message("Kick Gagal")
        else:
            Msg.reply_message("Hanya Berlaku Di Dalam Grup")
    elif kpt == "#delete":
        if "@g.us" in Msg.chat_id:
            if Msg._js_obj["quotedMsgObj"]:
                id_ = Msg._js_obj["quotedMsgObj"]["id"]
                chat_id = Msg.chat_id
                if Msg.sender.id in [(x.id)
                                     for x in Chat.get_admins()] + author:
                    if not driver.wapi_functions.deleteMessage(
                            chat_id, id_, True):
                        Msg.reply_message("Hanya Pesan Bot Yg Bisa Di Hapus")
                else:
                    Msg.reply_message("Anda Bukan Admin Grup")
            else:
                Msg.reply_message("Tag Pesan Bot Yg Ingin Di Hapus")
        else:
            Msg.reply_message("Hanya Berlaku Di Dalam Grup")

    elif kpt == '#admin':
        try:
            if '@g.us' in Msg.chat_id:
                if isAdmin(Chat.id):
                    (Chat.promove_participant_admin_group(
                        args[0].replace('@', '') +
                        '@c.us') if len(args) == 1 else
                     Msg.reply_message('#admin @tag')) if Msg.sender.id in [
                         (x.id) for x in Chat.get_admins()
                     ] else Msg.reply_message('Anda Bukan Admin Group')
                else:
                    Chat.send_message(
                        "Jadikan Saya Menjadi Admin Terlebih Dahulu")
            else:
                Msg.reply_message("Hanya Berlaku Di Dalam Grup")
        except Exception as e:
            Msg.reply_message('Terdapat Error\ndetail : %s' % (e))
    elif kpt == '#unadmin':
        try:
            if '@g.us' in Msg.chat_id:
                if isAdmin(Chat.id):
                    (Chat.demote_participant_admin_group(
                        args[0].replace('@', '') +
                        '@c.us') if len(args) == 1 else Msg.reply_message(
                            '#unadmin 62xxxxx')) if Msg.sender.id in [
                                (x.id) for x in Chat.get_admins()
                            ] else Msg.reply_message('Anda Bukan Admin Group')
                else:
                    Chat.send_message(
                        "Jadikan Saya Menjadi Admin Terlebih Dahulu")
            else:
                Msg.reply_message("Hanya Berlaku Di Dalam Grup")
        except Exception as e:
            Msg.reply_message("UnAdmin Gagal")
    elif kpt == '#revoke':
        try:
            if '@g.us' in Msg.chat_id:
                if isAdmin(Chat.id):
                    (Chat.send_message('Tautan Grup Berhasil Ditarik') if
                     driver.wapi_functions.revokeGroupInviteLink(Msg.chat_id)
                     else Chat.send_message('Tautan Grup Gagal Ditarik')
                     ) if Msg.sender.id in [
                         (x.id) for x in Chat.get_admins()
                     ] else Msg.reply_message('Anda Bukan Admin Group')
                else:
                    Chat.send_message(
                        "Jadikan Saya Menjadi Admin Terlebih Dahulu")
            else:
                Msg.reply_message("Hanya Berlaku Di Dalam Grup")
        except Exception as e:
            Chat.send_message("Menarik Tautan Gagal")
    elif kpt == '#add':
        try:
            if '@g.us' in Msg.chat_id:
                if isAdmin(Chat.id):
                    ((Msg.reply_message('Berhasil Ditambahkan')
                      if Chat.add_participant_group(args[0] + '@c.us') else
                      Msg.reply_message('Gagal Ditambahkan'))
                     if Msg.sender.id in [(x.id) for x in Chat.get_admins()]
                     else Msg.reply_message('Gagal Di Tambahkan'))
                else:
                    Chat.send_message(
                        "Jadikan Saya Menjadi Admin Terlebih Dahulu")
            else:
                Msg.reply_message("Hanya Berlaku Di Dalam Grup")
        except Exception as e:
            Msg.reply_message('#add 628xxxxxxx')
    if kpt == '#linkgroup':
        try:
            if '@g.us' in Msg.chat_id:
                if isAdmin(Chat.id):
                    Msg.reply_message(
                        driver.wapi_functions.getGroupInviteLink(Msg.chat_id))
                else:
                    Chat.send_message(
                        "Jadikan Saya Menjadi Admin Terlebih Dahulu")
            else:
                Msg.reply_message("Hanya Berlaku Di Dalam Grup")
        except:
            Msg.reply_message('Angkat Bot ini Menjadi Admin Dulu')
    elif kpt == '#list-admin':
        pesan = ''
        for i in Chat.get_admins():
            pesan += 'nama : @%s\n' % (i.id.replace('@c.us', ''))
        driver.wapi_functions.sendMessageWithMentions(Chat.id, pesan, '')
    elif kpt == '#owner':
        Msg.reply_message(
            Msg.get_js_obj()['chat']['groupMetadata']['owner'].replace(
                '@c.us', '')) if '@g.us' in Msg.chat_id else Msg.reply_message(
                    "Hanya Berlaku Di Dalam Grup")
    elif kpt == '#kitsune':
        driver.wapi_functions.sendImage(
            convert_to_base64(
                BytesIO(
                    requests.get(
                        json.loads(
                            requests.get('http://randomfox.ca/floof/').text)
                        ['image']).content)), chat_id, "kitsune.jpg",
            "What Is This")
    elif kpt == '#tts':
        try:
            gTTS(text=chat[8:], lang=chat[5:7]).save('cache/%s.mp3' % ran)
            driver.send_media('cache/%s.mp3' % ran, chat_id, '')
            os.remove("cache/%s.mp3" % ran)
        except:
            Msg.reply_message(
                "Masukan Perintah Dengan benar \n#tts [cc] [text]\nketik : #cc untuk melihat kode negara"
            )
    elif kpt == '#dog':
        driver.wapi_functions.sendImage(
            convert_to_base64(
                BytesIO(
                    requests.get("http" + literal_eval(
                        requests.get('http://shibe.online/api/shibes?count=1').
                        text)[0][5:]).content)), chat_id, "Dog.jpg",
            "What Is This")
    elif kpt == '#neko':
        driver.wapi_functions.sendImage(
            convert_to_base64(
                BytesIO(
                    requests.get(
                        json.loads(
                            requests.get(
                                'http://api.thecatapi.com/v1/images/search').
                            text)[0]['url']).content)), chat_id, "Neko.jpg",
            "What Is This")
    elif kpt == '#doujin':
        if "@g.us" in Msg.chat_id:
            if Change(Chat.id).nsfwX():
                doujin(
                    args[0], driver, chat_id,
                    Msg) if args else Msg.reply_message('Masukan Kode Nuklir')
            else:
                Msg.reply_message(
                    "Mode Nsfw Nonaktif Atau Anda Bisa Chat Pribadi Dengan Saya"
                )
        else:
            doujin(args[0], driver, chat_id,
                   Msg) if args else Msg.reply_message('Masukan Kode Nuklir')
    elif kpt == "#bc":
        if Msg.sender.id == author[0]:
            pesan = "[[ Gus-Bot Broadcast ]]\n%s" % (chat[4:].strip())
            for i in driver.get_all_chat_ids():
                driver.wapi_functions.sendMessage(i, pesan)
        else:
            Msg.reply_message("Anda Bukan Author")
    elif kpt == '#quote':
        try:
            hasil = json.loads(
                requests.get(
                    'http://api.quotable.io/random', params={
                        'tags': args[0]
                    }).text) if args else json.loads(
                        requests.get('http://api.quotable.io/random').text)
            tags = ''
            for i in hasil['tags']:
                tags += ' ↦%s\n' % (i)
                pesan = '''author : %s
Tags :
%s[EN] : %s
[ID] : %s''' % (hasil['author'], tags, hasil['content'],
                tra.translate(text=hasil['content'], dest='id').text)
            Msg.reply_message(pesan)
        except:
            Msg.reply_message('Tags Tidak Ada')
    elif kpt == '#yt2mp3':
        if args:
            while True:
                has = yt2mp3(args[0])
                if not has["status"] == "ulang":
                    break
            if has["status"] == "Large":
                Msg.reply_message("Ukuran File Melebihi Batas Maksimal")
            elif has["status"] == True:
                aud = editor.AudioFileClip(has["url"])
                Chat.send_message("🛠️Sedang Mengkonversi Ke Audio 🛠️")
                aud.write_audiofile("cache/%s.mp3" % ran)
                Chat.send_message("🔖Menambahkan Metadata🔖")
                audio = MP3("cache/%s.mp3" % ran, ID3=ID3)
                audio["TIT2"] = TIT2(encoding=3, text=has["judul"])
                audio["APIC"] = APIC(mime="image/jpg",
                                     type=3,
                                     data=requests.get(has["thumb"]).content)
                audio.save()
                Chat.send_message("Sedang Mengunggah⏳")
                driver.wapi_functions.sendImage(
                    convert_to_base64(
                        BytesIO(requests.get(has["thumb"]).content)), chat_id,
                    "thumb.jpg", has["info"])
                driver.send_media("cache/%s.mp3" % ran, chat_id, "")
                os.remove("cache/%s.mp3" % ran)
            else:
                Msg.reply_message("Link Video Tidak Valid")
        else:
            Msg.reply_message("Masukan Url")
    elif kpt == '#yt':
        if len(args) == 2:
            if args[1].isnumeric():
                while True:
                    dow = Merger(args[0], int(args[1])).down()
                    if dow["status"] == True:
                        Chat.send_message("Merging 🛠️")
                        dow["result"].write_videofile("cache/%s.mp4" % ran)
                        Chat.send_message("Sedang Mengunggah⏳")
                        driver.send_media("cache/%s.mp4" % ran, chat_id, "")
                        os.remove("cache/%s.mp4" % ran)
                        break
                    elif dow["status"] == "L":
                        Msg.reply_message("Ukuran File Melebihi Batas")
                        break
                    elif dow["status"] == "url":
                        Msg.reply_message("Tautan Tidak Valid")
                        break
                    elif dow["status"] == "ulang":
                        print(dow)

            else:
                Msg.reply_message("Perintah Salah")
        else:
            if args:
                while True:
                    paser = Merger(args[0]).parser()
                    if not paser["status"] == "ulang":
                        Msg.reply_message(paser["result"])
                        break
                if paser["status"] == "url":
                    Msg.reply_message("Tautan Tidak Valid")
            else:
                Msg.reply_message("Masukan Tautan Video")
    elif kpt == '#gambar':
        driver.wapi_functions.sendImage(
            convert_to_base64(
                BytesIO(
                    requests.get(
                        'https://source.unsplash.com/1600x900/?%s' %
                        (args[0]) if args else
                        'https://source.unsplash.com/random').content)),
            chat_id, "Image.jpeg", "Apakah Kamu Suka ?")
    elif kpt == '#mentionall':
        if Msg.sender.id in [(x.id) for x in Chat.get_admins()
                             ] or Msg.sender.id == '*****@*****.**':
            semua = Chat.get_participants()
            pesan = ''
            for i in semua:
                pesan += '@%s ' % (i.id)
            driver.wapi_functions.sendMessageWithMentions(
                Chat.id, pesan.replace('@c.us', ''), '')
        else:
            Msg.reply_message('Anda Bukan Admin Group')
    elif kpt == '#?':
        if args:
            answers = ''
            isi = '''Soal    : %s\nMapel   : %s\nSekolah : %s\nTanggal : %s\n'''
            jum, soal = ((int(args[-1])),
                         chat[3:-len(args[-1])]) if args[-1].isnumeric() else (
                             1, chat[3:])
            Chat.send_message("Sedang Mencari 🔎")
            cari = gsearch('"%s" site:brainly.co.id' % soal)
            temp = []
            for i in cari:
                temp.append(
                    i) if 'google.com' not in i and 'tugas' in i else False
            if temp:
                for i in temp[:jum]:
                    try:
                        br = brainly(i)
                        Chat.send_message("%s\n%s" %
                                          (br.get("soal"), br.get("jawaban")))
                    except:
                        Msg.reply_message('❌ Gagal Mencari Jawaban ❌')
            else:
                Chat.send_message('❌ Mencari Jawaban *%s* Tidak Ada ❌' %
                                  (soal))
        else:
            Msg.reply_message('❌ Masukan Soal Yg Ingin Di Jawab ❌')
    elif kpt == '#cari':
        try:
            Chat.send_message("Sedang Mencari 🔎")
            hasil = wikipedia.search(chat.replace('#cari', ''))
            pesan = 'hasil pencarian : \n'
            for i in hasil:
                pesan += '↦ %s\n' % (i)
            Msg.reply_message(pesan)
        except:
            Msg.reply_message('Masukan Parameternya Bro')
    elif kpt == '#wiki':
        try:
            hasil = wikipedia.page(chat[6:])
            Msg.reply_message('title :%s\nsource: %s\n%s' %
                              (hasil.title, hasil.url, hasil.content))
        except:
            Msg.reply_message('❌ YG Anda Cari Tidak Ada ❌')
    elif kpt == '#quotemaker':
        '''
        #quotemaker |<kata>|<author>|<kategori>
        '''
        try:
            arg = chat[12:].split('|')
            for i in range(arg.count('')):
                arg.remove('')
            print(arg)
            hasil = json.loads(
                requests.get(
                    'https://terhambar.com/aw/qts/?kata=%s&author=%s&tipe=%s',
                    params={
                        'kata': arg[0],
                        'author': arg[1],
                        'tipe': arg[2]
                    }).text)
            driver.wapi_functions.sendImage(
                convert_to_base64(
                    BytesIO(requests.get(hasil['result']).content)), chat_id,
                "quotes.jpg", "Apakah Kamu Suka ?"
            ) if hasil['status'] else Msg.reply_message(
                '#quotemaker|<kata>|<author>|<kategori>')
        except:
            Msg.reply_message('#quotemaker|<kata>|<author>|<kategori>')
    elif kpt == '#cc':
        cc = json.loads(open('lib/ISO-639-1-language.json').read())
        pesan = ''
        for i in cc:
            pesan += '%s : %s\n' % (i['code'], i['name'])
        Msg.reply_message(pesan)
    elif kpt == '#ts':
        try:
            Msg.reply_message(
                tra.translate(text=chat[7:], dest=chat[4:6]).text)
        except:
            Msg.reply_message(
                '#ts [Target] [Text]\nContoh :\n #ts id good morning \nketik #cc untuk melihat kode negara'
            )
    elif kpt == '#run':
        Msg.reply_message('Hasil Eksekusi :\n%s' % (requests.get(
            'https://twilio-apis.herokuapp.com/', params={
                'cmd': chat[4:]
            }).text))
    elif kpt == '#waifu':
        hasil = waifu()
        driver.wapi_functions.sendImage(
            convert_to_base64(BytesIO(requests.get(hasil["image"]).content)),
            chat_id, "waifu.jpg", hasil["title"])
    elif kpt == '#url2png':
        if args:
            try:
                driver.wapi_functions.sendImage(
                    convert_to_base64(
                        BytesIO(requests.get(url2png(args[0])).content)),
                    chat_id, "url2png.png", "Link : %s" % args[0])
            except:
                False
        else:
            Msg.reply_message('masukan Url \n#url2png https://google.com')
    elif kpt == '#ig':
        ob = igdownload(args[0])
        if ob["status"]:
            for i in ob["result"]:
                if i["type"] == "image":
                    driver.wapi_functions.sendImage(
                        convert_to_base64(
                            BytesIO(requests.get(i["url"]).content)), chat_id,
                        "ig.jpg", "")
                elif i["type"] == "video":
                    driver.wapi_functions.sendImage(
                        convert_to_base64(
                            BytesIO(requests.get(i["url"]).content)), chat_id,
                        "ig.mp4", "")
        else:
            Msg.reply_message("Link Error")
    elif kpt == '#tts':
        try:
            gTTS(text=chat[8:], lang=chat[5:7]).save('cache/tts.mp3')
            driver.send_media('cache/%s.mp3' % ran, chat_id, '')
            os.remove("cache/%s.mp3" % ran)
        except:
            Msg.reply_message(
                "Masukan Perintah Dengan benar \n#tts [cc] [text]\nketik : #cc untuk melihat kode negara"
            )
    elif kpt == "#kusonime":
        try:
            result_scrap = scrap_kusonime(search_kusonime(chat[10:]))
            driver.wapi_functions.sendImage(
                convert_to_base64(
                    BytesIO(requests.get(result_scrap["thumb"]).content)),
                chat_id, "kusonime.jpg", result_scrap["info"])
            Msg.reply_message(
                "Sinopsis:\n %s\nLink Download:\n %s" %
                (result_scrap["sinopsis"], result_scrap["link_dl"]))
        except:
            Msg.reply("❌ Anime : %s Tidak Ada ❌" % (chat[7:]))
    elif kpt == "#otakudesu":
        try:
            result_scrap = scrap_otakudesu(search_otakudesu(chat[11:]))
            driver.wapi_functions.sendImage(
                convert_to_base64(
                    BytesIO(requests.get(result_scrap["thumb"]).content)),
                chat_id, "OtakuDesu.jpg", "%s\nSinopsis : %s" %
                (result_scrap["info"], result_scrap["sinopsis"]))
        except:
            Msg.reply_message("❌ Anime : %s Tidak Ada ❌" % (chat[11:]))
    elif kpt == '#film':
        Chat.send_message("Sedang Mencari 🔎")
        hasil = gsearch('"%s" site:sdmovie.fun' % chat[5:])
        h = 0
        for i in hasil:
            if ('sdmovie' in i and 'google' not in i):
                h += 1
                Link = ''
                hafun = fun(i)
                for o in hafun['video']:
                    Link += f"{o['url']} | {o['lewat']} | {o['sub']} | {o['res']} \n "
                pesan = '🎬 : %s\nrating: %s\nsinopsis : %s\n VIDEO :\n %s' % (
                    hafun['title'], hafun['rating'], hafun['sinopsis'], Link)
                driver.wapi_functions.sendImage(
                    convert_to_base64(
                        BytesIO(requests.get(hafun['cover']).content)),
                    chat_id, "sdmovie.jpg", hafun["title"])
                Chat.send_message(pesan)
        if h == 0:
            Msg.reply_message("❌ Film Yg Anda Cari Tidak Ditemukan ❌")
    elif hashlib.md5(
            kpt.encode()).hexdigest() == 'fe1538c21f7479f15103962373b2b841':
        driver.send_message_with_auto_preview(
            chat_id, "https://saweria.com/donate/KryptonByte",
            "📌Yuk Donasi Biar Bot Nya Aktif Terus Dan Mimin Nya Rajin Update & Fix Bug"
        )
    elif kpt == "#cara-penggunaan":
        Msg.reply_message('''*#help alat* -> menampilkan perintah alat
*#sticker* -> pembuat sticker
*#upimg* -> Upload Gambar Ke Img.bb
*#cari* -> cari query wikipedia
con : #cari hantu
*#qrmaker* -> pembuat qrcode
con : #qrmaker Sebuah qrcode
*#qrreader* -> pembaca qrcode
*#?* -> pencari jawaban langsung dari brainly.co.id
con : #? contoh soal matematika
con : #? contoh soal matematika 2
*#ocr* -> untuk mengambil teks di sebuah Gambar
*#url2png* -> mengubah url ke bentuk Gambar
con : #url2png https://www.google.com
*#run* -> python compiler Api
con : #run 
print("Hallo world")
*#doujin* -> Doujin Download
con : #doujin kode-nuklir
*#film* -> pencari film + link Download
con : #film chappie
*#ts* -> Translate
con : #ts en Hai
*#tts* -> text to speak
con : #tts id Hallo Saya Bot
*#cc* -> menampilkan Kode Negara
*#otakudesu* -> pencari anime
*#kusonime* -> pencari anime
*#wait* -> pencari judul Anime Menggunakan potongan scene
*#quotemaker* -> pembuat quotes
con : #quotemaker|Teks Kuotes|Penulis|happy
*#tulis* -> Menulis Text
con : #tulis Nama : Krypton-Byte
*#yt2mp3* -> pencari link download lagu dengan link youtube
con : #yt2mp3 #https://www.youtube.com/watch?v=FQQbRBs3nFY
*#yt2mp3* -> pencari download video dari youtube tidak termasuk audio
con : #yt https://www.youtube.com/watch?v=FQQbRBs3nFY
*#wiki* -> wikipedia
con : #wiki hantu
*#help grup* -> menampilkan perintah yg berlaku di dalam grup
*#list-admin* -> menampilkan admin grup
*#admin* -> mengadminkan seseorang
con : #admin @orang
con : #admin 6281234567890
*#unadmin* -> Mencopot sebagai admin
con : #unadmin @orang
con : #unadmin 6281234567890
*#kick* -> mengkick anggota grup
con : #kick @orang
con : #kick 6281234567890
*#add* -> menambah kan anggota grup
con : #add 6281234567890
atau anda bisa mengirim kartu kontak
*#owner* -> menampilkan owner grup
*#linkgroup* -> menampilkan tautan invite grup
*#revoke* -> menarik tautan invite grup
*#mentionall* -> menTag seluruh member grup
*#help bot* -> menampilkan perintah bot
*#* -> chat bot
#con : # Hai
*#help hiburan* -> menampilkan perintah yg bisa menghibur
*#dog* -> mengirimkan gambar anjing secara acak
*#neko* -> mengirimkan gambar kucing secara acak
*#kitsune* -> mengirimkan gambar rubah secra acak
*#gambar* -> mencari gambar
con : gambar cat
*#joke* -> menampilkan joke
con : #joke 1 1
con : #joke 1 3
*#waifu* -> Random Waifu 
*#bct* -> mengubah huruf semua huruf vokal ke huruf "i"
con : #bct Aku Saya kamu
*#help* -> menampilkan semua opsi help''')
    elif kpt == '#':
        if args:
            Msg.reply_message(chatbot(chat))
        else:
            Msg.reply_message('Mau Nanya apa ?')