博文

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

电报防广告机器人 telegram antispam bot 我的博客最新一期博文的标题是什么 html解析 rss xml解析

图片
上一期中, 我们实现了自定义 问题-答案 . 但是过于死板. 那么, 除了算术题, 还有什么可以生成灵活 问题-答案 的方式呢? 比如, 我的博客最新一期博文的标题是什么? html解析 如果是人, 怎么找到我的博客的最新一期博文呢?  打开  https://crazypeace.eu.org/ 找到这个位置, 标题就是答案了. 那么, 计算机程序怎么获取这一条呢? 我们 按 F12 打开浏览器开发者工具. 使用选择工具, 选中我们需要的博文标题.  可以看到在html中, 博文标题对应元素是 class="post-title entry-title" 那么, 我们使用GPT编程. python实现如下功能, 访问 https://crazypeace.eu.org/ 在 html 中找到 第1个 class="post-title entry-title" 元素,  输出该元素的文本内容 把GPT编程的结果和原来的 youtube.py 里面的4行代码融合一下, 就得到这样的 blog.py  放到 pset 目录下就生效了.  import requests from bs4 import BeautifulSoup def buildQA():   question = '我的博客的最新一期博文标题是什么?'   correct_answer = ''   url = "https://crazypeace.eu.org/"   # 请求网页   response = requests.get(url)   # 解析 HTML   soup = BeautifulSoup(response.text, "html.parser")   # 找到第一个 class="post-title entry-title" 的元素   element = soup.find(class_="post-title entry-title")   if element:     correct_answer = element.get_text(strip=True)   e...

电报防广告机器人 telegram antispam bot 重构产生问题和回答的方式

图片
上一期我们实现了防广告机器人的基本框架 如果我们想实现丰富的 问题-答案 生成方式, 怎么做呢? 看一下目前的代码. 是生成了 问题-答案 后, 保存起来, 然后新成员再回答问题, 并检查答案. 那么, 我们来做这样一件事. 在一个python文件 main.py 的目录下, 有一个 pset 目录.  pset 目录下有多份 .py 文件.  这些 .py 文件中, 都至少包含1个函数. buildQA buildQA 返回2个字符串, 一个是 question, 一个是 correct_answer 我要在 main.py 中随机调用 pset 目录下的一个 .py 文件中的 buildQA 函数 把这段文字丢给 M$ copilot (或者你手边的任意一个GPT), 很容易就得到答案. 把修改方案应用到项目中. 主 py 文件中. 增加这样一个函数 def get_random_module():     # 找出 pset 目录下的所有 .py 文件(排除 __init__.py)     files = [         f[:-3] for f in os.listdir("pset")         if f.endswith(".py") and f != "__init__.py"     ]     # 随机选择一个     chosen = random.choice(files)     # 动态导入     module = importlib.import_module(f"pset.{chosen}")     return module 再把原来生成 问题-答案的地方改成这样 # 生成验证问题和答案 mod = get_random_module() question, correct_answer = mod.buildQA() 然后在 pset 目录下, 新建一个 add.py 文件. 内容如下: import random def buildQA():...

电报防广告机器人 telegram antispam bot 用回复文本的方式增加发广告的成本

