Skip to content
This repository has been archived by the owner on May 30, 2023. It is now read-only.

opq-osc/chinchin-pk

Repository files navigation

牛了个牛

牛子系统。

示例

展开查看功能测试示例
------查牛子信息------
【牛子信息】
长度: 8.75厘米
注册时间: 21:11
------对方注册------
------user 2 查牛子信息------
【牛子信息】
长度: 10.48厘米
注册时间: 21:11
------user 2 自己打胶------
牛子对你的付出很满意吗,增加0.9厘米
------user 2 自己🔒自己------
你的牛子太小了,还🔒不到
------user 2 查牛子是否短了------
【牛子信息】
长度: 11.38厘米
最近被🔒时间: 21:11
最近打胶时间: 21:11
注册时间: 21:11
------None------
------None------
------user 2 打胶 user 1------
你的打胶让对方牛子感到很舒服,对方牛子增加1.13厘米
------user 2 🔒 user 1------
🔒的很卖力很舒服,对方牛子增加了0.44厘米
------user 2 pk user 1------
pk失败了,在对面牛子的阴影笼罩下,你的牛子减小了0.4厘米,对面牛子增加了0.64厘米
------user 1 查牛子是否变了------
【牛子信息】
长度: 10.96厘米
最近被🔒时间: 21:11
最近被pk时间: 21:11
最近被打胶时间: 21:11
注册时间: 21:11
------user 2 反复 pk +2------
pk成功了,对面牛子不值一提,你的是最棒的,牛子获得自信增加了1.04厘米,对面牛子减小了0.74厘米
------user 2 反复 pk +3------
pk失败了,在对面牛子的阴影笼罩下,你的牛子减小了0.3厘米,对面牛子增加了1.06厘米
------user 2 反复 pk +4------
牛子刚结束战斗,歇一会吧!
------user 2 反复 pk +5------
牛子刚结束战斗,歇一会吧!
------user 2 反复 pk +6------
牛子刚结束战斗,歇一会吧!
------user 2 反复 🔒 +2------
🔒的很卖力很舒服,对方牛子增加了0.43厘米
------user 2 反复 🔒 +3------
别🔒了,要口腔溃疡了,改天再🔒吧!
------user 2 反复 🔒 +4------
别🔒了,要口腔溃疡了,改天再🔒吧!
------user 2 反复 🔒 +5------
别🔒了,要口腔溃疡了,改天再🔒吧!
------user 2 反复 🔒 +6------
别🔒了,要口腔溃疡了,改天再🔒吧!
------user 2 反复 打胶 +2------
你的打胶让对方牛子感到很舒服,对方牛子增加1.42厘米
------user 2 反复 打胶 +3------
你刚打了一胶,歇一会吧!
------user 2 反复 打胶 +4------
你刚打了一胶,歇一会吧!
------user 2 反复 打胶 +5------
你刚打了一胶,歇一会吧!
------user 2 反复 打胶 +6------
你刚打了一胶,歇一会吧!
------user 1 查牛子是否变了------
【牛子信息】
长度: 13.13厘米
最近被🔒时间: 21:11
最近被pk时间: 21:11
最近被打胶时间: 21:11
注册时间: 21:11
------user 1 反复自己打胶 +1------
牛子对你的付出很满意吗,增加0.72厘米
------user 1 反复自己打胶 +2------
牛子对你的付出很满意吗,增加1.33厘米
------user 1 反复自己打胶 +3------
牛子对你的付出很满意吗,增加1.04厘米
------user 1 反复自己打胶 +4------
牛子快被你冲炸了,改天再来冲吧!
------user 1 反复自己🔒自己 +1------
你的牛子太小了,还🔒不到
------user 1 反复自己🔒自己 +2------
你的牛子太小了,还🔒不到
------user 1 反复自己🔒自己 +3------
你的牛子太小了,还🔒不到
------user 1 反复自己🔒自己 +4------
你的牛子今天太累了,改天再来吧!
------user 1 pk 自己------
你不能和自己的牛子进行较量!
------user 1 🔒 自己------
你的牛子今天太累了,改天再来吧!
------user 1 打胶 自己------
牛子快被你冲炸了,改天再来冲吧!
------user 1 查牛子信息------
【牛子信息】
长度: 16.22厘米
最近被🔒时间: 21:11
最近被pk时间: 21:11
最近打胶时间: 21:11
最近被打胶时间: 21:11
注册时间: 21:11
------user 2 查牛子信息------
【牛子信息】
长度: 11.72厘米
最近被🔒时间: 21:11
最近pk时间: 21:11
最近打胶时间: 21:11
注册时间: 21:11
------user 1 隔日查牛子信息------
【牛子信息】
长度: 16.22厘米
最近被🔒时间: 21:11
最近被pk时间: 2020-01-01 00:00
最近打胶时间: 21:11
最近被打胶时间: 21:11
注册时间: 21:11
------user 1 🔒自己------
你的牛子还不够长,你🔒不着,牛子自尊心受到了伤害,缩短了0.54厘米
------user 1 查牛子信息------
【牛子信息】
长度: 25.00厘米
最近被🔒时间: 21:11
最近被pk时间: 2020-01-01 00:00
最近打胶时间: 21:11
最近被打胶时间: 21:11
注册时间: 21:11
------user 1 🔒自己 +1------
🔒的很卖力很舒服,你的牛子增加了0.95厘米
------user 1 🔒自己 +2------
🔒的很卖力很舒服,你的牛子增加了0.65厘米
------user 1 🔒自己 +3------
🔒的很卖力很舒服,你的牛子增加了0.61厘米
------user 1 🔒自己 +4 max------
你的牛子今天太累了,改天再来吧!
------user 1 🔒别人 max------
别🔒了,要口腔溃疡了,改天再🔒吧!
------user 1 打胶 user 2 max------
你刚打了一胶,歇一会吧!
------user 1 查牛子信息------
【牛子信息】
长度: 27.21厘米
最近被🔒时间: 21:11
最近被pk时间: 2020-01-01 00:00
最近打胶时间: 21:11
最近被打胶时间: 21:11
注册时间: 21:11

