Update main.py
Browse files
main.py
CHANGED
|
@@ -30,6 +30,26 @@ DATASET_REPO = "Opera8/Karbaran-rayegan-tedad"
|
|
| 30 |
HF_TOKEN_DB = os.environ.get("HF_TOKEN") # توکنی که برای دیتاست تنظیم کردهاید
|
| 31 |
db_lock = threading.Lock()
|
| 32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
def load_db():
|
| 34 |
print("در حال تلاش برای خواندن دیتابیس کاربران از دیتاست هاگینگ فیس...")
|
| 35 |
if HF_TOKEN_DB:
|
|
@@ -1009,21 +1029,30 @@ else:
|
|
| 1009 |
await send_with_keyboard(client, chat_id, "سلام! به ربات هوشمند آلفا خوش آمدید 🤖\n\nلطفاً برای شروع، از کیبورد پایین یکی از بخشها را انتخاب کنید:", True)
|
| 1010 |
return
|
| 1011 |
|
| 1012 |
-
# --- حساب کاربری (با
|
| 1013 |
if user_text_str in ["/account", "حساب کاربری 👤"]:
|
| 1014 |
creds = get_user_credits(chat_id)
|
| 1015 |
is_prem = creds.get("is_premium", False)
|
| 1016 |
|
| 1017 |
if is_prem:
|
| 1018 |
expire_txt = "نامشخص"
|
|
|
|
| 1019 |
if creds.get("expire_date"):
|
| 1020 |
exp_d = datetime.datetime.fromisoformat(creds["expire_date"])
|
| 1021 |
-
|
| 1022 |
-
|
| 1023 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1024 |
else:
|
| 1025 |
status_text = "🥉 نسخه رایگان (آزمایشی)"
|
| 1026 |
-
|
|
|
|
| 1027 |
|
| 1028 |
# استفاده از عبارت نامحدود برای کاربران پرو
|
| 1029 |
chat_rem = "نامحدود ∞" if is_prem else creds['chat']
|
|
@@ -1039,22 +1068,22 @@ else:
|
|
| 1039 |
account_profile = f"""👤 **اطلاعات حساب کاربری شما**
|
| 1040 |
|
| 1041 |
🔹 **شناسه یکتا:** `{chat_id}`
|
| 1042 |
-
🔹 **وضعیت اشتراک:** {status_text}
|
| 1043 |
|
| 1044 |
📊 **سهمیه باقیمانده شما:**
|
| 1045 |
- 💬 چت هوشمند: {chat_rem}
|
| 1046 |
-
- 🎨
|
| 1047 |
-
- 🪄 ویرایش
|
| 1048 |
- 🎙 ساخت پادکست: {podcast_rem}
|
| 1049 |
- 🗣 تبدیل متن به صدا: {tts_rem}
|
| 1050 |
-
- 📁 تحلیل فایل: {file_rem}
|
| 1051 |
- 📝 تبدیل صدا به متن: {stt_rem}
|
| 1052 |
|
| 1053 |
{daily_note}"""
|
| 1054 |
await send_with_keyboard(client, chat_id, account_profile, True)
|
| 1055 |
return
|
| 1056 |
|
| 1057 |
-
# --- دکمه
|
| 1058 |
if user_text_str in ["/buy", "خرید اشتراک 💎"]:
|
| 1059 |
buy_text = f"""💎 **خرید اشتراک ویژه آلفا پرو (یک ماهه)**
|
| 1060 |
|
|
@@ -1070,7 +1099,7 @@ else:
|
|
| 1070 |
📁 تحلیل نامحدود فایل و سند
|
| 1071 |
📝 تبدیل فایل صوتی به متن نامحدود
|
| 1072 |
|
| 1073 |
-
💳 **هزینه اشتراک یک ماهه:**
|
| 1074 |
|
| 1075 |
💳 **شماره کارت جهت واریز:**
|
| 1076 |
`6104338667771394`
|
|
@@ -1253,5 +1282,5 @@ else:
|
|
| 1253 |
if __name__ == "__main__":
|
| 1254 |
threading.Thread(target=run_flask, daemon=True).start()
|
| 1255 |
if bot_token:
|
| 1256 |
-
print("ربات آلفا پرو با سیستم اشتراک
|
| 1257 |
bot.run()
|
|
|
|
| 30 |
HF_TOKEN_DB = os.environ.get("HF_TOKEN") # توکنی که برای دیتاست تنظیم کردهاید
|
| 31 |
db_lock = threading.Lock()
|
| 32 |
|
| 33 |
+
# --- الگوریتم تبدیل تاریخ میلادی به شمسی (بدون نیاز به نصب کتابخانه) ---
|
| 34 |
+
def gregorian_to_jalali(gy, gm, gd):
|
| 35 |
+
g_d_m = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
|
| 36 |
+
gy2 = (gy + 1) if (gm > 2) else gy
|
| 37 |
+
days = 355666 + (365 * gy) + ((gy2 + 3) // 4) - ((gy2 + 99) // 100) + ((gy2 + 399) // 400) + gd + g_d_m[gm - 1]
|
| 38 |
+
jy = -1595 + (33 * (days // 12053))
|
| 39 |
+
days %= 12053
|
| 40 |
+
jy += 4 * (days // 1461)
|
| 41 |
+
days %= 1461
|
| 42 |
+
if days > 365:
|
| 43 |
+
jy += (days - 1) // 365
|
| 44 |
+
days = (days - 1) % 365
|
| 45 |
+
if days < 186:
|
| 46 |
+
jm = 1 + (days // 31)
|
| 47 |
+
jd = 1 + (days % 31)
|
| 48 |
+
else:
|
| 49 |
+
jm = 7 + ((days - 186) // 30)
|
| 50 |
+
jd = 1 + ((days - 186) % 30)
|
| 51 |
+
return jy, jm, jd
|
| 52 |
+
|
| 53 |
def load_db():
|
| 54 |
print("در حال تلاش برای خواندن دیتابیس کاربران از دیتاست هاگینگ فیس...")
|
| 55 |
if HF_TOKEN_DB:
|
|
|
|
| 1029 |
await send_with_keyboard(client, chat_id, "سلام! به ربات هوشمند آلفا خوش آمدید 🤖\n\nلطفاً برای شروع، از کیبورد پایین یکی از بخشها را انتخاب کنید:", True)
|
| 1030 |
return
|
| 1031 |
|
| 1032 |
+
# --- حساب کاربری (با شمسیساز و روزشمار) ---
|
| 1033 |
if user_text_str in ["/account", "حساب کاربری 👤"]:
|
| 1034 |
creds = get_user_credits(chat_id)
|
| 1035 |
is_prem = creds.get("is_premium", False)
|
| 1036 |
|
| 1037 |
if is_prem:
|
| 1038 |
expire_txt = "نامشخص"
|
| 1039 |
+
days_left = 0
|
| 1040 |
if creds.get("expire_date"):
|
| 1041 |
exp_d = datetime.datetime.fromisoformat(creds["expire_date"])
|
| 1042 |
+
now = datetime.datetime.now()
|
| 1043 |
+
diff = exp_d - now
|
| 1044 |
+
days_left = diff.days if diff.days >= 0 else 0
|
| 1045 |
+
|
| 1046 |
+
jy, jm, jd = gregorian_to_jalali(exp_d.year, exp_d.month, exp_d.day)
|
| 1047 |
+
expire_txt = f"{jy:04d}/{jm:02d}/{jd:02d} (ساعت {exp_d.hour:02d}:{exp_d.minute:02d})"
|
| 1048 |
+
|
| 1049 |
+
status_text = "🌟 نسخه پرو (ویژه)"
|
| 1050 |
+
expire_info = f"\n📅 **تاریخ انقضا:** {expire_txt}\n⏳ **زمان باقیمانده:** {days_left} روز"
|
| 1051 |
+
daily_note = "*نکته: سهمیه پردازشی شما مختص همین دوره یکماهه میباشد.*"
|
| 1052 |
else:
|
| 1053 |
status_text = "🥉 نسخه رایگان (آزمایشی)"
|
| 1054 |
+
expire_info = ""
|
| 1055 |
+
daily_note = "*نکته: سهمیه شما هر روز ساعت ۰۰:۰۰ بامداد به صورت خودکار مجدداً شارژ میگردد.*"
|
| 1056 |
|
| 1057 |
# استفاده از عبارت نامحدود برای کاربران پرو
|
| 1058 |
chat_rem = "نامحدود ∞" if is_prem else creds['chat']
|
|
|
|
| 1068 |
account_profile = f"""👤 **اطلاعات حساب کاربری شما**
|
| 1069 |
|
| 1070 |
🔹 **شناسه یکتا:** `{chat_id}`
|
| 1071 |
+
🔹 **وضعیت اشتراک:** {status_text}{expire_info}
|
| 1072 |
|
| 1073 |
📊 **سهمیه باقیمانده شما:**
|
| 1074 |
- 💬 چت هوشمند: {chat_rem}
|
| 1075 |
+
- 🎨 تولید تصویر: {image_rem} عدد
|
| 1076 |
+
- 🪄 ویرایش تصویر: {edit_image_rem} عدد
|
| 1077 |
- 🎙 ساخت پادکست: {podcast_rem}
|
| 1078 |
- 🗣 تبدیل متن به صدا: {tts_rem}
|
| 1079 |
+
- 📁 تحلیل فایل و سند: {file_rem}
|
| 1080 |
- 📝 تبدیل صدا به متن: {stt_rem}
|
| 1081 |
|
| 1082 |
{daily_note}"""
|
| 1083 |
await send_with_keyboard(client, chat_id, account_profile, True)
|
| 1084 |
return
|
| 1085 |
|
| 1086 |
+
# --- دکمه خرید اشتراک ---
|
| 1087 |
if user_text_str in ["/buy", "خرید اشتراک 💎"]:
|
| 1088 |
buy_text = f"""💎 **خرید اشتراک ویژه آلفا پرو (یک ماهه)**
|
| 1089 |
|
|
|
|
| 1099 |
📁 تحلیل نامحدود فایل و سند
|
| 1100 |
📝 تبدیل فایل صوتی به متن نامحدود
|
| 1101 |
|
| 1102 |
+
💳 **هزینه اشتراک یک ماهه:** 250 هزار تومان
|
| 1103 |
|
| 1104 |
💳 **شماره کارت جهت واریز:**
|
| 1105 |
`6104338667771394`
|
|
|
|
| 1282 |
if __name__ == "__main__":
|
| 1283 |
threading.Thread(target=run_flask, daemon=True).start()
|
| 1284 |
if bot_token:
|
| 1285 |
+
print("ربات آلفا پرو با سیستم اشتراک نامحدود روشن شد...")
|
| 1286 |
bot.run()
|