Coder Social home page Coder Social logo

calibre-web-douban-api's Issues

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

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'

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

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

豆瓣页面结构变化

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

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

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

搜书的元数据的时候,搜索页无结果。第一行显示 搜索错误,第二显示 加载中...再后面都是空白。
单选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

0.6.18版本搜索结果显示空白

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

豆瓣api错误

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

下载封面时出错

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

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

关于封面的问题

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

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

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

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

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

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

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、简介。
点击某个封面能正常获取除了封面之外的其他数据。
就是无法获得封面图。

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