博文

目前显示的是 2026的博文

修改 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开发的. 只不过要花特别多的时间在编译上面. 非常不推荐.

换gmail前缀前 先检查有哪些网站使用了google一键登录 改为邮箱登录

图片
我非常幸运, 是先看到了消息说 { 有人更换了gmail前缀后, 在google一键登录的网站被认为是新用户 }, 然后才可以 { 更换gmail前缀 } 的 所以我今天是这么干的: * 假设我原来的gmail是 old@gmail.com , 我想改为 new@gmail.com 1. 找到哪些网站被google一键登录了 https://myaccount.google.com/connections 特别是, 有些奇怪的, 你从 名字 并不能知道是哪个网站使用了google一键登录. 需要点击一下"查看详情" 看到网站的域名 2. 去这个网站登录, 然后添加  old@gmail.com  邮箱登录 3. 在这个网站关闭 google 一键登录 * 建议网站的页面不要关了, 一会儿还要用 * 对于所有你觉得有数据需要关联的重要网站, 重复 第 2, 3 步 4. 换gmail前缀  new@gmail.com https://myaccount.google.com/google-account-email 这时,  old@gmail.com  和 new@gmail.com  同时存在, 同时可用 5. 去网站修改登录邮箱为  new@gmail.com * 前面建议你网站的页面不关, 这里就方便了 6. 给网站添加google一键登录 * 如果你觉得网站不需要使用 google 一键登录, 就用旧邮箱登录也行, 那么就不需要 第 5, 6 步

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 代替编译

极简翻墙客户端(壳) MDPC-my-dream-proxy-client 支持shadowsocks-rust内核 shadowsocks协议 支持订阅

前言 之前 我们实现了 MDPC 多内核 单outbound 考虑到 有可能会给我的初翻墙朋友推荐 JMS机场   那么我们来支持 shadowsocks 吧! 面向GPT开发 Hermes 对接 mimo-v2.5-pro 支持SS 先单独开了一个 session上下文, 专门分析shadowsocks有哪些分支内核, 有哪些协议. 最终决定使用shadowsocks-rust内核, 支持SS-AEAD2022协议. 学习 ~/shadowsocks-rust/shadowsocks-rust-guide.md 报告 基于 mdpc 项目, 增强开发, 支持 shadowsocks-rust 内核 和 shadowsocks 协议. shadowsocks翻墙内核是单配置文件, 参考hysteria内核已有的设计. 细节调试 略. 完 支持订阅 在 mdpc/05-outbounds.html 增加订阅链接功能. 丢了2个订阅链接过去. JMS的订阅链接报CORS的错. 我在链接前面套了个 uniproxy 就行了. 我自己的 pastebin 在 worker.js 里设置好 CORS, 能直接获取. 1. 可以同时写多个订阅, 把订阅解释结果合并 2. 订阅应该在节点解析的上面,  先把订阅的内容填充到节点解析, 还可以手动修改 outbound 列表 要有一个清除重复 的按钮 因为用户有可能 点击多次  “解析并添加” 按钮造成节点信息重复的后果 其它细节调试 略. 完 Github https://github.com/crazypeace/my-dream-proxy-client/releases/tag/v1.5.0

去掉v2rayNG对allowInsecure的报错

图片
前言 之前我们实现了 用自然语言指导Hermes去掉xray对allowInsecure的报错 那么, 能不能进一步的, 去掉v2rayNG对allowInsecure的报错? 面向GPT开发 Hermes 对接 mimo-v2.5-pro 以下内容为向 Agent 发的自然语言  把 https://github.com/2dust/v2rayNg 按最新 release tag  clone 到本地, 不要放 tmp 目录, 未来有长期分析任务 对项目全量代码进行分析 Agent的报告显示, AndroidLibXrayLite/ 是 xray-core 那么, 我们进一步地询问 AndroidLibXrayLite/  在项目中是源码, 还是从外部引用现成的结果? Agent的分析报告显示, AndroidLibXrayLite/ 指向 2dust/AndroidLibXrayLite 这个项目生成的结果. 那么, 我们进一步地询问 对比分析 github 2dust/AndroidLibXrayLite 和 xtls/xray-core Agent的分析报告显示, AndroidLibXrayLite 项目包含了 xray-core 的源码, 然后自己编译, 生成 Android 的 .aar 库 到这里, 我们的思路就非常清晰了. 第1步, 我们已经有了一份 不对allowInsecure报错的xray-core源码 https://github.com/crazypeace/Xray-core-allowInsecure 第2步, 建立一个AndroidLibXrayLite项目的 fork, 把导入的xray-core源码设置为第1步中的项目 建立一个AndroidLibXrayLite项目的 fork, 把导入的xray-core源码设置为 https://github.com/crazypeace/Xray-core-allowInsecure 第3步, 建立一个v2rayNG项目的fork,  把 AndroidLibXrayLite/ 指向为第2步中的项目生成的成果 建立一个v2rayNG项目的fork,  把 AndroidLibXrayLite/ 指向为...

