邮件代理第二版:优化了邮箱发件人逻辑,现在能自定义地址前缀了
本文介绍了 一个功能完善的邮件代理项目,该项目提供了一个集成的邮件收发解决方案。它基于 Python 语言实现,旨在解决初版邮件代理只能使用单个发件人地址的限制,现在允许客户端自定义发件人地址,只要该地址可用即可。在邮件发送功能上,该代理通过 SMTP 协议将邮件转发到 Resend 服务,实现了邮件的可靠投递。在邮件接收和查询功能上,它实现了 IMAP 代理,能够读取和提供缓存的邮件消息。代码中包含了详细的 SMTP 处理器和 IMAP 连接处理逻辑,支持 FETCH、SELECT 等标准 IMAP 命令,并实现了邮件的缓存和检索机制。该代理系统同时支持 SMTP 监听在 0.0.0.0 : 2525,IMAP 监听在 0.0.0.0 : 2143,提供了一个完整的邮件收发和管理接口,为用户提供了一个可自行部署的邮件服务。
在 Codium 中使用 Aider:想要图形化,试试 Aider Composer 插件吧
本文介绍了在 Codium IDE 中集成外部 AI 助手 Aider 的具体过程和方法。文章指出 尽管 Codium 是一个现代编程工具,但它本身缺乏内置的 AI 助手功能,而传统的 TUI 小助手使用起来体验不佳,且容易造成 Agent 和 IDE 之间的割裂。为了弥补这一功能缺失,作者选择通过社区插件 Aider Composer 来实现 AI 问答、编码和规划功能。这个过程需要创建一个独立的依赖环境,具体使用了 Python 3.11 版本,并在 ~/.aider-composer/ 目录下创建了虚拟环境。随后,作者在该环境中安装了 aider-chat 和 flask 两个必要的模块包,并完成了插件环境路径的配置。完成基础设置后,还需要在 Aider Composer 的聊天界面中填入模型名称和 API 相关配置。最后,为了优化用户体验,作者将 AI 聊天框从默认的左侧位置拖动并移动到了 Codium 的右侧边栏,从而实现了 AI 辅助功能与主流软件习惯的统一。
如何搭建一个 Matrix 机器人:免部署桥接,实现广播日志和聊天回复
本文介绍了使用 Python 语言和 matrix-nio 库来构建和部署 Matrix 机器人,以实现服务器日志汇报和 AI 聊天回复功能。文章首先指出,传统的 Matrix 桥接配置过程复杂且缺乏教程,因此作者提供了一种更简单、更可靠的解决方案:利用 matrix-nio 这个专门用于 Matrix 账户控制的 Python 库来创建机器人。文章详细展示了两个核心的机器人脚本。第一个脚本是一个日志机器人,它能够执行 Linux 服务器的系统更新操作(例如 apt upgrade),并根据操作结果(成功或失败)生成日志信息,然后将这些日志通过 API 消息发送到指定的 Matrix 公群组中。这个功能非常适合在技术讨论群组中实时汇报后台任务的执行状态。第二个脚本则是一个更复杂的 AI 聊天机器人。它通过监听 Matrix 房间中的事件,接收用户发送的消息,然后利用 aiohttp 库调用外部 AI 接口(如 Deepseek)获取回复,并将 AI 的回复内容回传到聊天房间。为了确保项目的专业性和环境的隔离性,文章最后详细介绍了如何使用 Docker 技术来部署这些机器人。作者提供了一个完整的 Dockerfile 和 .env 文件示例,指导读者如何构建 Docker 镜像,并在容器中持续运行 AI 聊天机器人。这种基于 Docker 的部署方式,使得整个系统能够在一个干净、可控的环境中运行,极大地提高了项目的可维护性和稳定性。整个过程展示了从基础脚本编写到容器化部署的完整技术链条,为读者提供了一个完整的实践参考。
备份你的 Waline 评论:备份数据,借助 GitHub 定时执行任务
本文介绍了 1 个用于备份 Waline 评论数据的 Python 脚本及其配套的 GitHub Actions 工作流。脚本基于 Playwright 自动化浏览器操作,通过 Waline 官方提供的一键导出功能,将评论数据保存为 JSON 文件。运行时需要设置环境变量 WALINE_RESET_URLS 获取重置链接,依次访问后台并跳转至迁移页面,点击导出按钮完成下载。文章详细展示了参数解析、链接处理、文件命名及异常处理等核心代码,并说明了 Actions 的定时触发与密钥配置方式。此外,作者提醒用户应创建私密仓库存放备份,并强调保护好备份文件的重要性,因为其中包含的用户信息可能被恶意利用。整体内容兼顾代码展示与技术讲解,适合需要自动化备份 Waline 数据的开发者参考。
微信账单同步日历:使用 Python 脚本将支付记录导出到苹果日历
本文介绍了 1 个将微信支付账单 XLSX 文件转换为苹果 ICS 日历事件的 Python 脚本。作者为帮助母亲实现简易记账,设计并实现了该工具。脚本读取微信导出的 XLSX 账单,解析交易时间、收支类型和金额,按日期汇总每日收入与支出,然后生成 ICS 格式日历文件。生成的事件为全天事件,标题仅包含每日收支总金额和净收支,描述中保留笔数等细节,去除了店名等冗余信息,避免信息过载。用户只需在命令行指定 XLSX 文件路径,脚本即可输出 ICS 文件,双击即可导入 macOS 或 iOS 日历,每天打开手机便可直观查看收支概况。文章提供了完整的 Python 代码,包含文件解析、ICS 构建、命令行交互等模块,并给出了项目 GitHub 地址。该脚本设计极简实用,不包含图表分析或复杂分类,就像在纸质日历上写字一样纯粹直接。
批量拉黑 B 站评论区账号:评论区太乱?这个脚本帮你批量拉黑
本文介绍了作者为解决 B 站评论区充斥不适内容而开发的 Bilibili Comment Blacklist Tool 脚本。该工具基于 Playwright 框架,能够自动滚动评论、点击“更多”按钮并执行“加入黑名单”操作,全程不显示评论内容,避免用户情绪污染。文章详细阐述了脚本面临的两大技术挑战:嵌套 Shadow DOM 的结构穿越以及默认隐藏的“更多”按钮,并给出通过 JavaScript evaluate 强制覆写 CSS 样式、使用 dispatchEvent 模拟点击的解决方案。同时,脚本处理了拉黑后评论区自动刷新的情况,通过 UID 去重避免重复拉黑。部署步骤包括克隆项目、创建 Python 虚拟环境、安装依赖及 Playwright 的 Chromium 浏览器,并需将 B 站 Cookie 粘贴到配置中。文章最后强调该工具仅供学习研究,存在封号风险,作者通过加入随机延迟(0.5 - 3.5 秒)模拟人类操作以降低检测概率,并计划未来增加按关键词或用户名拉黑等精细功能,帮助用户过滤不良内容。
哔哩哔哩有多少小站:小站爬虫用 Playwright 发现 72 个社区
本文介绍了作者在 B 站发现“我的世界小站”功能后,对 MC 玩家社区需求的分析以及通过技术手段批量探索小站的过程。作者认为玩家真正缺失的不是论坛形式,而是优质资源和联机玩伴。为了了解 B 站共建了多少个小站,作者尝试编写爬虫,但发现网站采用 Vue 等前端框架进行客户端渲染,普通 HTTP 请求无法获取完整 HTML。随后利用 Playwright 库调用无头 Chromium 浏览器,模拟真实用户加载页面,等待 JS 执行完毕后提取 div.name 元素内容。脚本从数字 1 开始递增访问,遇到超时(视为 404)自动停止,成功获取到共 72 个小站的名称列表,包括艾尔登法环小站、Switch 小站、佛学学习分享小站等。文章还分享了脚本的 UA 伪装、依赖库配置、以及开发者对开源文档的考量,最终为读者提供了一个可直接运行的自动化工具,并鼓励对 B 站小站生态感兴趣的用户收藏使用。


