randydev commited on
Commit
2cbeae2
ยท
verified ยท
1 Parent(s): 71dd051
Files changed (1) hide show
  1. chatbot/plugins/chat.py +50 -41
chatbot/plugins/chat.py CHANGED
@@ -733,9 +733,9 @@ async def memory_updated(client, callback):
733
  LOGS.error(f"Memory update failed: {str(e)}")
734
  await callback.answer("Server error", show_alert=True)
735
 
736
- @Client.on_callback_query(filters.regex("^tr_(\d+)_(\w+)$"))
737
  async def terjemahkan(client, callback):
738
- user_id, targetlang = callback.matches[0].groups()
739
  user_bl = await db.user_blacklists.find_one({"user_id": int(user_id)})
740
  if user_bl and user_bl.get("is_frozen", False):
741
  await callback.answer("Sorry your account is disabled", True)
@@ -747,23 +747,26 @@ async def terjemahkan(client, callback):
747
  data_tr = await db.backup_chatbot.find_one({"user_id": int(user_id)})
748
  if not data_tr:
749
  return await callback.answer("Can't found user", True)
750
- get_response = data_tr.get("translate_text", None)
751
- if not get_response:
752
- return await callback.answer("Server busy try again later", True)
753
- translation = trans(
754
- get_response,
755
- sourcelang="auto",
756
- targetlang=str(targetlang)
757
- )
758
- keyboard = create_keyboard(
759
- user_id=user_id,
760
- chat=data_tr.get("channel_username", "RendyProjects"),
761
- is_menu=data_tr.get("is_channel_photo", False)
762
- )
763
- await callback.edit_message_text(
764
- translation.text,
765
- reply_markup=keyboard
766
- )
 
 
 
767
  await callback.answer("Translate Updated Now", False)
768
  except Exception as e:
769
  LOGS.error(f"Exception translate: {str(e)}")
@@ -797,41 +800,38 @@ async def photo_mode(client, callback):
797
  reply_markup=keyboard
798
  )
799
 
800
- @Client.on_callback_query(filters.regex("^trmulti_(\d+)$"))
801
  async def multiple_langagues(client, callback):
802
- user_id = int(callback.matches[0].group(1))
803
- user_bl = await db.user_blacklists.find_one({"user_id": user_id})
804
  if user_bl and user_bl.get("is_frozen", False):
805
  await callback.answer("Sorry your account is disabled", True)
806
  return
807
 
808
  keyboard = []
809
  keyboard.append([
810
- InlineKeyboardButton("๐Ÿ‡ฆ๐Ÿ‡ช", callback_data=f"tr_{user_id}_ar"),
811
- InlineKeyboardButton("๐Ÿ‡ฆ๐Ÿ‡ฟ", callback_data=f"tr_{user_id}_az")
812
  ])
813
  keyboard.append([
814
- InlineKeyboardButton("๐Ÿ‡ง๐Ÿ‡พ", callback_data=f"tr_{user_id}_be"),
815
- InlineKeyboardButton("๐Ÿ‡ช๐Ÿ‡ธ", callback_data=f"tr_{user_id}_es")
816
  ])
817
  keyboard.append([
818
- InlineKeyboardButton("๐Ÿ‡น๐Ÿ‡ท", callback_data=f"tr_{user_id}_tr"),
819
- InlineKeyboardButton("๐Ÿ‡ป๐Ÿ‡ณ", callback_data=f"tr_{user_id}_vi")
820
  ])
821
  keyboard.append([
822
- InlineKeyboardButton("๐Ÿ‡ฎ๐Ÿ‡ฉ", callback_data=f"tr_{user_id}_id"),
823
- InlineKeyboardButton("๐Ÿ‡บ๐Ÿ‡ธ", callback_data=f"tr_{user_id}_en")
824
  ])
825
  keyboard.append([
826
- InlineKeyboardButton("๐Ÿ‡ฎ๐Ÿ‡ณ", callback_data=f"tr_{user_id}_hi"),
827
- InlineKeyboardButton("๐Ÿ‡ฏ๐Ÿ‡ต", callback_data=f"tr_{user_id}_ja")
828
  ])
829
  keyboard.append([
830
- InlineKeyboardButton("๐Ÿ‡ฒ๐Ÿ‡พ", callback_data=f"tr_{user_id}_ms"),
831
- InlineKeyboardButton("๐Ÿ‡ท๐Ÿ‡บ", callback_data=f"tr_{user_id}_ru"),
832
- ])
833
- keyboard.append([
834
- InlineKeyboardButton(f"๐Ÿ’พ", callback_data=f"memory_{user_id}")
835
  ])
