Skip to content

Commit

Permalink
Merge pull request #57 from XCWQW1/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
XCWQW1 authored Jul 5, 2024
2 parents 39d965f + 9579cf3 commit ec42302
Show file tree
Hide file tree
Showing 35 changed files with 189 additions and 59 deletions.
51 changes: 49 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,55 @@

> 用户使用本框架做出任何行为作者不可控,产生的后果框架作者概不负责,包括但不限于使用本框架时机器人账户被封禁等
### 开始使用:

<details>
<summary>从包管理运行:</summary>

> 需要环境中已安装 3.11.4>=python 并且可以使用 pip 工具
- ### 1, 安装iirosebot
```
pip install iirosebot
```

- ### 2, 初始化
创建或者找到一个合适的文件夹后在文件夹下的命令行\终端中执行 ```iirosebot```

- ### 3, 配置
打开 config>config.yml 文件
```yaml
bot:
color: ffffff # 机器人消息颜色
introduction: '' # 机器人签名
password: '' # 机器人账户的密码
room_id: 5ce6a4b520a90 # 机器人登陆后进入的房间id
username: '' # 机器人用户名 改名后需修改这里
log:
level: INFO # 日志等级
other:
master_id: '' # 主人唯一标识
```
- ### 4, 编写\安装插件 (可选)
> 示例插件 iirose_example.py iirose_flow_master.py 请在仓库iirosebot/plugins下查看
也可以到[插件仓库](https://github.com/XCWQW1/iirosebot-plugins/blob/main/README.md)里面寻找您喜欢的插件
- ### 5, 启动
>第一次运行会停止1次要求重启,用于初始化配置文件等
执行 `iirosebot`

- ### 8, 调试
> 可以私聊机器人发送 `.插件` 获取插件管理菜单,提示无权请检查配置文件中的主人标识是否正确

### 感谢您的使用

</details>

<details>
<summary>开始使用:</summary>
<summary>从源码运行:</summary>

- ### 1, 克隆本项目
```
Expand All @@ -27,7 +74,7 @@
- ### 2, 安装所需库
进入克隆后的目录执行```pip install -r requirements.txt```
进入克隆后的目录下的iirosebot目录执行```pip install -r requirements.txt```
- ### 3, 创建或使用已有的iirose账号
Expand Down
File renamed without changes.
7 changes: 3 additions & 4 deletions API/api_get_config.py → iirosebot/API/api_get_config.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import re
import yaml

import log.main
from loguru import logger

config_path = "config/config.yml"

Expand All @@ -24,7 +23,7 @@ def get_user_color() -> str:
if re.match(pattern, color):
return color
else:
log.main.logger.warning('[警告|配置] 配置文件中的颜色不符合16进制')
logger.warning('[警告|配置] 配置文件中的颜色不符合16进制')
return 'DC143C'


Expand All @@ -47,4 +46,4 @@ def get_introduction() -> str:
except:
introduction = ''

return introduction
return introduction
11 changes: 7 additions & 4 deletions API/api_iirose.py → iirosebot/API/api_iirose.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
from typing import Union
from loguru import logger

from globals.globals import GlobalVal
from API.api_load_config import load_config
from API.api_get_config import get_user_color
from ws_iirose.transfer_plugin import MessageType
from iirosebot.globals.globals import GlobalVal
from iirosebot.API.api_load_config import load_config
from iirosebot.API.api_get_config import get_user_color
from iirosebot.ws_iirose.transfer_plugin import MessageType


bot_name, _, _ = load_config()
Expand Down Expand Up @@ -189,6 +189,7 @@ async def like(user_id: str, message: str = None):
:return:
"""
await GlobalVal.websocket.send(f'+*{user_id}{"" if message is None else " " + message}')
logger.info(f'[事件|点赞] 目标用户:{user_id} {"" if message is None else "留言:" + message}')
return {"code": 200}

@staticmethod
Expand All @@ -199,6 +200,7 @@ async def subscription(user_id: str):
:return:
"""
await GlobalVal.websocket.send(f'+#0{user_id}')
logger.info(f'[事件|关注] 目标用户:{user_id}')
return {"code": 200}

@staticmethod
Expand All @@ -209,6 +211,7 @@ async def unsubscription(user_id: str):
:return:
"""
await GlobalVal.websocket.send(f'+#1{user_id}')
logger.info(f'[事件|取关] 目标用户:{user_id}')
return {"code": 200}

@staticmethod
Expand Down
File renamed without changes.
File renamed without changes.
1 change: 1 addition & 0 deletions iirosebot/API/decorator/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from iirosebot.API.decorator.command import on_command, MessageType, function_records
File renamed without changes.
File renamed without changes.
21 changes: 21 additions & 0 deletions iirosebot/cli.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import argparse
import os

from iirosebot.main import main as iirosebot_main


def main():
parser = argparse.ArgumentParser(description="init/start iirosebot")
if os.path.exists('config'):
iirosebot_main()
else:
data = input("[安装] 是否在目录 {} 下安装iirosebot [Y\\n] ".format(os.getcwd()))
if data.lower() == "y":
iirosebot_main()
else:
print('[安装] 安装已中止')
return


if __name__ == "__main__":
main()
1 change: 1 addition & 0 deletions iirosebot/globals/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from iirosebot.globals.globals import GlobalVal
File renamed without changes.
File renamed without changes.
File renamed without changes.
1 change: 1 addition & 0 deletions iirosebot/log/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from iirosebot.log.main import log
File renamed without changes.
45 changes: 37 additions & 8 deletions main.py → iirosebot/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@

import requests

from API.api_get_config import get_log_level
from log.main import log
from iirosebot.API.api_get_config import get_log_level
from iirosebot.log.main import log
from loguru import logger
from globals.globals import GlobalVal
from init.main_init import main_init
from iirosebot.globals.globals import GlobalVal
from iirosebot.init.main_init import main_init


def signal_handler(sig, frame):
Expand All @@ -23,11 +23,11 @@ def signal_handler(sig, frame):
sys.exit(0)


if __name__ == '__main__':
def main():
signal.signal(signal.SIGINT, signal_handler)
log_level = get_log_level()
log(log_level)
iirosebot_version = 'v1.6.2'
iirosebot_version = 'v1.7.0'

def check_version():
try:
Expand All @@ -43,7 +43,36 @@ def check_version():
logger.info('正在检查更新中...')
threading.Thread(target=check_version()).start()
asyncio.run(main_init())
from ws_iirose.ws import connect_to_iirose_server
from plugin_system.plugin_init import find_plugins_functions
from iirosebot.ws_iirose.ws import connect_to_iirose_server
from iirosebot.plugin_system.plugin_init import find_plugins_functions
GlobalVal.plugin_list = asyncio.run(find_plugins_functions())
asyncio.run(connect_to_iirose_server())


if __name__ == '__main__':
main()


'''
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
. ' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
.............................................
佛祖保佑 永无BUG
'''
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import os
import sys

from globals.globals import GlobalVal
from plugin_system.plugin_init import plugin_manage_data, get_functions_from_file
from iirosebot.globals.globals import GlobalVal
from iirosebot.plugin_system.plugin_init import plugin_manage_data, get_functions_from_file

no_plugin_error = '找不到该插件'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import queue

from loguru import logger
from globals.globals import GlobalVal
from plugin_system.plugin_init import plugin_manage_data
from iirosebot.globals.globals import GlobalVal
from iirosebot.plugin_system.plugin_init import plugin_manage_data

task_queue = queue.Queue()

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
from loguru import logger
from API.api_iirose import APIIirose # 大部分接口都在这里
from globals.globals import GlobalVal # 一些全局变量 now_room_id 是机器人当前所在的房间标识,websocket是ws链接,请勿更改其他参数防止出bug,也不要去监听ws,websockets库只允许一个监听流
from API.api_get_config import get_master_id # 用于获取配置文件中主人的唯一标识
from API.decorator.command import on_command, MessageType # 注册指令装饰器和消息类型Enmu
from iirosebot.API.api_iirose import APIIirose # 大部分接口都在这里
from iirosebot.API.decorator import on_command, MessageType # 注册指令装饰器和消息类型Enmu

API = APIIirose() # 吧class定义到变量就不会要求输入self了(虽然我都带了装饰器没有要self的 直接用APIIirose也不是不可以 习惯了

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import re

from API.api_get_config import get_master_id
from API.api_iirose import APIIirose
from API.api_load_config import load_config
from API.api_message import at_user
from API.decorator.command import on_command, MessageType
from globals.globals import GlobalVal
from iirosebot.API.api_get_config import get_master_id
from iirosebot.API.api_iirose import APIIirose
from iirosebot.API.api_load_config import load_config
from iirosebot.API.api_message import at_user
from iirosebot.API.decorator import on_command, MessageType
from iirosebot.globals.globals import GlobalVal

API = APIIirose()
move_to_master_bool = False
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from API.api_iirose import APIIirose
from API.decorator.command import on_command, MessageType
from API.api_get_config import get_master_id
from API.api_message import send_markdown_code
from plugin_system.plugin_manage import plugin_manage_data, off_plugin, on_plugin, reload_plugin, load_plugin
from iirosebot.API.api_iirose import APIIirose
from iirosebot.API.decorator import on_command, MessageType
from iirosebot.API.api_get_config import get_master_id
from iirosebot.API.api_message import send_markdown_code
from iirosebot.plugin_system.plugin_manage import plugin_manage_data, off_plugin, on_plugin, reload_plugin, load_plugin

API = APIIirose()

Expand Down
Empty file added iirosebot/utools/__init__.py
Empty file.
File renamed without changes.
File renamed without changes.
Empty file added iirosebot/ws_iirose/__init__.py
Empty file.
10 changes: 5 additions & 5 deletions ws_iirose/login_bot.py → iirosebot/ws_iirose/login_bot.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import asyncio
import json

from API.api_get_config import get_introduction
from globals.globals import GlobalVal
from iirosebot.API.api_get_config import get_introduction
from iirosebot.globals.globals import GlobalVal

from loguru import logger
from API.api_load_config import load_config
from utools.md5_encrypt import md5_encrypt
from plugin_system.plugin_transfer import plugin_transfer
from iirosebot.API.api_load_config import load_config
from iirosebot.utools.md5_encrypt import md5_encrypt
from iirosebot.plugin_system.plugin_transfer import plugin_transfer

on_init = False

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@

from loguru import logger

from API.api_load_config import load_config
from API.decorator.command import function_records, MessageType
from globals.globals import GlobalVal
from plugin_system.plugin_transfer import plugin_transfer
from plugin_system.plugin_init import plugin_manage_data
from API.api_iirose import APIIirose
from iirosebot.API.api_load_config import load_config
from iirosebot.API.decorator import function_records, MessageType
from iirosebot.globals.globals import GlobalVal
from iirosebot.plugin_system.plugin_transfer import plugin_transfer
from iirosebot.plugin_system.plugin_init import plugin_manage_data
from iirosebot.API.api_iirose import APIIirose

API = APIIirose()
gold = 0
Expand Down Expand Up @@ -340,7 +340,7 @@ async def login_error(data):
else:
await websocket.send(">#")
await login_error(data)
from ws_iirose.login_bot import init_plugin
from iirosebot.ws_iirose.login_bot import init_plugin
await init_plugin()
await pares_big(data)
await plugin_transfer('date_update')
Expand All @@ -361,7 +361,7 @@ async def login_error(data):
else:
await websocket.send(">#")
await login_error(data)
from ws_iirose.login_bot import init_plugin
from iirosebot.ws_iirose.login_bot import init_plugin
await init_plugin()
await pares_big(data)
await plugin_transfer('date_update')
Expand Down Expand Up @@ -406,7 +406,7 @@ class Data:
logger.debug(f'[分割|消息]{data}')
logger.debug("[解析|消息]" + ", ".join(f"{k}={v}" for k, v in vars(Data).items() if not k.startswith('__')))

logger.info(f"[事件|通知|房间] 内容:{data[0][2:]}, 背景:http{data[1]}, 时间戳:{data[2]}")
logger.info(f"[事件|信箱|房间] 内容:{data[0][2:]}, 背景:http{data[1]}, 时间戳:{data[2]}")
await plugin_transfer('room_notice', Data)
continue
if len(data) == 7:
Expand All @@ -421,7 +421,7 @@ class Data:
logger.debug(f'[分割|消息]{data}')
logger.debug("[解析|消息]" + ", ".join(f"{k}={v}" for k, v in vars(Data).items() if not k.startswith('__')))

logger.info(f"[事件|通知|点赞] 用户 {Data.user_name}{'' if Data.message == '' else '备注:' + Data.message}")
logger.info(f"[事件|信箱|点赞] 用户 {Data.user_name}{'' if Data.message == '' else '备注:' + Data.message}")
await plugin_transfer('self_like', Data)
continue
elif data[3] == "'^":
Expand All @@ -433,7 +433,7 @@ class Data:

logger.debug(f'[分割|消息]{data}')
logger.debug("[解析|消息]" + ", ".join(f"{k}={v}" for k, v in vars(Data).items() if not k.startswith('__')))
logger.info(f"[事件|通知|关注] 用户 {Data.user_name} 关注了您")
logger.info(f"[事件|信箱|关注] 用户 {Data.user_name} 关注了您")
await plugin_transfer('self_subscription', Data)
continue
elif data.startswith("~"):
Expand Down
8 changes: 4 additions & 4 deletions ws_iirose/ws.py → iirosebot/ws_iirose/ws.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

from enum import Enum
from loguru import logger
from globals.globals import GlobalVal
from ws_iirose.ping import ping_iirose
from ws_iirose.login_bot import login_to_server
from ws_iirose.transfer_plugin import process_message
from iirosebot.globals.globals import GlobalVal
from iirosebot.ws_iirose.ping import ping_iirose
from iirosebot.ws_iirose.login_bot import login_to_server
from iirosebot.ws_iirose.transfer_plugin import process_message


class Status(Enum):
Expand Down
Loading

0 comments on commit ec42302

Please sign in to comment.