Botoy

  pip install -r requirements.txt

botoy 插件入口文件 __init__.py ,配置如下:

// botoy.json
{
  // 白名单群组(开启本功能的群组)
  "chinchin_system.groups": [123456, 654321]
}

同时,由于 botoy 自动加载插件只会识别 bot_ 开头的文件夹,clone 本仓库后,请将文件夹名字改为 bot_xxx ,比如 bot_chinchin

独立使用

核心逻辑和 botoy 是解耦的,请参见 src/*

目录结构

./src
├── config.json # 配置文件,每次修改后需要重启
├── config.py
├── db.py       # 数据库实现,目前是 sqlite ,如需更好的性能,可使用连接池、改为其他数据库
├── impl.py     # 消息实现,对接你的 Bot 发消息函数
├── main.py     # 程序入口函数 message_processor
└── utils.py

使用时,你要做两件事:

实现 src/impl.py 中的发送消息函数,对接你的 Bot 发送消息函数,请自行实现。

函数签名为:

def impl_at_segment(qq: int):
  # 实现 at 部分,可以不实现
  return nickname or at_msg

def impl_send_message(qq: int, group: int, message: str):
  # 实际发送的逻辑...
  return

接入 Bot 收消息入口到 src/main.py 中的 message_processor 函数:

def message_processor(
  # 消息主体内容,去掉 at
  message: str,
  # 来源账号
  qq: int,
  # 来源群组
  group: int,
  # at 了谁,若没 at ,无需传递
  at_qq: Optional[int] = None,
  # nickname ,用户昵称 or 群昵称,用于排行榜
  nickname: Optional[str] = None,
  # 实现 at 消息部分
  impl_at_segment,
  # 实现发送消息部分
  impl_send_message
):
  # ...

其他

  1. 若部分逻辑不符合对接要求,可以自行修改。

  2. 欢迎 PR 实现更多功能补充,请搜索代码中的 TODO

从 v1 迁移

由于速度问题,v2 使用了 sqlite 的数据库实现,所以从 v1 迁移到 v2 只需要运行数据库迁移脚本即可。

迁移方法

首先,拉取本仓库最新代码,运行:

  python ./scripts/database_migrate_python/migrate.py

这会将你的 src/data/*.json 全部迁移到 src/data-v2/data.sqlite ,并且自动备份 src/data/*src/data-v1-backup/* ,查看 data.sqlite 没有问题后,可以删除 src/data 文件夹。

License

MIT