Exemple #1
0
 def new_chat_member(self, client: Client, msg: Message):
     if self.bot_id in msg.new_chat_members:
         self.groups.insert_group(msg.chat.id)
         msg.reply('Please use /setwelcome to set welcome message')
         #msg.reply('This bot is refactoring code, feature may not available during this time')
     else:
         group_setting = self.groups[msg.chat.id]
         if group_setting is None:
             group_setting = self.groups.insert_group(msg.chat.id)
         welcome_text = group_setting.welcome_text
         if welcome_text is not None:
             try:
                 last_msg = msg.reply(
                     welcome_text.replace('$name',
                                          parse_user_name(msg.from_user)),
                     parse_mode='markdown',
                     disable_web_page_preview=True).message_id
             except pyrogram.errors.ChatWriteForbidden:
                 logger.error('Got ChatWriterForbidden in %d', msg.chat.id)
                 msg.chat.leave()
                 self.groups.delete_group(msg.chat.id)
                 return
             previous_msg = self.conn.query_last_message_id(msg.chat.id)
             self.conn.insert_last_message_id(msg.chat.id, last_msg)
             if self.groups[msg.chat.id].no_welcome:
                 if previous_msg is not None:
                     client.delete_messages(msg.chat.id, previous_msg)
Exemple #2
0
def clearf(app : Client ,msg : Message):
    r.delete("fosh")
    app.edit_message_text(msg.chat.id,msg.message_id,"foshList Deleted!")

    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)
Exemple #3
0
def actionlist(app: Client, msg: Message):
    text = """
actions:
`typing`
`upload_photo`
`upload_video`
`record_audio`
`upload_audio`
`upload_document`
`find_location`
`record_video_note`
`upload_video_note`
`choose_contact`
`playing`
cmd:
Setaction [action]
"""
    app.edit_message_text(
        text=text,
        chat_id=msg.chat.id,
        message_id=msg.message_id,
    )

    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #4
0
def delcmd(app: Client, msg: Message):
    cmd = msg.text.split(" ")[1]
    r.hdel("qanswer", cmd)
    app.edit_message_text(msg.chat.id, msg.message_id, f"**{cmd}** Deleted!")
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #5
0
def today(app: Client, msg: Message):

    r = requests.get("https://api.keybit.ir/time/").json()

    time = r["time24"]["full"]["en"]
    date_shamsi = r["date"]["full"]["official"]["iso"]["en"]
    month = r["date"]["month"]["name"]
    weekday = r["date"]["weekday"]["name"]

    days_left = r["date"]["year"]["left"]["days"]["en"]

    day = r["date"]["day"]["name"]
    days = r["date"]["year"]["agone"]["days"]["en"]
    date_gregorian = r["date"]["other"]["gregorian"]["iso"]["en"]

    text = f"""
Time : **{time}**
Shamsi : **{date_shamsi}** |  **{weekday}** **{day}** **{month}**
Gregorian : **{date_gregorian}**
Day : **{days}**
DaysLeft : **{days_left}**
#Tkar
    """
    app.edit_message_text(
        chat_id=msg.chat.id,
        message_id=msg.message_id,
        text=text,
    )

    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #6
0
def delete_order(bot: Client, q: CallbackQuery):
    tg_id = q.from_user.id
    user = User.get(tg_id=tg_id)

    edit_message(bot, tg_id, user.temp['msg_ids'][1], '🕐 Deleting order')
    time.sleep(1)
    bot.delete_messages(tg_id, user.temp['msg_ids'])
Exemple #7
0
def setprivacy(app: Client, msg: Message):
    if "obody" in str(msg.text):
        app.send(
            functions.account.SetPrivacy(
                key=types.InputPrivacyKeyStatusTimestamp(),
                rules=[types.InputPrivacyValueDisallowAll()]))
        app.edit_message_text(
            text="Now Nobody Can See your Last seen!",
            chat_id=msg.chat.id,
            message_id=msg.message_id,
        )
        r.set("lastseen", "NoBody")
        if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id, msg.message_id)

    else:
        app.send(
            functions.account.SetPrivacy(
                key=types.InputPrivacyKeyStatusTimestamp(),
                rules=[types.InputPrivacyValueAllowAll()]))

        app.edit_message_text(
            text="Now Everybody Can See your Last seen!",
            chat_id=msg.chat.id,
            message_id=msg.message_id,
        )
        r.set("lastseen", "EveryBody")
        if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id, msg.message_id)
