博文

目前显示的是标签为“Telegram”的博文

修改 forkgram/tdesktop 实现 设置全体群组和channel 静音 mute all

图片
前言 我加了很多群和频道, 我喜欢设置群和频道为静音状态. 但是, 一个一个右键菜单设置也太费操作了. 那么, 有没有什么批量设置的方法呢? 面向GPT开发 Herems 对接 mimo-v2.5-pro 在 https://github.com/crazypeace/forkgram-tdesktop 基于 dev 新开一个 branch feat-mute-all 新建一个yml文件, 基于这个branch编译 分析 对话分组Folder 右键菜单  Mark as read 的工作流程 分析 单个对话 右键菜单 Mute forver 的工作流程 在 对话分组Folder 右键菜单 添加一个新功能 "Mute All" 工作流程是遍历这个对话分组Folder 中的每个对话, 设置"Mute forever" 测试1 启动程序, 测试. 发现没有生成新功能. 向Agent反馈测试结果, Agent说 Folder 在侧边栏和顶部 是不同的代码, 刚刚的修改是针对顶部的.  于是又为了侧边栏添加代码, 增加功能入口. 效果 Github https://github.com/crazypeace/forkgram-tdesktop/tree/feat-mute-all

修改 forkgram/tdesktop 实现 有@我消息的群 置顶 效果和PrimaryUnmutedMessages一样

图片
前言 Forkgram 有个功能 PrimaryUnmutedMessages 很适合对于一些群, 有任何新消息你都重点关注. 如, 但是我有一种情况, 我不关注这个群的每条新消息, 我只关注这个群里面 @我的消息. 怎么办呢? 面向GPT开发 Herems 对接 mimo-v2.5-pro 在 https://github.com/crazypeace/forkgram-tdesktop 基于 dev 新开一个 branch at-me-on-top 新建一个yml文件, 基于这个branch编译 分析 forkgram 在显示对话分组时的代码逻辑 着重分析, 如何知道  对话是否在分组中置顶,  对话有多少未读,  对话是否设置为mute, 对话中是否有人react emoji给我, 对话中是否有人at我. 分析 在显示对话分组时的排序优先级 当群组中有人@我时, 产生和 PrimaryUnmutedMessages 一样的效果 同意 方案A, 请实施. 但 Agent 实际上干活又不是方案A的修改, 改了另一个地方. 效果  可以看到除了原有的未读群组置顶的效果以外, 还增加了 @我消息的群 置顶的效果. Github  https://github.com/crazypeace/forkgram-tdesktop/tree/at-me-on-top

修改 forkgram/tdesktop 实现不查看某人的头像

图片
前言 某些人的头像18X 或者 是那种闪来闪去的动图 瞎眼睛. 所以需要屏蔽显示头像. 面向GPT开发1 Herems 对接 mimo-v2.5-pro 在 https://github.com/crazypeace/forkgram-tdesktop 基于 dev 新开一个 branch ban-avatar-pic 新建一个yml文件, 基于这个branch编译 分析代码 显示 avatar 图片的场景. 包括但不限于: 在群消息中显示, 在profile窗口显示, 在profile窗口点了avatar图片后全屏显示 讨论, 如果我希望某个用户的avatar图片显示时, 就和没有设置avatar图片一样的处理逻辑. 最高效的修改方式是怎样的? 采用 方案 A:在 PeerData 层拦截, 判断方式为该用户是否被blocked.  * 我就用 blocked 用户列表简单演示一下基本功能.  效果 群消息还显示头像, 点开 profile 窗口也显示头像.  不过profile 窗口的头像点不出来全屏显示了. 面向GPT开发2 向 Agent 描述了测试结果. Agent又分析了一圈, 说还有个函数要改. 效果 一打开群链接, 看到了群消息, 是能看到应该屏蔽的头像图片的. 但是点击 群消息的头像, 打开 profile 窗口之后, 头像就按未设置的样子显示了, 群消息里也不显示头像了. 面向GPT开发3 向 Agent 描述了测试结果. Agent又分析了一圈, 说 用户的 blocked 状态是慢加载的. 我换了一种方法验证. 先打开 Settings - Privacy and Security - Blocked users 加载了 blocked 用户列表后. 再打开群链接, 就能看到群消息的头像是按期望被屏蔽的. * 好吧. 只是演示一下基本功能, 我决定就做到这个样子为止了. 演示效果 Github https://github.com/crazypeace/forkgram-tdesktop/tree/ban-avatar-pic

