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)