博文

目前显示的是标签为“GPT开发”的博文

查询 电报 Telegram 账号已加群组频道 方便新号加入

图片
前言 有群友说, 开了新的电报 Telegram 账号后, 不知道怎么把老号的群加回来 https://t.me/duangvpsfs/3769416 思路 先问问GPT 有没有可能性 telegram bot 或 telethon 可以 查询 某个 telegram 账号已加入的 group 和 channel 吗? 结论是 telethon 可以, 而且给出了一些代码 from telethon import TelegramClient client = TelegramClient('session_name', api_id, api_hash) async def get_my_dialogs():     await client.start()          # 获取所有对话(包括群组、频道、私聊)     async for dialog in client.iter_dialogs():         if dialog.is_group:             print(f"群组: {dialog.name}")         elif dialog.is_channel:             print(f"频道: {dialog.name}") with client:     client.loop.run_until_complete(get_my_dialogs()) 我自己有一定的编程能力, 当然我能看出来, 这样的代码只输出了群组和频道的名称. 更准确地应该还要输出群组和频道的 username 但, 假设我就是一个不会编程的小白, 那么我会先试试这个代码是什么效果. 调试 找了个VPS (用你自己的电脑也是可以的, 只要安装 python 并且解决翻墙的问题) 把代码保存为 .py 文件上传 比如, 文件名 tg-get-group-channel.py 然后在VPS上运行一下, 有报错 把报错复制粘...

面向GPT开发实例集合

现在面向GPT开发越来越方便了. 但是从我混的很多telegram电报群里面看, 很多人还在提出一些很基础的需求, 看来大家并没有大规模地开始面向GPT开发. 我把最近一段时间, 我自己实现的面向GPT开发的实例整理出来, 希望对读者有所启发.  也许你改进一下前期数据的准备, 也许你改进一下描述需求的方式, 也许你限制一下GPT工作的范围, 就会得到能让你满意的结果了. 现在各个GPT在不同的应用场景(任务)下还是各有所长, 所以我也会记录用到的GPT是哪个. * 当然, 随着时间的流逝, 各个GPT还会进一步发展, 所以我这里记录的GPT也只是一个参考. 1. 用VS Code阅读Sing-box文档 生成配置文件 https://blog.icdyct.nyc.mn/2025/12/vs-code-sing-box-config.html Prompt (发给GPT的要求) a)  下载这个项目的文档  https://sing-box.sagernet.org/configuration/ b) 生成一个作为客户端使用的配置文件  监听本地 1080 端口 socks 作为inbound  连接一个下面这样参数的reality协议节点作为 outbound  协议 (protocol) = vless  地址 (address) = 74.48.9.95  端口 (port) = 8972  用户ID (id) = fb0d60cf-1084-412d-ba59-fd5c1166b89d  流控 (flow) = xtls-rprx-vision  传输协议 (network) = tcp  传输层安全 (TLS) = reality  SNI (serverName) = www.paypal.com  指纹 (Fingerprint) = chrome  公钥 (Public key) = Qam0-DVzhHghfZPi4Pfx3iQbmVt0YJBhcb0cyMsFdEc 用到的GPT Antigravity https://antigravity.google/download Gemini...

用VS Code阅读Sing-box文档 生成配置文件

图片
前言 有群友问 怎么手搓 Sing-box 的配置文件 思路 把文档丢给GPT, 让GPT帮忙写配置文件 实践 0. 准备环境 安装 Antigravity https://antigravity.google/download * 这里只是拿TA作为例子, 当然还有其它 VS Code 可选.  建个目录 作为工作目录, 用 Antigravity 打开 1. 下载文档 发给GPT 下载这个项目的文档  https://sing-box.sagernet.org/configuration/ 我假设自己是一个小白,  所有需要我批准的请求, 我都批准.  2. 生成配置文件 发给GPT 生成一个作为客户端使用的配置文件  监听本地 1080 端口 socks 作为inbound  连接一个下面这样参数的reality协议节点作为 outbound  协议 (protocol) = vless  地址 (address) = 74.48.9.95  端口 (port) = 8972  用户ID (id) = fb0d60cf-1084-412d-ba59-fd5c1166b89d  流控 (flow) = xtls-rprx-vision  传输协议 (network) = tcp  传输层安全 (TLS) = reality  SNI (serverName) = www.paypal.com  指纹 (Fingerprint) = chrome  公钥 (Public key) = Qam0-DVzhHghfZPi4Pfx3iQbmVt0YJBhcb0cyMsFdEc 生成了一个配置文件 config.json 调试 下载sing-box的可执行文件 放到 工作目录 启动 sing-box 内核 sing-box.exe run 报错 ERROR[0000] legacy special outbounds is deprecated in sing-box 1.11.0 and will be removed in sing-box 1.13.0, checkout documentation for m...