修改 forkgram/tdesktop 移植 Ayugram 的屏蔽某个用户消息的功能(Fully Hide Messages from Blocked Users)

图片
前言 我想使用 Ayugram 的屏蔽某个用户消息的功能(Fully Hide Messages from Blocked Users). 但是觉得Ayugram对原版的修改太多, 而且有些功能明显与原版对着干, 担心被封账号. 所以我想把这个特定的功能 移植 到 Forkgram 上面. 面向GPT开发 Herems 对接 mimo-v2.5-pro 分析  Ayugram  项目 分析 https://github.com/AyuGram/AyuGramDesktop 与 源项目的不同之处, 哪些代码实现了过滤用户发言的功能? 聚焦  隐藏被屏蔽用户消息 这一功能, 分析完整的功能实现流程, 注明涉及的源文件及行数 把你分析的内容总结 为 .md 报告 在  Forkgram  上面开发 在 https://github.com/crazypeace/forkgram-tdesktop 新开一个 branch feat-hide-msg-from-blocked-users 新建一个yml文件, 基于这个branch编译 在 feat-hide-msg-from-blocked-users 分支上进行开发 功能: 在群组消息显示时, 屏蔽某个用户消息(Fully Hide Messages from Blocked Users) 参考分析报告 /root/ayugram-filter-analysis.md 同意你的修改方案,  实施优先级改动一下:  优先级 1  isHidden() - 主入口                 resizeContentGetHeight() - 已有检查 优先级 2  notificationText() - 通知预览  reply/quote - 回复引用         dialogs_layout - 对话预览      优先级 3 send_action - 输入状态         dialogs...

从forkgram/tdesktop github action编译 win10 amd64 二进制文件

图片
前言 我想使用 Ayugram 的屏蔽某个用户消息的功能(Fully Hide Messages from Blocked Users). 但是觉得Ayugram对原版的修改太多, 而且有些功能明显与原版对着干, 担心被封账号. 所以我想把这个特定的功能 移植 到 Forkgram 上面. 第一步当然是 从forkgram/tdesktop github repo编译 win10 amd64 二进制文件 不过, 这个过程并没有我想象中的顺利, 所以我单独保存为一篇blog 实践 Herems 对接 mimo-v2.5-pro https://github.com/crazypeace/forkgram-tdesktop 是 对 https://github.com/forkgram/tdesktop 的一份 fork 你调用项目中的 github action 编译一份 win10 amd64 环境的二进制 我以为项目里的action应该是成功的, 但其实是失败的. 而且每编译一次需要的时间还不短(1.5h 到 2h) 在此, 记录一些重要的交互 你会用到下面这些数据, 这些数据只能写到 github secret 里, 不能暴露在项目中. App api_id: xxxxxxxxx App api_hash: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 不考虑 win7 兼容性, 只考虑 win10 amd64环境 过程中还有一些其它修正, 但是我是让 Agent 自己去根据报错信息自己修正的. 最终的 action 文件 https://github.com/crazypeace/forkgram-tdesktop/blob/dev/.github/workflows/win.yml ======== 后记 全新编译需要时间  4h 19m 33s 修改代码后的再次编译 (利用以前编译的action cache) 时间  2h 3m 11s 理论上说, 小改了一下代码再编译不应该要这么久. 我在 VPS 上改动代码后再编译也不需要这么久.  不知道 github action 文件需要做哪些设置. 我已经问了一遍 免费版的国内AI了, 没有好答案. 希望有大佬出手解惑.

