为了让你们刷题,我操碎了心!

2022-03-26 09:58:25 浏览数 (1)

当初说过的刷题你刷了吗?LeetCode 的网页估计都没打开过吧?选择躺平了?不!我要让你卷起来。

最近倒腾了下 云函数,发现腾讯云每个月都有 5w 的免费额度,对于自己使用完全足够,然后在 云函数 中加入触发 企微 机器人的逻辑,这样就可以达到 企微 群通知的目的。所以,基于这个思路,我在 企微 中加入了获取 LeetCode 每日一题的逻辑,然后将题目的详情内容通过 企微 的 webhook 地址来通知群机器人,云函数还可以加 定时触发,可以设置每天什么时候触发函数通过机器人,所以,我选择了上午 9 点和晚上 9 点来通知,为了更好的明天,可千万不要忘了刷题!来看下最终的效果图:

下面会大致讲解下操作流程,代码部分不会讲,可以直接用我开源的代码复制粘贴进去即可,但需要替换一下你自己 企微 机器人的 webhook 地址

一、创建云函数

先给下几个地址:

  • 快速入门文档:https://cloud.tencent.com/document/product/583/37509
  • 云函数控制台地址:https://console.cloud.tencent.com/scf/list

这里我选择的是用 Node.js 来开发云函数,选择它并不是因为我会,而是他可以在线依赖安装,省去了不少本地上传依赖的烦恼,再加上 js 这种弱语言,写起来可爽了,只要知道思路,就 google 这个 api 怎么写,拼拼凑凑就写出来了。

我们先进入云函数控制台,创建个 云函数

image.png

点击 新建 进入 云函数 的创建流程:

image.png

我们选择 从头开始这个模板,填入函数名称为 leetcode,运行环境选择 Nodejs 16.13 版本,然后点 完成 进入 云函数 管理页面:

image.png

红色框框区域就是云函数编辑逻辑代码的区域,函数中的代码是模板 demo:

image.png

我们可以点击 部署并测试 来验证 云函数 的执行逻辑,执行过程和结果可以在 执行摘要执行日志 中进行查看

二、云函数开发

由于要开发 leetcode 逻辑,所以,搜了下可有现成的接口,正好被我搜到一篇 《Leetcode爬虫实践》(http://cattiek.site/2019/03/03/Leetcode爬虫实践/)的文章,并且 每日一题题目详情免登陆就可以通过请求拿到结果,非常符合我们的需要,这里不贴开发代码了,讲下一下开发过程中遇到的注意点:

1、云函数 给的实例代码是同步代码,对于网络请求这种异步任务,函数的返回要写成异步的,也就是写成 callback 这种回调,云函数文档也给出了说明 https://cloud.tencent.com/document/product/583/67790

2、在线依赖安装 需要自己手动配置 package.json 文件,这里我加了 requestturndown 两个依赖,一个是请求接口使用,一个是将 html 内容转成 markown 内容(企微不支持 html 内容,但支持 markdown),指导过程如下:

依赖内容:

代码语言:javascript复制
{
      "dependencies": {
      "request" : "2.81.0",
      "turndown": "7.1.1"
    }
}

注意:这一块必须配置,不然,云函数的执行会报找不到函数

3、企微不支持 html 格式的内容,所以这里使用了 turndown 库来将 html 转成 markdown 格式来内容推送,但由于 企微 的 markdown 又不支持图片的展示,真蛋疼,所以,用了迂回的方式,将图片 ![]() 的格式替换成了链接 []() 格式,可以通过点击链接来查看内容 ,效果如下:

image.png

三、创建机器人

企微群里面选择 添加机器人

然后选择 新建一个机器人

输入机器人的名称,然后点击 添加机器人

我们点击 复制地址,复制下我们机器人的 webhook 地址。

四、导入函数代码

leetcode 代码仓库链接在 https://github.com/MRwangqi/tencent-function,我们将 leetcode.js 的代码直接拷贝进云函数中:

这个地方需要粘贴进我们企微的机器人的 webhook 地址,然后点击 部署并测试 即可看到企微收到了一条机器人的通知,效果如下:

image.png

五、定时触发

选择 触发管理创建触发器

由于其他几个触发周期都太死板,我们这里选择自定义触发周期:

输入 Cron 表达式 0 0 9 */1 * * *,该表达式的意思是:每天 9 点触发

点击提交即可

六、总结

这下再也不用怕没人喊你刷题了,为了让你们卷起来,我操碎了心!

再贴一下源码地址:https://github.com/MRwangqi/tencent-function

0 人点赞