feat: 脚本添加parseDetail独立入口,parseDetailPage扩展提取促销信息和豆瓣链接
This commit is contained in:
@@ -22,6 +22,7 @@ Map parseSearch(context) { return checkStatus(context) ?: parseSearchPage(Jsoup
|
||||
Map parseSignIn(context) { return checkStatus(context) ?: parseSignPage(Jsoup.parse(context.content)) }
|
||||
Map parseDownload(context) { return checkStatus(context) ?: parseDownloadPage(context) }
|
||||
Map parseRss(context) { return checkStatus(context) ?: parseRssPage(context) }
|
||||
Map parseDetail(context) { return checkStatus(context) ?: parseDetailPage(Jsoup.parse(context.content)) }
|
||||
|
||||
/** 获取资源元数据:搜索 → 详情 → 提取豆瓣链接(Douban 解析由 Java 层负责) */
|
||||
Map parseMetadata(context) {
|
||||
@@ -127,10 +128,18 @@ private Map parseDetailPage(doc) {
|
||||
// 提取下载链接
|
||||
def dlUrl = doc.selectFirst('a[href*=download]:not([href*=details])')?.attr('href')
|
||||
|
||||
// 提取促销信息:font.promotion、img.promotion、alt 属性等
|
||||
def freeEl = doc.selectFirst('font.promotion, img.promotion, img[alt*=Free], img[alt*=free]')
|
||||
def free = freeEl?.text() ?: freeEl?.attr('alt')
|
||||
|
||||
// 提取豆瓣链接
|
||||
def dbLink = doc.selectFirst('a[href*=movie.douban.com], a[href*=douban.com/subject]')?.attr('href')
|
||||
if (!dbLink) dbLink = doc.selectFirst('.rowhead:contains(简介) + td a[href*=douban], #kdescr a[href*=douban]')?.attr('href')
|
||||
|
||||
return [pageName: '种子详情', matched: title != null,
|
||||
title: title, subtitle: subtitle, size: parseSize(size),
|
||||
seeders: seeders as int, leechers: leechers as int,
|
||||
downloadUrl: dlUrl
|
||||
downloadUrl: dlUrl, free: free, doubanUrl: dbLink
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user