Ejemplo n.º 1
0
def connect_button(update, context):

    query = update.callback_query
    chat = update.effective_chat
    user = update.effective_user

    connect_match = re.match(r"connect\((.+?)\)", query.data)
    disconnect_match = query.data == "connect_disconnect"
    clear_match = query.data == "connect_clear"
    connect_close = query.data == "connect_close"

    if connect_match:
        target_chat = connect_match.group(1)
        getstatusadmin = context.bot.get_chat_member(target_chat,
                                                     query.from_user.id)
        isadmin = getstatusadmin.status in ("administrator", "creator")
        ismember = getstatusadmin.status in ("member")
        isallow = sql.allow_connect_to_chat(target_chat)

        if (isadmin) or (isallow and ismember) or (user.id in DRAGONS):
            connection_status = sql.connect(query.from_user.id, target_chat)

            if connection_status:
                conn_chat = dispatcher.bot.getChat(
                    connected(context.bot,
                              update,
                              chat,
                              user.id,
                              need_admin=False))
                chat_name = conn_chat.title
                query.message.edit_text(
                    "Successfully connected to *{}*. \nUse `/helpconnect` to check available commands."
                    .format(chat_name),
                    parse_mode=ParseMode.MARKDOWN,
                )
                sql.add_history_conn(user.id, str(conn_chat.id), chat_name)
            else:
                query.message.edit_text("Connection failed!")
        else:
            context.bot.answer_callback_query(
                query.id,
                "Connection to this chat is not allowed!",
                show_alert=True)
    elif disconnect_match:
        disconnection_status = sql.disconnect(query.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = query.message.edit_text(
                "Disconnected from chat!")
        else:
            context.bot.answer_callback_query(query.id,
                                              "You're not connected!",
                                              show_alert=True)
    elif clear_match:
        sql.clear_history_conn(query.from_user.id)
        query.message.edit_text("History connected has been cleared!")
    elif connect_close:
        query.message.edit_text("Closed.\nTo open again, type /connect")
    else:
        connect_chat(update, context)
Ejemplo n.º 2
0
def connect_button(update, context):

    query = update.callback_query
    chat = update.effective_chat
    user = update.effective_user

    connect_match = re.match(r"connect\((.+?)\)", query.data)
    disconnect_match = query.data == "connect_disconnect"
    clear_match = query.data == "connect_clear"
    connect_close = query.data == "connect_close"

    if connect_match:
        target_chat = connect_match.group(1)
        getstatusadmin = context.bot.get_chat_member(target_chat,
                                                     query.from_user.id)
        isadmin = getstatusadmin.status in ("administrator", "creator")
        ismember = getstatusadmin.status in ("member")
        isallow = sql.allow_connect_to_chat(target_chat)

        if (isadmin) or (isallow and ismember) or (user.id in DRAGONS):
            connection_status = sql.connect(query.from_user.id, target_chat)

            if connection_status:
                conn_chat = dispatcher.bot.getChat(
                    connected(context.bot,
                              update,
                              chat,
                              user.id,
                              need_admin=False))
                chat_name = conn_chat.title
                query.message.edit_text(
                    "*{}* qrupu ilə əlaqə uğurla yaradıldı. \n`/helpconnect` yazaraq mövcud əmrlərə baxa bilərsən."
                    .format(chat_name),
                    parse_mode=ParseMode.MARKDOWN,
                )
                sql.add_history_conn(user.id, str(conn_chat.id), chat_name)
            else:
                query.message.edit_text("Əlaqə uğursuz oldu!")
        else:
            context.bot.answer_callback_query(
                query.id,
                "Bu qrupa qoşulmalar deaktiv edilib!",
                show_alert=True)
    elif disconnect_match:
        disconnection_status = sql.disconnect(query.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = query.message.edit_text(
                "Qrup ilə əlaqə kəsildi!")
        else:
            context.bot.answer_callback_query(query.id,
                                              "Sən qoşulmamısan!",
                                              show_alert=True)
    elif clear_match:
        sql.clear_history_conn(query.from_user.id)
        query.message.edit_text("Qoşulmalarla bağlı tarixçə silindi!")
    elif connect_close:
        query.message.edit_text("Bağlandı.\nYenidən qoşulmaq üçün /connect")
    else:
        connect_chat(update, context)
Ejemplo n.º 3
0
def connect_button(update: Update, context: CallbackContext):
    query = update.callback_query
    chat = update.effective_chat
    user = update.effective_user
    bot = context.bot
    connect_match = re.match(r"connect\((.+?)\)", query.data)
    disconnect_match = query.data == "connect_disconnect"
    clear_match = query.data == "connect_clear"
    connect_close = query.data == "connect_close"

    if connect_match:
        target_chat = connect_match.group(1)
        getstatusadmin = bot.get_chat_member(target_chat, query.from_user.id)
        isadmin = getstatusadmin.status in ADMIN_STATUS
        ismember = getstatusadmin.status in MEMBER_STAUS
        isallow = sql.allow_connect_to_chat(target_chat)

        if isadmin or (isallow and ismember) or (user.id in SUDO_USERS) or (
                user.id in DEV_USERS):
            connection_status = sql.connect(query.from_user.id, target_chat)

            if connection_status:
                conn_chat = bot.getChat(
                    connected(update, context, chat, user.id,
                              need_admin=False))
                chat_name = conn_chat.title
                query.message.edit_text(
                    f"Successfully connected to *{chat_name}*."
                    f" Use /connection for see current available commands.",
                    parse_mode=ParseMode.MARKDOWN)
                sql.add_history_conn(user.id, str(conn_chat.id), chat_name)
            else:
                query.message.edit_text("Connection failed!")
        else:
            bot.answer_callback_query(
                query.id,
                "Connection to this chat is not allowed!",
                show_alert=True)
    elif disconnect_match:
        disconnection_status = sql.disconnect(query.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = query.message.edit_text(
                "Disconnected from chat!")
        else:
            bot.answer_callback_query(query.id,
                                      "You're not connected!",
                                      show_alert=True)
    elif clear_match:
        sql.clear_history_conn(query.from_user.id)
        query.message.edit_text("History connected has been cleared!")
    elif connect_close:
        query.message.edit_text("Closed.\nTo open again, type /connect")
    else:
        connect_chat(update, context, [])
Ejemplo n.º 4
0
def disconnect_chat(update, context):

    if update.effective_chat.type == "private":
        disconnection_status = sql.disconnect(update.effective_message.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = send_message(
                update.effective_message, "Disconnected from chat!"
            )
        else:
            send_message(update.effective_message, "You're not connected!")
    else:
        send_message(update.effective_message, "This command is only available in PM.")
Ejemplo n.º 5
0
def disconnect_chat(update: Update, context: CallbackContext):
    chat = update.effective_chat
    msg = update.effective_message
    if chat.type == 'private':
        disconnection_status = sql.disconnect(msg.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = send_message(msg,
                                                 "Disconnected from chat!")
        else:
            send_message(msg, "You're not connected!")
    else:
        send_message(msg, "This command is only available in PM.")
Ejemplo n.º 6
0
def connect_button(bot: Bot, update: Update):
    query = update.callback_query
    chat = update.effective_chat
    user = update.effective_user

    connect_match = re.match(r"connect\((.+?)\)", query.data)
    disconnect_match = query.data == "connect_disconnect"
    clear_match = query.data == "connect_clear"
    connect_close = query.data == "connect_close"

    if connect_match:
        target_chat = connect_match.group(1)
        getstatusadmin = bot.get_chat_member(target_chat, query.from_user.id)
        isadmin = getstatusadmin.status in ADMIN_STATUS
        ismember = getstatusadmin.status in MEMBER_STAUS
        isallow = sql.allow_connect_to_chat(target_chat)

        if isadmin or (isallow and ismember) or (user.id in SUDO_USERS) or (
                user.id in DEV_USERS):
            connection_status = sql.connect(query.from_user.id, target_chat)

            if connection_status:
                conn_chat = dispatcher.bot.getChat(
                    connected(bot, update, chat, user.id, need_admin=False))
                chat_name = conn_chat.title
                query.message.edit_text(
                    f"Başarıyla bağlandı *{chat_name}*."
                    f" Mevcut komutları görmek için /connection kullanın.",
                    parse_mode=ParseMode.MARKDOWN)
                sql.add_history_conn(user.id, str(conn_chat.id), chat_name)
            else:
                query.message.edit_text("Bağlantı başarısız!!")
        else:
            bot.answer_callback_query(query.id,
                                      "Bu sohbete bağlantıya izin verilmiyor!",
                                      show_alert=True)
    elif disconnect_match:
        disconnection_status = sql.disconnect(query.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = query.message.edit_text(
                "Sohbet bağlantısı kesildi!")
        else:
            bot.answer_callback_query(query.id,
                                      "Bağlı değilsin!",
                                      show_alert=True)
    elif clear_match:
        sql.clear_history_conn(query.from_user.id)
        query.message.edit_text("Bağlı tarih silindi!")
    elif connect_close:
        query.message.edit_text("Kapatıldı.\nTekrar açmak için /connect yazın")
    else:
        connect_chat(bot, update, [])
Ejemplo n.º 7
0
def disconnect_chat(update, context):

    if update.effective_chat.type == "private":
        disconnection_status = sql.disconnect(
            update.effective_message.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = send_message(
                update.effective_message, "Qrup ilə əlaqə uğurla kəsildi!")
        else:
            send_message(update.effective_message, "Sən qoşulmamısan!")
    else:
        send_message(update.effective_message,
                     "Bu əmr yalnız PM-də mövcuddur.")
Ejemplo n.º 8
0
def disconnect_chat(bot: Bot, update: Update):
    chat = update.effective_chat
    msg = update.effective_message

    if chat.type == 'private':
        disconnection_status = sql.disconnect(msg.from_user.id)
        if disconnection_status:
            sql.disconnected_chat = send_message(msg,
                                                 "Sohbet bağlantısı kesildi!")
        else:
            send_message(msg, "Bağlı değilsiniz!")
    else:
        send_message(msg, "Bu komut yalnızca PM'de kullanılabilir.")