Skip to content
This repository has been archived by the owner on Feb 18, 2022. It is now read-only.

文章阅读在标题是ID项时获取不到标题, #33

Closed
KB64ba opened this issue Aug 17, 2020 · 12 comments
Closed

文章阅读在标题是ID项时获取不到标题, #33

KB64ba opened this issue Aug 17, 2020 · 12 comments

Comments

@KB64ba
Copy link

KB64ba commented Aug 17, 2020

你的手机型号:K20P

你的安卓版本:9

错误的截图:
(可以到懒人学习界面,点击返回键查看日志,最好把红色的部分截下,图片可以上传到这里:https://imgurl.org/ ,然后把图片链接贴在这里)

错误描述:
文章阅读在标题是ID项时获取不到标题,并且在文章底部有一个来源标签但获取标题不对

@KB64ba
Copy link
Author

KB64ba commented Aug 17, 2020

@lolisaikou
Copy link
Owner

之前我注意到了,但是这种文章很少出现,能不能提供一下标题的id啊

@lolisaikou
Copy link
Owner

已经有通过id获取标题的方法了
image
但是,偶尔有文章还是无法获取标题

@KB64ba
Copy link
Author

KB64ba commented Aug 17, 2020

text = 每日名胜|陕西·秦始皇帝陵博物院

我用4.1.1版本调试发现找不到

if ((id("general_card_title_id").findOnce(t).parent().parent().click() || id("general_card_title_id").findOnce(t).parent().parent().parent().click()) == true) {
同样找不到ID内容

if (id("xxqg-article-header").exists()) {
currentNewsTitle = id("xxqg-article-header").findOne().child(0).text(); // 最终解决办法
//currentNewsTitle = id("xxqg-article-header").findOne().text(); // 最终解决办法
}

这段内容,直接就跳下面了,

提个思路:文章和视频浏览以时间为点击进入浏览,获取文章/视频的标题为浏览成功1分。如果多个账户使用者在开始前把list表的标题清空。这样以当天时间点则不会出现重复浏览无效。

if (textContains("中央广播电视总台").exists()) {
currentNewsTitle = textContains("中央广播电视总台").findOne().parent().children()[1].text();
console.log("TX来源:"+currentNewsTitle);
} else if (textContains("央视网").exists()) {
currentNewsTitle = textContains("央视网").findOne().parent().children()[1].text();
console.log("TX来源:"+currentNewsTitle);
}

if ( myScores['我要选读文章'] < 6 ) {
DeletelistSql();//文章阅读积分未超过6,说明没有浏览过文章,则清空文章记录
}
/**

  • @description: 删除list.db数据库的记录
  • @param: sql
  • @return: null
    */
    function DeletelistSql( ) {
    var dbName = "list.db";
    var path = files.path(dbName);
    var db = SQLiteDatabase.openOrCreateDatabase(path, null);
    var Deletelistable = "DELETE FROM learnedArticles";
    db.execSQL(Deletelistable);
    db.close();
    console.info("已清空文章阅读记录!");

}

@lolisaikou
Copy link
Owner

lolisaikou commented Aug 17, 2020

之前的版本点击是用时间点击的,但是有人说很容易误触,而且容易点到视频,所以才用了控件
找不到控件麻烦检查一下强国的版本,我这边是2.15.1
然后关于数据库,虽然我不是很懂数据库操作。但是如果中间有些原因停止运行,第二次运行的时候肯定会删除数据库导致阅读不得分,不过可以在ui界面加入一个按钮,让大家手动删除

@KB64ba
Copy link
Author

KB64ba commented Aug 17, 2020

刚更新还是不行,ID控制找不到,

currentNewsTitle = textContains("作者").findOne().parent().children()[0].text();
这个获取是第一段文章吗?
截图[https://ftp.bmp.ovh/imgs/2020/08/f05c097b13f09cab.jpg)

@lolisaikou
Copy link
Owner

currentNewsTitle = id("xxqg-article-header").findOne().child(0).text();

image
这段是来获取文章标题的

if ((id("general_card_title_id").findOnce(t).parent().parent().click() || id("general_card_title_id").findOnce(t).parent().parent().parent().click()) == true) {}

这段是用来点击进入阅读文章页面的

@lolisaikou
Copy link
Owner

lolisaikou commented Aug 17, 2020

别人都能用啊,就你说获取不到标题
剩下的只是id方法获取不到标题,备用的方法

@KB64ba
Copy link
Author

KB64ba commented Aug 18, 2020

https://ftp.bmp.ovh/imgs/2020/08/fada9c6a9432a2c5.png

如图,无解了,我用的auto4.1.1版的

@lnxcyq
Copy link

lnxcyq commented Aug 18, 2020

一是没必要通过标题来判断是否已经阅读过某文章,原来通过日期来判断已经很好的达到目的。二是如果确实要用,那么可以进入文章后获取文章标题,这样就很容易获取标题且不会出错。(也曾尝试过通过收藏按钮是否点亮来判断。就是在每读完文章后点收藏,然后以后就不会再读已经收藏的文章了)

@KB64ba
Copy link
Author

KB64ba commented Aug 18, 2020

一是没必要通过标题来判断是否已经阅读过某文章,原来通过日期来判断已经很好的达到目的。二是如果确实要用,那么可以进入文章后获取文章标题,这样就很容易获取标题且不会出错。(也曾尝试过通过收藏按钮是否点亮来判断。就是在每读完文章后点收藏,然后以后就不会再读已经收藏的文章了)

能给段代码吗? 如果是在订阅项好像有部分没有收藏的

@lnxcyq
Copy link

lnxcyq commented Aug 19, 2020

文章标题:className("android.webkit.WebView").findOnce().text();
收藏点亮判断的代码没用了,一时找不到了。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants