main #1

Open
BadHappy wants to merge 0 commits from SharwOrange/icalingua-python-bot:main into bh
7 changed files with 28 additions and 49 deletions

2
.gitignore vendored
View File

@ -2,4 +2,4 @@
config.toml
.vs
.vscode
.idea
__pycache__

View File

@ -1,4 +1,4 @@
private_key = "" # 与 icalingua 客户端使用的 private_key 一致
host = " " # docker 版 icalingua 服务的地址
host = "" # docker 版 icalingua 服务的地址
self_id = 0 # 机器人的 qq 号

View File

@ -15,10 +15,8 @@ from mcstatus import JavaServer
# 功能包引用处
from module import hitokoto
# 功能包结束引用
# 读取配置
def get_config() -> Tuple[str, str, int]:
with open('config.toml', 'r', encoding='utf-8') as f:
config = qtoml.load(f)
@ -184,10 +182,8 @@ def safe_eval(code: str) -> str:
return result
# 获取到新的消息
@sio.on('addMessage')
async def add_message(data: Dict[str, Any]):
print(f"{Fore.MAGENTA}add_message: {data}{Style.RESET_ALL}")
is_self = data['message']['senderId'] == SELF_ID
@ -198,16 +194,14 @@ async def add_message(data: Dict[str, Any]):
reply = ReplyMessage(id=data['message']['_id'])
if not is_self:
# /bot
if data.get('message').get('content') == '/bot':
message = Message(content='icalingua bot test',
room_id=data['roomId'])
await sio.emit('sendMessage', message.to_json())
# !!status
elif content == '!!status':
server = JavaServer.lookup("192.168.1.6:25565")
status = server.status()
status=server.status()
# query = server.query()
# if status.players.online != 0:
@ -215,20 +209,18 @@ async def add_message(data: Dict[str, Any]):
# else:
# message = Message(content=f"此服务器空无一人",room_id=data['roomId'])
message = Message(content=f"此服务器有 {status.players.online} 个玩家在线", reply_to=reply, room_id=data['roomId'])
message = Message(content=f"此服务器有 {status.players.online} 个玩家在线",reply_to=reply,room_id=data['roomId'])
await sio.emit('sendMessage', message.to_json())
# !!players
elif content == '!!players':
server = JavaServer.lookup("192.168.1.6:25565")
query = server.query()
players = query.players.names
message = Message(content=f"此服务器当前在线玩家有 {players}", reply_to=reply, room_id=data['roomId'])
message = Message(content=f"此服务器当前在线玩家有 {players}",reply_to=reply,room_id=data['roomId'])
await sio.emit('sendMessage', message.to_json())
# !!hitokoto
elif content.startswith("!!hitokoto"):
ctypet = content[len("!!hitokoto "):]
@ -250,7 +242,6 @@ async def add_message(data: Dict[str, Any]):
await sio.emit('sendMessage', message.to_json())
# 未知
elif data.get('message').get('content').startswith('=='):
evals: str = data.get('message').get('content')[2:]
@ -285,18 +276,24 @@ async def add_message(data: Dict[str, Any]):
await asyncio.sleep(random.random() * 2)
await sio.emit('sendMessage', message.to_json())
# !!jrrp
elif data['message']['content'] == '!!jrrp':
randomer = random.Random(f'{sender_id}-{data["message"]["date"]}-jrrp-v2')
result = randomer.randint(0, 50) + randomer.randint(0, 50)
print(f'{sender_name} 今日人品值为 {result}')
message = Message(content=f'{sender_name} 今日人品值为 {result}',
reply_to=reply,
room_id=room_id)
await asyncio.sleep(0.5)
await sio.emit('sendMessage', message.to_json())
examSet = False
if examSet == True:
print('examSet参数被设定替换人品值')
message = Message(content=f'{sender_name} 今日人品值为 100\n为了让你安心备考加油考试今天你的人品值是100',
reply_to=reply,
room_id=room_id)
await asyncio.sleep(0.5)
await sio.emit('sendMessage', message.to_json())
else:
randomer = random.Random(f'{sender_id}-{data["message"]["date"]}-jrrp-v2')
result = randomer.randint(0, 50) + randomer.randint(0, 50)
print(f'{sender_name} 今日人品值为 {result}')
message = Message(content=f'{sender_name} 今日人品值为 {result}',
reply_to=reply,
room_id=room_id)
await asyncio.sleep(0.5)
await sio.emit('sendMessage', message.to_json())
# 如果只包括一个或多个 6
# elif data['message']['content'].replace(' ', '') in ('6', '666', '六', '3+3', '5+1', '4+2', '2+4', '1+5'):
# reply = ReplyMessage(id=data['message']['_id'])

View File

@ -1,7 +1,6 @@
import requests
import random
def hitokoto(ctypet):
result_type = None

View File

@ -1,17 +0,0 @@
import time
import random
import asyncio
import traceback
from typing import Dict, List, Tuple, Any, Optional, Union, Literal
import qtoml
import socketio
from colorama import Fore, Style
from nacl.signing import SigningKey
from lib_not_dr.types import Options
from mcstatus import JavaServer
server = JavaServer.lookup("192.168.1.6:25565")
def mcstatus():