Giter VIP home page Giter VIP logo

hexo-circle-of-friends's Issues

请求被拦截.

CloudFlare拦截了请求,方法被识别为UNKNOWN
run.py请求优化一下应该能解决这个问题.现在是识别为自动攻击了.
WAP已将这个URL路径设置为允许了
image

image

image

改错仓库了

image
我想改我自己fork的仓库 然后我点错了
image
但是我不知道为什么这个仓库在我这里显示
抱歉

/friend api 无效……

可以复现的链接:fc.liynw.top

可以发现在后面加上 /all 有数据,但是加上 /friend 显示 Not Found

樱花

sakura
樱花主题分包,友链规则可以正常使用,主页规则有点问题,我怀疑是获取文章发布时间的字符串需要截取,但咱也不会截啊,等冰老师来看看怎么搞。

爬到了,但是数据库没有信息

2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://blog.vincent1230.top/rss.xml> (failed 3 times): User timeout caused connection failure: Getting https://blog.vincent1230.top/rss.xml took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://sqdpt.top/atom.xml> (failed 3 times): Connection was refused by other side: 111: Connection refused.
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://sqdpt.top/> (failed 3 times): Connection was refused by other side: 111: Connection refused.
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://blog.vincent1230.top/feed/atom> (failed 3 times): User timeout caused connection failure: Getting https://blog.vincent1230.top/feed/atom took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://blog.vincent1230.top/feed/> (failed 3 times): User timeout caused connection failure: Getting https://blog.vincent1230.top/feed/ took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://throwx.cn/rss2.xml> (failed 3 times): User timeout caused connection failure: Getting https://throwx.cn/rss2.xml took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://throwx.cn/rss.xml> (failed 3 times): User timeout caused connection failure: Getting https://throwx.cn/rss.xml took longer than 15.0 seconds..

错误详细

----------------------
Vincent文朔
《[宝塔面板] v7.9.0 面板主题美化包》
文章发布时间:2021-12-22		采取的爬虫规则为:sakura
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://blog.vincent1230.top/rss.xml> (failed 3 times): User timeout caused connection failure: Getting https://blog.vincent1230.top/rss.xml took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://sqdpt.top/atom.xml> (failed 3 times): Connection was refused by other side: 111: Connection refused.
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://sqdpt.top/> (failed 3 times): Connection was refused by other side: 111: Connection refused.
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://blog.vincent1230.top/feed/atom> (failed 3 times): User timeout caused connection failure: Getting https://blog.vincent1230.top/feed/atom took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://blog.vincent1230.top/feed/> (failed 3 times): User timeout caused connection failure: Getting https://blog.vincent1230.top/feed/ took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://throwx.cn/rss2.xml> (failed 3 times): User timeout caused connection failure: Getting https://throwx.cn/rss2.xml took longer than 15.0 seconds..
2022-03-20 18:57:09 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://throwx.cn/rss.xml> (failed 3 times): User timeout caused connection failure: Getting https://throwx.cn/rss.xml took longer than 15.0 seconds..
----------------------

完整版


数据库截图

这个作者的文章只有一篇没报错,其他的都报错。很奇怪

WAF怎么设置

我给博客套了Cloudflare,对国外ip进行质询
如何设置WAF能使GitHub Action正常访问?

当点击活跃后,界面将无法在加载

当点击活跃后,界面将无法在加载。试图修复但依然失败,排除过一些问题,但仍然未解决。
百分百复现。
博客对应链接🔗:https://lanyundev.vercel.app/fcircle/
仓库相应链接🔗:https://github.com/LanYunDev/hexo-circle-of-friends
API:https://hexo-circle-of-friends-five.vercel.app/
image

image

➜ Blog-博客 git:(main) ✗ hexo version INFO Validating config INFO ===================================================================
  #####  #    # ##### ##### ###### #####  ###### #      #   #
  #    # #    #   #     #   #      #    # #      #       # #
  #####  #    #   #     #   #####  #    # #####  #        #
  #    # #    #   #     #   #      #####  #      #        #
  #    # #    #   #     #   #      #   #  #      #        #
  #####   ####    #     #   ###### #    # #      ######   #

                        4.2.1

===================================================================
hexo: 6.2.0
hexo-cli: 4.3.0
os: darwin 21.4.0 12.3.1

node: 18.0.0
v8: 10.1.124.8-node.13
uv: 1.44.1
zlib: 1.2.11
brotli: 1.0.9
ares: 1.18.1
modules: 108
nghttp2: 1.47.0
napi: 8
llhttp: 6.0.4
openssl: 1.1.1n
cldr: 40.0
icu: 70.1
tz: 2021a3
unicode: 14.0

