from utils.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_beta", 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 = [ ["search_in_law"], ["chat_in_law"], ["logical_chat_in_law"], ["conflict_law_writing_policy"], ["conflict_qanon_asasi"], ["conflict_general_policy"], ["conflict_all_qavanin"], ["qanon_title_repeat"], ["rule_making"], ["contact_us", "about_us", "beta"] ] MAIN_BUTTON = build_buttons_form(main_button_form)