去掉xray v2rayN对allowInsecure的报错

图片
前言 我们已经实现了 用自然语言指导 Hermes 对接 mimo-v2.5-pro 帮我们裁剪 xray 那么, 对原版xray做个小改动不是应该更轻松吗?   之前xray对allowInsecure报错影响了很多人. 如果我们对xray原版小改一下, 不报这个错呢? 面向GPT开发 Hermes 对接 mimo-v2.5-pro 以下内容为向 Agent 发的自然语言  准备对 https://github.com/xtls/Xray-core/ 项目做一个小改动. 你把项目按最新 release tag clone 到本地, 不要放 tmp 目录, 会有进一步的分析和修改. 我们发过去写好了客户端hy2出站的配置文件  当我加载这一份 客户端 配置文件时, 报错 Failed to start: main: failed to load config files: [configTest5399724284136231556.json] > infra/conf: failed to build outbound config with tag proxy10829 > infra/conf: failed to build stream settings for outbound detour > infra/conf: Failed to build TLS config. > common/errors: The feature "allowInsecure" has been removed and migrated to "pinnedPeerCertSha256". Please update your config(s) according to release note and documentation. 本地socks5代理和 http代理无法使用. 请分析原因, 并给出修改方案. Agent 分析了一大堆. 我们不看.  同意, 请实施. 然后 Agent 忙啊忙啊, 说完成了. 我们提醒TA用刚刚发的配置文件验证.  用我的配置文件测试 本地socks5代理和http代理是否正常工作. Agent 测试通过. 那我们自己也实际测试一下  交叉编译一份 w...

裁剪 xray 只需要支持 reality 协议出站

图片
前言 之前 面向GPT开发 做了 MDPC 翻墙客户端 把翻墙内核装进去后, 一看整个目录, 体积还挺大的. 我就想, 既然我只用这几个协议, 那么我把内核裁剪一下能省多少体积呢? 放在以前, 知道这个事情是有可能性的, 内核代码都开源的嘛, 但是根本不敢动手.  现在这个时代, 人人都有赛博打工人了, 就让我们动动嘴吧!   面向GPT开发 Hermes 对接 mimo-v2.5-pro  以下内容为向 Agent 发的自然语言  把项目 https://github.com/XTLS/Xray-core 按最新 release tag clone到本地,  不要放 tmp 目录, 未来要进一步工作.  全量分析学习一下项目代码, 特别是 reality 协议相关的. Agent 分析了一大堆. 我们不看. 发过去写好了客户端reality出站的配置文件.  我要对这个项目进行裁剪, 只需要能满足这套配置文件. 请进行分析.  Agent 分析了一大堆. 我们不看.  同意, 实施. 然后 Agent 忙啊忙啊, 说完成了. 我们提醒TA用刚刚发的配置文件验证.  测试 配置中设定的 socks代理, http代理 能不能正常工作.  配置中还包括 route 分流, 也要进行测试  Agent 测试通过. 那我们自己也实际测试一下      交叉编译一份 win10 amd64 的结果 然后把编译结果放到自己电脑上面的 MDPC, 替换掉原版 xray.exe 测试功能正常.      把修剪后的 xray 上传到 github fork     发布 release 把你刚刚编译的结果传上去    Github 代码  https://github.com/crazypeace/Xray-core   Release https://github.com/crazypeace/Xray-core/releases/tag/v26.3.27-trimmed  

裁剪 sing-box 只需要支持 anytls 协议出站

前言 之前 面向GPT开发 做了 MDPC 翻墙客户端 把翻墙内核装进去后, 一看整个目录, 体积还挺大的. 我就想, 既然我只用这几个协议, 那么我把内核裁剪一下能省多少体积呢? 放在以前, 知道这个事情是有可能性的, 内核代码都开源的嘛, 但是根本不敢动手.  现在这个时代, 人人都有赛博打工人了, 就让我们动动嘴吧! 面向GPT开发 Hermes 对接 mimo-v2.5-pro  以下内容为向 Agent 发的自然语言  分析 sing-box 项目 https://github.com/SagerNet/sing-box , 如果只需要支持 客户端 出站 anytls 协议, 代码可以裁剪吗? Agent 回复了一堆代码分析报告, 我们人不看的, 当作TA自己工作的上下文环境. Agent 提到几个问题, 需要我们回复一下.  本地入站 -- 需要支持本地 SOCKS5/HTTP 入站 用 build tag 条件编译 Agent 又分析了一大堆. 我们不看. 发过去写好了客户端anytls出站的配置文件. 裁剪编译之后 的程序要能使用这一套配置文件. 你再进一步分析确认一下 Agent 又分析了一大堆. 我们不看.  同意, 开始实施.  然后 Agent 忙啊忙啊, 说完成了. 我们提醒TA用刚刚发的配置文件验证. 用我刚刚发的配置文件实际测试一下是否正常工作. Agent 测试, socks代理和 http代理都正常工作. 那我们自己也实际测试一下 交叉编译一份 win10 amd64 的结果 然后把编译结果放到自己电脑上面的 MDPC, 替换掉原版 sing-box.exe 测试功能正常.  把修剪后的 sing-box 上传到 github fork 发布 release 把你刚刚编译的结果传上去   Github  https://github.com/crazypeace/sing-box-1/tree/with_anytls_only   https://github.com/crazypeace/sing-box-1/releases  