修改 telegram 弹出emoji窗口的大小

图片
前言 之前 我们实现了编译 forkgram/tdesktop https://zelikk.blogspot.com/2026/06/oracle-arm-vps-2cpu-12ram-47hdd-forkgram-tdesktop-aqtinstall-qt.html https://zelikk.blogspot.com/2026/06/2g-x86-vps-forkgram-tdesktop-swap-8g.html 那么, 实验一下能不能用自然语言指挥 Agent 帮我修改 telegram 吧! 比如, 鼠标移到emoji按钮上时, 自动弹窗, 我想让这个弹窗高度是现有的一半, 宽度是现有的2/3. 面向GPT开发 先完成 forkgram/tdesktop 项目的编译, 略. Herems 对接 mimo-v2.5-pro 把 telegram运行起来, 截个图看看. Agent 装了 Xvfb, 截了个图 开个VNC, 让我连上去操作 Agent开了个VNC, 我连上去, 完成登录Telegram账户的操作. 现在我已经登录了, 你看一下界面 Agent 说看到了.  注意界面右下角的 emoji 按钮, 它在语音输入按钮的左边 当我把鼠标移到 emoji 按钮上时, 会弹出一个 emoji, stiker, gif 选择窗口. 我需要你修改 forkgram 的代码, 将这个弹出窗口的高度改为原来的 1/2, 宽度改为原来的 2/3 Agent 开始分析代码, ... , 说"找到了!定义在 chat_helpers.style 文件中: 现在修改尺寸: - 宽度: 345px × 2/3 = 230px - 最小高度: 278px ÷ 2 = 139px - 最大高度: 640px ÷ 2 = 320px" 改完之后, 让Agent编译生成新的二进制文件, 运行起来, 开VNC让我操作. 验收效果: 完

2G内存 x86_64 VPS 编译 forkgram/tdesktop 内存不够 改大 swap 空间 编译成功 但时间很长

图片
前言 我的VPS配置 2 vCPU  2GB RAM 120GB Disk 想编译 https://github.com/forkgram/tdesktop 项目 面向GPT开发 Hermes 对接 mimo-v2.5-pro 把 https://github.com/forkgram/tdesktop clone到本地, 并完成编译 尝试了几次, 总是失败 分析一下你做过了什么, 得到什么结果 发现需要 40+ 外部库 (ada, openssl, ffmpeg, qt, webrtc...) 这些库需要预先编译安装到 /usr/local 或 ../Libraries - 这个过程只能全部成功或全部失败吗? 能不能一个一个编译? Agent 改为一个一个编译. 结果在编译 qtgui 的时候内存爆了, 编译中止. 后来 agent 找到办法, 安装Qt, 然后 DESKTOP_APP_USE_PACKAGED=ON Qt就不用编译了. 然后, 完成了 tg_owt (WebRTC) 的编译. 但还是, 在最终生成 telegram 时内存爆了. 尝试 方案 改大 swap 空间 改成 4GB, 还是爆内存 改成 8GB, 编译成功 编译时间非常久, 特别地, 我这个VPS是HDD硬盘不是SSD. 你可以给Agent下个定时任务 给你自己设置一个30分钟的定时任务 用于监控 tdesktop 编译的进度 如果编译出错, 检查出错原因, 修复, 再次开始编译 结论 如果你只有2G内存的VPS, 也是可以玩telegram开发的. 只不过要花特别多的时间在编译上面. 非常不推荐.

Oracle ARM VPS 编译 forkgram/tdesktop 用aqtinstall安装Qt