fcircle界面布局异常

按照教程部署fcircle后,访问fcircle界面布局异常。没有对butterfly主题做大规模魔改。fcircle界面如下:

---
title: 朋友圈
date:
updated:
type:
comments:
description:
keywords:
top_img:
mathjax:
katex:
aside:
aplayer:
highlight_shrink:
---

<!-- 挂载友链朋友圈的容器 -->
<div class="post-content"><div id="cf-container">与主机通讯中……</div></div>
<!-- 加样式和功能代码 -->
<!-- 将apiurl改成你后端生成的api地址 -->
<script type="text/javascript">
  var fdataUser = {
    apiurl: 'https://hexo-circle-of-friends.vercel.app/'
  }
</script>
<link rel="stylesheet" href="https://fastly.jsdelivr.net/gh/lmm214/immmmm/themes/hello-friend/static/fcircle-beta.css">
<script type="text/javascript" src="https://fastly.jsdelivr.net/gh/lmm214/immmmm/themes/hello-friend/static/fcircle-beta.js"></script>

发生错误的网站:https://www.felixchen0707.cn/fcircle/请问一下可能的解决方式。

LeanCloud部署可能存在问题?

因为以前一直习惯使用LeanCloud,查看文档发现5.x更新挺多的,所以删库重新操作,根据文档添加
github的环境变量
image

vercel的环境变量
image

工作流运行正常 https://github.com/GC-ZF/hexo-circle-of-friends/actions/runs/3289482837
但是LeanCloud中并没有新建friend_list和friend_poor
这个时候我以为是ID和Key填错了,又删库重复操作了两遍结果还是相同
所以修改为了sqlite,在前端面板又尝试修改数据库管理方式,填写ID和Key之后又好了?所以我又删了LeanCloud的应用重新以sqlite的前端方式打开面板又尝试一次,还是成功。过程中工作流也没任何报错,我好迷啊,尝试看了工作流和读取变量的代码,也没有问题啊,所以想问问作者,是不是LeanCloud存在其它问题?如果确实是我操作存在问题,那好叭。

感谢作者的新版前端方案,很好用!

文章友链爬取

查看了actions,一直有这种问题:我朋友的博客始终爬取不到处于失联状态,他和我一个框架一个主题,不存在有反爬问题...
image
image

后端正常,前端报错

博客链接:
https://www.casecori.top/circle/
仓库链接:
https://github.com/Cystee/hexo-circle-of-friends
API:
https://hexo-circle-of-friends-rosy.vercel.app/all

页面源码:

---
title: 朋友圈
date: 2022-6-26
---

<div id="cf-container">与主机通讯中……</div>

<link rel="stylesheet" href="https://cdn.casecori.top/gh/lmm214/immmmm/themes/hello-friend/static/fcircle-beta.css">

<script type="text/javascript">
  var fdataUser = {
    apiurl: 'https://hexo-circle-of-friends-rosy.vercel.app/'
  }
</script>

<script type="text/javascript" src="https://cdn.casecori.top/gh/lmm214/immmmm/themes/hello-friend/static/fcircle-beta.js"></script>

控制台报错:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'article_num')
    at loadStatistical (fcircle-beta.js:47:23)
    at fcircle-beta.js:265:7

This Serverless Function has crashed.