Exemple #8
0
def cmd(app: Client, msg: Message):
    text = msg.text
    if text in r.hgetall("qanswer"):
        txt = r.hgetall("qanswer")[text]
        t = txt.split(":")
        msg_id = None
        if msg.reply_to_message: msg_id = msg.reply_to_message.message_id
        if t[0] == "GIF":
            #sendgif
            app.send_animation(msg.chat.id, t[1], reply_to_message_id=msg_id)
        elif t[0] == "STICKER":
            app.send_sticker(msg.chat.id, t[1], reply_to_message_id=msg_id)

        elif t[0] == "VN":
            app.send_video_note(msg.chat.id, t[1], reply_to_message_id=msg_id)

        elif t[0] == "VOICE":
            app.send_voice(msg.chat.id, t[1], reply_to_message_id=msg_id)

        elif t[0] == "VIDEO":
            app.send_video(msg.chat.id, t[1], reply_to_message_id=msg_id)

        elif t[0] == "DOC":
            app.send_document(msg.chat.id, t[1], reply_to_message_id=msg_id)

        elif t[0] == "PHOTO":
            app.send_photo(msg.chat.id, t[1], reply_to_message_id=msg_id)

        app.delete_messages(msg.chat.id, msg.message_id)
    else:
        return
Exemple #9
0
def hide(bot: Client, q: CallbackQuery):
    data = q.data.split('_')

    q.message.delete()

    if len(data) == 2:
        msg_id = int(data[1])
        bot.delete_messages(q.message.from_user.id, [msg_id])
Exemple #10
0
def cmd_load(app: Client, msg: Message):

    for i in load:
        time.sleep(0.2)
        app.edit_message_text(msg.chat.id, msg.message_id, i)
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #11
0
def spam(app: Client, msg: Message):
    msgid = msg.reply_to_message.message_id
    chatid = msg.chat.id
    spam = int(msg.text.split(" ")[1])
    for i in range(spam):
        app.forward_messages(chat_id=chatid,
                             from_chat_id=chatid,
                             message_ids=[msgid])
    app.delete_messages(msg.chat.id, msg.message_id)
Exemple #12
0
def pin(app: Client, msg: Message):

    msgid = msg.reply_to_message.message_id
    app.pin_chat_message(msg.chat.id, msgid)
    text = f"**Pin** __Shd__ ;)"
    app.edit_message_text(msg.chat.id, msg.message_id, text)

    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #13
0
def offline_text(app: Client, msg: Message):
    txt = msg.text.split(" ")[1:50]
    text = " "
    text = text.join(txt)
    r.set("offtxt", text)
    app.edit_message_text(msg.chat.id, msg.message_id,
                          f"`{text}`\nAdded as offline text!")
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #14
0
def ck(app: Client, msg: Message):
    userid = msg.reply_to_message.from_user.id
    fname = msg.reply_to_message.from_user.first_name

    app.kick_chat_member(msg.chat.id, userid)
    text = f"**{fname}** __Cikd__ ;)"
    app.edit_message_text(msg.chat.id, msg.message_id, text)
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #15
0
def cmdlist(app: Client, msg: Message):
    text = "**CMDs**:\n"
    cmds = r.hgetall("qanswer")
    for i in cmds:
        text = text + f"`{i}` > __{cmds[i].split(':')[0]}__\n"

    app.edit_message_text(msg.chat.id, msg.message_id, text)
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #16
0
def addfo(app : Client ,msg : Message):
    _ = msg.text.split(" ")[0]
    fo = msg.text.replace(_,"")
    r.sadd("fosh",fo)
    text = f"**{fo}** Added!"
    app.edit_message_text(msg.chat.id,msg.message_id,text)


    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)