836
  try:
837
  await callback.edit_message_reply_markup(
@@ -880,6 +880,7 @@ def create_keyboard(
880
  likes: int = 0,
881
  unlikes: int = 0,
882
  user_id: int = None,
 
883
  chat: str = None,
884
  is_menu: bool = False
885
  ):
@@ -889,7 +890,7 @@ def create_keyboard(
889
  [
890
  InlineKeyboardButton(f"๐Ÿ—ƒ๏ธ", callback_data=f"menutools_{user_id}"),
891
  InlineKeyboardButton(f"๐Ÿ”Ž", url=f"https://t.me/{chat}"),
892
- InlineKeyboardButton(f"โ™พ๏ธ", callback_data=f"trmulti_{user_id}"),
893
  InlineKeyboardButton(f"๐Ÿ’พ", callback_data=f"memory_{user_id}"),
894
  ],
895
  [
@@ -903,7 +904,7 @@ def create_keyboard(
903
  [
904
  [
905
  InlineKeyboardButton(f"๐Ÿ—ƒ๏ธ", callback_data=f"menutools_{user_id}"),
906
- InlineKeyboardButton(f"โ™พ๏ธ", callback_data=f"trmulti_{user_id}"),
907
  InlineKeyboardButton(f"๐Ÿ”", callback_data=f"refreshch"),
908
  InlineKeyboardButton(f"๐Ÿ’พ", callback_data=f"memory_{user_id}")
909
  ],
@@ -1644,15 +1645,23 @@ async def chatbot_talk(client: Client, message: Message):
1644
  for part in text_parts:
1645
  await message.reply_text(part)
1646
  else:
1647
- keyboard_like = create_keyboard(user_id=message.from_user.id)
 
 
 
1648
  await message.reply_text(
1649
  output,
1650
  disable_web_page_preview=True,
1651
  reply_markup=keyboard_like
1652
  )
 
 
 
 
 
1653
  await db.backup_chatbot.update_one(
1654
  {"user_id": message.from_user.id},
1655
- {"$set": {"translate_text": output}},
1656
  upsert=True
1657
  )
1658
  backup_chat.append({"role": "model", "parts": [{"text": output}]})
 
733
  LOGS.error(f"Memory update failed: {str(e)}")
734
  await callback.answer("Server error", show_alert=True)
735
 
736
+ @Client.on_callback_query(filters.regex("^tr_(\d+)_(\w+)_(\w+)$"))
737
  async def terjemahkan(client, callback):
738
+ user_id, targetlang, uuidstr = callback.matches[0].groups()
739
  user_bl = await db.user_blacklists.find_one({"user_id": int(user_id)})
740
  if user_bl and user_bl.get("is_frozen", False):
741
  await callback.answer("Sorry your account is disabled", True)
 
747
  data_tr = await db.backup_chatbot.find_one({"user_id": int(user_id)})
748
  if not data_tr:
749
  return await callback.answer("Can't found user", True)
750
+ if not data_tr or "translate_history" not in data_tr:
751
+ return await callback.answer("translate history not found")
752
+
753
+ for translations in data_tr["translate_history"]:
754
+ if translations.get("uuid") == uuidstr:
755
+ translation = trans(
756
+ translations.get("text"),
757
+ sourcelang="auto",
758
+ targetlang=str(targetlang)
759
+ )
760
+ keyboard = create_keyboard(
761
+ user_id=user_id,
762
+ chat=data_tr.get("channel_username", "RendyProjects"),
763
+ is_menu=data_tr.get("is_channel_photo", False)
764
+ )
765
+ await callback.edit_message_text(
766
+ translation.text,
767
+ reply_markup=keyboard
768
+ )
769
+
770
  await callback.answer("Translate Updated Now", False)
771
  except Exception as e:
772
  LOGS.error(f"Exception translate: {str(e)}")
 
800
  reply_markup=keyboard
801
  )
802
 
803
+ @Client.on_callback_query(filters.regex("^trmulti_(\d+)_(\w+)$"))
804
  async def multiple_langagues(client, callback):
805
+ user_id, uuidstr = callback.matches[0].groups()
806
+ user_bl = await db.user_blacklists.find_one({"user_id": int(user_id)})
807
  if user_bl and user_bl.get("is_frozen", False):
808
  await callback.answer("Sorry your account is disabled", True)
809
  return
810
 
811
  keyboard = []
812
  keyboard.append([
813
+ InlineKeyboardButton("๐Ÿ‡ฆ๐Ÿ‡ช", callback_data=f"tr_{int(user_id)}_ar_{uuidstr}"),
814
+ InlineKeyboardButton("๐Ÿ‡ฆ๐Ÿ‡ฟ", callback_data=f"tr_{int(user_id)}_az_{uuidstr}")
815
  ])
816
  keyboard.append([
817
+ InlineKeyboardButton("๐Ÿ‡ง๐Ÿ‡พ", callback_data=f"tr_{int(user_id)}_be_{uuidstr}"),
818
+ InlineKeyboardButton("๐Ÿ‡ช๐Ÿ‡ธ", callback_data=f"tr_{int(user_id)}_es_{uuidstr}")
819
  ])
820
  keyboard.append([
821
+ InlineKeyboardButton("๐Ÿ‡น๐Ÿ‡ท", callback_data=f"tr_{int(user_id)}_tr_{uuidstr}"),
822
+ InlineKeyboardButton("๐Ÿ‡ป๐Ÿ‡ณ", callback_data=f"tr_{int(user_id)}_vi_{uuidstr}")
823
  ])
824
  keyboard.append([
825
+ InlineKeyboardButton("๐Ÿ‡ฎ๐Ÿ‡ฉ", callback_data=f"tr_{int(user_id)}_id_{uuidstr}"),
826
+ InlineKeyboardButton("๐Ÿ‡บ๐Ÿ‡ธ", callback_data=f"tr_{int(user_id)}_en_{uuidstr}")
827
  ])
828
  keyboard.append([
829
+ InlineKeyboardButton("๐Ÿ‡ฎ๐Ÿ‡ณ", callback_data=f"tr_{int(user_id)}_hi_{uuidstr}"),
830
+ InlineKeyboardButton("๐Ÿ‡ฏ๐Ÿ‡ต", callback_data=f"tr_{int(user_id)}_ja_{uuidstr}")
831
  ])
832
  keyboard.append([
833
+ InlineKeyboardButton("๐Ÿ‡ฒ๐Ÿ‡พ", callback_data=f"tr_{int(user_id)}_ms_{uuidstr}"),
834
+ InlineKeyboardButton("๐Ÿ‡ท๐Ÿ‡บ", callback_data=f"tr_{int(user_id)}_ru_{uuidstr}"),
 
 
 
835
  ])
836
  try:
837
  await callback.edit_message_reply_markup(
 
880
  likes: int = 0,
881
  unlikes: int = 0,
882
  user_id: int = None,
883
+ uuid_str: str = None,
884
  chat: str = None,
885
  is_menu: bool = False
886
  ):
 
890
  [
891
  InlineKeyboardButton(f"๐Ÿ—ƒ๏ธ", callback_data=f"menutools_{user_id}"),
892
  InlineKeyboardButton(f"๐Ÿ”Ž", url=f"https://t.me/{chat}"),
893
+ InlineKeyboardButton(f"โ™พ๏ธ", callback_data=f"trmulti_{user_id}_{uuid_str}"),
894
  InlineKeyboardButton(f"๐Ÿ’พ", callback_data=f"memory_{user_id}"),
895
  ],
896
  [
 
904
  [
905
  [
906
  InlineKeyboardButton(f"๐Ÿ—ƒ๏ธ", callback_data=f"menutools_{user_id}"),
907
+ InlineKeyboardButton(f"โ™พ๏ธ", callback_data=f"trmulti_{user_id}_{uuid_str}"),
908
  InlineKeyboardButton(f"๐Ÿ”", callback_data=f"refreshch"),
909
  InlineKeyboardButton(f"๐Ÿ’พ", callback_data=f"memory_{user_id}")
910
  ],
 
1645
  for part in text_parts:
1646
  await message.reply_text(part)
1647
  else:
1648
+ keyboard_like = create_keyboard(
1649
+ user_id=message.from_user.id,
1650
+ uuid_str=str(uuid.uuid4())[:8]
1651
+ )
1652
  await message.reply_text(
1653
  output,
1654
  disable_web_page_preview=True,
1655
  reply_markup=keyboard_like
1656
  )
1657
+ translation_entry = {
1658
+ "uuid": str(uuid.uuid4())[:8],
1659
+ "text": output,
1660
+ "timestamp": dt.now().isoformat()
1661
+ }
1662
  await db.backup_chatbot.update_one(
1663
  {"user_id": message.from_user.id},
1664
+ {"$push": {"translate_history": translation_entry}},
1665
  upsert=True
1666
  )
1667
  backup_chat.append({"role": "model", "parts": [{"text": output}]})