为了偷懒我决定写一个定时推送…

/ 0评 / 1

    可是我后来发现人工分享好累,后面居然开始有朋友说我推的歌不好玩。

     

    这就有点过分了。所以决定用机械的方式,来做每日的一个定时推送。

方案A:

    这是我在刚刚有这个打算时候想法:使用API拉到我的歌单列表,然后随机那首歌,取这首歌的热评,然后从热评随机拿一条作为分享的文案。而分享的目标点是尻尻空间。之所以这么做,是因为我发现如果是机械的推送,推送时的文案就要diff一点。所以有了这个的方案。:

    可是这样在实际中容易发生问题:比如冷门歌曲或者新歌曲刚加入歌单之后并没有热门评论,亦或者请求api的时候返回结果为空了或者速度过慢导致推送不准时(强迫症希望每天的早上09:19分能够看到我的推送)可能需要写两个Crontable来控制这件事。

    所以本着敏捷开发最基本的原则:先推出一个可以Work的版本。

    所以最终方案暂定为以下流程:

  1. 获取用户所关联的所有歌单
  2. 随机随选一张歌单并选择其中的一首歌
  3. 获取该音乐的热门评论作为分享文案
  4. 推送至QQ空间

    既然想清了能够Work的流程就可以开搞了

特别粗糙的实现:

    鉴于之前推送基础,难点在于部署服务器端的登录分享。这里可能会用到一些模拟登录的操作。

    所以接下来的篇章就是说如何登录了。

    其实无论如何想要实现自动登录就要有一个键入账户和密码的过程,其次你才有可能去利用Cookie去在Cookie未过期的情况下实现登录,所以还不如做一个通过的登录。之前在做数据采集的时候正好处理过一些相关的东西:selenium。一款用于自动化测试的工具,可以模拟人为的条件去登陆。只要不是频繁操作,腾讯是不会放出一个滑块验证码来烦人的。当然,除非你是异地登录。

    这样一来1.0版本就呼之欲出了:

    在这背后在加入CornTab来监督定时任务就好了。

我想有个V1.1

    既然到这里了,就会发现上面的方案有很大的缺陷,比如拉去的异常再次执行时速度缓慢,频繁的请求会让网易云的API任务你就是个恶意的小鬼。所以想要稳定就要做到对象持久化。

    所以有几个点可以更改:

        1、预热消息体,在分享任务启动之前就做好消息组装,而不是函数强依赖。

        2、加速登录流程(预热登录,利用Cookie作为登录Pass,不再依赖自动化工具的写入)

    想到这里又要爆肝。不禁开始嘤嘤嘤

    

发表评论

电子邮件地址不会被公开。 必填项已用*标注