提交 db8bd0ca 编写于 作者: AndroidLeaves's avatar AndroidLeaves

update TopHub

上级 5aea384f
......@@ -43,9 +43,6 @@ class Widget extends BaseWidget {
{ "user-agent": "Mozilla/5.0 (Linux; Android 10; SM-G9750 Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 COVC/045429 Mobile Safari/537.36 MQQBrowser/10.9" },
{ "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.18(0x17001231) NetType/4G Language/zh_CN" },
],
computerHeader: [
{ "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36" },
],
// --------------------------
titleFontSize: 16,
titleFontColor: '#FFFFFF',
......@@ -524,7 +521,7 @@ class Widget extends BaseWidget {
widget = await this.provideLargeWidget();
break;
}
widget.setPadding(6, 12, 6, 12);
widget.setPadding(6, 16, 6, 12);
return widget;
}
......@@ -576,7 +573,7 @@ class Widget extends BaseWidget {
imgSpan.imageSize = new Size(23, 23);
imgSpan.cornerRadius = 6;
titleStack.addSpacer(8);
let textSpan = titleStack.addText(hotTitle);
let textSpan = titleStack.addText(hotTitle.replace('\n', ''));
textSpan.textColor = new Color(this.getTitleFontColor());
let titleSize = this.getTitleFontSize();
if (small) {
......@@ -621,39 +618,44 @@ class Widget extends BaseWidget {
return widget;
}
// --------------------------NET START--------------------------
async loadHotBanRES(link) {
// 热榜数据
let response = undefined;
try {
const html = await this.httpGet(link, { jsonFormat: false, headers: this.getRandowArrValue(this.defaultPreference.computerHeader) });
const html = await this.httpGet(link, { jsonFormat: false, headers: this.getRandowArrValue(this.defaultPreference.phoneHeaders) });
let webview = new WebView();
await webview.loadHTML(html);
// 通过dom操作把HTML里面的热榜内容提取出来
const getData =
`
function getData() {
// 获取榜单标题
hotTitle = document.querySelector('.Xc-ec-L').innerText
// 获取logo链接
logoImgHtml = document.querySelector('#tabbed-header-panel div').innerHTML;
// 提取src的正则表达式
logoPattern = /<img.*?src{1}=['"]([^'"]+)['"]+/g;
// 提取logo链接
logoUrl = logoPattern.exec(logoImgHtml)[1]
// logo链接
logoUrl = ''
// 榜单标题
hotTitle = '--'
branLogoArr = document.getElementsByClassName('brand logo')
if(branLogoArr.length > 0) {
branLogo = branLogoArr[0]
logoUrl = branLogo.style['background-image'].slice(5).slice(0, -2)
//
mainTitle = branLogo.innerText
subTitle = document.getElementsByClassName('tab-nav-item active')[0].innerText
hotTitle = mainTitle + subTitle
}
// 链接
linkArr = []
// 标题
titleArr = []
// 所有节点
allItemNodeList = document.querySelectorAll('.al')
titleArr = []
allItemNodeList = document.querySelectorAll('.rank-item-container')
// 链接&标题
for(let node of allItemNodeList) {
// 链接
node.innerHTML.replace(/<a [^>]*href=['"]([^'"]+)[^>]*/gi, function(match, link){
linkArr.push(link)
});
// 标题
titleArr.push(node.innerText)
link = node.href;
linkArr.push(link);
title = node.getElementsByClassName('s-title')[0].innerText
titleArr.push(title);
}
return { hotTitle, logoUrl, linkArr, titleArr };
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册