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

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +63 -46
main.py CHANGED
@@ -151,7 +151,7 @@ app = Flask(__name__)
151
 
152
  @app.route('/')
153
  def home():
154
- return "ربات یکپارچه آلفا (نسخه پرو + مدیریت اشتراک حرفه‌ای + دیتاست) روشن است! 🚀"
155
 
156
  def run_flask():
157
  app.run(host="0.0.0.0", port=7860)
@@ -447,9 +447,10 @@ async def process_gemini(client, chat_id, prompt, file_bytes=None, file_name=Non
447
  await send_with_keyboard(client, chat_id, "❌ متأسفانه پاسخی دریافت نشد. (شاید سایز فایل بیش از حد مجاز بوده است)", False)
448
  return
449
 
450
- # کسر اعتبار در دیتاست
451
- user_credits_db[str_chat_id]["chat"] -= 1
452
- save_db(user_credits_db)
 
453
 
454
  history.append({"role": "model", "parts": [{"text": final_answer}]})
455
  user_states[chat_id]["history"] = history
@@ -537,7 +538,7 @@ async def process_image(client, chat_id, prompt):
537
 
538
  if not generated_image: return await send_with_keyboard(client, chat_id, f"❌ عکس ساخته نشد.\n\n⚠️ خطا:\n{last_error_log[:200]}", True)
539
 
540
- # کسر اعتبار در دیتاست
541
  user_credits_db[str_chat_id]["image"] -= 1
542
  save_db(user_credits_db)
543
 
@@ -593,7 +594,7 @@ async def process_image_edit(client, chat_id, image_bytes, prompt):
593
  if not generated_image:
594
  return await send_with_keyboard(client, chat_id, f"❌ متأسفانه ویرایش عکس انجام نشد.\n\n⚠️ علت:\n{last_error_log[:200]}", True)
595
 
596
- # کسر اعتبار در دیتاست
597
  user_credits_db[str_chat_id]["edit_image"] -= 1
598
  save_db(user_credits_db)
599
 
@@ -648,9 +649,10 @@ async def process_tts(client, chat_id, user_text, speaker_id, speaker_name):
648
  except Exception: pass
649
 
650
  if audio_bytes:
651
- # کسر اعتبار در دیتاست
652
- user_credits_db[str_chat_id]["tts"] -= 1
653
- save_db(user_credits_db)
 
654
 
655
  file_name = f"audio_{random.randint(1000, 999999)}.mp3"
656
  with open(file_name, "wb") as f: f.write(audio_bytes)
@@ -732,9 +734,10 @@ async def process_podcast(client, chat_id, prompt):
732
  combined_audio += audio_segment
733
  except Exception as e: return await send_with_keyboard(client, chat_id, f"❌ خطا در پردازش صدا (آیا pydub و ffmpeg نصب است؟):\n{str(e)}", True)
734
 
735
- # کسر اعتبار در دیتاست
736
- user_credits_db[str_chat_id]["podcast"] -= 1
737
- save_db(user_credits_db)
 
738
 
739
  file_name = f"final_podcast_{random.randint(1000, 999999)}.mp3"
740
  combined_audio.export(file_name, format="mp3")
@@ -791,9 +794,10 @@ async def process_stt(client, chat_id, audio_bytes, file_name):
791
  except Exception: pass
792
 
793
  if transcribed_text:
794
- # کسر اعتبار در دیتاست
795
- user_credits_db[str_chat_id]["stt"] -= 1
796
- save_db(user_credits_db)
 
797
  await send_with_keyboard(client, chat_id, f"📝 **متن استخراج شده:**\n\n{transcribed_text}", True)
798
  else:
799
  await send_with_keyboard(client, chat_id, f"❌ تبدیل فایل به متن ناموفق بود.", True)
@@ -837,9 +841,10 @@ async def process_file_analysis(client, chat_id, file_bytes, file_name, prompt):
837
  except Exception: pass
838
 
839
  if final_answer:
840
- # کسر اعتبار در دیتاست
841
- user_credits_db[str_chat_id]["file"] -= 1
842
- save_db(user_credits_db)
 
843
  await send_with_keyboard(client, chat_id, f"💡 **نتیجه تحلیل:**\n\n{final_answer}", True)
844
  else:
845
  await send_with_keyboard(client, chat_id, "❌ پاسخی دریافت نشد.", True)
@@ -934,21 +939,21 @@ else:
934
  expire_time = datetime.datetime.now() + datetime.timedelta(days=30)
935
  user_credits_db[target_id]["expire_date"] = expire_time.isoformat()
936
 
937
- # شارژ اعتبار کامل پرو (یک ماهه - غیر قابل ریست روزانه)
938
- user_credits_db[target_id]["chat"] = 1000
939
  user_credits_db[target_id]["image"] = 20
940
  user_credits_db[target_id]["edit_image"] = 10
941
- user_credits_db[target_id]["podcast"] = 100
942
- user_credits_db[target_id]["tts"] = 500
943
- user_credits_db[target_id]["file"] = 50
944
- user_credits_db[target_id]["stt"] = 100
945
 
946
  save_db(user_credits_db)
947
  await send_with_keyboard(client, chat_id, f"✅ حساب کاربر `{target_id}` به مدت ۳۰ روز شارژ شد و به پرو ارتقا یافت.", False)
948
 
949
  # ارسال پیام اطلاع‌رسانی به خود کاربر هدف
950
  try:
951
- await send_with_keyboard(client, target_id, "🎉 **کاربر گرامی، تبریک!**\n\nحساب شما با موفقیت توسط پشتیبانی به **🌟 نسخه پرو (ویژه)** ارتقا یافت.\nهم‌اکنون بسته‌های یک‌ماهه شما فعال گردید.\n\nجهت مشاهده جزئیات روی دکمه «حساب کاربری 👤» کلیک کنید.", True)
952
  except Exception as e:
953
  print(f"Failed to notify target user: {e}")
954
 
@@ -1004,7 +1009,7 @@ else:
1004
  await send_with_keyboard(client, chat_id, "سلام! به ربات هوشمند آلفا خوش آمدید 🤖\n\nلطفاً برای شروع، از کیبورد پایین یکی از بخش‌ها را انتخاب کنید:", True)
1005
  return
1006
 
1007
- # --- حساب کاربری مینیمال (فقط نمایش اطلاعات فعلی) ---
1008
  if user_text_str in ["/account", "حساب کاربری 👤"]:
1009
  creds = get_user_credits(chat_id)
1010
  is_prem = creds.get("is_premium", False)
@@ -1020,47 +1025,59 @@ else:
1020
  status_text = "🥉 نسخه رایگان (آزمایشی)"
1021
  daily_note = "*سهمیه شما هر روز ساعت ۰۰:۰۰ بامداد به صورت خودکار مجدداً شارژ می‌گردد.*"
1022
 
 
 
 
 
 
 
 
 
 
 
 
1023
  account_profile = f"""👤 **اطلاعات حساب کاربری شما**
1024
 
1025
  🔹 **شناسه یکتا:** `{chat_id}`
1026
  🔹 **وضعیت اشتراک:** {status_text}
1027
 
1028
  📊 **سهمیه باقی‌مانده شما:**
1029
- - 💬 چت هوشمند: {creds['chat']} پیام
1030
- - 🎨 ساخت عکس: {creds['image']} تصویر
1031
- - 🪄 ویرایش عکس پیشرفته: {creds['edit_image']} تصویر
1032
- - 🎙 ساخت پادکست: {creds['podcast']} برنامه
1033
- - 🗣 تبدیل متن به صدا: {creds['tts']} فایل
1034
- - 📁 تحلیل فایل: {creds['file']} فایل
1035
- - 📝 تبدیل صدا به متن: {creds['stt']} فایل
1036
 
1037
  {daily_note}"""
1038
  await send_with_keyboard(client, chat_id, account_profile, True)
1039
  return
1040
 
1041
- # --- خرید اشتراک با نام کوهی و مقادیر جدید ---
1042
  if user_text_str in ["/buy", "خرید اشتراک 💎"]:
1043
  buy_text = f"""💎 **خرید اشتراک ویژه آلفا پرو (یک ماهه)**
1044
 
1045
  با تهیه اشتراک ویژه، محدودیت‌ها را کنار بزنید و از نهایت قدرت هوش مصنوعی لذت ببرید! 🚀
1046
 
1047
  🎁 **بسته طلایی یک‌ماهه شامل:**
1048
- 🗣 ۵۰۰ فایل تبدیل متن به صدا (طبیعی و روان)
1049
- 🎙 ۱۰۰ برنامه ساخت پادکست اختصاصی
1050
- 🪄 ۱۰ تصویر ویرایش حرفه‌ای (با مدل قدرتمند Flux.2)
1051
- 🎨 ۲۰ تصویرسازی فوق‌پیشرفته و سینمایی
1052
- 📁 ۵۰ تحلیل فایل و سند
1053
- 💬 چت هوشمند (۱۰۰۰ پیام)
1054
- 📝 ۱۰۰ فایل تبدیل صدا به متن
 
1055
 
1056
- 💳 **هزینه اشتراک یک ماهه:** ۱۹۹,۰۰۰ تومان
1057
 
1058
  💳 **شماره کارت جهت واریز:**
1059
  `6104338667771394`
1060
  👤 **به نام:** کوهی
1061
 
1062
  ✅ **نحوه فعال‌سازی:**
1063
- پس از واریز مبلغ، لطفاً رسید پرداختی را به همراه **شناسه یکتای خود** (که در پایین آمده) به آیدی پشتیبانی زیر ارسال کنید تا اشتراک شما فورا فعال گردد:
1064
 
1065
  🔑 **شناسه یکتای شما:** `{chat_id}`
1066
 
@@ -1069,17 +1086,17 @@ else:
1069
  await send_with_keyboard(client, chat_id, buy_text, True)
1070
  return
1071
 
1072
- # --- انتقال اکانت ---
1073
  if user_text_str in ["/transfer", "انتقال اکانت از برنامه به ربات"]:
1074
  transfer_text = f"""🔄 **انتقال اکانت از برنامه به ربات**
1075
 
1076
  کاربر گرامی، در صورتی که داخل برنامه «هوش مصنوعی آلفا» پیش‌تر اشتراک تهیه کرده‌اید، نیازی به خرید مجدد اشتراک داخل ربات نیست! 🎉
1077
 
1078
- کافیست **شناسه یکتای** ربات روبیکای خود را کپی کرده و برای پشتیبانی ما ارسال کنید تا اکانت اشتراکی شما به سرعت از برنامه به ربات روبیکا انتقال داده شود.
1079
 
1080
  🔑 **شناسه یکتای ربات شما:** `{chat_id}`
1081
 
1082
- 👨‍💻 **جهت انتقال، آیدی فوق را به پشتیبانی زیر ارسال کنید:**
1083
  🆔 @H_a_m_e_d100"""
1084
  await send_with_keyboard(client, chat_id, transfer_text, True)
1085
  return
 
151
 
152
  @app.route('/')
153
  def home():
154
+ return "ربات یکپارچه آلفا (نسخه پرو + مدیریت اشتراک نامحدود + دیتاست) روشن است! 🚀"
155
 
156
  def run_flask():
157
  app.run(host="0.0.0.0", port=7860)
 
447
  await send_with_keyboard(client, chat_id, "❌ متأسفانه پاسخی دریافت نشد. (شاید سایز فایل بیش از حد مجاز بوده است)", False)
448
  return
449
 
450
+ # کسر اعتبار در دیتاست (اگر نامحدود نیست)
451
+ if not creds.get("is_premium"):
452
+ user_credits_db[str_chat_id]["chat"] -= 1
453
+ save_db(user_credits_db)
454
 
455
  history.append({"role": "model", "parts": [{"text": final_answer}]})
456
  user_states[chat_id]["history"] = history
 
538
 
539
  if not generated_image: return await send_with_keyboard(client, chat_id, f"❌ عکس ساخته نشد.\n\n⚠️ خطا:\n{last_error_log[:200]}", True)
540
 
541
+ # کسر اعتبار (ساخت عکس محدود است حتی برای پرو)
542
  user_credits_db[str_chat_id]["image"] -= 1
543
  save_db(user_credits_db)
544
 
 
594
  if not generated_image:
595
  return await send_with_keyboard(client, chat_id, f"❌ متأسفانه ویرایش عکس انجام نشد.\n\n⚠️ علت:\n{last_error_log[:200]}", True)
596
 
597
+ # کسر اعتبار (ویرایش عکس محدود است حتی برای پرو)
598
  user_credits_db[str_chat_id]["edit_image"] -= 1
599
  save_db(user_credits_db)
600
 
 
649
  except Exception: pass
650
 
651
  if audio_bytes:
652
+ # کسر اعتبار در دیتاست (اگر نامحدود نیست)
653
+ if not creds.get("is_premium"):
654
+ user_credits_db[str_chat_id]["tts"] -= 1
655
+ save_db(user_credits_db)
656
 
657
  file_name = f"audio_{random.randint(1000, 999999)}.mp3"
658
  with open(file_name, "wb") as f: f.write(audio_bytes)
 
734
  combined_audio += audio_segment
735
  except Exception as e: return await send_with_keyboard(client, chat_id, f"❌ خطا در پردازش صدا (آیا pydub و ffmpeg نصب است؟):\n{str(e)}", True)
736
 
737
+ # کسر اعتبار در دیتاست (اگر نامحدود نیست)
738
+ if not creds.get("is_premium"):
739
+ user_credits_db[str_chat_id]["podcast"] -= 1
740
+ save_db(user_credits_db)
741
 
742
  file_name = f"final_podcast_{random.randint(1000, 999999)}.mp3"
743
  combined_audio.export(file_name, format="mp3")
 
794
  except Exception: pass
795
 
796
  if transcribed_text:
797
+ # کسر اعتبار در دیتاست (اگر نامحدود نیست)
798
+ if not creds.get("is_premium"):
799
+ user_credits_db[str_chat_id]["stt"] -= 1
800
+ save_db(user_credits_db)
801
  await send_with_keyboard(client, chat_id, f"📝 **متن استخراج شده:**\n\n{transcribed_text}", True)
802
  else:
803
  await send_with_keyboard(client, chat_id, f"❌ تبدیل فایل به متن ناموفق بود.", True)
 
841
  except Exception: pass
842
 
843
  if final_answer:
844
+ # کسر اعتبار در دیتاست (اگر نامحدود نیست)
845
+ if not creds.get("is_premium"):
846
+ user_credits_db[str_chat_id]["file"] -= 1
847
+ save_db(user_credits_db)
848
  await send_with_keyboard(client, chat_id, f"💡 **نتیجه تحلیل:**\n\n{final_answer}", True)
849
  else:
850
  await send_with_keyboard(client, chat_id, "❌ پاسخی دریافت نشد.", True)
 
939
  expire_time = datetime.datetime.now() + datetime.timedelta(days=30)
940
  user_credits_db[target_id]["expire_date"] = expire_time.isoformat()
941
 
942
+ # شارژ اعتبار پرو (فقط برای عکس و ویرایش محدودیت گذاشته شده، بقیه ۹۹۹۹۹۹ است)
943
+ user_credits_db[target_id]["chat"] = 999999
944
  user_credits_db[target_id]["image"] = 20
945
  user_credits_db[target_id]["edit_image"] = 10
946
+ user_credits_db[target_id]["podcast"] = 999999
947
+ user_credits_db[target_id]["tts"] = 999999
948
+ user_credits_db[target_id]["file"] = 999999
949
+ user_credits_db[target_id]["stt"] = 999999
950
 
951
  save_db(user_credits_db)
952
  await send_with_keyboard(client, chat_id, f"✅ حساب کاربر `{target_id}` به مدت ۳۰ روز شارژ شد و به پرو ارتقا یافت.", False)
953
 
954
  # ارسال پیام اطلاع‌رسانی به خود کاربر هدف
955
  try:
956
+ await send_with_keyboard(client, target_id, "🎉 **کاربر گرامی، تبریک!**\n\nحساب شما با موفقیت توسط پشتیبانی به **🌟 نسخه پرو (ویژه)** ارتقا یافت.\nهم‌اکنون بسته‌های نامحدود و طلایی یک‌ماهه شما فعال گردید.\n\nجهت مشاهده جزئیات روی دکمه «حساب کاربری 👤» کلیک کنید.", True)
957
  except Exception as e:
958
  print(f"Failed to notify target user: {e}")
959
 
 
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)
 
1025
  status_text = "🥉 نسخه رایگان (آزمایشی)"
1026
  daily_note = "*سهمیه شما هر روز ساعت ۰۰:۰۰ بامداد به صورت خودکار مجدداً شارژ می‌گردد.*"
1027
 
1028
+ # استفاده از عبارت نامحدود برای کاربران پرو
1029
+ chat_rem = "نامحدود ∞" if is_prem else creds['chat']
1030
+ podcast_rem = "نامحدود ∞" if is_prem else creds['podcast']
1031
+ tts_rem = "نامحدود ∞" if is_prem else creds['tts']
1032
+ file_rem = "نامحدود ∞" if is_prem else creds['file']
1033
+ stt_rem = "نامحدود ∞" if is_prem else creds['stt']
1034
+
1035
+ # برای عکس‌ها همان تعداد را نشان می‌دهیم
1036
+ image_rem = creds['image']
1037
+ edit_image_rem = creds['edit_image']
1038
+
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
 
1061
  با تهیه اشتراک ویژه، محدودیت‌ها را کنار بزنید و از نهایت قدرت هوش مصنوعی لذت ببرید! 🚀
1062
 
1063
  🎁 **بسته طلایی یک‌ماهه شامل:**
1064
+ 🤖 چت با هوش مصنوعی بصورت نامحدود
1065
+ 🗣 تبدیل متن به صدا بصورت نامحدود با ۳۰ گوینده
1066
+ 🎙 ساخت پادکست بصورت نامحدود
1067
+
1068
+ 🪄 ۱۰ ویرایش تصویر
1069
+ 🎨 ۲۰ تولید تصویر
1070
+ 📁 تحلیل نامحدود فایل و سند
1071
+ 📝 تبدیل فایل صوتی به متن نامحدود
1072
 
1073
+ 💳 **هزینه اشتراک یک ماهه:** ۲۵۰ هزار تومان
1074
 
1075
  💳 **شماره کارت جهت واریز:**
1076
  `6104338667771394`
1077
  👤 **به نام:** کوهی
1078
 
1079
  ✅ **نحوه فعال‌سازی:**
1080
+ پس از واریز مبلغ، لطفاً رسید پرداختی را به همراه **شناسه یکتای خود** (که در پایین آمده) به آیدی پشتیبانی زیر ارسال کنید تا اشتراک شما فعال گردد:
1081
 
1082
  🔑 **شناسه یکتای شما:** `{chat_id}`
1083
 
 
1086
  await send_with_keyboard(client, chat_id, buy_text, True)
1087
  return
1088
 
1089
+ # --- دکمه انتقال اکانت ---
1090
  if user_text_str in ["/transfer", "انتقال اکانت از برنامه به ربات"]:
1091
  transfer_text = f"""🔄 **انتقال اکانت از برنامه به ربات**
1092
 
1093
  کاربر گرامی، در صورتی که داخل برنامه «هوش مصنوعی آلفا» پیش‌تر اشتراک تهیه کرده‌اید، نیازی به خرید مجدد اشتراک داخل ربات نیست! 🎉
1094
 
1095
+ کافیست **شناسه یکتای** ربات روبیکای خود را کپی کرده و برای پشتیبانی ما در برنامه هوش مصنوعی آلفا ارسال کنید تا اکانت اشتراکی شما به سرعت از برنامه به ربات روبیکا انتقال داده شود.
1096
 
1097
  🔑 **شناسه یکتای ربات شما:** `{chat_id}`
1098
 
1099
+ 👨‍💻 **دقت کنید شناسه ربات رو به پشتیبانی داخل خود برنامه هوش مصنوعی آلفا ارسال کنید:**
1100
  🆔 @H_a_m_e_d100"""
1101
  await send_with_keyboard(client, chat_id, transfer_text, True)
1102
  return