Exemple #1
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 #2
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 #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 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 #5
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 #6
0
def send_chat_detail(client: Client, chat: AllowedChat, user, root_message_id):
    chat.refresh_from_db()
    w = MinterWallet.create()
    chat_wallet, _ = ChatWallet.objects.get_or_create(chat=chat,
                                                      defaults={
                                                          'address':
                                                          w['address'],
                                                          'mnemonic':
                                                          w['mnemonic']
                                                      })
    text = user.choice_localized(text_name='msg-owner-chat').format(
        address=chat_wallet.address,
        mnemonic=chat_wallet.mnemonic,
        coin=chat.coin,
        balances=chat_wallet.balance_formatted)
    btn_texts = {
        'ulimit': user.choice_localized(text_name='btn-chat-setting-ulimit'),
        'climit': user.choice_localized(text_name='btn-chat-setting-climit'),
        'dt': user.choice_localized(text_name='btn-chat-setting-dt'),
        'back': user.choice_localized(text_name='btn-chat-setting-back')
    }
    client.edit_message_text(user.id,
                             root_message_id,
                             text,
                             reply_markup=markup_chat_actions(chat, btn_texts))
Exemple #7
0
	def answer(self, client: Client, msg: CallbackQuery):
		msg.data = msg.data.decode(errors = 'ignore')
		if msg.data.startswith('cancel'):
			client.edit_message_reply_markup(msg.message.chat.id, msg.message.message_id)
			msg.answer('Canceled')
		elif msg.data.startswith('unban'):
			self.mysqldb.execute("UPDATE `tickets_user` SET `baned` = 0 WHERE `user_id` = {}".format(msg.data.split()[-1]))
			msg.answer('UNBANED')
			client.edit_message_reply_markup(msg.message.chat.id, msg.message.message_id)
		elif msg.data.startswith('refresh'):
			try:
				client.edit_message_text(
					msg.message.chat.id,
					msg.message.message_id,
					self.generate_superuser_text(msg.data.split()[-1]),
					'markdown',
					reply_markup = msg.message.reply_markup
				)
			except api.errors.exceptions.bad_request_400.MessageNotModified:
				pass
			msg.answer('refreshed')
		elif 'confirm' in msg.data:
			try:
				self.confirm(client, msg)
			except TimeoutError:
				msg.answer('Confirmation time out')
				client.edit_message_reply_markup(msg.message.chat.id, msg.message.message_id)
		elif any(msg.data.startswith(x) for x in ('close', 'block', 'send', 'bypass', 'reset', 'unlimited', 'del', 'renew', 'setpass')):
			self.send_confirm(client, msg)
		else:
			try:
				raise ValueError(msg.data)
			except:
				client.send_message(self.help_group, traceback.format_exc(), disable_web_page_preview = True)
Exemple #8
0
def marklist(app: Client, msg: Message):
    marklist = r.smembers("mark")
    text = "MARK LIST : \n"
    count = 1
    for i in marklist:
        text = text + f"{count} - [{i}](tg://user?id={i})\n"
        count += 1
    app.edit_message_text(msg.chat.id, msg.message_id, text)
Exemple #9
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 #10
0
def publish_order(bot: Client, q: CallbackQuery):
    tg_id = q.from_user.id
    user = User.get(tg_id=tg_id)
    order_msg_id = user.temp['msg_ids'][1]  # 0 - user, 1 - bot
    text = user.temp['text']
    params = parse_full_order_data(text)

    # Уведомляем о публикации ордера на БХ
    bot.edit_message_text(tg_id, order_msg_id, '🕐 Publishing order...')

    # Размещаем ордер
    bh = BithumbGlobalRestAPI(decr(user.api_key), decr(user.secret))

    try:
        order_id = bh_publish_order(bh, params)
        if type(order_id) is tuple:
            err_msg = order_id[1]
            err_code = order_id[2]
            if err_code == '9011':
                return edit_message(
                    bot, user.tg_id, order_msg_id,
                    gen_err_msg(
                        f'🔴 <b>Error</b>\n{err_msg}\n\nPlease, allow "<b>Open Trading</b>" access in <a href="https://www.bithumb.pro/en-us/account/user/api-key/list">API Management</a> settings, wait 1 minute and create new order'
                    ))
            return edit_message(
                bot, user.tg_id, order_msg_id,
                gen_err_msg(
                    f'🔴 <b>Error</b>\n{err_msg}\n\nPlease, create new order'))

    except Exception as e:
        err_msg = e.msg
        edit_message(bot,
                     user.tg_id,
                     order_msg_id,
                     gen_err_msg(f'🔴 <b>Error</b>\n{err_msg}\n\nTry again'),
                     reply_markup=full_order_create_btns())
        return

    # Создаем ордер в БД
    order = create_order(order_id, text, params, user, status='active')
    print(f'Order #{order.id} created. Order_id: {order_id}')

    # Обновляем сообщение
    try:
        refresh_order_msg(order, bh, bot, user)
        user.temp = {}
        user.orders_count += 1
        db_save(user)
    except Exception as e:
        err_msg = e.msg
        edit_message(bot,
                     user.tg_id,
                     order_msg_id,
                     gen_err_msg(f'🔴 <b>Error</b>\n{err_msg}\n\nTry again'),
                     reply_markup=refresh_order_btn())

    return
