功能列表
- 获取评论
- 友链去重
- 友链黑名单
- 友链访问速度测试
- 自定义修改以添加友链的具体内容
- 自定义添加友链
- 为友链朋友圈提供json适配
- 添加了通过api修改自定义友链(无页面)
- 可以通过前端界面修改配置,黑名单,缓慢友链
配置项说明
config.yml
/config/config.yml
yml
接口说明
/autolink
ip/autolink
此处返还你的友链json,你可以根据这个json去适配你的主题,第一个api不返回详细信息,第二个api当存在正确的Authorization时,会返回详细的友链内容
示例:
js
fetch("ip/autolink")
.then(response => response.json())
.then(json => {
console.log(json)
}).catch(err => console.log('Request Failed', err));
js
let token = localStorage.getItem('token')
fetch('ip/autolink',{
method: 'POST',
headers: {'Authorization': token},
})
.then(response => response.json())
.then(json => {
console.log(json)
}).catch(err => console.log('Request Failed', err));
返回示例如下:
json
state = 2 是正常访问的友链(1暂定为优先级最高,默认添加到2)
state = 0 是黑名单的友链
state = -1 是黑名单的友链
/hexo_circle_of_friends
ip/hexo_circle_of_friends
此api是为友链朋友圈做的适配,可以使其正常抓取友链
示例:
js
fetch("ip/hexo_circle_of_friends")
.then(response => response.json())
.then(json => {
console.log(json)
}).catch(err => console.log('Request Failed', err));
返回示例如下:
json
友链朋友圈配置看下方链接
友链朋友圈, 点我前往
/login
ip/login
此api用于登录,如果没有设置密码,则第一次登录密码将设为密码,返回token,自行储存到本地使用,有效期12h或后端重启
示例:
js
返回示例:
json
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcwMjMxMzYwMiwianRpIjoiMTA0OTg0ZmEtMDBlZS00ODk4LTg0NDMtNDk0Yzc2MjdlMGM4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6InRodW5kZXJfbHVvbGluZyIsIm5iZiI6MTcwMjMxMzYwMiwiZXhwIjoxNzAyMzE0NTAyfQ.idyM7o91oLtEylSALNLxvxSSi6mZC0T7WCbEuSvDIPI",
"code": 200
}
/insert_links
ip/insert_links
此api用于修改和提交友链,以及提交黑名单,处于黑名单时,以存在的友链的state为0
示例:
js
返回示例:
json
/upload
ip/upload
此api用于在博客中给用户自己添加友链的权限,提交的友链的权限为-1,示例代码如下
js
返回示例:
json
{"code": "err", "message": "There is no modified data"}
{"code": "ok", "message": "Data has been modified successfully"}
/update_links
ip/update_links
此api用于修改友链的内容,提交需带上token和mail,其余内容随便
js
输出如下:
json
{"code": "200", "message": "Data has been modified successfully"}
{"code": "error", "message": "Missing 'mail' in data"}
/config
ip/config
此api用于修改本地的配置文件
示例:
js
返回示例:
json
ip/config
此api用于修改本地的配置文件
示例:
js
返回示例:
json
前端适配
目前以适配anzhiyu-butterfly
可以查看我这篇文章部署前端(此前端只支持老版本,自行去release下载)
Butterfly 友链魔改之自动获取友链, 点我前往!!
可以尝试自己手动适配
项目部署
安装Python
我使用的Python版本是3.8.8,run.py中使用的python语法是python3,如果你不想重新安装一个python版本你可以自己调整一下代码
安装依赖
bash
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel yum vim gcc
安装python
bash
wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz
tar -zxf Python-3.8.8.tgz && cd Python-3.8.8
./configure --prefix=/usr/local/python3
make && make install
建立软连接
bash
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
验证自己的python是否安装成功
bash
python3 --version
安装git
bash
yum install -y git
获取评论
获取评论有两种方式,一种适合twikoo和本项目不在一台服务器上,另一种适合部署在一起的情况
twikoo的部署可以看我的这篇文章:
Twikoo私有部署记录
本地获取评论
确保你可以在你的服务器上访问到你的评论,假如你是跟着我部署twikoo的,那你可以直接跳到下一步了

这个就是你的评论数据
通过远程链接获取评论
这简直就是脱裤子放屁,不写了

选择db.json.0,在更多里选择外链共享,选择永久,点击生成外链,复制这个链接
打开twikoo网站设置,选择重定向,重定向类型选择路径,路径里输入/autolink,目标url就是你刚刚复制的链接

点击提交
部署AutoLink
clone项目
clone项目仓库,地址:https://github.com/Karunari-luoling/autolink
git
git clone https://github.com/Karunari-luoling/autolink
修改配置
编辑/autolink/config.json
json
{
"url": "/root/twikoo/data/db.json.0",
"port": 3000,
"fentch_interval": 30,
"dangerous_interval": 24,
"failed_interval":6
}
在url中输入你的twikoo评论获取方式,如:https://twikoo.byer.top/autolink或者 /root/twikoo/data/db.json.0
port 是你本地的端口
fentch_interval的值是指多少分钟重新获取一次评论,单位是分钟,建议这个时间不要太短,30分钟以上一次最好
dangerous_interval是发送get请求判断友链访问速度,单位是小时,不建议太短时间,容易给别的网站封禁
failed_interval是发送HEAD请求判断友链存活,单位是小时,资源占用率小,不会给别人造成困扰
安装依赖
pip
pip3 install -r requirements.txt
运行AutoLink
bash
python3 run.py
输入完这个之后我们可以查看进程,一个是处理评论的程序,一个是用来提供访问的api

尝试访问API:
bash
curl 127.0.0.1:3000/autolink
出现数据即为部署成功。
添加站点
选择网站,添加站点,然后输入我们要设置的域名,选择纯静态,点击提交。

设置反代
点击我们刚才创建的网站,点击反向代理,添加反向代理,添加代理名称,在目标url中输入http://127.0.0.1:3080,点击提交。

申请SSL证书
我们可以在腾讯云的SSL证书控制台申请免费的SSL证书。
登录完成后,点击我的证书,申请免费证书
申请完毕之后,按照提示给你的域名添加相应的解析,以便完成验证。
证书签发完成后,选择下载,选择Nginx,解压后打开.pem文件和.key文件。
部署你的SSL证书
选择网站,点击你的站点,在SSL中将你的密钥和证书输入到里面,选择保存,强制HTTPS即可
懒得截图了,整个以前的图片

访问https地址来查看是否运行正常。