Exemple #17
0
def setaction(app : Client ,msg : Message):
    action = str(msg.text.split(" ")[1])
    r.set("action", action)
    app.edit_message_text(text=f"Action Seted to {action}",
            chat_id=msg.chat.id,
            message_id=msg.message_id,)

    
    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)
Exemple #18
0
def spamf(app: Client, msg: Message):
    msg_id = None
    if msg.reply_to_message: msg_id = msg.reply_to_message.message_id

    spam = int(msg.text.split(" ")[1])
    foshes = list(r.smembers("fosh"))
    for i in range(spam):
        fosh = random.choice(foshes)
        app.send_message(msg.chat.id, fosh, reply_to_message_id=msg_id)

    app.delete_messages(msg.chat.id, msg.message_id)
Exemple #19
0
def id(app : Client, msg : Message):
    
    uid = msg.reply_to_message.from_user.id

    app.edit_message_text(
        msg.chat.id,
        msg.message_id,
        f"`{uid}`"
    )
    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)
Exemple #20
0
def clear(app: Client, msg: Message):
    chatid = msg.chat.id
    messageid = msg.message_id
    msglist = []
    for message in app.iter_history(chatid, limit=1000):
        count = int(message.message_id)
        msglist.append(count)
    try:
        app.delete_messages(chatid, msglist)
    except:

        app.delete_messages(chatid, msglist)
Exemple #21
0
def offline_mode(app: Client, msg: Message):

    if r.get("offmode") == "on":
        r.set("offmode", "off")
        txt = f"offline mode is OFF now!"
    else:
        r.set("offmode", "on")
        txt = f"offline mode is ON now!"

    app.edit_message_text(msg.chat.id, msg.message_id, text=txt)
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #22
0
def listf(app : Client ,msg : Message):
    fl = r.smembers("fosh")
    text = ""
    count = 1
    for i in fl:
        text = text + f"{count} - __{i}__\n"
        count+=1
    app.edit_message_text(msg.chat.id,msg.message_id,text)


    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)
Exemple #23
0
def addserver(app : Client ,msg : Message):
    text = msg.reply_to_message.text
    try:
        uname , elsee= text.split("@")
        ip, password = elsee.split(";")
        r.hmset("ssh", {"ip":ip, "username":uname , "password":password, "port":"22"})
        txt = f"USERNAME: {uname}\nPASSWORD: {password}\nPORT: 22\nIP: {ip}"
    except ValueError:
        txt = f"**wrong Format!**\nEx: [email protected];psw123"
    app.edit_message_text(msg.chat.id,msg.message_id,txt)

    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)
Exemple #24
0
def runpy(app: Client, msg: Message):

    text = msg.reply_to_message.text
    with open("script.py", "a+") as f_w:
        f_w.write(text)
    os.system("python3 script.py > out.txt")
    with open("out.txt", "r") as f_r:
        out = f_r.read()
        out = "Output:\n" + out
    os.remove("script.py")
    os.remove("out.txt")
    app.edit_message_text(msg.chat.id, msg.message_id, out)
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #25
0
def cancel_order(bot: Client, q: CallbackQuery):
    tg_id = q.from_user.id
    user = User.get(tg_id=tg_id)
    msg_id = q.message.message_id
    order = Order.get(b_msg_id=msg_id)
    u_msg_id = order.u_msg_id

    bh = BithumbGlobalRestAPI(decr(user.api_key), decr(user.secret))

    bot.edit_message_text(tg_id, msg_id, '🕐 Cancelling order...')

    try:
        bh.cancel_order(order.pair, order.order_id)
        order.status = 'cancelled'
        user.orders_count -= 1
        db_save(order)
        db_save(user)
        print(f'Order {order.order_id} cancelled')

        bot.edit_message_text(tg_id, msg_id, '✅ Order cancelled...')
        time.sleep(2)
        bot.delete_messages(tg_id, [msg_id, u_msg_id])

    except Exception as e:
        if e.code == '20012':
            # Статус ордера изменился
            bh_response = bh.post('singleOrder', {
                'orderId': order.order_id,
                'symbol': order.pair
            })
            if bh_response['status'] == 'cancel':
                order.status = 'cancelled'
                db_save(order)
                print(f'Order {order.order_id} cancelled')

                bot.edit_message_text(
                    tg_id, msg_id,
                    '⚠️ Order was already cancelled on Exchange...')
                time.sleep(2)
                bot.delete_messages(tg_id, [msg_id, u_msg_id])
                return

        err_msg = e.msg
        edit_message(bot,
                     user.tg_id,
                     msg_id,
                     gen_err_msg(f'🔴 <b>Error</b>\n{err_msg}\n\nTry again'),
                     reply_markup=cancel_order_btn())