图片
前言 我的 Oracle ARM VPS 配置: 2核  CPU 12G 内存 47G 硬盘 想编译  https://github.com/forkgram/tdesktop 项目 面向GPT开发 Hermes 对接 mimo-v2.5-pro 把 https://github.com/forkgram/tdesktop clone到本地, 并完成编译 第1次编译 失败 原因 硬盘空间不够 记录 解决方案 新开了一个session, 让Hermes 分析硬盘空间占用, 把一些其它项目的环境删了, 把一些可以移动的数据 打包搬到其它VPS上暂存. 清理出来 25G 硬盘剩余空间. 第2次编译 失败 原因 硬盘空间不够 解决方案 新开了一个 session, 让 Hermes 到互联网上去找一下相关资料, 有没有人遇到过同样的 telegram desktop 编译失败的情况. Hermes 找来找去, 找到一个解决方案. 直接用aqtinstall安装(而不是编译) QT 6.11.1, 然后用 .so 动态链接 第3次编译 成功 用时 约5小时 内存峰值 约9GB (整个系统) 硬盘占用 约10GB (只统计编译相关的) (Qt直接下载了, 不需要编译)  总结  1, 让 Agent 先参考官方编译指南 (用 Docker) https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-linux.md 2, 如果 第1步 失败, 就分析 Docker 流程, 拆成一步一步的操作, 看哪里出问题. 如果卡在Qt编译步骤, 那么用aqtinstall安装Qt 代替编译

Hermes 给 Telegram 聊天底部添加 /stop 按钮

图片
前言 我用的模型不是SOTA, Agent工作的时候需要人在旁边看着. 一旦发现走错了路, 或者是忘了之前的"经验", 我要马上发"/stop". 思路 为了最快的发出 "/stop"  我需要一个像这样的东西 当然了, 实际上我没整这么大的活. 我在Telegram里面找到的最合适的表达方式就是 ReplyKeyboardMarkup回复键盘 就像这样 Github https://github.com/crazypeace/hermes-skill-telegram-stop-button

部署在 cloudflare worker 中的 telegram bot 收到 http url 下载 以文件形式回复 telegram 消息

图片
效果 Github https://github.com/crazypeace/cf-worker-tg-dl-bot 开发过程 总共对话3次 在 cloudflare 的 worker 中运行一个bot bot token 1234567890:AAHkMpXv2nQrWsYd8bJtLfCeUo9GiN1KmZw 功能是, bot 收到telegram 消息时, 把消息内容识为 http url, 访问后, 将内容以文件形式回复telegram 消息. 注册 Webhook 的过程, 优化为访问这个 worker 的 url 后面跟上  webhook, 如 https://green-c943.crazypeace.workers.dev/webhook set webhook 是不是要传入一个秘密字符串? 用到的AI 网页版免费账户claude https://claude.ai/

Cloudflare 的 worker 运行 telegram bot 自动回复关键字 将回复的消息延迟删除

前言 在群里搞了一个关键字回复机器人. Github 上面大把的项目. 略. 但是一直没有自动延迟删除回复消息的功能. 我的概念里面 worker 是 http 请求时才会运行的, 也就是说, 有人在群里发了消息, 这个worker才会运行. 那自然就做不了延迟删除消息了. 灵感 今天突发奇想, 问了一下AI, "cloudflare 的 worker 怎么实现定时任务".  WOKAO, 原来 2022年官方就支持了 Cron Trigger 接下来就是无趣的面向GPT开发 粘贴 的代码是一个基于 cloudflare worker 的 telegram bot.   我要实现bot回复的消息延迟5~10分钟删除的功能. 我给这个 worker 绑定了一个 KV :  BOT_MSG, 用于保存发出的消息的数据. 我给这个 worker 设置了定时5分钟的 cron trigger. 请改进这段代码 贴一下代码吧. const TOKEN = 'your_bot_token' const WEBHOOK = '/endpoint' const SECRET = 'you_should_generate_random_string' const DELETE_AFTER_MS = 5 * 60 * 1000 // 5分钟 /**  * 将已发送的消息存入 KV  * key: msg:{delete_at}:{chat_id}:{message_id}  */ async function saveMessage(env, chatId, messageId) {   const deleteAt = String(Date.now() + DELETE_AFTER_MS).padStart(16, '0')   const key = `msg:${deleteAt}:${chatId}:${messageId}`   await env.BOT_MSG.put(key, '1', {     expirationTtl: 20 * 60 // 20分钟兜底清理   }) } /**  * Cron 触发:删除所有到期的消息 ...

