Skip to main content

Tsugu Python Frontend

Project description

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsugu-6.0.0.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

tsugu-6.0.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file tsugu-6.0.0.tar.gz.

File metadata

  • Download URL: tsugu-6.0.0.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for tsugu-6.0.0.tar.gz
Algorithm Hash digest
SHA256 b73f69289388d223e18f71f72238ee909e7885415fa43d7b2ecea44eda00bd63
MD5 9da741a1c9d9eede63c386526e635567
BLAKE2b-256 306f728d5ec3baaa2ba80c19315a1c49b3047ca9581dc788426fe677f2e2c1dd

See more details on using hashes here.

File details

Details for the file tsugu-6.0.0-py3-none-any.whl.

File metadata

  • Download URL: tsugu-6.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for tsugu-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed0c7bf6381a0765aa80986e5ff6e9047528719b0478abc58148f60f0b5e3771
MD5 f17bec14cafad409f7355d00009dbf54
BLAKE2b-256 aac0668b878ef6d67aada56c0198b3488654f3c2fef0594e20ed29c72f84507e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page