From 309ef7063f0b1b9fd504d8cef43e730a9f28b856 Mon Sep 17 00:00:00 2001 From: "sourcery-ai[bot]" <58596630+sourcery-ai[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 21:39:43 +0800 Subject: [PATCH] =?UTF-8?q?silly=5Fgirl=20=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20(#74)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: cdle <50124752+cdle@users.noreply.github.com> Co-authored-by: Sourcery AI <> --- silly_girl/main.py | 106 +++++++++++++++++++++++++++------------------ 1 file changed, 63 insertions(+), 43 deletions(-) diff --git a/silly_girl/main.py b/silly_girl/main.py index 523c7bd..9805c10 100644 --- a/silly_girl/main.py +++ b/silly_girl/main.py @@ -1,3 +1,4 @@ + from asyncio import sleep from pagermaid.listener import listener from pagermaid.enums import Message @@ -7,56 +8,53 @@ from pagermaid import bot from pyrogram.enums.chat_type import ChatType from pagermaid.hook import Hook +import json class SillyGirl: address = "" token = "" self_user_id = "" init = False + working = False def init_connect_info(self, address): + sillyGirl.self_user_id = bot.me.id self.init = True - self.self_user_id = bot.me.id if address: sqlite["silly_girl_address"] = address else: - address = sqlite.get("silly_girl_address", "") - try: - if '@' in address: + address = sqlite.get("silly_girl_address") + if '@' in address: s1 = address.split("//", 1) s2 = s1[1].split("@", 1) sillyGirl.token = s2[0] - self.address = f"{s1[0]}//{s2[1]}" - except: - self.address = "" + address = f"{s1[0]}//{s2[1]}" + sillyGirl.address = address async def polls(self): while True: - if self.address: - await self.poll([]) - else: - return + await self.poll([]) async def poll(self, data): try: - if not self.address: - return init = '' - if not self.init: + if sillyGirl.init == False: init = "&init=true" - self.init = True + sillyGirl.init = True req_data = await client.post( f"{self.address}/pgm?token={self.token}{init}", json=data ) + except Exception as e: print(e) + print(e,"???====") await sleep(0.1) return if req_data.status_code != 200: await sleep(0.1) return try: - replies = req_data.json() + replies = json.loads(req_data.text) results = [] for reply in replies: if reply["delete"]: @@ -82,6 +80,13 @@ class SillyGirl: caption=reply["text"], reply_to_message_id=reply["reply_to"], ) + elif reply["videos"] and len(reply["videos"]) != 0: + message = await bot.send_video( + reply["chat_id"], + reply["videos"][0], + caption=reply["text"], + reply_to_message_id=reply["reply_to"], + ) elif reply["text"] != '': message = await bot.send_message(reply["chat_id"], reply["text"], reply_to_message_id=reply["reply_to"]) if message: @@ -90,56 +95,71 @@ class SillyGirl: 'uuid': reply["uuid"], }) if len(results): - await self.poll(results) + await sillyGirl.poll(results) except Exception as e: - print(e) + print(e,"???") await sleep(0.1) - + return sillyGirl = SillyGirl() - @Hook.on_startup() async def connect_sillyGirl(): sillyGirl.init_connect_info("") bot.loop.create_task(sillyGirl.polls()) + bot.loop.create_task(sillyGirl.polls()) + -@listener(command="sillyGirl", description="连接到傻妞服务器", parameters="") -async def sillyGirl_connect(message: Message): - try: - await edit_delete(message, "连接中...") +@listener(is_plugin=True,outgoing=True, ignore_edited=True, command="sillyGirl",description="连接到傻妞服务器", parameters="") +async def Connect(message: Message): + try: + await edit_delete(message,"连接中,建议重启...") sillyGirl.init_connect_info(message.arguments) except Exception as e: + print(e,"+++") print(e) - -@listener(outgoing=True, ignore_edited=True, incoming=True) +@listener(outgoing=True,ignore_edited=True, incoming=True) async def handle_receive(message: Message): - try: + try: reply_to = message.id - reply = message.reply_to_message reply_to_sender_id = 0 + chat_id = message.chat.id sender_id = 0 if message.from_user: sender_id = message.from_user.id - if reply: + if reply := message.reply_to_message: reply_to = reply.id - reply_to_sender_id = reply.from_user.id - if not sillyGirl.init: + if reply.from_user: + reply_to_sender_id = reply.from_user.id + if message.reply_to_message_id: + reply_to = message.reply_to_message_id + if message.reply_to_message: + reply_to = message.reply_to_message.id + if message.reply_to_message.from_user: + reply_to_sender_id = message.reply_to_message.from_user.id + if sillyGirl.init != True: sillyGirl.init_connect_info("") - if sillyGirl.self_user_id == sender_id: - reply_to = 0 await sillyGirl.poll( - [{ - 'id': message.id, - 'chat_id': message.chat.id, - 'text': message.text, - 'sender_id': sender_id, - 'reply_to': reply_to, - 'reply_to_sender_id': reply_to_sender_id, - 'bot_id': sillyGirl.self_user_id, - 'is_group': message.chat.type != ChatType.PRIVATE, - }]) + [ + { + 'id': message.id, + 'chat_id': chat_id, + 'text': message.text, + 'sender_id': sender_id, + 'reply_to': reply_to, + 'reply_to_sender_id': reply_to_sender_id, + 'bot_id': sillyGirl.self_user_id, + 'is_group': message.chat.type + in [ChatType.SUPERGROUP, ChatType.CHANNEL], + } + ] + ) + except Exception as e: print(e) + print(e,"---") + return + +