Coder Social home page Coder Social logo

calibre-web-douban-api's Introduction

calibre-web-douban-api

2023-07-15

最新豆瓣屏蔽直接访问封面图片,自动实现使用本地代理封面图片,保存时使用requests下载并保存

2022-10-08

原douban列表url被屏蔽,老版本不能访问,建议更新最新的NewDouban.py

2022-08-10

最新V0.6.19版本的calbire-web的豆瓣插件已经回来了,除了标签外,应该都有数据了,可以不用此插件了

新版calibre-web已经移除douban-api了,而且把从get_meta.js中直接发起请求获取数据改成了从服务端使用python获取数据。

此项目是添加一个豆瓣api provider实现,需要放到metadata_provider目录下

使用方法

复制src/NewDouban.pycalibre-web/cps/metadata_provider/目录下,重启项目即可。

此应用是基于Python抓取网页的形式获取书籍信息,频率过高访问可能被屏蔽。

参考文档:https://fugary.com/?p=238

新版calibre-web 0.6.17以上使用

小于0.6.17版本,请下载:https://github.com/fugary/calibre-web-douban-api/releases/tag/0.6.16

calibre-web-douban-api's People

Contributors

2niuhe avatar fugary avatar xiaomengzi06 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  avatar  avatar

calibre-web-douban-api's Issues

拉取书籍元数据,搜索页无结果。。。

搜书的元数据的时候,搜索页无结果。第一行显示 搜索错误,第二显示 加载中...再后面都是空白。
单选google刮削结果能出来
单选douban不行
双选google和豆瓣也不行。

