66书吧-66shuba-v0305(公众号:好用的软件站)
https://66shuba.com/
lindongjiang (1001)4小时前
暂无介绍说明
{
"chapterContent": {
"actionID": "chapterContent",
"validConfig": "",
"content": "data/content||data/data/content||@js:\nvar t = String(result || '');\nif(!t) return '';\nt = t.replace(/\\r\\n?/g, '\\n');\nt = t.replace(/\\u00a0/g, ' ');\nt = t.replace(/[ \\t]+/g, ' ');\nt = t.replace(/\\n{3,}/g, '\\n\\n');\nreturn t.replace(/^\\s+|\\s+$/g, '');",
"requestInfo": "@js:\nvar u = '';\nif(params && params.lastResponse && params.lastResponse.nextPageUrl){\n u = params.lastResponse.nextPageUrl;\n}\nif(!u && params && params.queryInfo){\n u = params.queryInfo.url || params.queryInfo.detailUrl || '';\n}\nif(!u && result){\n if(typeof result === 'string') u = result;\n else if(result.url) u = result.url;\n else if(result.detailUrl) u = result.detailUrl;\n}\nif(!u && params && params.responseUrl){\n u = params.responseUrl;\n}\nu = String(u || '').trim();\nif(!u) return {'url':'','httpHeaders':config.httpHeaders};\nif(/^https?:\\/\\/[^\\/]+\\/api\\/novel\\//i.test(u)) return {'url':u,'httpHeaders':config.httpHeaders};\nvar m = u.match(/\\/read\\/(\\d+)\\/(\\d+)/i);\nif(!m){\n var ma = u.match(/\\/api\\/novel\\/(?:vip-)?chapter\\/(\\d+)\\/(\\d+)/i);\n if(ma) m = ma;\n}\nif(!m) return {'url':u,'httpHeaders':config.httpHeaders};\nvar bid = m[1];\nvar cid = m[2];\nvar isVip = 0;\nif(params && params.queryInfo && params.queryInfo.vip != null){\n isVip = parseInt(String(params.queryInfo.vip), 10) || 0;\n}\nvar path = isVip === 1 ? 'api/novel/vip-chapter/' : 'api/novel/chapter/';\nreturn {'url': config.host + path + bid + '/' + cid, 'httpHeaders': config.httpHeaders};",
"title": "data/chapterName||data/name||@js:\nif(result) return String(result).replace(/\\s+/g,' ').trim();\nif(params && params.queryInfo && params.queryInfo.title) return String(params.queryInfo.title);\nreturn '';",
"moreKeys": {
"maxPage": 1,
"removeHtmlKeys": [
"title",
"content"
]
},
"host": "https://66shuba.com/",
"responseFormatType": "json",
"parserID": "DOM",
"nextPageUrl": ""
},
"enable": true,
"bookDetail": {
"cat": "data/Data/BaseBookInfo/CategoryName||data/Data/BaseBookInfo/SubCategoryName||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"responseFormatType": "json",
"lastChapterTitle": "data/Data/BaseBookInfo/ChapterInfo/LastUpdateChapterName||data/Data/BaseBookInfo/ChapterInfo/LastVipUpdateChapterName||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"url": "data/Data/BaseBookInfo/BookId||@js:\nvar id = String(result || '').replace(/[^0-9]/g, '');\nif(!id){\n if(params && params.queryInfo && params.queryInfo.url) return params.queryInfo.url;\n if(params && params.queryInfo && params.queryInfo.detailUrl) return params.queryInfo.detailUrl;\n return '';\n}\nreturn config.host + 'detail/' + id;",
"desc": "data/Data/BaseBookInfo/Description||data/Data/Description||data/Description||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"host": "https://66shuba.com/",
"requestInfo": "@js:\nvar v = '';\nif(params && params.queryInfo){\n v = params.queryInfo.detailUrl || params.queryInfo.url || params.queryInfo.bookId || '';\n}\nif(!v && result){\n if(typeof result === 'string') v = result;\n else if(result.detailUrl) v = result.detailUrl;\n else if(result.url) v = result.url;\n else if(result.bookId) v = result.bookId;\n}\nif(!v && params && params.responseUrl){\n v = params.responseUrl;\n}\nv = String(v || '').trim();\nvar id = '';\nvar m = v.match(/detail\\/(\\d+)/i);\nif(m) id = m[1];\nif(!id && /^\\d+$/.test(v)) id = v;\nif(!id){\n var m2 = v.match(/(\\d{6,})/);\n if(m2) id = m2[1];\n}\nif(!id) return {'url':'','httpHeaders':config.httpHeaders};\nreturn {'url': config.host + 'api/novel/detail/' + id, 'httpHeaders': config.httpHeaders};",
"actionID": "bookDetail",
"detailUrl": "data/Data/BaseBookInfo/BookId||@js:\nvar id = String(result || '').replace(/[^0-9]/g, '');\nif(!id){\n if(params && params.queryInfo && params.queryInfo.detailUrl) return params.queryInfo.detailUrl;\n if(params && params.queryInfo && params.queryInfo.url) return params.queryInfo.url;\n return '';\n}\nreturn config.host + 'detail/' + id;",
"cover": "data/Data/BaseBookInfo/BookId||@js:\nvar id = String(result || '').replace(/[^0-9]/g, '');\nif(!id) return '';\nreturn 'https://bookcover.yuewen.com/qdbimg/349573/' + id + '/600';",
"validConfig": "",
"parserID": "DOM",
"status": "data/Data/BaseBookInfo/BookStatus||data/Data/BaseBookInfo/ActionStatusString||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"updateTime": "data/Data/BaseBookInfo/ChapterInfo/LastChapterUpdateTime||@js:\nvar n = parseInt(String(result || '0'), 10);\nif(!n) return '';\nvar d = new Date(n);\nfunction p(x){ return x < 10 ? '0' + x : '' + x; }\nreturn d.getFullYear() + '-' + p(d.getMonth() + 1) + '-' + p(d.getDate()) + ' ' + p(d.getHours()) + ':' + p(d.getMinutes());"
},
"bookWorld": {
"分类": {
"cat": "CategoryName||SubCategoryName||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"responseFormatType": "json",
"author": "AuthorName||author||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"lastChapterTitle": "LastUpdateChapterName||LastChapterName||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"bookName": "BookName||bookName||name||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"url": "BookId||bookId||id||@js:\nvar id = String(result || '').replace(/[^0-9]/g, '');\nif(!id) return '';\nreturn config.host + 'detail/' + id;",
"desc": "Description||desc||description||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"host": "https://66shuba.com/",
"requestInfo": "@js:\nvar kw = '都市';\nif(params && params.filters && params.filters.keyword){\n kw = String(params.filters.keyword);\n}\nvar page = parseInt(params.pageIndex || 1, 10);\nif(!page || page < 1) page = 1;\nvar url = config.host + 'api/novel/search?keyword=' + encodeURIComponent(kw) + '&page=' + page;\nreturn {'url': url, 'httpHeaders': config.httpHeaders};",
"actionID": "bookWorld",
"detailUrl": "BookId||bookId||id||@js:\nvar id = String(result || '').replace(/[^0-9]/g, '');\nif(!id) return '';\nreturn config.host + 'detail/' + id;",
"cover": "BookCover||BookId||bookId||id||@js:\nvar u = String(result || '').trim();\nif(!u) return '';\nif(/^https?:\\/\\//i.test(u)) return u;\nif(u.indexOf('//') === 0) return 'https:' + u;\nif(/^\\d+$/.test(u)) return 'https://bookcover.yuewen.com/qdbimg/349573/' + u + '/600';\nif(u.charAt(0) === '/') return config.host.replace(/\\/+$/, '') + u;\nreturn u;",
"validConfig": "",
"parserID": "DOM",
"list": "data/Data/CardList||@js:\nvar cards = result || [];\nif(Object.prototype.toString.call(cards) !== '[object Array]') return [];\nvar out = [];\nfor(var i = 0; i < cards.length; i++){\n var body = (cards[i] && cards[i].Body) ? cards[i].Body : [];\n if(Object.prototype.toString.call(body) !== '[object Array]') continue;\n for(var j = 0; j < body.length; j++){\n var it = body[j] || {};\n if(parseInt(it.ItemType || 0, 10) !== 0) continue;\n var d = it.ItemData || {};\n if(d && (d.BookId || d.bookId || d.id)) out.push(d);\n }\n}\nreturn out;",
"moreKeys": {
"_sIndex": 0,
"maxPage": 3,
"pageSize": 20,
"removeHtmlKeys": [
"bookName",
"author",
"cat",
"status",
"lastChapterTitle",
"desc"
],
"requestFilters": [
{
"key": "keyword",
"items": [
{
"title": "都市",
"value": "都市"
},
{
"title": "玄幻",
"value": "玄幻"
},
{
"title": "武侠",
"value": "武侠"
},
{
"title": "科幻",
"value": "科幻"
},
{
"title": "言情",
"value": "言情"
},
{
"title": "历史",
"value": "历史"
},
{
"title": "悬疑",
"value": "悬疑"
}
]
}
]
},
"status": "ActionStatusString||BookStatus||status||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"updateTime": ""
}
},
"sourceUrl": "https://66shuba.com/",
"sourceType": "text",
"weight": 9999,
"sourceName": "66书吧-66shuba-v0305(公众号:好用的软件站)",
"httpHeaders": {
"Referer": "https://66shuba.com/",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
},
"miniAppVersion": "2.53.2",
"lastModifyTime": "1772686329",
"searchBook": {
"cat": "CategoryName||SubCategoryName||category||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"responseFormatType": "json",
"author": "AuthorName||author||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"lastChapterTitle": "LastUpdateChapterName||LastChapterName||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"bookName": "BookName||bookName||name||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"url": "BookId||bookId||id||@js:\nvar id = String(result || '').replace(/[^0-9]/g, '');\nif(!id) return '';\nreturn config.host + 'detail/' + id;",
"desc": "Description||desc||description||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"host": "https://66shuba.com/",
"requestInfo": "@js:\nvar kw = encodeURIComponent(String(params.keyWord || ''));\nvar page = parseInt(params.pageIndex || 1, 10);\nif(!page || page < 1) page = 1;\nvar url = config.host + 'api/novel/search?keyword=' + kw + '&page=' + page;\nreturn {'url': url, 'httpHeaders': config.httpHeaders};",
"actionID": "searchBook",
"detailUrl": "BookId||bookId||id||@js:\nvar id = String(result || '').replace(/[^0-9]/g, '');\nif(!id) return '';\nreturn config.host + 'detail/' + id;",
"cover": "BookCover||BookId||bookId||id||@js:\nvar u = String(result || '').trim();\nif(!u) return '';\nif(/^https?:\\/\\//i.test(u)) return u;\nif(u.indexOf('//') === 0) return 'https:' + u;\nif(/^\\d+$/.test(u)) return 'https://bookcover.yuewen.com/qdbimg/349573/' + u + '/600';\nif(u.charAt(0) === '/') return config.host.replace(/\\/+$/, '') + u;\nreturn u;",
"validConfig": "",
"parserID": "DOM",
"list": "data/Data/CardList||@js:\nvar cards = result || [];\nif(Object.prototype.toString.call(cards) !== '[object Array]') return [];\nvar out = [];\nfor(var i = 0; i < cards.length; i++){\n var body = (cards[i] && cards[i].Body) ? cards[i].Body : [];\n if(Object.prototype.toString.call(body) !== '[object Array]') continue;\n for(var j = 0; j < body.length; j++){\n var it = body[j] || {};\n if(parseInt(it.ItemType || 0, 10) !== 0) continue;\n var d = it.ItemData || {};\n if(d && (d.BookId || d.bookId || d.id)) out.push(d);\n }\n}\nreturn out;",
"moreKeys": {
"pageSize": 20,
"maxPage": 5,
"removeHtmlKeys": [
"bookName",
"author",
"cat",
"status",
"lastChapterTitle",
"desc"
]
},
"status": "ActionStatusString||BookStatus||status||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"updateTime": ""
},
"chapterList": {
"vip": "V||vip||@js:\nvar n = parseInt(String(result || '0'), 10);\nreturn n === 1 ? 1 : 0;",
"responseFormatType": "json",
"url": "C||chapterId||id||@js:\nvar cid = String(result || '').replace(/[^0-9]/g, '');\nif(!cid) return '';\nvar v = '';\nif(params && params.queryInfo){\n v = params.queryInfo.detailUrl || params.queryInfo.url || '';\n}\nv = String(v || '');\nvar m = v.match(/detail\\/(\\d+)/i);\nvar bid = m ? m[1] : '';\nif(!bid){\n var m2 = v.match(/(\\d{6,})/);\n if(m2) bid = m2[1];\n}\nif(!bid) return '';\nreturn config.host + 'read/' + bid + '/' + cid;",
"host": "https://66shuba.com/",
"requestInfo": "@js:\nvar v = '';\nif(params && params.queryInfo){\n v = params.queryInfo.detailUrl || params.queryInfo.url || params.queryInfo.bookId || '';\n}\nif(!v && result){\n if(typeof result === 'string') v = result;\n else if(result.detailUrl) v = result.detailUrl;\n else if(result.url) v = result.url;\n else if(result.bookId) v = result.bookId;\n}\nif(!v && params && params.responseUrl){\n v = params.responseUrl;\n}\nv = String(v || '').trim();\nvar id = '';\nvar m = v.match(/detail\\/(\\d+)/i);\nif(m) id = m[1];\nif(!id && /^\\d+$/.test(v)) id = v;\nif(!id){\n var m2 = v.match(/(\\d{6,})/);\n if(m2) id = m2[1];\n}\nif(!id) return {'url':'','httpHeaders':config.httpHeaders};\nreturn {'url': config.host + 'api/novel/catalog/' + id, 'httpHeaders': config.httpHeaders};",
"actionID": "chapterList",
"title": "N||chapterName||name||@js:return String(result || '').replace(/\\s+/g,' ').trim();",
"detailUrl": "C||chapterId||id||@js:\nvar cid = String(result || '').replace(/[^0-9]/g, '');\nif(!cid) return '';\nvar v = '';\nif(params && params.queryInfo){\n v = params.queryInfo.detailUrl || params.queryInfo.url || '';\n}\nv = String(v || '');\nvar m = v.match(/detail\\/(\\d+)/i);\nvar bid = m ? m[1] : '';\nif(!bid){\n var m2 = v.match(/(\\d{6,})/);\n if(m2) bid = m2[1];\n}\nif(!bid) return '';\nreturn config.host + 'read/' + bid + '/' + cid;",
"validConfig": "",
"parserID": "DOM",
"list": "data/Data/Chapters||data/Chapters||@js:\nvar arr = result || [];\nif(Object.prototype.toString.call(arr) !== '[object Array]') return [];\nvar out = [];\nfor(var i = 0; i < arr.length; i++){\n var ch = arr[i] || {};\n var cid = ch.C || ch.chapterId || ch.id || '';\n var n = parseInt(String(cid), 10);\n if(!n || n <= 0) continue;\n out.push(ch);\n}\nreturn out;",
"moreKeys": {
"maxPage": 1,
"removeHtmlKeys": [
"title",
"updateTime"
]
},
"updateTime": "T||updateTime||@js:\nvar n = parseInt(String(result || '0'), 10);\nif(!n) return '';\nvar d = new Date(n);\nfunction p(x){ return x < 10 ? '0' + x : '' + x; }\nreturn d.getFullYear() + '-' + p(d.getMonth() + 1) + '-' + p(d.getDate()) + ' ' + p(d.getHours()) + ':' + p(d.getMinutes());"
}
}