Coder Social home page Coder Social logo

hexo-circle-of-friends's Introduction

友链朋友圈

你是否经常烦恼于友链过多但没有时间浏览?那么友链朋友圈将解决这一痛点。你可以随时获取友链网站的更新内容,并了解友链的活跃情况。

部署教程:文档 | 备用地址

5.0.8 支持:
- 更好的前端样式
- 极简模式
- 新增前端管理面板,告别繁琐的配置,管理朋友圈更加方便
- 支持 gitee 和 github 上的 issues 友链获取
- 支持butterfly、volantis、matery、sakura、fluid、nexmoe、Yun、stun、stellar、next主题的友链和文章获取
- 支持feed订阅规则,如atom、rss等规则(支持wordpress类型的博客)
- 支持自定义订阅后缀
- 支持站点屏蔽
- 支持按照更新时间和创建时间排序
- 支持未适配的hexo主题和非hexo用户使用,可以在配置项选择开启配置项友链
- 额外的友链页同时爬取
- 支持添加HTTP代理
- 多种数据存储,提供leancloud,mysql,sqlite,mongodb存储方式
- 多种方式部署,提供github,server,docker部署方式
- 新增友链获取策略的多种common规则
- 新增api方式的配置项友链,并提供可扩展性
- 将额外友链页和环境变量友链统一为LINK,在配置文件中配置
- 提供一个简单的快速部署脚本

最近改动:
- 新增主页爬取文章数量可配置
- 在开启配置项友链情况下,LINK可以置空

Stargazers over time

hexo-circle-of-friends's People

Contributors

2x-ercha avatar colsrch avatar desirefire avatar hiltay avatar xaoxuu avatar zfour avatar zhheo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

hexo-circle-of-friends's Issues

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

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

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

image

思考过后的方案:

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

两种方法都很难受😭

请求将 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

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

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..
----------------------

完整版


数据库截图

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

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/请问一下可能的解决方式。

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

当点击活跃后,界面将无法在加载。试图修复但依然失败,排除过一些问题,但仍然未解决。
百分百复现。
博客对应链接🔗: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

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()

WAF怎么设置

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

请求被拦截.

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

image

image

[Suggestion]排序

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

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

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

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

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

/friend api 无效……

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

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

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

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

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

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

希望适配 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

api接口申请

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

樱花

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

改错仓库了

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

公共库源更新提醒

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

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

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

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

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

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

跨域请求被屏蔽

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

【功能建议】希望增加直接填写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不太好匹配,如果能像上面一样就大赞啦!

文章友链爬取

查看了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

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存在其它问题?如果确实是我操作存在问题,那好叭。

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

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)

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.