ech-wk 给窗口添加滚动条 改善小屏幕上的使用体验

图片
前言 群里有人反馈 小屏幕上使用 ech-wk 显示效果有问题 思路 给窗口添加一个滚动条 分析 这个窗口是 gui.py 生成的 面向GPT开发 把 gui.py 上传到 GPT, 指明问题 附件中的代码 有一个问题, 在屏幕分辨率不高的情况下, 窗口显示不全, 而且没有滚动条 GPT的回复是, 只需要修改 init_ui 函数, 并给出了修改方案. 对代码进行局部替换. 生成可用的版本 感谢 原作者 已经作好了 github action 我们 fork 一份 ech-wk   然后修改/提交 gui.py 然后发布一个自己的新的release 然后就等 github action 生成编译打包 调试 下载试用, 发现报错 把报错信息发给GPT. 给出修改方案, 在 from PyQt5.QtWidgets import 中增加引入 QScrollArea  修改/提交 gui.py 再发布一个新的release 再试试, 小屏幕上的窗口加了滚动条了, 可以滚动显示完整的窗口内容. Github https://github.com/crazypeace/ech-wk 用到的GPT Claude

在 VPS 注册页面 和 美国人信息页面 高亮显示关键字 油猴篡改猴tampermonkey脚本

图片
前言 在购买VPS的时候, 会遇到需要填写个人信息的时候. 我们常常会找一个生成随机美国人信息的网页. 我有一个想法, 希望快速方便的知道哪个信息填写到哪里. 面向GPT开发 有这样一个HTML页面 页面中可能包含 "first name", 也有可能 是在 input元素的 placeholder 属性中包含 "first name" 我需要查找并高亮这些 "first name"  把这些需求发给GPT. GPT生成的结果分为了CSS和JS脚本两部分. 于是再向GPT提要求 需要整合为可以在浏览器的 console 执行的 js 文件  GPT生成了一个整合的JS文件. 在浏览器 F12 开发者工具的Console中进行测试. 对于 RackNerd 的注册页面, 效果为红色边框. 对于美国人信息页面, 效果为黄色文字底色 * 注意, 此页面上, 写的是 Firstname 而不是 First name. 代码需作一点修改. 在有一些 美国人信息页面上, 没有 Firstname 这样的内容, 只有 Full name 所以我们向GPT继续提出修改意见. 把 first name, firstname, full name, fullname, 全名, 姓名 归为一类, 显示同样的高亮颜色或边框颜色. 对于同一类关键字, 边框颜色和文字底色颜色应该一致. 测试, 结果可以了. 接下来, 把这个结果推广到其它信息, 并且要求不同类的信息, 使用不同的颜色. 把 first name, firstname, last name, lastname, full name, fullname, 全名, 姓名 归为一类, 显示同样的高亮颜色或边框颜色. 把 phone number, phone, 电话 归为一类. 把 street address, street, 街道地址, 街道 归为一类. 把 city, 城市 归为一类. 把 full state name, state, 州全称, 州 归为一类. 把 postcode, zip code, 邮编, 归为一类. 以上每一类, 都要使用独特鲜明的颜色, 不应该与其它任何一类颜色相同. GPT返回的结果, 在浏览器console中测试. 效果不错. 用油猴插件...

YouTube 视频信息页面 网速换算为 MB/s 油猴篡改猴tampermonkey脚本