Telegram group电报群组中 bot机器人 互相之间可以看到发言 setbot2bot ENABLED

图片
官方信息源 https://core.telegram.org/bots/features#bot-to-bot-communication @BotFather 创建 bot , 略 命令 /setbot2bot 选择 bot, 设置为 ENABLE 测试 建一个 group 把这些 bot 都加入这个 group  把这些 bot 都设置为 gropu 的 admin  找AI写一个测试程序 ( 蓝色 部分以你自己的实际情况为准) 生成一个测试程序, 测试 telegram bot 在 telegram group 中是否能看到互相之间发消息. 要测试 直接发消息 和 @ username 发消息 这2种用法 有几个 telegram bot, username 和 bot token 如下: @CrazyAgentWatchBot 3942075861:AAHkMpXv2nQrWsYd8bJtLfCeUo9GiN1KmZw @CrazyAgentDesignBot 7150283946:AABxRqNj5vTgKhEa3cWmYsPdFu7LiOz4Xbn @CrazyAgentCodeBot 5827364019:AAEvNuGz3tFwBqXk7yRmJcSh5OaDpI8LlTx @CrazyAgentTestBot 6038195274:AAHkMpXv2nQrWsYd8bJtLfCeUo9GiN1KmZw 有一个 telegram group, id如下: tg group id -1003918964882 如果你是找网页版的AI写的, 那么就自己保存程序文件了运行. 如果是找 openclaw / hermes 写的, 可以直接让TA帮你运行. ======== 好文推荐 《电报telegram 不是公开群组的群成员也可以发送贴纸?》 《Openclaw 学习telethon技能 生成session 发送Telegram电报消息 读取Telegram电报消息》 《如何正确提问 及 错误求助反面实例》

第三方移动端swiftgram里的电报telegram账号 转为网页版web.telegram.org登录 申请 通行密钥passkey 成功 2026-1-27

图片
前言 上一篇 <第三方移动端swiftgram里的电报telegram账号 转为win11平台登录 申请 通行密钥passkey> 我们用到了win11 如果我们只有win10的电脑怎么办 可以把电报telegram账号登录到 chrome 中的 网页版telegram客户端 再申请通行密钥passkey保存到Google密码管理器中 在登录时 iOS 可以设置调用 Google密码管理器 里面的 passkey 实践 在 win10 电脑的 chrome 浏览器中 登录你的 Google 账户 chrome 浏览器 打开 网页版电报telegram https://web.telegram.org/ 登录swiftgram中的账号, 登录方式为扫描二维码 保持登录状态一段时间后, 申请passkey 选择 Google 密码管理工具 在你的 iPhone 上安装 Chrome, 登录你的 Google 账号 你可以确认一下 Google 密码管理工具中是否成功同步了 passkey       在 iPhone 的 系统设置 -> 自动填充与密码 AutoFill & Passwords 里面 启用 Chrome 的自动填充 * 这一步操作 有可能在不同的iOS版本下界面会有变化. 你可以求助Google和GPT 好了, 你可以试试在手机上登录你的电报telegram账号了 当你选择用 passkey 登录时, 可以选择 More Options -> More from Chrome       ======== 完 ======== 相关推荐 《如何得到一个安全又好用的主密码》 《密码管理方案 - 具体实践》 《密码管理方案 - 指导思想》

The Hot3 in Last 7 Days

酒馆SillyTavern 玩英文角色卡 也能以中文输出 设置世界书Lorebooks

去掉xray v2rayN对allowInsecure的报错

ClouDNS .asia免费域名 托管到CloudFlare开CDN / desec.io