图片
用了这么久的telegram, 看到的防广告机器人, 都是用选按钮的方式回答问题, 理论上有被穷举题库的可能性. 如果你的群足够有吸引力, 想加群的广告机器人足够多, 总是可以找到入群问题的答案的. 而入群问题如果太变态 ( https://github.com/XTLS/Xray-core/discussions/3487 ) 反而拒绝了一些能力不强的正常人类 (TA们本身并不是想发广告, 只是想入群提问或交流) 所以我有了一个思路, 如果这个人机检查的问题需要回答文本呢? 用干就干, 利用claude进行初步构建. 我要开发这样的一个telegram机器人 机器人在群组中工作 当机器人检测到有新成员加入时, 机器人将新成员设置禁言. 机器人要求新成员在与机器人的私聊过程中完成人机检测. 如果通过人机检测, 那么机器人解除新成员的禁言状态. 人机检测的具体过程是这样的 当新成员向机器人发送/start时, 机器人提问, 新成员输入文本回答. 得到的结果放到 VS Code, 和 M$ Copilot 合作, 进行调试. 效果 Github https://github.com/crazypeace/tg-join-group-exam-bot/ 总代表量(算上空行和注释)不到300行, 是不是很轻量! * 考虑到后续还会有几期更新. 所以本期的代码也复制了一份  tg-join-group-exam-bot1.py 在项目里. 部署方法见项目 readme 目前这只是一个最基础的架子, 后续我们再慢慢优化. 欢迎关注我的博客 https://crazypeace.eu.org/p/icdyct.html

商业化电报关键词提醒机器人 telegram keyword monitor bot

图片
书接止文. 今天接着说商业化电报关键词提醒机器人 telegram keyword monitor bot 的一些思考. 也就是, 你可以怎样用项目去卖钱. Github https://github.com/crazypeace/tg-keyword-monitor-bot 再复习一下本项目的架构 卖的是搭建项目的劳动 对于项目的使用者来说, 如果还要操作linux系统, 修改配置文件来修改关键字, 使用起来会不方便. 本项目提供向机器人发命令来修改关键字的操作方式, 使用者不需要接触linux环境. 示例, 甲方 提供 tg账号, 作为采集者, 把信息源的群都加好. 你把这个项目搭起来, 把甲方的tg账号设置为 管理员 和 消费者. 使用方式就是, 如果要监听更多的群, 甲方自己操作tg账号去加群. 如果要修改关键字, 甲方自己操作tg账号和机器人交互修改关键字. 甲方在tg账号上接收机器人发送的关键字消息. 卖的是信息源 比如, 某些群 加群要收费, 或者不接收新群成员了.  而你手里有已经加了这些群的tg账号, 作为 采集者. 示例,  在同一个大圈子里, 不同的甲方有不同的关键字需求. 你的采集者是同一个tg账号. 你为每一个甲方, 分别 运行一个项目. (可以共用VPS, python环境. 建不同的目录就行了) 其它设置都和标准流程一样, 只是设置同样的 采集者 (配置文件中的 user_phone 参数) 卖消费者权限 如果这个行业关注的关键字相当同质化, 你也掌握了信息源. 想降低维护成本, 你可以直接卖消费者权限. 示例, 你可以直接修改配置文件的 result_id_list 列表, 添加不同的 接收关键字消息的 tg 账号的ID. 你也可以把一个tg频道的id 设置为 result_id_list. 然后把 发布者的 bot 添加为频道的管理员, 这样就可以发关键字通知了. 你可以把频道设置为私有的, 你控制订阅这个频道的权限就行. 你收了钱, 再把某个tg用户添加进频道. 我自己公开了一个关键字消息的频道示例: https://t.me/FuckGFWNewbieNeedHelp 使用多个采集者 不希望一个tg账号加太多的群, 担心一下子被封号的风险. 或者是你已经触达500个群组的上限. 运行多套程序, 分别使用不同的采...

Win环境下编译 Forkgram 安装Visual Studio 2022 C++桌面开发 Python Git

图片
参考 telegram 官方项目的指南 https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-win-x64.md 申请 api_id, api_hash https://my.telegram.org/apps 安装 Visual Studio 2022 的 C++ 环境 M$ Store 安装 Visual Studio https://apps.microsoft.com/detail/XPDCFJDKLZJLP8 选择 C++ 桌面开发环境 安装 Python https://www.python.org/downloads/ 安装 Git https://git-scm.com/download/win 建议你新建一个开发目录 比如 c:\dev\ 找个翻墙客户端 开 tun 模式 *  比如 nekoray 或者 clash-party(mihomo-party) 打开 "x64 Native Tools Command Prompt for VS 2022" 工具 开始菜单 在上面这个工具的命令行窗口中, 进入你的开发目录 cd c:\dev\ git clone forkgram的源代码 git clone --recursive https://github.com/forkgram/tdesktop.git 准备环境 在工具的命令行窗口中,  tdesktop\Telegram\build\prepare\win.bat * 这个过程时间比较长, 建议你设置电脑不休眠, 翻墙网络一直保持畅通. 生成 .sln 工程文件 在工具的命令行窗口中,  tdesktop\Telegram\configure.bat x64 -D TDESKTOP_API_ID= 你的api_id -D TDESKTOP_API_HASH= 你的api_hash 在 c:\dev\tdesktop\out 目录下, 找到 Telegram.sln 双击此文件, 应该会以 Visual Studio 打开. 接下来, 你可以使用你习惯的方式 编译项目, 生成可执行文件. * 这个过程时间比较长, 建议你设置电脑不休眠 编译结果在 c:\dev\tdeskt...

搭建电报关键词提醒机器人 telegram keyword monitor bot

图片
前几天 开发了一个电报关键词提醒机器人 已上传Github https://github.com/crazypeace/tg-keyword-monitor-bot 本文描述搭建过程. 首先, 你可以看看Github项目的readme, 那是一个从头到尾按操作顺序手把手的图文教程. 如果你觉得那篇教程有点云里雾里, 那么下面, 我换一个角度来描述. 系统架构 信息源 -> 采集者 -> 本程序 -> 发布者 -> 消费者 系统中的各部分 信息源 是 你想监听的各个tg群组, 频道 采集者 是 一个tg账户   * 推荐你注册一个新tg账户来玩. 本程序 是 本项目 main.py   * 本程序需要 api_id, api_hash. 需要到  https://my.telegram.org/apps 申请. 这里需要登录tg账户, 可以是 采集者同账户, 也可以是不同的账户.  发布者 是 一个tg机器人   * 本程序需要 bot_token, 需要向  https://t.me/BotFather 申请. 向 @BotFather 发起机器人申请的tg账户, 可以和前面同账户, 也可以是不同的账户. 消费者 是 接收关键字通知消息 的用户或群组或频道 本项目的运行环境 安装python 一般你用的比较新版本的操作系统 Debian / Ubuntu, 已经自带了.  略 安装 pip apt install -y python3-pip 拉取项目 apt install -y git git clone https://github.com/crazypeace/tg-keyword-monitor-bot cd tg-keyword-monitor-bot 安装python依赖 pip3 install -r requirements.txt --break-system-packages config.yaml.default 复制为 config.yaml 系统中各部分之间的关系 信息源 与 采集者 之间的关系 你自己登录 采集者账户 的身份, 加入信息源. 入群验证, 不公开群需要别人拉你, 需要管理员审批, ... 等等等等 这些问题, 需要你自己解决. ...

开发电报关键词提醒机器人 telegram keyword monitor bot

图片
前言 之前使用了一个 电报关键词提醒机器人项目 . 使用下来觉得功能有点重. 原项目考虑到多人使用, 不同的用户关注不同的关键字和不同的群组. 所以原项目需要用到数据库. 我准备自己开发一个轻量的适合个人使用的电报关键词提醒机器人. 借助现在强大的gpt的力量写代码. 第一版代码生成是用的免费的 claude 后续代码调试是用的免费的 M$ copilot 设计功能 bot只接受来自指定id的 user 或 group 的控制命令,  bot监听到关键字后, 发送通知信息给指定id 的 user 或 group 或 channel, 关注的 关键字列表 支持正则表达式 排除的 关键字列表 支持正则表达式 关注的 关键字列表 和 排除的 关键字列表 都更新到配置文件中保存 设计配置文件 配置文件 yaml 格式, 内容如下: # 账户信息 account:    # 监听信息的user   api_id: '1400003'   api_hash: 'd11xxxxx112a7e059e831'   user_phone: '+86190000010'   # 发送消息的bot   bot_token: '1000007:AAHNh8axxxxxxxxxxxxxxxxHA'   bot_username: 'keyxxxxxrt_bot' # LOG logger:   path: null # e.g. /root/absolute-path/   default null: {_current_path}/logs/   level: INFO # FATAL,ERROR,WARN,INFO,DEBUG,NOTSET # 代理 proxy:   type: SOCKS5 # e.g. SOCKS4, SOCKS5, HTTP   address: null  # e.g. 127.0.0.1   port: null # e.g. 1088 # 非公共服务 # bot只接收来自以下ID的命令 可以设置为user或group的ID command_id_list:    - 123...

群抽奖 8x RackNerd 入门款VPS (一年) telethon 获取群消息的点赞记录 random.org 生成随机数

图片
群抽奖 8x RackNerd 入门款VPS (一年) 加群链接 https://t.me/+N1h9fgojWDw4YWZl 不想搞那种打关键字刷屏的方式, 希望群里的消息聚焦技术, 减少闲聊. 所以, 给发布贴点赞表情就当报名了. 而且, 这个"报名"记录是在telegram上公开的, 所有群成员都可以查看, 验证. 找 claude 做了个初版. 再在 VS code 里面找 M$ copilot 调试. 成果 https://github.com/crazypeace/tg-get-msg-reactions 效果 获取所有反应的用户: 1. User: 372552030, Name: ㅤ, Reaction: 👏, Time: 2025-09-13 04:49:14 2. User: dshowme, Name: dshow, Reaction: 👍, Time: 2025-09-13 03:07:23 3. User: pnpat, Name: Pat, Reaction: 👍, Time: 2025-09-13 03:01:58 4. User: 5760032256, Name: Macario, Reaction: 👍, Time: 2025-09-13 02:51:57 5. User: 8038895285, Name: Ghbn Vds, Reaction: 👍, Time: 2025-09-13 02:48:52 6. User: comfortable198, Name: @xxiedj_bot, Reaction: 👍, Time: 2025-09-13 02:22:07 7. User: ze0621mwz2198, Name: 鉴黄师 🔞人体结构 研究小组, Reaction: 👍, Time: 2025-09-12 23:48:35 这样就生成了报名结果. 抽奖的步骤, 随机方法使用  https://www.random.org/ 点页面上的这个小工具 如果随机数结果重复, 就再点一次, 直到产生足够数量的随机数. 我会把随机数生成的过程录屏保存, 并在群里公布. 这个随机来源 random.org 官方是提供验证方式的. 验证结果 长下面这样. 所以, 其它人不仅可以验证我的随机结果是从 ...

The Hot3 in Last 7 Days

隐形眼镜 的 包装 和 直径 对使用的影响

RackNerd VPS搭Xray Reality梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存

商业化电报关键词提醒机器人 telegram keyword monitor bot