Opera8 commited on
Commit
495c308
·
verified ·
1 Parent(s): eaa797e

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +41 -12
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
- expire_txt = exp_d.strftime("%Y-%m-%d %H:%M")
1022
- status_text = f"🌟 نسخه پرو (معتبر تا {expire_txt})"
1023
- daily_note = "*سهمیه شما به صورت یک‌ماهه می‌باشد.*"
 
 
 
 
 
 
 
1024
  else:
1025
  status_text = "🥉 نسخه رایگان (آزمایشی)"
1026
- daily_note = "*سهمیه شما هر روز ساعت ۰۰:۰۰ بامداد به صورت خودکار مجدداً شارژ می‌گردد.*"
 
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
- - 🎨 ساخت عکس: {image_rem} تصویر
1047
- - 🪄 ویرایش عکس پیشرفته: {edit_image_rem} تصویر
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("ربات آلفا پرو با سیستم اشتراک VIP روشن شد...")
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()