File size: 4,129 Bytes
5dc4327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
from pyrogram import Client, filters
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from mfinder.db.settings_sql import get_search_settings, change_search_settings
from mfinder.utils.constants import SET_MSG


@Client.on_message(filters.command(["settings"]))
async def user_settings(bot, update):
    from mfinder.plugins.serve import verify_force_sub
    if not await verify_force_sub(bot, update):
        return
    user_id = update.from_user.id
    set_kb = await find_search_settings(user_id)
    await bot.send_message(
        chat_id=user_id,
        text=SET_MSG,
        reply_markup=set_kb,
    )


@Client.on_callback_query(filters.regex(r"^prec (.+)$"))
async def set_precise_mode(bot, query):
    from mfinder.plugins.serve import verify_force_sub
    if not await verify_force_sub(bot, query):
        return
    user_id = query.from_user.id
    prsc_mode = query.data.split()[1]
    if prsc_mode == "on":
        await change_search_settings(user_id, precise_mode=True)
    if prsc_mode == "off":
        await change_search_settings(user_id, precise_mode=False)
    if prsc_mode == "md":
        await query.answer(text="Toggle Precise Search ON/OFF", show_alert=False)
        return

    set_kb = await find_search_settings(user_id)

    await query.message.edit(
        text=SET_MSG,
        reply_markup=set_kb,
    )


@Client.on_callback_query(filters.regex(r"^res (.+)$"))
async def set_list_mode(bot, query):
    from mfinder.plugins.serve import verify_force_sub
    if not await verify_force_sub(bot, query):
        return
    user_id = query.from_user.id
    result_mode = query.data.split()[1]
    if result_mode == "btnn":
        await change_search_settings(
            user_id, button_mode=True, link_mode=False, list_mode=False
        )
    if result_mode == "link":
        await change_search_settings(
            user_id, button_mode=False, link_mode=True, list_mode=False
        )
    if result_mode == "list":
        await change_search_settings(
            user_id, button_mode=False, link_mode=False, list_mode=True
        )
    if result_mode == "mode":
        await query.answer(text="Toggle Button/Link/List Mode", show_alert=False)
        return

    set_kb = await find_search_settings(user_id)

    await query.message.edit(
        text=SET_MSG,
        reply_markup=set_kb,
    )


async def find_search_settings(user_id):
    search_settings = await get_search_settings(user_id)

    kb = [
        InlineKeyboardButton("[Precise Mode]:", callback_data="prec md"),
    ]

    on_kb = InlineKeyboardButton("❌ Disabled", callback_data="prec on")
    off_kb = InlineKeyboardButton("βœ… Enabled", callback_data="prec off")

    if search_settings:
        precise_mode = search_settings.precise_mode
        if precise_mode:
            precise_mode = "Enabled"
            kb.append(off_kb)
        else:
            precise_mode = "Disabled"
            kb.append(on_kb)
    else:
        await change_search_settings(user_id)
        precise_mode = "Disabled"
        kb.append(on_kb)

    bkb = [
        InlineKeyboardButton("[Result Mode]:", callback_data="res mode"),
    ]

    btn_kb = InlineKeyboardButton("πŸ“ƒ List", callback_data="res btnn")
    link_kb = InlineKeyboardButton("πŸ”³ Button", callback_data="res link")
    list_kb = InlineKeyboardButton("πŸ”— HyperLink", callback_data="res list")

    if search_settings:
        button_mode = search_settings.button_mode
        link_mode = search_settings.link_mode
        list_mode = search_settings.list_mode
        if button_mode:
            bkb.append(link_kb)
        elif link_mode:
            bkb.append(list_kb)
        elif list_mode:
            bkb.append(btn_kb)
        else:
            await change_search_settings(user_id, link_mode=True)
            bkb.append(list_kb)
    else:
        await change_search_settings(user_id, link_mode=True)
        bkb.append(list_kb)

    set_kb = InlineKeyboardMarkup([kb, bkb])

    return set_kb