在浏览 ASF Github 的时候发现了有 ASF 作者 JustArchi 参与封装的 python 版 ASF API  deluxghost / ASF_IPC

A simple asynchronous Python 3.6+ wrapper of ArchiSteamFarm IPC API

Powered by aiohttp, ASF_IPC is now fully asynchronous. Synchronous methods are no longer supported. ASF_IPC resolves APIs automatically from the new swagger API of ASF, so ASF_IPC always has the latest APIs data as long as ASF is updated.

本来打算用 pyTelegramBotAPI 写一个只包含 redeem 和 addlicense 指令的机器人,配合 azhuge233 / SteamDB-FreeGames (或 azhuge233 / SteamDB-FreeGames-dotnet)更加快速便捷地喜加一。但 ASF_IPC 使用了 asyncio 异步,而 pyTelegramBotAPI 对异步支持不是很好(我又懒得学支持异步的 TelegramBot 库),遂作罢

ASF_IPC 的作者同时给出了现成的使用此库实现的 Telegram 机器人 deluxghost / simple-asf-bot

Send commands to ASF in Telegram.

simple-asf-bot 需要 python 3.6 以上版本,并基于 Telegram 异步机器人 aiotg 和 ASF_IPC

下文将部署 simple-asf-bot

环境

  • Debian Buster
    • PVE 5.4.44-2

参考

步骤

PVE 基于 Debian 10,其自带了 3.6 以上版本的 python

  1. 下载源码
    • 执行
      git clone https://github.com/deluxghost/simple-asf-bot.git
  2. 安装依赖
    • 执行
      cd ./simple-asf-bot
      python3 -r ./requirements.txt
  3. 配置运行信息
    • 打开 simple-asf-bot 根目录的 simple.conf,填写
      • bot_token(机器人 token)
      • admin_id(你的 Telegram 账号 ID)
      • address(部署 ASF 机器的 IP)
      • password (ASF 登录密码)
  4. 测试运行
    • 执行
      python3 ./simple.py ./simple.conf
  5. 设置系统服务(systemd)
    • 为了方便管理(开机启动、查看日志),建议注册 simple-asf-bot 为系统服务
    • /etc/systemd/system/ 下新建配置文件 ASFIPC.service,写入以下内容
      [Unit]
      Description=Teletgram ASF Bot
      After=network-online.target
      
      [Service]
      User=root
      ExecStart=/usr/bin/python3 [your path]/simple.py [your path]/simple.conf
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
    • 启动服务并设置开机自启,执行
      systemctl enable ASFIPC.service
      systemctl start ASFIPC.service
    •  查看运行情况,执行
      systemctl status ASFIPC.service
  6. 直接将指令发送至 Telegram Bot 即可
    • 不需要添加 Telegram 机器人指令的斜杠 “/”,simple-asf-bot 中使用的正则不会检测斜杠
    • simple-asf-bot 接受 ASF 的所有指令,因为其只是将指令字符串发送到 ASF 的 API,再将执行结果字符串传回 Telegram Bot,中间没有进行二次加工

Continue reading “Telegram Bot 管理 ArchiSteamFarm”

Reference

Description

This error happened right after I used apt to install MySQL 5.7 in Ubuntu 18.04, when I tried to log in as root, the error message shows

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

Then I checked debian.cfg file located in /etc/mysql/, the file shows the user is debian-sys-maint, and the password is random generated. I can log in MySQL using this account. Continue reading “ERROR 1698 (28000): Access denied for user ‘root’@’localhost’”