Skip to content

友链朋友圈API和配置,Python gets the friend's articles from hexo's friend-links

Notifications You must be signed in to change notification settings

cxvh/hexo-circle-of-friends

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

当前版本1.13
——————————————————————————————
下一版本

更新日志
2021/2/12   加入了友链链接的去重,适配了中文时间sitemap抓取,
同时解决了时间格式不统一的问题导致的朋友圈时间显示错乱问题


什么是友链朋友圈?

你是否经常烦恼于友链过多但没有时间浏览?那么友链朋友圈将解决这一痛点。你可以随时获取友链网站的更新内容,并了解友链的活跃情况。
效果图如下:
image.png
因为是 beta 版本,所以不可避免还有错误,为了更好制作这个项目,发现 bug。我首先 release 这个 beta 版本。
预览链接https://zfe.space/friendcircle/

步骤一:配置 leancloud

① 账号注册

前往leancloud 国际版官网(推荐国际版)注册账号,登录。
image.png

② 新建应用

进入控制台创建一个应用,名字随意。
image.png

③ 绑定应用域名

我一般习惯绑定域名,不绑定貌似也可以,
将一个二级域名指向 leancloud 提供的 CNAME,
然后访问二级域名。
image.png
image.png

④ 获取应用 Keys

将应用 ID(AppID)和应用密钥(AppKey)保存下来,方便后面步骤使用。
image.png

步骤二:配置自动爬取友链文章的 github action

①fork 项目

前往hexo-circle-of-friendshttps://github.com/Zfour/hexo-circle-of-friends)fork 我的项目。
image.png

② 创建名为GITHUB_TOKEN的 TOKEN

前往token 链接添加一个名为GITHUB_TOKEN的 Token,并为赋予repoadmin:repo_hookworkflow的权限。
如果你有了就不用创建了。

ccknbc 友情提示说,也可以不用添加这个 TOKEN

image.png

③ 前往环境变量设置配置环境变量