极简一键脚本要下岗了 sing-box 内核 anytls协议

图片
Hermes 对接 mimo-v2.5-pro 先用自然语言让 Agent 搭一个 sing-box 内核的 anytls 协议节点. 搭建 一个 sing-box 的 anytls 协议服务端. 要求自签证书 learn.microsoft.com, 端口 2083 其它参数从简 这是结果 然后让 Agent 写一个极简一键脚本 总结你刚刚搭建 anytls 服务端节点的过程, 生成一个 .sh 脚本文件. 如果直接执行, 就用默认值搭建节点. 同时也支持用环境变量设置一些关键参数. 这是结果 ======== Github https://github.com/crazypeace/sing-box-anytls

file-r2-worker 文件保管站 Cloudflare R2对象存储

图片
前言 我们已经让 ShareX 用 S3 API 对接了 R2 的对象存储 . 但 R2 的管理页面并不那么直观地看到图片预览. 我们可以用 worker 来管理 实践 考虑到图片可能会很多, 很大, 推荐设置 Cloudflare 的  Image Transformation 功能 首先, 你需要有一个 托管在cloudflare的域名 . 打开 Image Transformation 功能 给 R2 设置自定义域名 还记得这个页面吗? 输入一个你的域名的子域名. 如, r2test.xxxx.xxxx 过一会儿, 会变成这个样子, 说明生效了. 设置 CORS 策略 [   {     "AllowedOrigins": [       "*"     ],     "AllowedMethods": [       "PUT",       "GET",       "HEAD",       "DELETE"     ],     "AllowedHeaders": [       "*"     ]   } ] * 注, 说实话这里有一点点粗暴, 但是问题不大.  你现在的R2的一些信息 在 ShareX 的 S3 上传器页面. Access key ID Secret access key Endpoint Bucket name Custom domain 创建一个Cloudflare Worker 编辑Worker的脚本内容 把原有的内容全部删掉 换成: https://github.com/crazypeace/file-r2-worker/blob/main/worker.js 的内容 修改管理面板访问密码: WORKER_PASSWORD = " suibianshezhishenme "   // 改成你喜欢的 设置 R2 参数 * ShareX 的 S3 上传器页面中, Secret...

ShareX 将图片上传到 R2对象存储 通过S3上传器

图片
前言 我一直在使用 ShareX 截图软件 , 支持S3 API接口上传到图床 在 nodeseek 发贴需要自己准备图床 Cloudflare 的 R2 对象存储支持S3 API接口 那么, 让 ShareX 将图片上传到 R2对象存储 吧! 申请Cloudflare账号,略。 小白面向Agent Hermes 对接 mimo-v2.5-pro 全面学习 cloudflare 的 api 和 token 文档. 我需要你通过 api 来完成接下来的工作 我要让你帮我创建Cloudflare 的 R2 对象存储 指导我如何申请Cloudflare 的API token 让你有操作授权 创建新的 Bucket r2test-1 这个项目 https://github.com/ShareX/ShareX 是个截图软件, 你研究一下怎么让这个 sharex 截图软件通过 S3 API 上传到刚刚你创建的 R2 对象存储 我上传到R2的图片需要有公开访问URL, 用来在其它HTML页面引用. 完.  -------- 上面整个过程中, 我照着Agent的指导手动操作的部分是: 在Cloudflare中创建API token, 让Agent有操作Cloudflare的授权. 在ShareX中找到界面填写Agent告诉我的内容. ShareX中的主动上传图片 对已经截图完成的图片, 右键菜单 - 上传 对已经上传完成的图片, 右键菜单 - 复制 - URL 就能得到这样的外链了 https://pub-ff502e748d214818bbc9200cb142822a.r2.dev/2026-06-16_17-28-30.png ShareX截图完成后自动上传图片 截图后的任务 - 上传图片 目标 - 图片上传 - 文件上传 - Amazon S3 这样设置好后, 在截图完成后, 就自动上传了. https://pub-ff502e748d214818bbc9200cb142822a.r2.dev/ShareX_2026-06-16_17-41-14.png 不使用Agent的古法手动操作 * 以下操作过程中, 标颜色的信息 , 你最好另外单独记好. 这样操作流程比较顺畅. 创建R2 记住这个R2的名字,以 r2test 为例 设置公开链接 记住这个R2公开链...

The Hot3 in Last 7 Days

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

Woiden IPv6 VPS 搭 V2ray 梯子 VLESS+Websocket+TLS 模式 免费 白嫖 全程手机操作 2022-4-19