开个串记录和 Mastodon 版「有猫」有关的琐事。   
因为 Mastodon 宇宙相比饭否而言太大,所以会对有猫的数据来源做限定,一方面是避免打扰无兴趣的 Universe,另一方面是控制成本(毕竟兴趣项目)。

目前决定包含的 Universes 包括:
- nofan.xyz
- alive.bar
- me.ns.ci
- o3o.ca

如需补充只需回复此串告诉我服务器域名

信息流抓取将使用 Mastodon 的 streaming API 实现,在各 instance 上创建一个 app 来精确获取 local timeline。目前实现进度:
- nofan.xyz 可成功抓取信息流
- alive.bar 可成功抓取信息流
- me.ns.ci 可注册 app,但使用网站所提供的 access token 会得到 invalid access token 的提示;已报告,等待 instance owner 协助中。
- o3o.ca 可成功抓取信息流

cc @storm 我在 tg 群也留言了,如果方便的话希望可以得到 access token 方面的协助。感谢!

开源吧,能搞多快我尽力。。

https://gitlab.com/mogita/yocat

mogita / yocat · GitLab

https://mog.blue/@yocat

GitLab
饭否版「有猫」代码看似分层,实则屎山,没法加功能,干脆重写。
我看我是写 Go 写魔怔了
测一下
再测一次
再再测一次
好了,有猫 @yocat 跑通了,然而可能还有些跨站转发的潜在问题。。
原来跨站转发比设想的要复杂一丢丢。有猫本体注册在 mastodon.social,目前在各个实例启动一个 stream listener 的做法会导致本体拿不到远程消息在本地的 ID(太拗口了),所以无法直接转发。接下来需要找到一个办法,实现既能读到各个远程实例的信息流,又能顺利拿到正确的转发 ID,也就是说要让远程 toot 落到本体所在的服务器上。
目前的思路是让有猫在各个实例关注一两个账号,并依靠联邦 stream 读取本地+远程的信息流,这样既能获得所有信息流,又能使远程 toot 落在本地数据库并生成本地 ID。有个不确定性就是联邦 timeline 会不会漏消息,如果会就比较铃铛疼。但总比完全无法转发还是好一丢丢。。
思路可行。写 CI/CD 准备部署咯。。
另外加上了 mastodon.social 这个 instance
有猫 @yocat 部署完毕,发几个猫儿试试看
有猫 @yocat 即将支持 opt-out 和重新 opt-in 的方式:给有猫私信说 out 或者 in 即可。当你 opt-out 之后有猫便不再尝试识别你发送的图片或视频等媒体了,但不会影响已转发过的消息。

提及 @yocat 并发送消息「out」就可以 opt-out,有猫便不再尝试识别你发送的图片或视频等媒体;反之,发送「in」则可以恢复识别。

你也可以点击下方的链接快速操作:

opt-out: https://mastodon.social/share?text=@yocat+out

opt-in: https://mastodon.social/share?text=@yocat+in

@yocat 的调用次数在四月底突然上了个台阶,日识别量突破了一万次。莫非是 Mastodon 做了什么调整?
@mogita 求一个有狗
@dujiacun 很犹豫要不要启动有狗,从饭否版的运行情况来看狗子识别错误率比较高,甚至会把人物判定为狗。。
@mogita 哈哈哈哈哈哈哈哈哈
@mogita 铃铛疼哈哈哈哈哈哈哈哈
@cubicPlanet 是不是很文明呢:gargamel: :gargamel: :gargamel: