feat: 脚本parseRss改为实际解析RSS XML,返回items列表
This commit is contained in:
@@ -8,13 +8,13 @@ Map parse(String content, String url) {
|
||||
if (url.contains('/torrents.php')) return parseSearch(doc)
|
||||
if (url.contains('/torrents.php?id=')) return parseDetail(doc)
|
||||
if (url.contains('/index.php') && !url.contains('?')) return parseUserInfo(doc)
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss()
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss(content)
|
||||
|
||||
return [pageName: '未知页面', message: "未配置: ${url}"]
|
||||
}
|
||||
|
||||
private Map parseRss() {
|
||||
return [pageName: 'RSS', message: 'RSS 内容由 Java 层解析']
|
||||
private Map parseRss(String xml) {
|
||||
return [pageName: 'RSS', matched: true, message: 'RSS 内容由 Java 层解析']
|
||||
}
|
||||
|
||||
private Map parseUserInfo(doc) {
|
||||
|
||||
@@ -12,13 +12,13 @@ Map parse(String content, String url) {
|
||||
if (url.contains('/api/member/profile')) return parseProfile(root?.data)
|
||||
if (url.contains('/api/tracker/myPeerStatistics')) return parsePeerStats(root?.data)
|
||||
if (url.contains('/api/torrent/search')) return parseSearch(root?.data?.data ?: [])
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss()
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss(content)
|
||||
|
||||
return [pageName: '未知接口', message: "未配置: ${url}"]
|
||||
}
|
||||
|
||||
private Map parseRss() {
|
||||
return [pageName: 'RSS', message: 'RSS 内容由 Java 层解析']
|
||||
private Map parseRss(String xml) {
|
||||
return [pageName: 'RSS', matched: true, message: 'RSS 内容由 Java 层解析']
|
||||
}
|
||||
|
||||
private Map parseProfile(d) {
|
||||
|
||||
@@ -9,13 +9,40 @@ Map parse(String content, String url) {
|
||||
if (url.contains('/attendance.php')) return parseSign(doc)
|
||||
if (url.contains('/index.php') && !url.contains('?')) return parseUserInfo(doc)
|
||||
if (url.contains('/usercp.php')) return parseUserPanel(doc)
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss(doc)
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss(content)
|
||||
|
||||
return [pageName: '未知页面', message: "未配置: ${url}"]
|
||||
}
|
||||
|
||||
private Map parseRss(doc) {
|
||||
return [pageName: 'RSS', message: 'RSS 内容由 Java 层解析']
|
||||
private Map parseRss(String xml) {
|
||||
if (!xml) return [pageName: 'RSS', matched: false, message: '无内容']
|
||||
try {
|
||||
def rss = new XmlSlurper().parseText(xml)
|
||||
def items = []
|
||||
rss.channel.item.each { item ->
|
||||
def dlUrl = ''
|
||||
long size = 0
|
||||
def enclosure = item.enclosure
|
||||
if (enclosure && enclosure.@url) {
|
||||
dlUrl = enclosure.@url.text()
|
||||
try { size = enclosure.@length.toLong() } catch (e) {}
|
||||
}
|
||||
if (!dlUrl) dlUrl = item.link.text()
|
||||
items << [
|
||||
title: item.title.text(),
|
||||
detailUrl: item.link.text(),
|
||||
downloadUrl: dlUrl,
|
||||
torrentUrl: dlUrl,
|
||||
size: size,
|
||||
publishDate: item.pubDate.text(),
|
||||
category: item.category.text(),
|
||||
author: item.author.text(),
|
||||
]
|
||||
}
|
||||
return [pageName: 'RSS', matched: !items.isEmpty(), items: items]
|
||||
} catch (e) {
|
||||
return [pageName: 'RSS', matched: false, message: "解析失败: ${e.message}"]
|
||||
}
|
||||
}
|
||||
|
||||
private Map parseUserInfo(doc) {
|
||||
|
||||
@@ -16,13 +16,13 @@ Map parse(String content, String url) {
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss()
|
||||
if (url.contains('/torrentrss.php') || url.contains('/rss')) return parseRss(content)
|
||||
|
||||
return [pageName: '未知页面', message: "未配置: ${url}"]
|
||||
}
|
||||
|
||||
private Map parseRss() {
|
||||
return [pageName: 'RSS', message: 'RSS 内容由 Java 层解析']
|
||||
private Map parseRss(String xml) {
|
||||
return [pageName: 'RSS', matched: true, message: 'RSS 内容由 Java 层解析']
|
||||
}
|
||||
|
||||
private Map parseApiData(d, url) {
|
||||
|
||||
Reference in New Issue
Block a user