legado
legado copied to clipboard
订阅源获取下一页数据返回数据存在,但app显示“我是有底线的”
确认 / Assignments
- [X] 搜索现有issues,不存在相似或相关的issue / No similar or related issues
- [X] 最新测试版依然存在此问题 / Latest beta app does not work
- [X] 此问题和Xposed、Lsposed、Magisk、手机主题、浏览器插件等无关 / Make sure your machine is not touched by hook frameworks, plugins etc
问题描述 / Describe Bugs
io.legado.app.model.rss.parseXML()
通过debug源代码。发现原因和列表规则有关。
pins[?(!( @.board.title =~ /.*(?:营销|元素|其他图片|文|教程|ps|Adobe|全家桶|首页|广告|海报|图标|教育|纹理|详情|免|学习).*/i || @.board.category_id in ['web_app_icon','design','architecture','industrial_design','home','desire','data_presentation','tips','education','other','',null]))]
这个列表规则会过滤掉不符合规则的item,运气不好会过滤掉所有数据。导致发生这个问题!
推荐添加一个方法可以跳页,跳过出问题的页数,直接加载下一页,把这个方法绑定到“我是有底线的”这个文本显示的位置上,让用户手动触发。解决这个问题!
复现步骤 / How to reproduce
使用这个订阅源,刷新一直刷新下一页,有时候可以刷新十几页,不出问题。有时候刷新到第二页就会出问题。 通过抓包显示下一页请求返回的数据是存在的,但是app上却显示“我是有底线的”。
确认 / Assignment
- [X] 已经提交复现所需要的附加资料 / Submit additions related with bugs
其他信息 / Additions
{ "articleStyle": 2, "customOrder": 0, "enableJs": true, "enabled": true, "enabledCookieJar": true, "lastUpdateTime": 0, "loadWithBaseUrl": true, "ruleArticles": "pins[?(!( @.board.title =~ /.*(?:营销|元素|其他图片|文|教程|ps|Adobe|全家桶|首页|广告|海报|图标|教育|纹理|详情|免|学习).*/i || @.board.category_id in ['web_app_icon','design','architecture','industrial_design','home','desire','data_presentation','tips','education','other','',null]))]", "ruleContent": "{{$.pin.file.key##\\n##\\$}}${{$..pins..file.key##\\n##\\$}}\r\n\r\n<js>\r\nli='\\n'\r\nlist=result.split('$')\r\nfor(i in list){\r\n\t\tli += '<li><img src=\"https://gd-hbimg.huaban.com/'+list[i]+'\"></li>\\n'\r\n\t}\r\n\r\n</js>\r\n\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\">\n<title>{{$.board.title}}</title>\r\n<ul id=\"box\">\r\n{{result}}\r\n</ul>\r\n<link rel=\"stylesheet\" href=\"https://cdn.bootcdn.net/ajax/libs/viewerjs/1.10.1/viewer.min.css\">\r\n<script src=\"https://cdn.bootcdn.net/ajax/libs/viewerjs/1.10.1/viewer.min.js\"></script>\n<script src=\"http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js\"></script>\r\n<script>\nvar i = 1 ;\n$(document).ready(function () {\r\nroot = document.getElementById('box');\r\n//查看大图插件\r\nnew Viewer(root,{title:false,interval:3000});\nvar url = '{{baseUrl}}/relatedboards';\nfetchHtml(3, url)\n });\n\nfunction fetchHtml(i, url) {\r\n nurl = url + \"?limit=\" + i;\r\n $.ajax({\r\n url: nurl,\r\n dataType: 'json',\r\n success: function (json) {\r\n for (var k = 0; k < json.boards.length; k++) {\r\n for (var q = 0; q < json.boards[k].pins.length; q++) {\r\n $('#box').append('<li><img src=\\\"https://gd-hbimg.huaban.com/' + json.boards[k].pins[q].file.key + '\\\"></li>\\n');\r\n }\r\n }\r\n box.viewer.update();\r\n },\r\n error: function (xhr) { }\r\n });\r\n }\r\n</script>", "ruleDescription": "", "ruleImage": "https://gd-hbimg.huaban.com/{{$.file.key}}", "ruleLink": "https://api.huaban.com/pins/{{$.pin_id}}", "ruleNextPage": "@js:\nresult = '{{baseUrl}}'.replace(/\\&max=\\d{7,}$/,'')+'&max={{$.pins[-1].pin_id}}'", "rulePubDate": "{{java.timeFormatUTC(java.getString(\"created_at\")*1000,\"YYYY-MM-dd HH:mm:ss\",8)}}", "ruleTitle": "{{$.board.title}}❤️{{$..board.like_count}}", "singleUrl": false, "sortUrl": "搜索::search/file?sort=created_at&limit=10&text={{source.getVariable().length()<1? source.setVariable(\"ai\") : source.getVariable() }}&page={{page}}&position=search_pin", "sourceIcon": "https://api.huaban.com/favicon.ico", "sourceName": "花瓣", "sourceUrl": "https://api.huaban.com/", "style": "/*标题相关*/\nh3{text-align:center}\nh6{margin-bottom:0}\n* {\n\tmargin: 0;\n\tpadding: 0\n}\nul {\n\tfont-size: 0;\n\theight: 100%;\n\toverflow-y: scroll\n}\nli {\n\tlist-style: none;\n\ttext-align: center\n}\nimg {\n\twidth: 100%;\n\theight: auto\n}", "variableComment": "搜索关键字" }
日志提交 / Relevant log output
No response
阅读版本 / Legado version
legado_app_3.23.040420
Android版本 / Android version
12
机型 / Model
win11 安卓子系统
ok
规则写的不好,我试了下会出现连续几次都没内容的情况
ok
规则写的不好,我试了下会出现连续几次都没内容的情况
要过滤的内容确实又点多,内容更新的很快的确看脸
ok
规则写的不好,我试了下会出现连续几次都没内容的情况
最新版手动翻页失效了
修好了
由于长期没有状态更新,该问题将于5天后自动关闭。如有需要可重新打开。