图片
前言 看到一个群友的YouTube 视频信息页面 网速换算为 MB/s 手痒, 也想自己整一个. 分析 F12开发者工具, 选择视频信息面板上的网速 HTML元素. 右键菜单 Copy JS path 得到 显示网速的文字 HTML 元素path为 document.querySelector("#movie_player > div.html5-video-info-panel.ytp-sfn > div > div:nth-child(9) > span > span:nth-child(2)") 面向GPT开发 我有一个html页面, 其中这个位置的元素 1) document.querySelector("#movie_player > div.html5-video-info-panel.ytp-sfn > div > div:nth-child(9) > span > span:nth-child(2)") 内容是  17085 Kbps 这样的格式, 我需要在这个元素 1) 的后面, 增加一个元素 2) , 内容为 元素 1) 的内容换算为 MB/s 的单位. 元素 2) 的数字 应该每10秒刷新 GPT开发的结果, 先在 F12 工具的 console 里面测试效果. 效果正常. 用油猴插件固定此脚本的效果 具体细节步骤略. 油猴插件 https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo 脚本文件名应该为 xxx.user.js @match 中为 https://www.youtube.com/watch* 效果为匹配所有YouTube播放页面url GPT开发的代码填写到 // You code here ... 下面 上传GitHub https://github.com/crazypeace/youtube-MB-per-s ======== 后记 本次使用GPT的过程中, 用到的GPT是 Gemini

用Cloudflare Snippet实现反代blogspot

图片
前言 最近看到有人应用 cloudflare 的 snippet 实现 像 worker 一样的节点功能. 思路 看来,  一方面, 免费用户也有机会使用 snippet 了. 另一方面, snippet 的功能也增强了, 和worker 的区别更小了. 那么我就想用snippet实现之前用worker实现的反代blogspot的效果. 实践 uniproxy里面的语法比较老, 是这样的 addEventListener('fetch', event => {     event.respondWith(handleRequest(event.request)) }) 用在snippet的话, 要改成这样的 export default {   async fetch(request, env, ctx) {     try {       return await handleRequest(request, env, ctx);     } catch (e) {       return new Response(e.message || "Internal Error", { status: 500 });     }   }, }; 我让GPT做了转换.  从结果来看, 就除了这一点变化, 其它代码全部保持原样. 已上传Github https://github.com/crazypeace/cloudflare-workers-uniproxy/blob/master/snippet.js 反代blogspot的worker代码 把需求发给GPT 当我把同样一份代码用于 worker 和  snippet  有没有办法识别当前环境是 worker 还是 snippet, 从而 打开 或关闭 KV相关的代码逻辑? 结果是判断是否存在绑定KV的环境变量. 这个逻辑本身也挺好的, 即使是用于worker, 也可以避免在worker的环境下, 用户没有绑定KV而产生异常. 已上传Github https://github.com/crazypeace/cf-wo...

下载 独树不成林 播客的全部封面 并做成 电报telegram 贴纸sticker

图片
1. 得到这个播客的RSS 感谢 https://medium.com/彼得潘的試煉-勇者的-100-道-swift-ios-app-謎題/236-利用-apple-podcasts-網站開發有趣的-podcast-app-99b057270be1 我们先找到播客的apple podcast地址 https://podcasts.apple.com/cn/podcast/独树不成林/id 1711052890 注意id的部分 然后把id拼到这个链接的后面 https://itunes.apple.com/lookup?id= 得到 https://itunes.apple.com/lookup?id= 1711052890 用浏览器访问, 得到一个JSON格式的文件. 用文本工具打开(你也可以找JSON工具, 如 https://www.json.cn/ ) 找到 feedurl https://feed.xyzfm.space/y9qnpfdrctnx 这就是RSS了. 2. 找到封面图片 用浏览器打开RSS链接, 找到像下面这样的部分就是封面图片 <itunes:image href=" https://image.xyzcdn.net/Fgd_z5yexkQF_GB0LF4Xncqqf8CU.png "/> 3. 面向GPT开发 实现一个基于HTML JS的工具 页面包含以下几个部分 1) 文本框 可输入podcast的RSS地址 2) 文本框 可从 1) 获取RSS内容, 也可以手工输入RSS内容 3) 文本框 分析 2) 的内容, 列出所有封面图片的地址. 可手工编辑 添加或删除 4) 显示 3) 中的地址对应的图片 举例: https://feed.xyzfm.space/y9qnpfdrctnx 是一个podcast的RSS地址, 会被填写到 1) 1) 可得到RSS数据, xml格式.  会被填写到 2) 2) 中有 <itunes:image href="https://image.xyzcdn.net/Fgd_z5yexkQF_GB0LF4Xncqqf8CU.png"/> 这样的元素, 应该将 https://image.xyzcdn.net/Fgd_z5yexkQF_GB0LF4X...

