Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tsugu

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tsugu

Tsugu Python Frontend

  • 6.0.0
  • PyPI
  • Socket score

Maintainers
1

Tsugu B3

tsugu

✨ User (Natural language) -> ^^^^^ -> Tsugu BanG Dream Bot

license license license


📦 Install

pip install tsugu

API powered by tsugu-api-python

Command matching provided by Alconna


🚗 App

项目说明
Tsugu QQ 官方机器人主力项目
Tomorin 私家机器人私家车,基于标准用户数据库
一个 NoneBot 插件无人维护,不如去用这个
lgr-py Tsugu无人维护,似了

📜 Feat

  • 为改善用户体验,本包与 koishi 插件 在部分行为上略有不同。
    • 默认不需要命令头后跟上完整的空格(可关闭)。
    • 绑定玩家 解除绑定 刷新验证吗 等自验证策略。
    • 基于 Alconna 的真 “可选参数” 。
    • 车站相关功能不主动支持绑定账号的配队信息,但被动渲染车站给出的配队信息。
    • 参数错误时输出完整的命令帮助信息。
    • 略有不同的车站屏蔽词策略。
    • 增加 上传车牌 命令,但仍然支持自动从文本开头提取车牌。
    • 主账号解除绑定 的不同行为。
  • 争议功能
    • 暂时支持 玩家状态 <serverName> 策略
    • 暂不支持 shortcut类指令
      • 暂不支持 国服模式 国服玩家状态 等指令
      • 而应该使用 主服务器 国服 玩家状态 国服 等指令式响应。
    • 暂不支持 Tsugu 内部车站互通,只通 bangdori station
  • 为了适应官方 BOT 的特性,本包提供了隐式一些非通用方法。
    • 当解除绑定用户数据库返回特定值时会被认定为安全模式,触发直接解除绑定操作。

📚 Async & Higher-Order Function

cmd_generator 是一个异步方法,用于直接处理用户输入的自然语言并处理,调用传入的 send_func 发送结果

  • message (str):用户输入的自然语言
  • user_id (str):用户的 channel_iduser_id,当 platformredchronocatonebot 时,该值一般为用户 QQ 号
  • platform (str):用户的平台(默认值:red
  • send_func(Awaitable):期望一个接受 result 参数的异步方法,用于发送结果,具体需要实现的方法请参考下方示例
import asyncio
import base64
import io
from PIL import Image
from tsugu import cmd_generator
from loguru import logger

  async def _test_send(result):
      if isinstance(result, list):
          if not result:
              logger.error("没有返回数据")
              return
          for item in result:
              if item["type"] == "string":
                  logger.success("\n" + item['string'])
              elif item["type"] == "base64":
                  i = base64.b64decode(item["string"])
                  logger.warning(
                      "\n" + f"[图片: 图像大小: {len(i) / 1024:.2f}KB]"
                  )
                  img = Image.open(io.BytesIO(i))
                  img.show()
      if isinstance(result, str):
          logger.success("\n" + result)


asyncio.run(cmd_generator(message='查卡 ksm', user_id='114514', send_func=_test_send))

✏️ Config

配置方式

  • 通过环境变量 linux & macos

    export TSUGU_COMPACT=false
    ...
    

    windows

    set TSUGU_COMPACT=false
    ...
    
  • 通过 .env 文件

    TSUGU_COMPACT=false
    ...
    

可配置项

# 命令头后是否必须跟上完整的空格才能匹配,例如 `查卡947` 与 `查卡 947` 。(默认值:false)
TSUGU_COMPACT=false 

# 设置请求超时时间(默认值:120秒)
TSUGU_TIMEOUT=120

# 设置代理地址(默认值:空字符串)
TSUGU_PROXY=''

# 设置后端地址(默认值:http://tsugubot.com:8080)
TSUGU_BACKEND_URL=http://tsugubot.com:8080

# 设置是否使用后端代理(默认值:true)
TSUGU_BACKEND_PROXY=true

# 设置用户数据后端地址(默认值:http://tsugubot.com:8080)
TSUGU_USERDATA_BACKEND_URL=http://tsugubot.com:8080

# 设置是否使用用户数据后端代理(默认值:true)
TSUGU_USERDATA_BACKEND_PROXY=true

# 设置是否使用简易背景(默认值:true)
TSUGU_USE_EASY_BG=true

# 设置是否压缩返回数据(默认值:true)
TSUGU_COMPRESS=true

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc