每天写代码写到深夜,女朋友说我只会对着屏幕傻笑。 她不知道我笑是因为刚调通一个bug,不是真的傻。有一天她突然问我,你写的东西能让我开心吗。我愣了一下,然后想到了一个主意。
我花了两个周末,用Python写了个小工具。每天早上7点,她手机就会收到一条我写的消息。不是那种网上抄的土味情话,是我自己对着键盘憋出来的。有时候写“今天下雨,记得带伞,你上次那把丢在我这了”。有时候写“你昨晚说梦话喊了三次火锅,晚上带你去吃”。她每次都回一个笑哭的表情。
代码其实很简单。核心就是用smtp库发邮件,因为她的手机开了邮件推送。我注册了一个专门的小邮箱,把发件人显示成“你的程序员”。密码写死在脚本里,没做安全处理,反正只有她收得到。
情话内容存在一个JSON文件里。每天随机挑一条,再用time模块判断日期。如果是特殊的日子,比如她生日或者我们纪念日,就发特定的那条。我特意留了个接口,随时可以往JSON里加新的话。有次她发现我写“今天是我们在一起的1314天”,她以为我偷偷记住了,其实是我用代码算的。
运行方式更粗暴。我买了个最便宜的云服务器,装了个Ubuntu。系统里设了个cron定时任务,每天早上7点执行一次脚本。服务器就跑了这一个任务,内存占用30MB,比个网页还轻。她到现在都不知道那台服务器的IP是多少。
有个细节我处理了很久。邮件发过去如果她没及时打开,推送通知会留在锁屏上。我加了个判断,如果发件时间超过两小时她还没看,就再发一条短的提醒。提醒的内容永远是“记得吃饭”。她后来跟我说,那天她加班到很晚看到这条,觉得我比外卖准时。
现在她偶尔会凑过来看我写代码,问“今天有没有写新的”。我就把终端切到那个JSON文件,让她自己念。她念的时候会笑,我就在旁边看她笑。那个for循环跑了快一年了,从来没报过错。
代码就三块:发邮件的逻辑,选内容的逻辑,定时任务的配置。加起来不到50行。写代码的人最清楚,技术含量高的东西往往不好用。反而这种简单到一眼看穿的脚本,才让人愿意用。
如果你也想搞一个,记住一个原则。不要用“亲爱的”这种万金油称呼。把她平时抱怨过的事情写进去,比如“你昨晚睡觉抢被子”“你咖啡又只喝半杯”。这些细节比她朋友圈里转发的“99句情话”好用一百倍。你的代码跑得再快,不如一句“你上次说想吃的店,我订好位置了”来得实在。
最后分享一个小技巧。脚本里加个随机延迟,30秒到60秒之间。别让她觉得这消息是机器准时发出来的。她问我为什么有时候7点零3分收到,有时候7点零8分。我说因为我在犹豫用什么词。她信了。