去掉cfnew的视觉特效 的操作整合到Github Action里

前言 上一篇我们实现了去掉cfnew的视觉特效的结果 但是, 如果明天cfnew发新版本了呢? 我们又要打开文件, 找到位置, 修改, ... 还是有点麻烦的吧? 有没有再懒一点的办法呢? 思路 上一篇 的具体流程是这样的: 1. 从 byjoey/cfnew 拿到新的 "明文源吗" 2. 修改 "明文源吗" 并上传 3. Github Action完成混淆并保存为 "少年你相信光吗" 我们能不能把第2步用 Github Action 实现? 面向GPT开发 有这样一个github项目 项目里有一个文本文件 file1 我需要用Github Action对文件做如下操作: 1) 查找所有的 animation: 替换为 //animation: 2) 查找所有的 function createMatrixRain() {, 在下一行添加一行 return; 这个Github Action不要自动触发, 只能手动触发 把上面的需求发给GPT, 得到结果 name: Modify File1 on:   workflow_dispatch:  # 手动触发 jobs:   modify-file:     runs-on: ubuntu-latest          steps:       - name: Checkout repository         uses: actions/checkout@v4         with:           token: ${{ secrets.GITHUB_TOKEN }}              - name: Modify file1         run: |           # 1. 替换 animation: 为 //animation:       ...

去掉cfnew的视觉特效 保留业务逻辑

图片
前言 有人反馈  Joey的cfnew  的页面效果搞得设备好卡, 希望把炫酷特效去掉. 我在群里提过一句, 向GPT把需求描述清楚, 整个事情并不困难. 过了一段时间, 还是有人在发这样的消息.  那么, 我来玩玩吧. 在这个GPT的时代, 我们来尝试一下这个过程到底是困难还是容易. 技术基础 不受CloudFlare干扰的Worker调试环境 (其实, 严格地说, 这并不是必要条件. 只是在不确定修改代码是否正确时, 有一个方便的调试环境会帮助许多. 所以我多花了一点时间先把这个调试环境搞定) 面向GPT开发 把 明文源码 文件上传到GPT, 问 分析上传的文件, 这是一个用于cloudflare worker环境的js脚本 请分析出显示HTTP页面中的视觉特效部分, 位于代码的什么位置. GPT的回答 在代码中搜索 createMatrixRain 找到这个函数, 在函数的开头添加一个 return, 让函数提前结束. 注意, 有2处, 一个是主页, 一个是 path/UUID 页面. 保存修改后, 让wrangler重新跑起来. 页面上的文字下雨效果消失了. 发现 path/UUID 页面的卡片上还有一些动效, 像是高光扫过平面一样. 继续看GPT的回答, 在代码中查找 animation , 注释掉. 保存修改后, 让wrangler重新跑起来. 这下页面上全部动效都没有了. 接下来, 我们上传到真实的 cloudflare worker 环境试试 混淆代码 先fork一下 原项目 , 打开我们的fork项目的 Github Aciton 允许运行. 然后把我们修改的 "明文源吗" 上传, 等Github Action进行混淆. (原项目就叫"源吗", 我保持原样而已) 部署到真实的 worker 环境 等混淆完成, 把 "少年你相信光吗" 的内容部署到 worker. 成功了. 各项功能正常. 实际使用场景测试 从 https://xxxx.yyyy.workers.dev/ 的页面获取订阅, 导入翻墙客户端软件试用. * workers.dev 墙内屏蔽的问题用 uniproxy 解决 https://www.youtube.com/watch?v=VpQlGQq7FCk 正常. Gi...

在VPS上本地运行CloudFlare Worker环境 Wrangler V3

图片
前言 众所周知, CloudFlare 的 Worker 上面部署项目的时候, 有可能因为关键字触发 1101 错误. 当然圈子里已经有成熟的代码混淆方案. 但是为了我们更好的调试和开发, 最好是有一个不受CloudFlare干扰的开发环境. CloudFlare官方就提供了一个本地运行的Worker环境方案 Wrangler V3 安装 Wrangler V3 参考官方文档  https://developers.cloudflare.com/workers/wrangler/install-and-update/ 用 nvm 安装 node.js npm  参考官方文档   https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  nvm install node 检查 node 和 npm node -v npm -v 用 npm 安装 Wrangler   npm install -g wrangler 启动一个worker.js 建一个工作目录 mkdir cfworker cd $_ 把 Joey的cfnew  未混淆的脚本下载到刚刚的工作目录 (仅为示例, 并非有特定意义) wget https://github.com/byJoey/cfnew/raw/refs/heads/main/%E6%98%8E%E6%96%87%E6%BA%90%E5%90%97 -O worker.js 用 Wrangler 启动 worker.js npx...

