mj_bale_chat/router/bale/config.py

146 lines
5.5 KiB
Python

from router.bale.base_model import StateDetail
BUSY_TEXT = ("""⏳ درخواست قبلی شما در حال پردازش هست، لطفا تا اتمام آن منتظر بمانید ⏳""",)
class StateRegistry:
def __init__(self, states):
self._states = {s.state: s for s in states}
def get(self, key, default=None):
return self._states.get(key, default)
def all(self):
return list(self._states.values())
STATE = [
StateDetail(
state="search_in_law",
button_text="جستجو معنایی در قوانین 🔎",
end_buttons=[],
message="""متن حقوقی برای جستجو در قوانین را وارد نمایید""",
handler="handle_search_in_law",
),
StateDetail(
state="chat_in_law",
button_text="گفتگو طبق قوانین کشور",
end_buttons=[],
message="""💬 با احترام، آماده گفتگو هستم، لطفا سوال خود را بپرسید""",
handler="handle_chat_in_law",
),
StateDetail(
state="logical_chat_in_law",
button_text="گفتگو با متن حقوقی 💬",
end_buttons=[],
message="""💬 با عرض ادب و احترام، آماده گفتگو طبق یک متن حقوقی هستم، لطفا متن ماده یا تبصره وارد کنید""",
handler="handle_logical_chat_in_law",
),
StateDetail(
state="conflict_law_writing_policy",
button_text="بررسی مغایرت با سیاست های قانون گذاری 📜",
end_buttons=[],
message="""لطفا متن قانونی مورد نظر برای بررسی مغایرت با سیاست های قانون گذاری را وارد کنید :""",
handler="handle_conflict_law_writing_policy",
),
StateDetail(
state="conflict_qanon_asasi",
button_text="بررسی مغایرت با اصول مهم قانون اساسی ⚖️",
end_buttons=[],
message="""لطفا متن قانونی مورد نظر برای بررسی مغایرت با اصول مهم قانون اساسی را وارد کنید :""",
handler="handle_conflict_qanon_asasi",
),
StateDetail(
state="conflict_general_policy",
button_text="بررسی مغایرت با سیاست های کلی نظام 🏛️",
end_buttons=[],
message="""لطفا متن قانونی مورد نظر برای بررسی مغایرت با سیاست های کلی نظام را وارد کنید :""",
handler="handle_conflict_general_policy",
),
StateDetail(
state="conflict_all_qavanin",
button_text="بررسی مغایرت در تمام قوانین",
end_buttons=[],
message="""لطفا متن قانونی مورد نظر برای بررسی مغایرت در تمام قوانین جمهوری اسلامی ایران را وارد کنید :""",
handler="handle_conflict_all_qavanin",
),
StateDetail(
state="qanon_title_repeat",
button_text="بررسی تکرار عنوان قانون 🔁",
end_buttons=[],
handler="handle_qanon_title_repeat",
message="""لطفا عنوان قانون مورد نظر را برای بررسی ارسال نمایید:""",
),
StateDetail(
state="rule_making",
handler="handle_rule_making",
button_text="استخراج اجزاء متن",
end_buttons=[],
message="""خوبه، لطفا متن مورد نظر برای استخراج اجزاء حقوقی را وارد کنید :""",
),
StateDetail(
state="beta",
handler="handle_talk",
button_text="BETA-Mode",
end_buttons=[],
message="""""",
),
StateDetail(
state="contact_us",
button_text="تماس با ما ☎️",
message="""لطفا برای ارتباط با ما از طریق مرکز فناوری مجلس شورای اسلامی ایران اقدام فرمایید""",
),
StateDetail(
state="about_us",
button_text="درباره ما ⚡",
message="""من ربات گفتگوگر حقوقی هستم که روی قوانین رسمی جمهوری اسلامی ایران از *سامانه قانون‌یار مجلس شورای اسلامی* توسعه یافتم.
لذا به هر سوال و گفتگویی طبق همان منابع پاسخ می‌دهم
نشانی سامانه منبع در زیر آمده است
[qanonyar.parliran.ir](https://qanonyar.parliran.ir)
*کارفرما : *مرکز فناوری مجلس شورای اسلامی ایران""",
),
]
STATE_REGISTERY = StateRegistry(STATE)
STATE_CONFIG = {i.state: i for i in STATE}
def build_buttons_form(button_form):
buttons = []
for row in button_form:
row_buttons = []
for state_name in row:
state = STATE_REGISTERY.get(state_name)
if not state:
continue
row_buttons.append({
"text": state.button_text,
"callback_data": state.state
})
if row_buttons:
buttons.append(row_buttons)
return buttons
# Button-STYLE
main_button_form = [
["chat_in_law"],
["search_in_law"],
["logical_chat_in_law"],
["rule_making"],
["qanon_title_repeat"],
["conflict_law_writing_policy"],
["conflict_qanon_asasi"],
["conflict_general_policy"],
["conflict_all_qavanin"],
["contact_us", "about_us", "beta"]
]
MAIN_BUTTON = build_buttons_form(main_button_form)