面向老婆开源

05/20 08:20
阅读数 0

作者 | 泰斯特

编辑 | 小慕


在我们程序员的世界里,比起找男/女朋友,更习惯于电脑打交道。这是因为程序不会撒谎且能够及时给予结果反馈,而人类的感情基本是没有什么规律可循的。具体有多不规律呢?


举个恐怖的例子,想象一下,你在实现接口时引入 random.choice() 随机调用执行函数 | 接口返回随机的数据结构…


这导致在大多数人眼中程序员自带害羞 & 木纳的 attribute,认为我们不擅长与异性同类打交道。但事实是,我们一旦锁定了目标,在我们缜密的 (编程) 表白逻辑与 23 种 (设计) 套路模式下,对方大概率会缴械投降。并且我相信,在一起过不了多久,他/她就会陷进我们层出不穷的恋爱黑科技中,无法自拔!


我的恋爱故事

不久前我认识了一个女生,可能是被狮子座女生强烈且独特的个性所吸引,在完成了上线(表白)前最后的预发布测试后,我向她表白了。正好她也喜欢我(测试通过),于是我们很快就在一起了。


不知不觉间,已经一起度过了半年的时光。这期间经历了很多很多事情,有好有坏。但不得不承认她确实丰富了我的日常生活(除电脑外的生活),并且我们都在变得越来越好,这让我更坚定了跟她走下去的决心。


我的恋爱神器

一直想让她亲身体验一下程序员男友的技术实力,于是趁着最近空余时间,我终于实现了藏在心中已久的黑科技:


恋爱版微信消息推送机器人

先给大家展示一下具体效果👇

测试环境效果展示



线上环境效果展示


项目灵感来源于日常生活中的一些小插曲:

回家路上
她:今天是我们在一起的多少天了 ?
我:em.... 好像是 120 天了 ?
她:错了!是 121 天了!
我:呜呜呜 我错了...

上班的时候 :(下午 5 点 20 分)
她:打卡!
....
她:你都不打卡了!是不是不爱我了!
....
我:呜呜呜,我错了...


01

开源项目介绍


Relationship-Maintenance

最稳定的(恋爱版)微信消息推送机器人


开源地址
github.com/amazingTest/Relationship-Maintenance


技术栈

Python 3.6

  • requests

  • APScheduler


主要功能

微信消息推送

  • cron 定时推送

  • 多任务并行推送

  • 自定义标题 & 内容

  • 随机内容配置(内置恋爱话术库)


程序架构

整个项目代码架构比较简单,核心代码共分为三个大模块:
info_bot :主要用于获取消息,分为内部消息(不需要网络请求)和外部消息;
messenger :主要用于实现消息推送(如企业微信消息推送)
cron :主要用于定时任务管理,结合 info_bot 与 messenger 达到程序最终的目的: 自定义消息定时推送


02

开源项目使用


安装依赖

pip install -r requirements.txt


   
   
   

消息推送配置

本项目采用了企业微信推送消息到微信(个人微信也能注册,无需认证,消息能直接在微信看到)



消息配置步骤

1、首先需要 [用电脑打开企业微信官网,注册一个企业]

2、注册成功后,点「管理企业」进入管理界面,选择「应用管理」 → 「自建」 → 「创建应用」

3、创建完成后进入应用详情页,可以得到应用ID ( agentid ),应用Secret ( secret )

4、进入「我的企业」页面,拉到最下边, 获取企业ID (corpid)

5、进入「我的企业」 → 「微信插件」,拉到下边扫描二维码,关注以后即可收到推送的消息。

6、将上面获得的 agentid,secret,corpid 写入 config/messenger.json 中就大功告成了。



定时任务配置

用于创建定时任务,定时向微信推送消息。
在 config/cron.json 中进行配置

例子


例子中共有 3 个定时消息推送任务:

早上 8 点推送一条消息:


中午 12 点推送一条消息:


下午 5 点 20 推送一条消息:


参数解释

payload 中的 begin_date(opt) 代表的是开始在一起的时间,用于计算在一起的时长;
payload 中 title(opt) 表示推送的标题;
payload 中 greeting_type(opt) 表示 lover_greeting 推送的类型(会随机在 config/builtin_sentences.json 中选择一条作为 content);
若在 payload 设置 content(opt) 值则会覆盖 greeting_type(opt) 参数产生的效果


运行程序

python3 main.py

支持 docker 容器化部署哦!


03

最后的总结 & 回顾


整个项目从 整理思路 -> 完成实现 -> 成功部署 -> 通过测试;大概耗时 2 天。


写了不少的开源项目了,感觉每次写新项目都是打破旧我,重新架构的过程(代表了当下的巅峰代码实力…)。非常建议大家有灵感或想法的时候不要犹豫,马上去实现!(这真的是个好习惯,强烈推荐!)


最后祝愿世间有情人天长地久!

单身的朋友也无需气馁,520快到了,先把此项目安排上,早日拿下心上人哦~ :)

本文分享自微信公众号 - AI测试前线(TaisiteMagicWorld)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部