当检测到关键字时 私信发送对应的贴纸 tg-keyword-react-bot

图片
前言 已经实现了 检测到关键字 在群里发送贴纸 如果直接给用户发送私信呢? 需求 当检测到关键字  naive  时 私信发送贴纸 技术基础 电报 telegram 关键字监控机器人 面向GPT开发 基于以上代码, 增强开发以下功能 当监控频道中出现"naive "时, 向用户私信发送贴纸. 贴纸为 https://t.me/addstickers/fuckgfwnewbie 的第2个贴纸 注意到监控频道的通知信息是有格式的. #FOUND (https://t.me/c/1958152252/300436) "自建" IN Joey Huang Blog(1958152252) FROM jacky jay(5979280761) 自建的节点怎么不能访问X和chatgpt啊 #FOUND (https://t.me/LoonCommunity/161393) "大佬" IN Loon Community(@LoonCommunity) FROM Yang Bo(@Zen_Neng_Bu_Bian_Tai) 大佬们,loon怎么在不开梯子的情况下去除广告啊? 通信信息的第1行格式为 #FOUND (源信息) "匹配关键字" IN xxx (群username或userid) FROM yyy (用户username或userid) 上传Github https://github.com/crazypeace/tg-keyword-react-bot 演示视频 部署 见项目Readme ======== 后记 本次 (2025-11-09) 面向GPT开发, 用到的GPT是 Claude GPT生成的程序有BUG, 获取消息的纯文本 message_text = event.message.message 正确的做法是提取消息的 markdown 文本 from telethon.extensions import markdown message_text = markdown.unparse(event.message.message, event.message.entities)

用Stylebot插件 修改blogger编辑器页面 显示被折叠的工具栏按钮

图片
前言 书接上文 我们已经隐藏了bloger编辑器的右栏 但工具栏在空间足够的条件下, 还是产生了折叠分栏. 本文就来解决这个问题. 分析 通过 F12 开发者工具, 分析 工具栏的 HTML 内容 发现, 就在这个工具栏里面, 有些按钮被隐藏了. 也就是说, HTML内容里是有的, 但是页面上不显示. 面向GPT开发 因为GPT文本输入字数限制, 我们需要将工具栏的HTML内容保存为文件, 再上传给GPT. HTML 环境 我有一个工具栏, HTML内容见文件 工具栏中包含一些按钮 有些按钮是显示的, 有些按钮是隐藏的 我现在需要将工具栏下的所有按钮都设置为显示 要求使用设定页面元素CSS的方式 按钮可能是动态的, 所以不要指定按钮的 class, 而要从按钮与工具栏的HTML层级关系分析. 把上述需求发给GPT, 得到 .Qy5T6b.O3LMFb.QduVPe * {     /* 强制元素显示。display: initial 尝试恢复元素的默认显示类型,通常比强制 display: block 更安全。 */     display: initial !important;          /* 确保元素可见 (覆盖 visibility: hidden) */     visibility: visible !important;     /* 确保元素不透明 (覆盖 opacity: 0) */     opacity: 1 !important;          /* 移除可能导致元素被灰色化或隐藏的滤镜效果 */     filter: none !important; } 实践与调试 在 Stylebot 中设置刚刚GPT给的结果, 得到 可以看到有初步效果, 但是显示得太多了. 继续在F12模式下进行简单的分析. 可以看到 下拉菜单选项啊, 说明文字啊, 都显示出来了. 如果我们限制 只显示到 按钮这一层, 会是什么效果呢? 问了一下GPT CSS语法,  改成这样 .Qy5T6b.O3LMFb.QduVPe ...

The Hot3 in Last 7 Days

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

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

在 2G 内存 VPS 上搭建 OpenClaw (Moltbot / Clawdblot) 接入Qwen免费模型 用电报Telegram 作为交互窗口