[GET] /all
18:22:25:32
[ERROR] AttributeError: 'str' object has no attribute 'decode'
Traceback (most recent call last):
  File "/var/task/vc__handler__python.py", line 293, in vc_handler
    response = asgi_cycle(__vc_module.app, body)
  File "/var/task/vc__handler__python.py", line 204, in __call__
    loop.run_until_complete(asgi_task)
  File "/var/lang/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
    return future.result()
  File "/var/task/fastapi/applications.py", line 208, in __call__
    await super().__call__(scope, receive, send)
  File "/var/task/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/var/task/starlette/middleware/errors.py", line 181, in __call__
    raise exc from None
  File "/var/task/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/var/task/starlette/middleware/cors.py", line 78, in __call__
    await self.app(scope, receive, send)
  File "/var/task/starlette/exceptions.py", line 82, in __call__
    raise exc from None
  File "/var/task/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/var/task/starlette/routing.py", line 580, in __call__
    await route.handle(scope, receive, send)
  File "/var/task/starlette/routing.py", line 241, in handle
    await self.app(scope, receive, send)
  File "/var/task/starlette/routing.py", line 55, in app
    await response(scope, receive, send)
  File "/var/task/starlette/responses.py", line 136, in __call__
    await send(
  File "/var/task/starlette/exceptions.py", line 68, in sender
    await send(message)
  File "/var/task/starlette/middleware/errors.py", line 156, in _send
    await send(message)
  File "/var/task/vc__handler__python.py", line 232, in send
    self.on_request(headers, status_code)
  File "/var/task/vc__handler__python.py", line 253, in on_request
    self.response['headers'] = format_headers(headers, decode=True)
  File "/var/task/vc__handler__python.py", line 20, in format_headers
    key = key.decode()
    
[GET] /all?rule=created&start=0&end=20
18:22:11:63
[ERROR] AttributeError: 'str' object has no attribute 'decode'
Traceback (most recent call last):
  File "/var/task/vc__handler__python.py", line 293, in vc_handler
    response = asgi_cycle(__vc_module.app, body)
  File "/var/task/vc__handler__python.py", line 204, in __call__
    loop.run_until_complete(asgi_task)
  File "/var/lang/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
    return future.result()
  File "/var/task/fastapi/applications.py", line 208, in __call__
    await super().__call__(scope, receive, send)
  File "/var/task/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/var/task/starlette/middleware/errors.py", line 181, in __call__
    raise exc from None
  File "/var/task/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/var/task/starlette/middleware/cors.py", line 78, in __call__
    await self.app(scope, receive, send)
  File "/var/task/starlette/exceptions.py", line 82, in __call__
    raise exc from None
  File "/var/task/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/var/task/starlette/routing.py", line 580, in __call__
    await route.handle(scope, receive, send)
  File "/var/task/starlette/routing.py", line 241, in handle
    await self.app(scope, receive, send)
  File "/var/task/starlette/routing.py", line 55, in app
    await response(scope, receive, send)
  File "/var/task/starlette/responses.py", line 136, in __call__
    await send(
  File "/var/task/starlette/exceptions.py", line 68, in sender
    await send(message)
  File "/var/task/starlette/middleware/errors.py", line 156, in _send
    await send(message)
  File "/var/task/vc__handler__python.py", line 232, in send
    self.on_request(headers, status_code)
  File "/var/task/vc__handler__python.py", line 253, in on_request
    self.response['headers'] = format_headers(headers, decode=True)
  File "/var/task/vc__handler__python.py", line 20, in format_headers
    key = key.decode()

公共库源更新提醒

您好,我是 https://github.com/saveweb/rss-list 的维护者,看到这个项目用到了 saveweb/rss-list 作为公共库。

上一版本的 OPML 中有部分博客已经变成垃圾站了,垃圾站的RSS一直在发广告文章。

比如『青山绿水』和『纬八路生活随笔集』,一直在发送垃圾文章。:图片

我们新版的 OPML 还没有发布,建议先使用 https://box.othing.xyz/realtime.opml.xml 的 OPML 替换目前公共库使用的 OPML 。

正式的新版 OPML 将于近期发布,谢谢。

另外,你们项目有交流群之类的吗?如果有的话,我想加入一下。:P

[Suggestion]排序

现在前端、后端都有排序的部分,可以考虑在后端完成排序送回,前端在fetch的时候送入链接?

【功能建议】希望增加直接填写rss链接,并可配置指定解析类型

用爱发电,再次敬佩!

settings.py 里 增加高阶配置选项

["贰猹の小窝", "https://noionion.top/rss.xml", "head.jpg","rss"],
["贰猹の小窝", "https://noionion.top/atom.xml", "head.jpg","atom"],
["贰猹の小窝", "https://noionion.top/atom.xml", "head.jpg","atom"],
["shuiba", "https://blog.shuiba.co/feed", "head.jpg","atom"],
["elizen", "https://elizen.me/index.xml", "head.jpg","rss"],

目前的自动匹配模式能解析到大部分,但有些不规范的feed不太好匹配,如果能像上面一样就大赞啦!

请求将 LINK 作为非必填项 && Need Help && 请求 shoka 主题适配

请求将 LINK 作为非必填项

对于一些使用主题不适配的同学来说填 LINK 是没有必要的,反而让他们很疑惑,不知道该怎么填。


Need Help

控制台报错 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'article_num') 如何解决?

本人部署方式:GitHub + Leancloud + Vercel,由于主题不适配,所以用的是配置项友链。

演示地址:https://blog.saiodgm.gq/fcircle/

本人前端 api 地址:https://hexo-circle-of-friends-xi.vercel.app/


请求 shoka 主题适配

theme link | 本人友链页面演示地址

经本人测试,整体 class 名为 links,每一个链接块 class 名为 item,链接名为 exturl title,头像为 exturl image

LINK 未设置导致的程序不再正常尝试截取友链问题

所有文档里的步骤我都看得懂而且应该都没有错,但最后抓取的时候,还是出了问题…

起因:发现文档步骤结束后,api查询不到任何内容
中途:发现 Github Actions 里的日志显示抓取 0 篇内容
结果:正常网页是通过模板网页从json文件中获取的,也就是发送了 GET 请求,最终得到的页面内元素。目测是因为抓取的是源网页文件而没有运行上边的JS代码,而从而彻底丢失其中的主要内容。

image

思考过后的方案:

  • 将友链内容改为 JSON 格式,友链页面改为二次 GET 请求(第一次获取内容模板,第二次为逐个填充友链内容)从 JSON 中获取。但一来要写 JS 获取,二来损失了加载速度。
  • 直接弃用抓取法,改用手工录入友链。缺点是非常麻烦

两种方法都很难受😭

【临时反馈区】配置出问题之类的可以在这里反馈

冰老师不运维这个项目已经很久了,今天才发现冰老师说明书那一堆待解决问题(头疼

然后冰老师也没给我友链朋友圈仓库setting的权限,所以我暂时也没办法开Discussions,只能在这里临时开个issus用于讨论

另外老说明书也有一部分配置内容跟不上现在的版本,新说明书已经在写了,会和3.0版本同步发布(具体什么时候得等店长写完新UI)

跨域请求被屏蔽

使用的是Chrome电脑版,一开始正常,过段时间后出现了跨域请求被屏蔽(期间未更改任何配置);接着尝试用Edge电脑版、Chrome手机版,一切正常。
Snipaste_2022-06-12_00-14-19

Server部署报错

ubuntu 20.04.3 LTS x64
Python 3.8.10
MySQL 5.7.34

报错显示:

[parameters: {'title': '2022高考加油💪', 'created': '2022-02-26', 'updated': '2022-02-26', 'link': 'https://www.jipa.work/2022gk/', 'author': 'JIPA233の小窝', 'avatar': 'https://img.cdn.nesxc.com/2022/03/1647358231690-20220315233030.webp', 'rule': 'rss20', 'createAt': datetime.datetime(2022, 3, 19, 9, 58, 14, 965015)}]
(Background on this error at: https://sqlalche.me/e/14/9h9h) (Background on this error at: https://sqlalche.me/e/14/7s2a)
2022-03-19 02:06:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://hesifan.top/atom.xml> (failed 3 times): User timeout caused connection failure: Getting https://hesifan.top/atom.xml took longer than 15.0 seconds..
2022-03-19 02:06:18 [scrapy.core.scraper] ERROR: Error processing {'author': "Haobo's Blog", 'avatar': 'https://img.cdn.nesxc.com/2022/02/202202052207248webp', 'rule': 'atom10', 'title': '【数学】到底什么是信息论 施工中~', 'created': '2022-02-25', 'updated': '2022-02-25', 'link': 'https://discover304.top/2022/02/25/2022q1/144-information-theory/'}
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/twisted/internet/defer.py", line 858, in _runCallbacks
    current.result = callback(  # type: ignore[misc]
  File "/usr/local/lib/python3.8/dist-packages/scrapy/utils/defer.py", line 150, in f
    return deferred_from_coro(coro_f(*coro_args, **coro_kwargs))
  File "/home/nserver/circle-of-friends/hexo-circle-of-friends/hexo_circle_of_friends/pipelines/sql_pipe.py", line 73, in process_item
    self.friendpoor_push(item)
  File "/home/nserver/circle-of-friends/hexo-circle-of-friends/hexo_circle_of_friends/pipelines/sql_pipe.py", line 153, in friendpoor_push
    self.session.commit()
  File "<string>", line 2, in commit
  File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/session.py", line 1431, in commit
    self._transaction.commit(_to_root=self.future)
  File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/session.py", line 827, in commit
    self._assert_active(prepared_ok=True)
  File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/session.py", line 601, in _assert_active
    raise sa_exc.PendingRollbackError(
sqlalchemy.exc.PendingRollbackError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (pymysql.err.DataError) (1366, "Incorrect string value: '\\xF0\\x9F\\x92\\xAA' for column 'title' at row 1")
[SQL: INSERT INTO posts (title, created, updated, link, author, avatar, rule, `createAt`) VALUES (%(title)s, %(created)s, %(updated)s, %(link)s, %(author)s, %(avatar)s, %(rule)s, %(createAt)s)]
[parameters: {'title': '2022高考加油💪', 'created': '2022-02-26', 'updated': '2022-02-26', 'link': 'https://www.jipa.work/2022gk/', 'author': 'JIPA233の小窝', 'avatar': 'https://img.cdn.nesxc.com/2022/03/1647358231690-20220315233030.webp', 'rule': 'rss20', 'createAt': datetime.datetime(2022, 3, 19, 9, 58, 14, 965015)}]
(Background on this error at: https://sqlalche.me/e/14/9h9h) (Background on this error at: https://sqlalche.me/e/14/7s2a)
2022-03-19 02:06:18 [scrapy.core.engine] ERROR: Scraper close failure
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/twisted/internet/defer.py", line 858, in _runCallbacks
    current.result = callback(  # type: ignore[misc]
  File "/home/nserver/circle-of-friends/hexo-circle-of-friends/hexo_circle_of_friends/pipelines/sql_pipe.py", line 81, in close_spider
    self.friendlist_push()
  File "/home/nserver/circle-of-friends/hexo-circle-of-friends/hexo_circle_of_friends/pipelines/sql_pipe.py", line 140, in friendlist_push
    self.session.commit()
  File "<string>", line 2, in commit
  File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/session.py", line 1431, in commit
    self._transaction.commit(_to_root=self.future)
  File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/session.py", line 827, in commit
    self._assert_active(prepared_ok=True)
  File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/session.py", line 601, in _assert_active
    raise sa_exc.PendingRollbackError(
sqlalchemy.exc.PendingRollbackError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (pymysql.err.DataError) (1366, "Incorrect string value: '\\xF0\\x9F\\x92\\xAA' for column 'title' at row 1")
[SQL: INSERT INTO posts (title, created, updated, link, author, avatar, rule, `createAt`) VALUES (%(title)s, %(created)s, %(updated)s, %(link)s, %(author)s, %(avatar)s, %(rule)s, %(createAt)s)]
[parameters: {'title': '2022高考加油💪', 'created': '2022-02-26', 'updated': '2022-02-26', 'link': 'https://www.jipa.work/2022gk/', 'author': 'JIPA233の小窝', 'avatar': 'https://img.cdn.nesxc.com/2022/03/1647358231690-20220315233030.webp', 'rule': 'rss20', 'createAt': datetime.datetime(2022, 3, 19, 9, 58, 14, 965015)}]
(Background on this error at: https://sqlalche.me/e/14/9h9h) (Background on this error at: https://sqlalche.me/e/14/7s2a)

希望适配 hexo-theme-stellar 主题

stellar 的友链和 volantis 同源,在 1.5 版本是可以通用的,但我目前在配置 4.0 版本时失败了,目前采用 'CONFIG_FRIENDS_LINKS['list']' 策略配置成功。

stellar 友链也采用 github + friends.yml 的策略
friends.yml 格式如下:

group:
  title: 
  description: 
  items:
    - title: 
      avatar: 
      url: 
      screenshot:
      keywords: 
      description: 

github 格式如下:

{
    "title": "",
    "url": "",
    "avatar": "",
    "screenshot": "",
    "description": "",
    "keywords": ""
}

相关链接:
stellar 主题仓库:https://github.com/xaoxuu/hexo-theme-stellar
stellar 友链策略:https://xaoxuu.com/wiki/stellar/tag-plugins/#%E5%8F%8B%E9%93%BE%E6%A0%87%E7%AD%BE

关于将此插件内置于 Stellar 和 Volantis 主题的想法和方案探讨

这是一个很棒的插件,所以我想集成到主题中,作为一个无需配置开箱即用的功能。现有的模式可能做不到开箱即用(因为需要后端配置),我想能不能做成像 #issues-api 一样把数据存储到仓库中(这个项目也是受冰老师启发和指导),前端直接通过GItHub API 拉取存放于仓库的数据。

这样主题使用者就不需要任何后端配置就可以直接使用此功能了。

JSON存放到仓库中有些功能不方便支持,但我认为那也不是必要的,只要保留最近100条按发布时间倒序排序就可以了。(核心诉求:基础功能+无后端)

api接口申请

希望能添加个api,返回数据库所有友链对应的总文章数和最新一篇文章的时间 (博主可以用来排查太久没更新的友链 失联人员

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.