#mastodon #fediverse #bot #activity-pub #server-api #simple #message-sent

app pravda

一个通过Mastodon API连接到fediverse实例并托管社交游戏的机器人。

4个版本

0.1.3 2023年10月31日
0.1.2 2023年10月25日
0.1.1 2023年10月20日
0.1.0 2023年10月17日

游戏 中排名 87

GPL-3.0 许可证

37KB
669

Pravda:社交网络的社交游戏。

这是一个功能性的机器人包,您可以使用它连接到Mastodon服务器(或提供类似API的服务器)以运行社交游戏。目前它可以用来玩剪刀石头布或掷骰子。代码是模块化编写的,因此添加新游戏相对容易。

Game trait定义了游戏的行为,包括用于设置的关联方法new,以及接收用户推文并负责推进游戏状态的方法next。每个游戏都会收到每条消息,并且必须能够丢弃与它无关的任何内容。

有一些常量可以远程使用推文关闭机器人。ADMIN包含管理账户,QUIT包含退出消息,必须以提及机器人的方式发送,而INSTANCE包含要连接的实例的URL。目前,它默认使用我的fedi账户,并使用消息!QUIT!,但在部署时您应该进行自定义。默认实例是botsin.space,一个适合机器人的实例,但如果您想在其他地方运行它,则应更改此设置。

请注意,在尝试授权机器人之前,您必须在实例上拥有有效的账户。

首次运行。

确定您想执行游戏的位置,并确保您有写入权限。游戏将连接到实例并尝试建立OAuth流程,要求您访问链接并使用您的Mastodon/fedi账户授权应用程序。

完成此操作后,信息将写入到toml文件中,该文件应该保持私有,因为它包含一个令牌,允许对授权的账户几乎完全控制。

在后续运行中,如果遇到此文件,则将从其中读取信息并建立连接,无需人工干预。

限制。

目前无法将此客户端连接到GoTosocial。Mastodon-async不使用fedi的WebSocket端点进行流传输,而是使用SSE端点。GoToSocial仅实现了流操作中的WebSocket端点。

当然,它支持HTTP和HTTPS,默认通过rustls-tls使用。您可以通过修改Cargo.toml中的功能将其更改为OpenSSL。

未来的目标。

我对实现任何类型的社交游戏感兴趣,这里所说的社交游戏是指那些涉及社交互动、欺骗、预测等游戏。具体来说,我感兴趣的游戏如下:

其中一些游戏需要更有趣的名字。

在fedi上运行一个nomic会很棒,但这超出了机器人本身的能力范围。

错误报告、功能请求、代码贡献以及其他反馈。

如果您想告诉我有关该仓库的信息,最佳方式是:

变更日志。

  • V 0.1.3:可以使用dice命令掷骰子,接受ndm可选参数。
  • V 0.1.2:为流式API失败的情况设置指数退避系统。各种错别字更正。
  • V 0.1.1:在toot流中设置一个循环,以防出错。
  • V 0.1.0:初始发布。

依赖项

~15–28MB
~506K SLoC