今天改了下载贴纸的功能,计划是支持将 .tgs 格式的贴纸转换成 GIF 下载,下载单个贴纸的功能是写好了,但是会破坏掉下载贴纸包的功能,就暂时还没有更新
更新之后下载贴纸包就可以支持下 png webm 和 tgs 三种贴纸,不像之前只能下 png 了,不过因为服务器性能原因,肯定会限制使用量就是了
更新之后下载贴纸包就可以支持下 png webm 和 tgs 三种贴纸,不像之前只能下 png 了,不过因为服务器性能原因,肯定会限制使用量就是了
🥰1
trbot Channel
下载单个贴纸的功能是写好了,但是会破坏掉下载贴纸包的功能,就暂时还没有更新
今天傍晚开始其实已经更新了,途中打包转换视频和动画贴纸的功能也能用
但我发现我忘了 Telegram Bot 官方 API 服务器的限制,上传限制 50 MB,就算是动画贴纸转换出来至少也有 1 MB,打包是成功了,但是超过上传文件大小就发不出去...
于是现在:
但我发现我忘了 Telegram Bot 官方 API 服务器的限制,上传限制 50 MB,就算是动画贴纸转换出来至少也有 1 MB,打包是成功了,但是超过上传文件大小就发不出去...
于是现在:
可以下载静态、视频和动画三种贴纸
暂时禁用了贴纸包下载(两种都禁用了)
当一个贴纸包被频道收藏时,每个人都可以看到一个链接指向收藏频道
❤1
机器人连续运行了好几天,今天看了看日志,并没有什么严重的错误,倒是发现当有用户连续下贴纸时,没做缓存目录区分,导致会下到错误的贴纸,要把下载贴纸写成队列才行
teamspeak 插件的轮询重连过程卡住的问题知道个大概了,尝试从数据竞态的方面修一修,如果进度顺利的话还能开放多实例,每个群组都能绑定一个自己的服务器,而不需要自建机器人
teamspeak 插件的轮询重连过程卡住的问题知道个大概了,尝试从数据竞态的方面修一修,如果进度顺利的话还能开放多实例,每个群组都能绑定一个自己的服务器,而不需要自建机器人
trbot Channel
但我发现我忘了 Telegram Bot 官方 API 服务器的限制,上传限制 50 MB,就算是动画贴纸转换出来至少也有 1 MB,打包是成功了,但是超过上传文件大小就发不出去...
现在下载贴纸包功能回来了,至于转换后大于 50 MB 的贴纸包嘛,我没打算去自建 Bot API 服务器,就甩一个链接好了
trbot Channel
当有用户连续下贴纸时,没做缓存目录区分,导致会下到错误的贴纸
这个问题我都忘了修没修了,估计是修了
现在给下载贴纸和贴纸包都加了互斥锁,差不多等于队列吧... 不过没有队列提示,如果其他用户正在下贴纸包,机器人对贴纸暂时没有响应是正常的
现在给下载贴纸和贴纸包都加了互斥锁,差不多等于队列吧... 不过没有队列提示,如果其他用户正在下贴纸包,机器人对贴纸暂时没有响应是正常的
trbot Channel
teamspeak 插件的轮询重连过程卡住的问题知道个大概了,尝试从数据竞态的方面修一修
这个加了互斥锁,似乎还是会发生问题,在于调用 teamspeak 库的 close 方法时有概率会一直卡住,它也不吃上下文超时的影响,没有头绪了
trbot Channel
这个问题我都忘了修没修了,估计是修了 现在给下载贴纸和贴纸包都加了互斥锁,差不多等于队列吧... 不过没有队列提示,如果其他用户正在下贴纸包,机器人对贴纸暂时没有响应是正常的
贴纸这个改了改,虽然限制还在,但是在需要等待的时候会得到一个提示,不至于觉得机器人似掉了
同时优化了一下下载贴纸包时的逻辑,如果下载的是已经打包过的贴纸,会直接跳过之前先遍历一遍本地文件的过程
当贴纸包有更新时,也能区分有变动的部分贴纸,之前是只看贴纸数量,如果之前下载过这个贴纸包,但后面这个贴纸包删了一个又加了一个,总数没变,下载时就不会再出现下不到新贴纸的情况了
同时优化了一下下载贴纸包时的逻辑,如果下载的是已经打包过的贴纸,会直接跳过之前先遍历一遍本地文件的过程
当贴纸包有更新时,也能区分有变动的部分贴纸,之前是只看贴纸数量,如果之前下载过这个贴纸包,但后面这个贴纸包删了一个又加了一个,总数没变,下载时就不会再出现下不到新贴纸的情况了
同时修复了检测关键词在通知用户时,如果触发关键词的消息太长,加上原本的格式化信息后可能超出 Telegram 单条信息文本长度限制(4096 个字符),导致没法发送出通知的问题
至于解决方法其实就是直接将原消息的长度砍到最长 2048 个字符,因为格式化信息说不准用户和群组或频道的昵称会有多长,还是设一个保守一点的数值比较好
至于解决方法其实就是直接将原消息的长度砍到最长 2048 个字符,因为格式化信息说不准用户和群组或频道的昵称会有多长,还是设一个保守一点的数值比较好
今天简单更新了一下,主要是限制了贴纸数量大于 120 个的贴纸包的打包下载功能
目前普通用户创建的贴纸包最大限制都是 120 个,只有 AnimatedEmojies 这个贴纸包有将近六百个贴纸,今天有用户点到下载这个贴纸包,直接让机器人一直忙着下载这个贴纸包,其他用户想下其他贴纸都得等着,就紧急更新了一下
至于普通贴纸包是没有影响的,因为我还没见过有第二个超过 120 个贴纸的贴纸包
其次就是把 mp4 贴纸转换成 GIF 的功能也算到了下载贴纸队列里,因为服务器性能原因嘛,只能这样限制了
目前普通用户创建的贴纸包最大限制都是 120 个,只有 AnimatedEmojies 这个贴纸包有将近六百个贴纸,今天有用户点到下载这个贴纸包,直接让机器人一直忙着下载这个贴纸包,其他用户想下其他贴纸都得等着,就紧急更新了一下
至于普通贴纸包是没有影响的,因为我还没见过有第二个超过 120 个贴纸的贴纸包
其次就是把 mp4 贴纸转换成 GIF 的功能也算到了下载贴纸队列里,因为服务器性能原因嘛,只能这样限制了
最近大家下贴纸包的有点多,而且有些贴纸包都是动图,转换后每个贴纸包存起来有大约 200MB,服务器空间有点不够用了。为了保证机器人正常运行,我需要保证服务器硬盘有空余
大家若在下载贴纸包时发现机器人给的是链接而不是文件时,若有需要请尽快下载,之后贴纸包会按着时间先后顺序来逐步清理
也就是代表这些下载链接会更快的过期
大家若在下载贴纸包时发现机器人给的是链接而不是文件时,若有需要请尽快下载,之后贴纸包会按着时间先后顺序来逐步清理
也就是代表这些下载链接会更快的过期
trbot Channel
计划在月底公开代码仓库
显然我觉得还没有写完,但后面可能空闲时间没那么多了,如果有人感兴趣的话,可以来这看看
https://gitea.trle5.xyz/trle5/trbot
注:如果想基于这个机器人开发插件的话,目前还不推荐,可能后续还会有不少破坏性改动
今天发现了一个问题,当用户在 @stickers 机器人创建贴纸包时,贴纸包的 setName 长度最长是 62 个字符
而其他贴纸 bot 也可以创建贴纸包,但是 setName 需要以
但是其他贴纸 bot 创建的贴纸包 setName 长度最长可以 64 个字符,例如 神秘紫毛 2 @ACG_Arts 贴纸包
机器人发贴纸时,机器人会回一个带有按钮的消息,用来下载贴纸包,而这些按钮的作用本质是不同的字符串信息,叫做 callback query,这个也有长度限制,最大是 64 个字符
因为功能多,我就不可能把这 64 个字符都留给下贴纸包的功能,我需要加一个前缀来分辩这个按钮触发的是什么功能,而之前我以为贴纸包 setName 上限就是 62,就留了两个字符判断,而今天这个情况就会导致 2 + 64,超出 64 个字符串的限制,发送消息失败,就下不到贴纸
得改一下了,把贴纸包的 setName 缓存起来,通过 ID 来下载
而其他贴纸 bot 也可以创建贴纸包,但是 setName 需要以
_by_@botname 结尾,根据机器人的用户名长度,实际上可用的字符数量是不如前者多的但是其他贴纸 bot 创建的贴纸包 setName 长度最长可以 64 个字符,例如 神秘紫毛 2 @ACG_Arts 贴纸包
机器人发贴纸时,机器人会回一个带有按钮的消息,用来下载贴纸包,而这些按钮的作用本质是不同的字符串信息,叫做 callback query,这个也有长度限制,最大是 64 个字符
因为功能多,我就不可能把这 64 个字符都留给下贴纸包的功能,我需要加一个前缀来分辩这个按钮触发的是什么功能,而之前我以为贴纸包 setName 上限就是 62,就留了两个字符判断,而今天这个情况就会导致 2 + 64,超出 64 个字符串的限制,发送消息失败,就下不到贴纸
得改一下了,把贴纸包的 setName 缓存起来,通过 ID 来下载
trbot Channel
今天发现了一个问题,当用户在 @stickers 机器人创建贴纸包时,贴纸包的 setName 长度最长是 62 个字符 而其他贴纸 bot 也可以创建贴纸包,但是 setName 需要以 _by_@botname 结尾,根据机器人的用户名长度,实际上可用的字符数量是不如前者多的 但是其他贴纸 bot 创建的贴纸包 setName 长度最长可以 64 个字符,例如 神秘紫毛 2 @ACG_Arts 贴纸包 机器人发贴纸时,机器人会回一个带有按钮的消息,用来下载贴纸包,而这些按钮的作用本质是不同的字符串信息,叫做…
修好了,把贴纸包名称长度大于 62 的贴纸包创建一个数组存起来,然后 callback query 里放 ID 来索引原本的贴纸包名称,其他的过程照旧就修好了
trbot/commit/65b929eee9
trbot/commit/65b929eee9
最近没写什么更新信息也确实没更新什么
近期不知道为什么 bot 被当成私信 bot 了,现在数据库里一堆广告号的信息,使用倒是没什么影响,但保存数据库的时候因为 map 和广告消息,基本上保存一次就得吃 40MB+ 内存,虽然有垃圾回收嘛对运行也没什么影响,但就是看着膈应
最近也是没什么时间考虑这个,或许得学学 SQL 用点正经的数据库了
近期不知道为什么 bot 被当成私信 bot 了,现在数据库里一堆广告号的信息,使用倒是没什么影响,但保存数据库的时候因为 map 和广告消息,基本上保存一次就得吃 40MB+ 内存,虽然有垃圾回收嘛对运行也没什么影响,但就是看着膈应
最近也是没什么时间考虑这个,或许得学学 SQL 用点正经的数据库了