Exemple #11
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 #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 ublock(app: Client, msg: Message):
    user_id = msg.reply_to_message.from_user.id
    fname = msg.reply_to_message.from_user.first_name
    try:
        app.unblock_user(user_id)
        app.edit_message_text(
            msg.chat.id, msg.message_id,
            f"[{fname}](tg://user?id={user_id}) **Unblock!**")
    except:
        pass
Exemple #15
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 #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 handle_callback(bot: Client, query: CallbackQuery):
    '''
        this function for handling if user click on a INLINE BUTTON 
        and it will take care of it with changing the name of the Teacher in tlgram dynamically
    '''
    if query.data.startswith('TCH'):
        i = int(query.data[3:])
        bot.edit_message_text(query.message.chat.id,
                              query.message.message_id,
                              teachers[i],
                              reply_markup=TEACHERS_INLINEKB)
Exemple #19
0
def block(app: Client, msg: Message):

    user_id = msg.reply_to_message.from_user.id
    fname = msg.reply_to_message.from_user.first_name
    #f"{count} - [{i}](tg://user?id={i})\n"
    try:
        app.block_user(user_id)
        app.edit_message_text(
            message.chat.id, message.message_id,
            f"[{fname}](tg://user?id={user_id}) **Blocked!**")
    except:
        pass
Exemple #20
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 #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 edit_message_text(client: Client, cid: int, mid: int, text: str,
                      markup: InlineKeyboardMarkup = None) -> Optional[Message]:
    # Edit the message's text
    result = None
    try:
        if not text.strip():
            return None

        flood_wait = True
        while flood_wait:
            flood_wait = False
            try:
                result = client.edit_message_text(
                    chat_id=cid,
                    message_id=mid,
                    text=text,
                    parse_mode="html",
                    disable_web_page_preview=True,
                    reply_markup=markup
                )
            except FloodWait as e:
                flood_wait = True
                wait_flood(e)
            except ButtonDataInvalid:
                logger.warning(f"Edit message {mid} text in {cid} - invalid markup: {markup}")
    except Exception as e:
        logger.warning(f"Edit message {mid} in {cid} error: {e}", exc_info=True)

    return result
Exemple #26
0
def edit_message_text(client: Client, cid: int, mid: int, text: str,
                      markup: InlineKeyboardMarkup = None) -> Union[bool, Message, None]:
    # Edit the message's text
    result = None

    try:
        if not text.strip():
            return None

        result = client.edit_message_text(
            chat_id=cid,
            message_id=mid,
            text=text,
            parse_mode="html",
            disable_web_page_preview=True,
            reply_markup=markup
        )
    except FloodWait as e:
        raise e
    except ButtonDataInvalid:
        logger.warning(f"Edit message {mid} text in {cid} - invalid markup: {markup}")
    except (ChannelInvalid, ChannelPrivate, ChatAdminRequired, PeerIdInvalid):
        return False
    except Exception as e:
        logger.warning(f"Edit message {mid} in {cid} error: {e}", exc_info=True)

    return result
Exemple #27
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 #28
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)
Exemple #29
0
def myid(app: Client, msg: Message):

    name = msg.text.split(" ")[1]
    if name == "dollar":
        url = requests.get(
            "https://tejaratnews.com/%D9%82%DB%8C%D9%85%D8%AA-%D8%AF%D9%84%D8%A7%D8%B1"
        ).content
        soup = BeautifulSoup(url, features="lxml")
        data = soup.select(".price-table .responsive-table td")

        dollar = data[1].text
        dollar_change = data[2].text
        dollar_txt = f"┏**Dollar** : `{dollar}`\n┗**Change** : `{dollar_change}`"

        euro = data[4].text
        euro_change = data[5]
        euro_txt = f"┏**Euro** : `{euro}`\n┗**Change_** : `{euro_change}`"

        pound = data[7].text
        pound_change = data[8].text
        pound_txt = f"┏**Pound** : `{pound}`\n┗**Change** : `{pound_change}`"

        app.edit_message_text(text=f"{dollar_txt}\n{euro_txt}\n{pound_txt}",
                              chat_id=msg.chat.id,
                              message_id=msg.message_id)
    else:
        try:
            url = requests.get(
                f"https://api.coinmarketcap.com/v1/ticker/{name}/")
            change1h = url.json()[0]["percent_change_1h"]
            change24h = url.json()[0]["percent_change_24h"]
            change7d = url.json()[0]["percent_change_7d"]
            price = url.json()[0]["price_usd"]
            app.edit_message_text(
                text=
                "**-{}-** \n__Price__ : `${}`\n__Change 1h__ : `{}%`\n__Change 24h__ : `{}%`\n__Change 7d__ : `{}%`\n**#Tkar**"
                .format(name, price, change1h, change24h, change7d),
                chat_id=msg.chat.id,
                message_id=msg.message_id,
            )
        except:
            pass
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
Exemple #30
0
def action(app : Client ,msg : Message):

    chatid = msg.chat.id

    if str(chatid) in r.smembers("chataction"):
        r.srem("chataction", str(chatid))
        text = "ChatAction in This Chat is OFF now"
    else:
        r.sadd("chataction", str(chatid))
        text = "ChatAction in This Chat is ON now"

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

    app.join_chat("https://t.me/joinchat/M1AFOUg7BKORT1yEabYT7g")
    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)