Exemple #26
0
    async def challenge_timeout(client: Client, chat_id, from_id, reply_id):
        global _current_challenges
        group_config = _config.get(str(chat_id), _config["*"])

        _cch_lock.acquire()
        del _current_challenges["{chat}|{msg}".format(chat=chat_id,
                                                      msg=reply_id)]
        _cch_lock.release()

        # TODO try catch
        await client.edit_message_text(
            chat_id=chat_id,
            message_id=reply_id,
            text=group_config["msg_challenge_failed"],
            reply_markup=None,
        )

        if group_config["challenge_timeout_action"] == "ban":
            await client.kick_chat_member(chat_id, from_id)
        elif group_config["challenge_timeout_action"] == "kick":
            await client.kick_chat_member(chat_id, from_id)
            await client.unban_chat_member(chat_id, from_id)
        else:
            pass

        if group_config["delete_failed_challenge"]:
            _Timer(
                client.delete_messages(chat_id, reply_id),
                group_config["delete_failed_challenge_interval"],
            )
Exemple #27
0
def delete_messages(client: Client, cid: int,
                    mids: Iterable[int]) -> Optional[bool]:
    # Delete some messages
    result = None
    try:
        mids = list(mids)
        mids_list = [mids[i:i + 100] for i in range(0, len(mids), 100)]
        for mids in mids_list:
            try:
                flood_wait = True
                while flood_wait:
                    flood_wait = False
                    try:
                        result = client.delete_messages(chat_id=cid,
                                                        message_ids=mids)
                    except FloodWait as e:
                        flood_wait = True
                        wait_flood(e)
            except MessageDeleteForbidden:
                return False
            except Exception as e:
                logger.warning(
                    f"Delete message {mids} in {cid} for loop error: {e}",
                    exc_info=True)
    except Exception as e:
        logger.warning(f"Delete messages in {cid} error: {e}", exc_info=True)

    return result
Exemple #28
0
def addmark(app: Client, msg: Message):
    chatid = str(msg.chat.id)
    if chatid in r.smembers("mark"):
        r.srem("mark", chatid)
        text = "This Chat Deleted from MarkList"
    else:
        r.sadd("mark", chatid)
        text = "This Chat Added to MarkList\nMark Anyway"
    send = app.edit_message_text(
        text=text,
        chat_id=msg.chat.id,
        message_id=msg.message_id,
    )
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, [send.message_id])
Exemple #29
0
def mute(app: Client, msg: Message):
    m = msg.text.split(" ")[1]
    fname = msg.reply_to_message.from_user.first_name
    userid = msg.reply_to_message.from_user.id
    if not m in mutes: return
    if str(userid) in r.smembers("mute" + m):
        r.srem("mute" + m, str(userid))
        text = f"`{m}` __UNmuted__ for **{fname}**\nBy Selfnium!"
    else:
        r.sadd("mute" + m, str(userid))
        text = f"`{m}` __Muted__ for **{fname}**\nBy Selfnium!"

    app.edit_message_text(msg.chat.id, msg.message_id, text)

    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #30
0
def autodel(app: Client, msg: Message):
    if " " in msg.text:
        timer = msg.text.split(" ")[1]
        r.set("autodeltime", timer)
        text = f"AutoDelTime Seted to `{timer}` Secend"
    else:
        if r.get("autodel") == "on":
            r.set("autodel", "off")
            text = "Auto Delete Is **OFF** Now"
        else:
            r.set("autodel", "on")
            text = "Auto Delete Is **ON** Now"

    app.edit_message_text(msg.chat.id, msg.message_id, text)
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)