Name分别以 APPID、APPKEY、LINK 创建环境变量。
Value 分别填入刚刚保存 Leancloud 的应用 ID(AppID)和应用密钥(AppKey)以及你的友链链接(https://zfe.space/link/
保存三个环境变量。
image.png
image.png

④ 给项目点上收藏

github action 将自动在每天 8 点到晚上 11:59 执行爬取任务。每半小时执行一次。
image.png
image.png
当执行完成后,访问你的leancloud后台,进入刚刚创建的项目,如果出现 friend_list 的 class 和 friend_poor 的 class 则说明配置成功。
可以查看爬取情况,对友链链接进行排错和查看存活情况。
或提醒好友,该部署 sitemap 了。
image.png

步骤三:配置 vercel api

① 注册

为了不暴露leancloud的应用 ID(AppID)和应用密钥(AppKey),同时减少前端处理数据的压力,还需配置 vercel api。
首先前往  Vercel 官网,点击右上角的 sign up 进行注册。
image.png
极有可能遇到的 bug
若注册时提示 Error:This user account is blocked.Contact support@vercel.com for more information.
这是由于 Vercel 不支持大部分国内邮箱。可以将 github 账号主邮箱改为 Gmail 邮箱。
但是根据群友反应,将 github 账号主邮箱切换为 Gmail 以后,Vercel 又会提示需要使用手机号码验证。然而 github 并没有提供手机号码绑定的内容。
综上,建议一开始注册 github 账号时就使用 Gmail 等国外邮箱进行注册。

  1. 国内访问Gmail的方案:
    • 直接使用 QQ 邮箱手机版,它提供 Gmail 的访问路线,可以直接注册并使用。
    • 使用 Ghelper 等浏览器插件访问。详情可以参考这篇文章:玩转 Microsoft-Edge
  2. 若是执着于当前Github账号,可以参考以下方案进行尝试:
    • 完成了 Gmail 等国外邮箱的注册,打开 github-> 头像 ->settings->Emails->Add email address, 并完成邮箱验证。
    • 在 Add email address  下方的 Primary email address  选项中将 Gmail 设置为主邮箱。

② 新建项目,fork 我的项目

打开dashboard点击新建项目的New Project按钮。点击导入第三方库。
image.png

填入俺提供的自建 API 项目地址:
https://github.com/Zfour/hexo-circle-of-friends-api

image.png
选择私有账户。点击select

image.png
选择 github 按钮然后会帮你将仓库克隆到你的 github 中,填入自定义仓库名称。
image.png

之后会识别出项目文件,单击  Continue
image.png
Vercel  的  PROJECT NAME  可以自定义,不用太过在意,但是之后不支持修改,若要改名,只能删除  PROJECT  以后重建一个了。下方三个选项保持默认就好。

image.png

此时点击 Deploy,Vercel  的 api 部署已经完成了一半。

③ 配置环境变量

进入应用,点击 Settings 选择Envionment Variables标签配置环境变量
Name分别以 LEANCLOUD_ID、LEANCLOUD_KEY 创建环境变量。
Value 分别填入刚刚保存 Leancloud 的应用 ID(AppID)和应用密钥(AppKey)。
image.png
image.png

④ 检查 API 是否配置成功

访问API 链接(图中链接+’/api’),如我的为(https://hexo-circle-of-friends-api.vercel.app/api
如果显示数据则说明 API 配置成功。

注意!!!
如果不成功请View Build Logs,然后手动 develope 一下

image.png
image.png

image.png

步骤四:配置 HEXO 页面

这里以 butterfly 主题为例。进行配置。

① 下载模板文件

前往Butterfly-friend-poor-html下载模板文件,放入根目录文件夹的 source 文件夹里。
image.png

② 引入 js

打开根目录的_config.butterfly 在 inject 的 bottom 处添加以下 vuejs 和本地 js 的代码。

xml
1
2
3
4
5
inject:
head:
bottom:
- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
- <script src="/friendcircle/request.js"></script>

③ 修改 api 地址

将以下代码中的链接换位你部署的 api 链接即可。

javascript
1
requests_url = "https://hexo-circle-of-friends-api.vercel.app/api";

④ 查看效果

hexo g 并 hexo s 访问你的域名+/friendcircle 则可查看效果。
image.png

⑤ 添加到导航栏

这个太简单了就不说了。

常见问题

目前根据群友反馈有以下问题:

① 目前群有反馈,js 文件压缩会出 bug,所以请尽量避免 js 压缩,你可以选择通过 jsdCDN 引入
② 如果 github action 无法提交 commit 请删除time.log再执行一遍即可
③ 如果配置了 api 但无法访问,请手动 develope verel 应用一下

最后给我的售后打个广告,有问题欢迎加群 674527148 询问。

当前版本 技术预览版 1.12

更新日志:

① 修复了时间比较时存在的时区不统一造成的最新文章判断错误问题。
② 修改了 sitemap 的爬取策略,即 dom 层级在三个层级以上,即’域名/博客目录/文章’,避免爬取 index 等。
适配了拥有标准时间格式’2021-2-11’格式的博客文章页
③ 修改了请求默认时间为 15s,降低了爬取错误的发生。
④ 修改了日志打印的格式,使其更加直观易懂
⑤ 增加了 gitee 友链获取的方式
⑥ 适配了截图式友链的友链获取

目前待解决的问题:

① 中文时间的适配?
② 很多人安装了各种不同格式的友链插件或者使用了各种不同格式的友链,
是否需要通过 xml 获取或者用 gitee-api 进行 api 的衔接?
③ 洪哥提出的使用 archives 链接的方案是否需要马上实现?

经过一天的群友测试,1.1 版本技术预览版本已发布
因为 aki 和洪总的友链是截图形式的,
本着麻烦用户就是犯罪的原则,我进行了这种截图形式和截图与原生混合形式的适配
最新 1.11 版本已更新

最新 1.12 版本已更新
适配了 gitee 友链
可以通过编辑userinfo.txt的内容爬取友链仓库的信息

xml
1
2
3
owner: zfe
repo: friend
state: open

重要提示:

:后面有一个空格
owner: zfe #用户名
repo: friend #仓库名
state: open #抓取提交的 issue
state: progressing #抓取进行中的 issue
state: closed #抓取完成的 issue

issue 格式如下,yaml 代码块不能省略:

markdown
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
**标题请书写你的链接,不要写其他内容**

```yaml
# 显示名称
name: 小冰博客

# 跳转地址
link: https://zfe.space/

# 你的头像
avatar: https://zfe.space/images/headimage.png

# 你的描述
descr: 咕咕咕
```

About

友链朋友圈API和配置,Python gets the friend's articles from hexo's friend-links

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%