下面是日志:
[2022-02-24 20:00:54,033] ERROR {cps:1457} Exception on /metadata/search [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1518, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/usr/local/lib/python3.8/dist-packages/flask_login/utils.py", line 272, in decorated_view
return func(*args, **kwargs)
File "/app/calibre-web/cps/search_metadata.py", line 133, in metadata_search
data.extend([asdict(x) for x in future.result()])
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result
return self.__get_result()
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
TypeError: search() takes from 2 to 3 positional arguments but 4 were given

使用最新版本的脚本,能看到豆瓣封面,但无法拉取

23年12月
系统:威联通 NAS
安装模式:johngong的calibre-web docker。配置正常,可正常运行。
docker内的环境:
calibre版本 0.6.21 python版本3.11.6 flask版本2.3.3 requests版本2.31.0

安装脚本后,进入获取元数据页面,可以看到new douban books这个tab。
能正常显示douban的书籍信息、包括封面、isbn、简介。
点击某个封面能正常获取除了封面之外的其他数据。
就是无法获得封面图。

关于封面的问题

我使用豆瓣获取图书信息后,在封面那一览会自动填入封面网址信息,但是每次都会出现错误提示:

“You are not allowed to access localhost or the local network for cover uploads”

但同时也提示:已成功更新元数据

如果把封面那一栏留空,就不会出现这个。
请问这是什么问题?是我哪里没有设置好吗?

补充一下,上传电脑中的图片就没有这样的问题。

豆瓣页面结构变化

1、作者的链接变由/author变为了/serach

def author_filter(self, a_element):
    a_href = a_element.attrib['href']
    return '/search' in a_href

2、简介内容上层div标签不完整导致包含简介之外的其他内容。剪去</div>之后的内容

book['description'] = ''
if len(summary_element):
     summary = etree.tostring(summary_element[-1], encoding="utf8").decode("utf8").strip()
     book['description'] = summary[0:(summary.index("</div>") + 6)]

下载封面时出错

成功添加了NewDouban 的源,并且可以更新除封面外的所有元数据。
calibre-web 报错:下载封面时出错

手动尝试把豆瓣网页上,书籍封面的链接填写在元数据表格中,有的可以成功获取封面,有的不能,报同样的错:下载封面时出错。

豆瓣api错误

在豆瓣刮削太多次会出现错误(大概50本左右吧),第二天就好了,不管是calibre-web本身的豆瓣还是这个插件好像都有这问题,作者有遇到吗

0.6.18版本搜索结果显示空白

大佬您好!我使用群晖johngong的docker版本,calibre_web版本是0.6.18,将metadata_provider文件夹中别的文件全部删除,只留了NewDouban.py一个文件,搜索时结果是空白,请问有可能是哪里出了问题?

把.py文件挂载进群晖docker,就启动不了。。

描述如题,用的镜像是linuxserver的,挂载.py文件到 /app/calibre-web/cps/metadata_provider/NewDouban.py。容器连不上。。不知是挂载目录有误,还是我忘了做哪一步。。

05:55:03 Traceback(most recent call last):
05:55:03 File"/app/calibre-web/cps.py",line 40,in
05:55:03 from cps.search_metadata import meta
05:55:03 File"/app/calibre-web/cps/search_metadata.py",line 48,in
05:55:03 importlib.import_module("cps.metadata_provider."+ a)
05:55:03 File"/usr/lib/python3.8/importlib/init.py",line 127,in import_module
05:55:03 return _bootstrap._gcd_import(name[level:],package,level)
05:55:03 File"/app/calibre-web/cps/metadata_provider/NewDouban.py",line 7
05:55:03
05:55:03 A
05:55:03 SyntaxError:invalid syntax

Calibre-Web 0.6.19 Docker导入NewDouban.py搜索结果显示“搜索错误!!”

我的操作步骤如下:

  1. SSH登录群晖执行sudo -i,输入密码进入root权限。
  2. 删除johngong-calibre-web:/usr/local/calibre-web/app/cps/metadata_provider下的douban.py。
  3. 下载NewDouban.py v1.1.1到home目录。
  4. 执行docker cp NewDouban.py johngong-calibre-web:/usr/local/calibre-web/app/cps/metadata_provider,在群晖docker里能看到NewDouban.py已经成功复制进去。
  5. 重启johngong-calibre-web。
  6. 搜索元数据,只能显示“搜索错误!!”是为什么?
    01-11_20-24

后台日志显示已经成功下载豆瓣的信息,但是界面没有显示

2021-11-19 07:37:35 stdout 下载书籍:https://book.douban.com/subject/27194530/成功,耗时1881ms
2021-11-19 07:37:35 stdout 下载书籍:https://book.douban.com/subject/35217390/成功,耗时1860ms
2021-11-19 07:37:35 stdout 下载书籍:https://book.douban.com/subject/25985021/成功,耗时1622ms
2021-11-19 07:37:35 stdout 下载书籍:https://book.douban.com/subject/26953606/成功,耗时1587ms
2021-11-19 07:37:35 stdout 下载书籍:https://book.douban.com/subject/26768418/成功,耗时1154ms
2021-11-19 07:33:40 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=11, family=10, type=1, proto=0>: Expected GET method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03:Þ:¸±_åÎ9\x10\x02ZÁ\x87Îb¿ö\x8fb¸õÙu÷Þ¾sß\x95Ò\x10 S\x92Êyê\x9fÉd\x88O#Ød\x88\x9b\x95?\x11Ò\x9cî\x1a5Ô\x7f\x84§ëÕÒj\x95\x00 \n'
2021-11-19 07:33:40 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03$¤z2´Ùeô÷Å\x8e\x1a\x0bG^³\x9a\x82à\t\x92pk"¤\x97¤Ç[äÜo º(!\x9c±\x14?£d\x1anÙ;\xa0\x96púÃ~Éñ%&âßój\x0f\x97¾\xa0n\x00 ÊÊ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ºº\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:40 stdout <gevent.socket3.socket at 0x7f39e14b8ee0 object, fd=11, family=10, type=1, proto=0>: Expected GET method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ú1¡\x12\x03\x8cæÎYßâë|\x0f\x86\x17~§Ê\x1c$R\x03ÓMÊ\n'
2021-11-19 07:33:40 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x031b'S\x1c\x17þ\xa03\x941\x86×*\x8eA\x8e!Í\xa0yú.\x07i\x9f\x92cÚÑD¹ 3j{cÉÀÏ¢.\x89Ä\x02\x01dk\x91\x876·bö¦\x00Ó¦f\x9f%r);,\x00 zz\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93jj\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:33:39 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03[YI\x08Ç}§\x18²S\x83~ý\x90gÆzÂ\rì ~\x0fm\x86\tÐð:\x16d\r Nù\x92-ù\x85Çz1\x07°JÁ\x10|ßúf} ¬ÁpS\x9dDø\x8f\x96ìëÇ\x00 jj\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93úú\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:39 stdout <gevent.socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03±\x8bk`9k½\x96Tkþmª£\x99§ü\x0fíR)U\x07mw\x05\x13Õ\x1ai\x94¶ ?þQ/.ðv}ã¡\x1f\x02\x14\x82\x94\x06;\x88\x8dãF»k¯S¬Æ ¨ä@\x00 ZZ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ªª\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:39 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ö\x13¡#0\n'
2021-11-19 07:33:39 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ä\x83Úbaæ[\x82Bk^*¾\x03µTå`\x86p\x89³\x8b\x9eç)\x1eêz¤\x80ô LJ@ô ÑÁI\x92ßÂ\x9aÞ\x9f]&\x10O\x9bï\x18\x94ÖúÇÛ\x8cÀ&\n'
2021-11-19 07:33:38 stdout <gevent.socket3.socket at 0x7f39e14b8fa0 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03à$ìaa|\x0c\x88µ\x15%uNYg·\t¹½ZçÇ?¬?\x18/Ñ"àÊ úa\x96\x8a\x02û\x99e\x9f3çs£é¦ê\x90mêWy+Ûrgch\x0cò\x88\x00 \n'
2021-11-19 07:33:38 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03/\x1b;\x97\x925\x9fB\n'
2021-11-19 07:33:38 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x035\x1d\x1asà§\x92ʲ\x04\x91µ\x98²×\x1cNâEi\x19\x1eÛ±$¿ÔË:g\x83¯ \x8fn\x08qu~]°/\x1a\x80êÉi¿±îíÎõÎ\x8dW>Í\x1fy¸^ßÄ:\x00 úú\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\x9a\x9a\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:38 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03Ãx\x8e\x15\x1f\x11¤\x07:îµé\x83¦âÅ\x1dÂ\x9aÚáY\x91ÊØ\x13¡}ü@\x04@ ÁWϨ?#Bƾð\x16omñ\x87IZì\x91çÃzNmк¦ Í'\x16E\x00 ::\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93jj\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:33:38 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Expected GET method: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ͱõ¦z=鲶='¥Ù\x94bü5Þ\x89R\x14Hêäúo9\x8c\x1bgòê \x81\x88\x04ê\\x83ýQÜ*ìmµ±\x10\x8e\n"
2021-11-19 07:33:38 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03äÄÙ£i\x13\x83ï\x90V\x11G\x14\x98¨o\x99\x1fô\x15¹T\x9beÒ\x07\x1eh\x86±\x14J \x81+\x04ðVªÃi-b³\x05)´Ó¶Å£D-\x19ÌVVR/\x9a\rþȲx\x00 ºº\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\x9a\x9a\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:38 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03Ó«ßöÓOøæñ(\x05X]äs\x8b\x18\x94ð\x15K=Ë\x18réó\x9c\x9eB\x88[ 8\x1c\x95ÿ,\x06e0C\óÒ\x9e2\x88J\x90\x88.[Ry\x0e»\x8a£ªºX\r#¶\x00 ºº\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\x8a\x8a\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:38 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid http version: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03W\x9a\x1f\xa0h3|;*Â\x85WÓåâÑeòÁüôJº%2O<\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03;\x15s\x14\x07ûô²1äI^Ð\x92?Ø»26À\x01q+.\x98\xad\rM¤úÃù ÿ\rpÕåRðã(#òëZó¥*ò»\x087L\x13]0\x0ew\x83o= ãZ\x00 ::\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93**\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ºxDC\x1añg\x85Ñ?:Ó,\x1b\x94\x9aI\x04·(\x05ÂY0J\x9a]ú×\x82\x0f\x94 ?©Ê52V(º\x82u/F\x12¨¼Z¤HÓ3\x15+¶\x0bO\\x81\x83\x12µZÑ\x00 úú\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ºº\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03[¥\x1fShÝ6ÂÏ0rbß\x15Å\x84Ô\xa0\x95ew&`\x05-ÞÞü\x98\x02)\x0b <!\x9bgNÈ\x1aÕ=\xa0\x94CH\x17¾øzÇð\x05¤[Ð~ñb%Ú\x83\x17gÚ\x00 \n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03²\x1e\tCÓ\x91K\x1f\x90Í\x93j\x83\x8c¾lå²\x7fiÁ%Ñ/ïÕ\x8aa\x98°\t\x91 Ò0Þ2"å\ó-ª]L[\xa0\x9a_Ùlxç\x00sVÕï@Ì6%g¦e\x00 ::\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ÚÚ\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03÷9\x9e\x8fî_HKÀxY\x0c8j\x82Y:\x17iï\x0f\x9cð\x10\x00H\x07ÀI\x99¸\xa0 \x82®\x8cÏ\x1f\x03\x9bnb\l«~Eáx%ôq¤¬\x10Y\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid http version: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x99\x96\x0e\x00\x03\x08Ä#\x1b\x93ö\x7f'$V\x89Â)\x10H\x08s\x9fçùq{ºêg\x07\x0f (\x06\x90\x7f\x06\x15Û\x1al\x06,¨Í{ǧ»g3Úêö3\ëM\x17¾çJ^°\x00 ºº\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ªª\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ò\x07Ao\x97·Ä4\x8dÙ%\x9bê\}h\x96\x04\x07\x13ż\x86~p´\x0cÄ\x7fÁM+ )Aeá\x05ê\x17ø\x1d\x9c\x01ð&\x9e\x9bÙìK\x17Þ¤û\x94UËø0_ñ\x8dq)\x00 ªª\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93**\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03Þkº{\x7fp\x88\x1a~Ì\x88\x98*Íö3ÞÙÿó\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x037~<\x93ñ\x19\x02*[\x90=À\x87ÿ»ÃX\x03ÿ\x99\x1f+vÔ,J\x86\xad\x93\x8eü\x99 \x89oÁ\x81@\x98\x8e\x95å\x8a®\x8e}VÄ,~³\x07\x12òÚ©ÓW¾ôWá\x0e\x14§\x00 ZZ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93zz\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x13Ê\x96ÄB÷\x12'õ¦©\x11\x19¼Â\x8cE\x01ÆÄú\x88\x1dÃË©ì<\x82\x9f\x89\x82 \x0fàMá\r³y«eH\x91Ó\x9fÓÝÌ°O>ª\x9dðRÜ\x08ó9ëOÈJ\x8c\x00 JJ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\x1a\x1a\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x1cß"!¼ZÂpȹ\x05ÇÄ°\x1fJ¤²Ò^\x97±\x10èÙ\x981ë\x18ã»e ÁWx\x16¡¾\x12É\x8b©<½£VPr2\x1f\x84\åר'z\x8aU1\x0c\x94\x96Ï\x00 ZZ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93**\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03Ú;\x18É\x11\x0c\x0b\x80d\x95û0øÙ)/§\x1f?\xad\x03±¹ÜØo\x02¼¬ìaq R¾Es\x84±\x8dÀzÜ¿PR\x88\xa0,\x82ù5²\x89\x00\x94ëgáóÒ\x7fÕ(ì\x00 \x1a\x1a\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ZZ\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Expected GET method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x033\x9erî<Ä\x8a¸¹*ªk\x0c\x08©§P\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03>\x9duªj\x87¯ÐQ-Méf\x94N\x0c;ëFØ\x80\x83K;\x94\x7fÞçG\x0fÞS Ê\x9dè¶ÖN-ÓN·\x8c\x87fÐO\x1e\x90C½¡Öjaz\x06\x11Õ\x81Ú²ãÄ\x00 ZZ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93**\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x86NL}O_X/Ð\x88Z\x95,£"j°Û©\x82¼/F\x05\r±\x99¹\x8aSòÉ UÇ\tÂO\x91¥"\x01kÛ4\x83|,ê\x0e\x11!Ò5COý`|vû\x13Ò©\x06\x00 úú\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\x1a\x1a\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03غÅìö\x0fµü¨êí¹§î}\x8b#v(ò¾ßsÚ¢q±\x08O}å\x87 Ç2w,\x14aH,Ï/\x11Ì\x95úà©\+Ó<?P\x1d¾\x9c\x9cÇ\x9e×[¹:\x00 êê\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03¯\x02=ZZ\x89 áá\\x1bôhÏ\x80yc°Ê\x9aÓ±fBw?8\\x0bV\x150 ©SÜf¼\n'
2021-11-19 07:33:37 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=11, family=10, type=1, proto=0>: Invalid http version: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03BG§¹5û^4\x1a3\x10\x0fÉ\x81rxT\x1f¯ñ0\x9c4%1Ñç?@\x8c\x13§ \x95#%\x97Û¤Ç\x12æô¨¡Ö\x87²ü¯\x9aö\n'
2021-11-19 07:33:36 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid http version: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03"7F9úÚ$ôÓ\xadÐÔ"+kÜÐqf®Íª&\x81\x93ÕÔ07if¼ (\x16s«æët\x00£\xad´V>γ´1Á\x02\x05½ò!\x93ü¢«Ò,Pob\x00 ÊÊ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ZZ\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:36 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x19\x7f\x10Ia!nç¨4\x16¤Æg\x96\\x19\x12è%RÌ\x06W\x1f°ï*ÛyÞ\x16 4øSs~-µ5\x08eÖ\x92n{\x93Yjß<Óq«£´^D;}×Û\x0c0\x00 jj\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ZZ\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:36 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03$0Ó\x16´×\x15FHWVLV\xadOVfßTùÒOú\xa0½Îù<zC\xa0ý à{µ¿qy_gØOé\x90·\x12\x94\x85\x15çàùf(Áµ}¤\x05S¬nÚÊ\x00 úú\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ºº\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:36 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=11, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x9d7\x1dçjMQî\x88\x81ümj³áì\x8c\t£ó\x1eSü4¯[\tÁ\x9e-º+ \x86;Å\x8e\x1e\x832y»£²¯\x1b\x0e|\x06÷ÈÓ\x0eq5ì6\x873\x95=l\x14!N\x00 ÚÚ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\x1a\x1a\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:36 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\n'
2021-11-19 07:33:35 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03Þ¦¶\x80\x1fÄ[´z\x10÷æÒj,TÞÿ¤ÌðÍû\x14¡e´å¥\x1cW \x04ÿ\x18Î0ßg\x10l£á$KçÆw#\x94Ô`?ý\x13¦¾<n*iÝ\x86\x00 \x9a\x9a\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ºº\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:35 stdout <gevent.socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03H\x0c)9¢0,6\x8e\x95^l7©»o)6T¤B/L\x85P?\x9cí\x93ÇÍ7 c"ð6¼1\x12äYµ\t\x14i¿ã\x86\x12ì\x17æ\x12(ø}=]g½Ïüs\x00 êê\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\n'
2021-11-19 07:33:35 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid http version: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03c|\x8e/<ßÉ\L!\x8d\x10nÛ\x97}y¬9.èè\xad;¿hêt3OÍ\x96 \x98ö\x12a\x88\x9eÔâm.æÅSláGjmÜöæ\x8bëc~¬º\x0e\x9f<î¼\x00 êê\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ºº\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:33:35 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=11, family=10, type=1, proto=0>: Invalid http version: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ÁÇ×\x91¥Ærá+a\x9cìd\x15æÐ\xadnoZMxú^E\x06øE\x94Ù\x8a\x9d m0QÖ¾zw)6ÊoÒ\x0f.jÒ\x0c·á\x96.\x8fÝ\x9eFg'iI¼\x8f¿\x00 \n"
2021-11-19 07:32:48 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03óóJ>Ïð±´¶\råË>Øuå4\x81RJAzδSìÔ&ÓT\x81p uê¼°\x13½¼ãJ\x12¥ºNu°ÓÄ\x92\xadÀ\x96;¯\x82¾\x86*ÕëòÑ\x1c\x00 êê\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93**\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:32:48 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=9, family=10, type=1, proto=0>: Invalid http version: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03óV'\x9dϬ7\x8e.¹\x9dP´\x14M\x01\x95\x9a¬±|\x08\x7fªêÕ»X×\x01xÍ eò\x18þQ©=Ö\x99VÐ\x8d\x1bþI\x82.¨\x81\x89\a\x86¢\x15·£\à\x94\x05\x8c\x00 êê\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93JJ\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:32:48 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03cÐA\x89e\x80ý\x81¡UÎYB^À\x17/¤i\x1c\x01U'\x10·»@\x17tyIb \x18@\x83³\x1cÕ\x04´ö\x1dKÅ\x86ß©PËf\x10\x85å\x9dvó\x11äDÚ'¬ò\x9b\x00 ºº\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ºº\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:32:48 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=9, family=10, type=1, proto=0>: Invalid http version: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03%Ç+\x07U¾%\x8fz±mxÐj\x95s)J~\x0fÇz¸*ìD\x98\x97l¥â% q,fo\x17\x13(\\Ðkþ\x08]®EßN\x8b[ü\x18Rgç\x8c\x9d\x9b»X½W\x00 **\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ZZ\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:32:45 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x84\x93lÉ?{AR\x19ê*är׸à)\x10áf¤\x0bÒ@sä#\x05ÏX±| \x1b\x8a`\x80ï\xa0âùICXä\x1bS¤BBV0Ç?ö ©\x98\x8b\x9fB¶¬¢Ò\x00 ÊÊ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ªª\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:32:45 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ðüé\x8a$È\n'
2021-11-19 07:32:45 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x9d¶£Ãmêg\x9b¼ùDXÖ¿L4¢ÍGº\x87\x8bG4o\x9a0Þ%\x97\x9eÞ ù\x8b\tV£J\x02ª\x06X\x99âFÿ׳Z¯\x8bërÛ´"_Þxß°\x08,\x04\x00 JJ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\x9a\x9a\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:32:44 stdout <gevent.socket3.socket at 0x7f39e14b8fa0 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03ÌÖ'UD©OÕ\x97ÖyÁ\x95\x14²<Ø1£çuËon¦Bld5ãçâ \x1f\x92ð\x19^Þµ¼\x1be§üË,¶\x1dþ[«Ýd½\x1dÜãv4\x97×\x04y\x00 zz\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ÊÊ\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:32:44 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03,ÙT\x80JuD\x96ÏÓì\x15!õTñ\x00Iý>?Q£.Dè\x11¿\x9añÉ^ \x08NJ(\x80|îb\x9c\x1bÛ~fp˨C¸Á\x1bBXÁ ¨\x97\\x1e}yU¯\x00 **\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93úú\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:32:44 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x1dnç\\x8d\x19ú\x93éÕo'\x7fTI1aßÕbâö2T|\x93îÑçrRï Î\x13\xadj¸¶ÈË©³ÁY\x8b\xade÷¥z¡\x04§IÍ4±³ÉþvqLæ\x00 \x9a\x9a\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93::\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n"
2021-11-19 07:32:44 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03P\x81/\x8b¡\x8cÛé\x16\x01\x0cJ×¾ôêÒ\x92\x1f²\x1dìÑ\r«;¡\x1cÿºÂ\x88 î\x93p\x13ò\x14\x8fÑb\x85öé)D¸gè\x07Ã\x15\x8a\x9e÷>9kB\x1ah\r\r1\x00 ªª\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93zz\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:32:44 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03z~yÝëÐ+\x81*Á\x92\x83<4\x9fèò\x95\x05À¡\x1eÍÒ&:V§!LFÇ ìª)\x02õ¯\x99£:0uk¯Þ÷\x8d\x1cfy|ª»NÕòðõÉAråÏ\x00 jj\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93\n'
2021-11-19 07:32:43 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03¸HÊ[ïÿ\x17-\x89'ëR?XÔª¹\rí"\x86\x04"£¶\x1cÜ\à¿\x9aU r\x02\x96\x1c$\x95õª&E\x12\x1anV\x8b3\x8döñÈÏ\xadf\x13©òR4®ïÔ\n'
2021-11-19 07:32:43 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=9, family=10, type=1, proto=0>: Invalid http version: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03úYk6¢\x9aI\x1cGºæÜì¢wÇ\rä\n'
2021-11-19 07:32:43 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03Dðî\n'
2021-11-19 07:32:43 stdout <gevent._socket3.socket at 0x7f39e14b8fa0 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x88\x9b0\x93\x06\x15¤\x06Üw\x8câ\x91ae\x03\x83ãµÁñ÷ìE¨\x08.]óÔ¤{ vN[9åÃö}Ã\x1eÔ\x04\x0c!\x92û¼\x07\n'
2021-11-19 07:32:32 stdout <gevent.socket3.socket at 0x7f39e14b8fa0 object, fd=10, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x14âÎË|Àªî\x83ï\x91\x9a¶¼wÏ%K\x98\x9aY]\x13ft\x01úR\x8eb\x93 \n'
2021-11-19 07:32:32 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x07¶3ü<Ñ\x0büd\x95w\x83nrñ<\x00¥½\x85»A\vq\x18ì^<;\t\x0f Òùª\x0f\x10Z2L\x82\x1ac)\x19.íc¨\x81uÛH\x15\x99|9/àÇ>ÃGÏ\x00 ºº\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93jj\x00\x00\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'
2021-11-19 07:32:32 stdout <gevent._socket3.socket at 0x7f39e14b8ee0 object, fd=10, family=10, type=1, proto=0>: Invalid http version: "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03B¤ã\x8bm@'¼¶c\x87\x81¸°\x16öG/öpÈÑ\x06ë½±d4\x19\x7f \x05 \x9f\x82Ð\x0e-û\x99(CW\x9dÀv\n"
2021-11-19 07:32:32 stdout <gevent._socket3.socket at 0x7f39e14b8e80 object, fd=9, family=10, type=1, proto=0>: Invalid HTTP method: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03õI\n'

但是界面并没有显示,显示加载失败,想请教一下是什么原因,谢谢

版本0.6.17中出错

与issue #5 的问题相同。

主要是因为上游[4f3c39]中对cps/search_metadata.pycps/services/Metadata.py的更改。

Metadatasearch方法增加了locale参数,并修改返回类型为List[MetaRecord]

也就是说版本0.6.17对metadata_provider产生了breaking change,无法与前面的版本兼容了。

以下为日志:

[2022-03-11 05:07:57,224] ERROR {cps:1457} Exception on /metadata/search [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2073, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1518, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1516, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1502, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "/usr/local/lib/python3.8/dist-packages/flask_login/utils.py", line 272, in decorated_view
    return func(*args, **kwargs)
  File "/app/calibre-web/cps/search_metadata.py", line 133, in metadata_search
    data.extend([asdict(x) for x in future.result()])
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
TypeError: search() takes from 2 to 3 positional arguments but 4 were given

添加传入参数后:

[2022-03-11 05:28:23,011] ERROR {cps:1457} Exception on /metadata/search [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2073, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1518, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1516, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1502, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "/usr/local/lib/python3.8/dist-packages/flask_login/utils.py", line 272, in decorated_view
    return func(*args, **kwargs)
  File "/app/calibre-web/cps/search_metadata.py", line 133, in metadata_search
    data.extend([asdict(x) for x in future.result()])
  File "/app/calibre-web/cps/search_metadata.py", line 133, in <listcomp>
    data.extend([asdict(x) for x in future.result()])
  File "/usr/lib/python3.8/dataclasses.py", line 1072, in asdict
    raise TypeError("asdict() should be called on dataclass instances")
TypeError: asdict() should be called on dataclass instances

对DoubanBookHtmlParser进行修改后可以正常使用:

    def parse_book(self, url, book_content):
        book = MetaRecord(
            id = "",
            title = "",
            authors = "",
            url = "",
            source=MetaSourceInfo(
                id=PROVIDER_ID,
                description=PROVIDER_NAME,
                link="https://book.douban.com/"
            )
        )
        html = etree.HTML(book_content)
        title_element = html.xpath("//span[@property='v:itemreviewed']")
        book.title = self.get_text(title_element)
        share_element = html.xpath("//a[@data-url]")
        if len(share_element):
            url = share_element[0].attrib['data-url']
        book.url = url
        id_match = self.id_pattern.match(url)
        if id_match:
            book.id = id_match.group(1)
        img_element = html.xpath("//a[@class='nbg']")
        if len(img_element):
            cover = img_element[0].attrib['href']
            if not cover or cover.endswith('update_image'):
                book.cover = ''
            else:
                book.cover = cover
        rating_element = html.xpath("//strong[@property='v:average']")
        book.rating = self.get_rating(rating_element)
        elements = html.xpath("//span[@class='pl']")
        book.authors = []
        book.publisher = ''
        for element in elements:
            text = self.get_text(element)
            if text.startswith("作者"):
                book.authors.extend([self.get_text(author_element) for author_element in filter(self.author_filter, element.findall("..//a"))])
            elif text.startswith("译者"):
                book.authors.extend([self.get_text(author_element) for author_element in filter(self.author_filter, element.findall("..//a"))])
            elif text.startswith("出版社"):
                book.publisher = self.get_tail(element)
            elif text.startswith("副标题"):
                book.title = f"{book.title}:{self.get_tail(element)}"
            elif text.startswith("出版年"):
                book.publishedDate = self.get_tail(element)
            elif text.startswith("丛书"):
                book.series = self.get_text(element.getnext())
        summary_element = html.xpath("//div[@id='link-report']//div[@class='intro']")
        book.description = ''
        if len(summary_element):
            book.description = etree.tostring(summary_element[-1], encoding="utf8").decode("utf8").strip()
        tag_elements = html.xpath("//a[contains(@class, 'tag')]")
        if len(tag_elements):
            book.tags = [self.get_text(tag_element) for tag_element in tag_elements]
        return book

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.