randydev commited on
Commit
e60f9f8
·
verified ·
1 Parent(s): f6b761c

Upload chatgpt.py

Browse files
Files changed (1) hide show
  1. Akeno/plugins/chatgpt.py +58 -0
Akeno/plugins/chatgpt.py CHANGED
@@ -46,6 +46,64 @@ async def chatgptold(messagestr):
46
  return None
47
  return response.json()
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  @Akeno(
50
  ~filters.scheduled
51
  & filters.command(["askf"], CMD_HANDLER)
 
46
  return None
47
  return response.json()
48
 
49
+ @Akeno(
50
+ ~filters.scheduled
51
+ & filters.command(["addchatbot"], CMD_HANDLER)
52
+ & filters.me
53
+ & ~filters.forwarded
54
+ )
55
+ async def addchatbot_user(client: Client, message: Message):
56
+ await db.add_chatbot(message.chat.id, client.me.id)
57
+ await message.reply_text("Added chatbot user")
58
+
59
+ @Akeno(
60
+ ~filters.scheduled
61
+ & filters.command(["rmchatbot"], CMD_HANDLER)
62
+ & filters.me
63
+ & ~filters.forwarded
64
+ )
65
+ async def rmchatbot_user(client: Client, message: Message):
66
+ await db.remove_chatbot(message.chat.id)
67
+ await message.reply_text("removed chatbot user")
68
+
69
+ @Akeno(
70
+ filters.incoming
71
+ & filters.text
72
+ & filters.reply
73
+ & ~filters.bot
74
+ & ~filters.via_bot
75
+ & ~filters.forwarded,
76
+ group=2,
77
+ )
78
+ async def chatbot_talk(client: Client, message: Message):
79
+ if not message.reply_to_message:
80
+ return
81
+ if not message.reply_to_message.from_user:
82
+ return
83
+ if message.reply_to_message.from_user.id != client.me.id:
84
+ return
85
+ chat_user = await db.get_chatbot(message.chat.id)
86
+ if chat_user:
87
+ query = message.text.strip()
88
+ try:
89
+ messager = await chatgptold(query)
90
+ if messager is None:
91
+ return await message.reply_text("No response")
92
+ output = messager["randydev"].get("message")
93
+ if len(output) > 4096:
94
+ with open("chat.txt", "w+", encoding="utf8") as out_file:
95
+ out_file.write(output)
96
+ await message.reply_document(
97
+ document="chat.txt",
98
+ disable_notification=True
99
+ )
100
+ os.remove("chat.txt")
101
+ else:
102
+ await message.reply_text(output)
103
+ except Exception as e:
104
+ LOGS.error(str(e))
105
+ return await message.reply_text(str(e))
106
+
107
  @Akeno(
108
  ~filters.scheduled
109
  & filters.command(["askf"], CMD_HANDLER)