🏤ARCHIVE💓✈️
https://archive.org
xiaohan231 (515)2024/05/24
互联网档案馆,V2.0版,激活码:555666
{ "bookSourceComment": "", "bookSourceGroup": "🍿 日常,🏤 档案,🎊 常用", "bookSourceName": "🏤ARCHIVE💓✈️", "bookSourceType": 2, "bookSourceUrl": "https:\/\/archive.org", "bookUrlPattern": "https:\/\/archive.org\/details\/.*", "concurrentRate": "", "customOrder": 115, "enabled": true, "enabledCookieJar": true, "enabledExplore": true, "exploreUrl": "<js>\neval(String(source.loginUrl));\nfunction explore(title, url, num, num_1, bool) {\n style = '{\\n title: \"' + title + '\",\\n url: \"' + url + '\",\\n style: {\\n layout_flexGrow: ' + num + ',\\n layout_flexBasisPercent: ' + num_1 + ',\\n layout_wrapBefore: ' + bool + '\\n }\\n }';\n return style;\n}\nvar exploreUrl = [];\nvar Result = java.ajax(baseUrl + '\/services\/user.php?op=whoami');\nlet ck = cookie.getCookie(baseUrl);\nif (!ck.includes('user=deleted') && ck.includes('user=')) {\n var list = JSON.parse(Result).value;\n var user = list.screenname;\n var fav = String(list.itemname);\n cache.put(Get('url') + \"Fav_1\", fav.replace(\/@\/, 'fav-'));\n cache.put(Get('url') + \"Fav_2\", fav.replace(\/@\/, '%40'));\n cache.put(Get('url') + \"Account_1\", user);\n} else {\n cache.put(Get('url') + \"Account_1\",'');\n}\nAccount = (cache.get(Get('url') + \"Account_1\") && String(cache.get(Get('url') + \"Account_1\")).length > 0) ? cache.get(Get('url') + \"Account_1\") : '';\nUrl1 = `{{get('url1','0')}}`;\nUrl2 = `{{get('url2','0')}}`;\nUrl3 = `{{get('url3','0')}}`;\nUrl4 = `{{get('url4','0')}}`;\nUrl5 = `{{get('url5','0')}}`;\nCs = `{{get('cs','0')}}`;\nSort = `{{java.encodeURI(get('sort',Get('p')))}}`;\nSort_1 = `{{get('sort_1',Get('p'))}}`;\nif(String(Account).length > 0) {\n java.ajax(Get('url') + '\/account\/login');\n ck = cookie.getCookie(baseUrl);\n if (!ck.includes('user=deleted') && ck.includes('user=') && Account) {\n login(Put(JSON.stringify('【登录提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + '\\n账号:' + Account + '\\n┋┋' + '\\n❤️登录成功❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n } else {\n Login();\n Result = java.ajax(baseUrl + '\/services\/user.php?op=whoami');\n list = JSON.parse(Result).value;\n user = list.screenname;\n cache.put(Get('url') + \"Account_1\", user);\n }\n if(String(cache.get(Get('url') + \"Account_1\")).length > 0) {\n Fav1 = cache.get(Get('url') + \"Fav_1\");\n Fav2 = cache.get(Get('url') + \"Fav_2\");\n exploreUrl.push(explore('✣【' + Account + '】✣', '', 1, 1, false));\n exploreUrl.push(explore('我的收藏', `{{Get('url')}}${Url1}${Url2}${Fav1}${Url3}{{page}}&filter_map={{filter_map('M')}}${Sort_1}${Url4}${Fav1}?sort=${Sort}`, 1, 0.45, false));\n exploreUrl.push(explore('我的合集', `{{Get('url')}}${Url1}account_details&page_target=${Fav2}&page_elements=${Cs}${Url3}{{page}}&filter_map={{filter_map('MH')}}${Sort_1}${Url4}${Fav2}%2Fcollections?sort=${Sort}`, 1, 0.45, false));\n}\n MY = Get('my');\n for (i in MY) {\n let title = MY[i].split(\"::\")[0];\n let link = MY[i].split(\"::\")[1];\n let target = String(link).replace(\/.*\\\/\/, '');\n exploreUrl.push(explore(title, `{{Get('url')}}${Url1}${Url2}${target}${Url3}{{page}}&filter_map={{filter_map('M')}}${Sort_1}${Url5}${link}?sort=${Sort}`, 1, 1, false));\n }\n}\nexploreUrl.push(explore(' ༺ˇ»`ʚ ✨书籍✨ ɞ´«ˇ༻', '', 1, 1, false));\nexploreUrl.push(explore('全部文本', `{{Get('url')}}${Url1}${Url2}texts${Url3}{{page}}&filter_map={{filter_map('b')}}${Sort_1}${Url4}texts?sort=${Sort}`, 1, 0.45, false));\nexploreUrl.push(explore('全部书籍', `{{Get('url')}}${Url1}${Url2}books${Url3}{{page}}&filter_map={{filter_map('b')}}${Sort_1}${Url4}books?sort=${Sort}`, 1, 0.45, false));\nTEXT = Get('text');\nfor (i in TEXT) {\n let title = TEXT[i].split(\"::\")[0];\n let link = TEXT[i].split(\"::\")[1];\n let target = String(link).replace(\/.*\\\/\/, '');\n exploreUrl.push(explore(title, `{{Get('url')}}${Url1}${Url2}${target}${Url3}{{page}}&filter_map={{filter_map('b')}}${Sort_1}${Url5}${link}?sort=${Sort}`, 1, 1, false));\n}\nexploreUrl.push(explore(' ༺ˇ»`ʚ ✨视频✨ ɞ´«ˇ༻', '', 1, 1, false));\n exploreUrl.push(explore('全部视频', `{{Get('url')}}${Url1}${Url2}movies${Url3}{{page}}&filter_map={{filter_map('v')}}${Sort_1}${Url4}movies?sort=${Sort}`, 1, 0.45, false));\nVIDEO = Get('video');\nfor (i in VIDEO) {\n let title = VIDEO[i].split(\"::\")[0];\n let link = VIDEO[i].split(\"::\")[1];\n let target = String(link).replace(\/.*\\\/\/, '');\n exploreUrl.push(explore(title, `{{Get('url')}}${Url1}${Url2}${target}${Url3}{{page}}&filter_map={{filter_map('v')}}${Sort_1}${Url5}${link}?sort=${Sort}`, 1, 1, false));\n}\nexploreUrl.push(explore(' ༺ˇ»`ʚ ✨音频✨ ɞ´«ˇ༻', '', 1, 1, false));\n exploreUrl.push(explore('全部音频', `{{Get('url')}}${Url1}${Url2}audio${Url3}{{page}}&filter_map={{filter_map('a')}}${Sort_1}${Url4}audio?sort=${Sort}`, 1, 0.45, false));\n exploreUrl.push(explore('全部音乐', `{{Get('url')}}${Url1}${Url2}etree${Url3}{{page}}&filter_map={{filter_map('a')}}${Sort_1}${Url4}etree?sort=${Sort}`, 1, 0.45, false));\nAUDIO = Get('audio');\nfor (i in AUDIO) {\n let title = AUDIO[i].split(\"::\")[0];\n let link = AUDIO[i].split(\"::\")[1];\n let target = String(link).replace(\/.*\\\/\/, '');\n exploreUrl.push(explore(title, `{{Get('url')}}${Url1}${Url2}${target}${Url3}{{page}}&filter_map={{filter_map('a')}}${Sort_1}${Url5}${link}?sort=${Sort}`, 1, 1, false));\n}\nexploreUrl.push(explore(' ༺ˇ»`ʚ ✨图像✨ ɞ´«ˇ༻', '', 1, 1, false));\n exploreUrl.push(explore('全部图像', `{{Get('url')}}${Url1}${Url2}image${Url3}{{page}}&filter_map={{filter_map('i')}}${Sort_1}${Url4}image?sort=${Sort}`, 1, 0.45, false));\nIMAGE = Get('image');\nfor (i in IMAGE) {\n let title = IMAGE[i].split(\"::\")[0];\n let link = IMAGE[i].split(\"::\")[1];\n let target = String(link).replace(\/.*\\\/\/, '');\n exploreUrl.push(explore(title, `{{Get('url')}}${Url1}${Url2}${target}${Url3}{{page}}&filter_map={{filter_map('i')}}${Sort_1}${Url5}${link}?sort=${Sort}`, 1, 1, false));\n}\nvar exploreUrlStr = '[' + exploreUrl.join(\",\") + ']';\nexploreUrlStr;\n<\/js>", "header": "<js>\nvar Proxy = Map('代理:').split(\",\");\nheaders={\n \"User-Agent\": \"Mozilla\/5.0 (Linux; Android 10; K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/123.0.0.0 Mobile Safari\/537.36\",\n \"proxy\": Proxy.some(value => parseInt(value, 10) == parseInt(Get('ci0'), 10)) ? '' : Proxy[0],\n}\ncache.put(Get('url') + \"headers\",JSON.stringify(headers));\nJSON.stringify(headers);\n<\/js>", "jsLib": "function get(tag,num) {\n cs = [\n '%5B%22collections%22%5D'\n ];\n url1 = [\n '\/services\/search\/beta\/page_production\/?user_query=&page_type='\n ];\n url2 = [\n 'collection_details&page_target='\n ];\n url3 = [\n '&hits_per_page=100&page='\n ];\n url4 = [\n '&aggregations=false&client_url=https%3A%2F%2Farchive.org%2Fdetails%2F'\n ];\n url5 = [\n '&aggregations=false&client_url='\n ];\n sort_1 = [\n '&sort=downloads%3Adesc',\n '&sort=week%3Adesc',\n '&sort=date%3Adesc',\n '&sort=publicdate%3Adesc',\n '&sort=reviewdate%3Adesc',\n '&sort=addeddate%3Adesc',\n '&sort=titleSorter%3Aasc',\n '&sort=creatorSorter%3Aasc',\n ];\n sort = [\n '-downloads',\n '-week',\n '-date',\n '-publicdate',\n '-reviewdate',\n '-addeddate',\n 'title',\n 'creator',\n ];\n var e = eval(tag + '[' + num + ']');\n return e;\n}\nfunction Get(e) {\n const { java, source, cookie } = this;\n var get = JSON.parse(source.getVariable());\n return get[e];\n}\nfunction Put(data) {\n const { java, source, cookie } = this;\n var get = JSON.parse(source.getVariable());\n data = get['TC_to_SC'] == true ? java.t2s(data) : data;\n return JSON.parse(data);\n}\nfunction Map(e) {\n const { java, source, cookie } = this;\n var infomap = source.getLoginInfoMap();\n var map = (infomap !== null && infomap.get(e)) ? infomap.get(e) : '';\n return map;\n}\nfunction shortenNumber(number, digits) {\n digits = digits !== undefined ? digits : 2;\n const suffixes = ['', 'K', 'M', 'B', 'T'];\n let suffixIndex = 0;\n while (number >= 1000) {\n number \/= 1000;\n suffixIndex++;\n }\n const formattedNumber = number % 1 === 0 ? number.toFixed(0) : number.toFixed(digits);\n return formattedNumber + suffixes[suffixIndex];\n}\nfunction formatBytes(bytes, decimals) {\n decimals = decimals === undefined ? 2 : decimals;\n if (bytes === 0) return '0 Bytes';\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) \/ Math.log(1024));\n return `${(bytes \/ Math.pow(1024, i)).toFixed(decimals)} ${sizes[i]}`;\n}\nfunction filter_map(e) {\n const { java, source, cookie } = this;\n var get = JSON.parse(source.getVariable());\n var filter = {\"lending___status\":{},\"mediatype\":{},\"year\":{},\"subject\":{},\"collection\":{},\"creator\":{},\"language\":{},\"firstTitle\":{},\"firstCreator\":{}};\n var mediatype = [\n 'collection',\n 'texts',\n 'movies',\n 'audio',\n 'etree',\n 'image'\n ];\n var infomap = source.getLoginInfoMap();\n infomap = infomap ? infomap : {};\n var result = typeof result !== 'undefined' ? result : {};\n var Mediatype = infomap.get(\"类型:\") || '';\n if (e.includes('MH')) {\n Mediatype = '0';\n }\n if (e.includes('s')) {\n let Mediatype1 = infomap.get(\"类型[s]:\") || '';\n Mediatype = String(Mediatype1).length > 0 ? Mediatype1 : Mediatype;\n }\n if (e.includes('b')) {\n let Mediatype1 = infomap.get(\"类型[b]:\") || '';\n Mediatype = String(Mediatype1).length > 0 ? Mediatype1 : Mediatype;\n }\n if (e.includes('v')) {\n let Mediatype1 = infomap.get(\"类型[v]:\") || '';\n Mediatype = String(Mediatype1).length > 0 ? Mediatype1 : Mediatype;\n }\n if (e.includes('a')) {\n let Mediatype1 = infomap.get(\"类型[a]:\") || '';\n Mediatype = String(Mediatype1).length > 0 ? Mediatype1 : Mediatype;\n }\n if (e.includes('i')) {\n let Mediatype1 = infomap.get(\"类型[i]:\") || '';\n Mediatype = String(Mediatype1).length > 0 ? Mediatype1 : Mediatype;\n }\n var Mediatypes = String(Mediatype).length > 0 ? Mediatype.split(\",\") : [0,1,2,3,4,5];\n var MEDIATYPE = Mediatypes.map(index => mediatype[index]);\n MEDIATYPE.forEach(key => {\n filter.mediatype[key] = \"inc\";\n });\n var availability = [\n 'is_readable',\n 'is_lendable',\n 'available_to_borrow'\n ];\n var Availability = infomap.get(\"可用:\") || '';\n var Availabilitys = String(Availability).length > 0 ? Availability.split(\",\") : [];\n var AVAILABILITY = Availabilitys.map(index => availability[index]);\n AVAILABILITY.forEach(key => {\n filter.lending___status[key] = \"inc\";\n });\n var Year = infomap.get(\"年代:\") || '';\n var Years = String(Year).length > 0 ? Year.split(\",\") : [];\n function addYearEntry(year, value) {\n if (filter.year[year]) {\n if (!Array.isArray(filter.year[year])) {\n filter.year[year] = [filter.year[year]];\n }\n if (!filter.year[year].includes(value)) {\n filter.year[year].push(value);\n }\n } else {\n filter.year[year] = value;\n }\n }\n Years.forEach(item => {\n if (typeof item === 'number') {\n addYearEntry(item, \"inc\");\n } else {\n const range = item.split('-');\n const startYear = parseInt(range[0]);\n const endYear = parseInt(range[1]);\n if (!isNaN(startYear) && !isNaN(endYear)) {\n for (let i = startYear; i <= endYear; i++) {\n addYearEntry(i, \"inc\");\n }\n } else if (!isNaN(startYear)) {\n addYearEntry(startYear, \"inc\");\n } else {\n java.longToast('【年代参数】' + n(2) + '范例:1995,2007,2018或者2001-2015');\n }\n }\n });\n var Subject = infomap.get(\"主题:\") || '';\n var SUBJECT = String(Subject).length > 0 ? Subject.split(\",\") : [];\n SUBJECT.forEach(key => {\n filter.subject[key] = \"inc\";\n });\n var Collection = infomap.get(\"合集:\") || '';\n var COLLECTION = String(Collection).length > 0 ? Collection.split(\",\") : [];\n COLLECTION.forEach(key => {\n filter.collection[key] = \"inc\";\n });\n var Creator = infomap.get(\"作者:\") || '';\n var CREATOR = String(Creator).length > 0 ? Creator.split(\",\") : [];\n CREATOR.forEach(key => {\n filter.creator[key] = \"inc\";\n });\n var Language = infomap.get(\"语言:\") || '';\n var LANGUAGE = String(Language).length > 0 ? Language.split(\",\") : [];\n LANGUAGE.forEach(key => {\n filter.language[key] = \"inc\";\n });\n if (String(get.p).includes('6')) {\n var Firsttitle = infomap.get(\"字母:\") || '';\n var FIRSTTITLE = String(Firsttitle).length > 0 ? Firsttitle.split(\",\") : [];\n FIRSTTITLE.forEach(key => {\n filter.firstTitle[key] = \"inc\";\n });\n }\n if (String(get.p).includes('7')) {\n var Firstcreator = infomap.get(\"字母:\") || '';\n var FIRSTTITLE = String(Firstcreator).length > 0 ? Firstcreator.split(\",\") : [];\n FIRSTCREATOR.forEach(key => {\n filter.firstCreator[key] = \"inc\";\n });\n }\n for (let key in filter) {\n if (Object.keys(filter[key]).length === 0) {\n delete filter[key];\n }\n }\n return java.encodeURI(JSON.stringify(filter));\n}\nfunction removeFromArrayByKey(original, key, element) {\n if (original[key] && Array.isArray(original[key])) {\n let index = original[key].indexOf(element);\n if (index !== -1) {\n original[key].splice(index, 1);\n }\n }\n}\nfunction Imgurl(imgurl) {\n if (\/.jp2\/.test(imgurl)) {\n match = imgurl.match(\/(.*)(\\&file=.*)(\\&id=.*)\/);\n imgurl = match[1] + match[3] + match[2];\n }\n return decodeURIComponent(imgurl);\n}", "lastUpdateTime": 1716487184464, "loginCheckJs": "", "loginUi": "[\n { name: \"激活码:\", type: \"text\" },\n { name: \"代理:\", type: \"text\" },\n {\n name: \" 💡登录账号💡 \",\n type: \"button\",\n action: \"Login()\"\n },\n {\n name: \" 💡源站测试💡 \",\n type: \"button\",\n action: \"test(1)\"\n },\n { name: \" 查看当前 \", type: \"button\", action: \"look(0)\" },\n { name: \" 查看历史 \", type: \"button\", action: \"look(1)\" },\n { name: \" 恢复默认 \", type: \"button\", action: \"test(-1)\" },\n { name: \" 繁体搜索 \", type: \"button\", action: \"search_TC()\" },\n { name: \" 简繁转换 \", type: \"button\", action: \"TC_to_SC()\" },\n { name: \" 目录整理 \", type: \"button\", action: \"settle()\" },\n\n { name: \" ༺ˇ»`ʚ 全局设置 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \" 类型参数 \", type: \"button\", action: \"login('【类型参数】' + n(2) + '[0]合集 [1]文本 [2]视频 [3]音频 [4]音乐 [5]图像')\" },\n { name: \" 可用参数 \", type: \"button\", action: \"login('【可用参数】' + n(2) + '[0]随时可用 [1]图书馆借阅 [2]14天借阅')\" },\n { name: \" 年代参数 \", type: \"button\", action: \"login('【年代参数】' + n(2) + '范例:1995,2007,2018或者2001-2015')\" },\n { name: \"类型:\", type: \"text\" },\n { name: \"可用:\", type: \"text\" },\n { name: \"年代:\", type: \"text\" },\n { name: \"主题:\", type: \"text\" },\n { name: \"合集:\", type: \"text\" },\n { name: \"作者:\", type: \"text\" },\n { name: \"语言:\", type: \"text\" },\n { name: \" ✣ 排序方式 ✣ \", type: \"button\" },\n { name: \" 总浏览量 \", type: \"button\", action: \"p(0)\" },\n { name: \" 月浏览量 \", type: \"button\", action: \"p(1)\" },\n { name: \" 发布日期 \", type: \"button\", action: \"p(2)\" },\n { name: \" 存档日期 \", type: \"button\", action: \"p(3)\" },\n { name: \" 审查日期 \", type: \"button\", action: \"p(4)\" },\n { name: \" 添加日期 \", type: \"button\", action: \"p(5)\" },\n { name: \" 标题字母筛选 \", type: \"button\", action: \"p(6)\" },\n { name: \" 作者字母筛选 \", type: \"button\", action: \"p(7)\" },\n { name: \"字母:\", type: \"text\" },\n\n { name: \" ✣ 播放设置 ✣ \", type: \"button\" },\n { name: \" 刷新播放 \", type: \"button\", action: \"q(0)\" },\n { name: \" 自动播放 \", type: \"button\", action: \"q(1)\" },\n { name: \" ✣ 码率设置 ✣ \", type: \"button\" },\n { name: \" 动态 \", type: \"button\", action: \"o(0)\" },\n { name: \" 64Kbps \", type: \"button\", action: \"o(1)\" },\n { name: \" 128Kbps \", type: \"button\", action: \"o(2)\" },\n\n { name: \" ༺ˇ»`ʚ 搜索设置 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \" ✣ 排序方式 ✣ \", type: \"button\" },\n { name: \" 相关排序 \", type: \"button\", action: \"r(0)\" },\n { name: \" 全局设置 \", type: \"button\", action: \"r(1)\" },\n { name: \" ✣ 搜索方式 ✣ \", type: \"button\" },\n { name: \" 标题简介 \", type: \"button\", action: \"s(0)\" },\n { name: \" 文本内容 \", type: \"button\", action: \"s(1)\" },\n { name: \"类型[s]:\", type: \"text\" },\n\n { name: \" ༺ˇ»`ʚ 书籍设置 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \"类型[b]:\", type: \"text\" },\n\n { name: \" ༺ˇ»`ʚ 视频设置 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \"类型[v]:\", type: \"text\" },\n\n { name: \" ༺ˇ»`ʚ 音频设置 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \"类型[a]:\", type: \"text\" },\n\n { name: \" ༺ˇ»`ʚ 图像设置 ɞ´«ˇ༻ \", type: \"button\" },\n { name: \"类型[i]:\", type: \"text\" },\n\n {\n name: \" 💡 源 站 打 印 💡 \",\n type: \"button\",\n action: \"test()\"\n }\n]", "loginUrl": "var fburl = '';\noriginal = {\n 'ci0': 0,\n 'ci1': 0,\n 'ci2': 0,\n 'ci3': 0,\n 'o': 0,\n 'p': 0,\n 'q': 0,\n 'r': 0,\n 's': 0,\n 'search_TC': false,\n 'TC_to_SC': true,\n 'settle': false,\n 'url': 'https:\/\/archive.org',\n 'urls': [\n 'https:\/\/archive.org'\n ],\n 'my': [\n ],\n 'text': [\n ],\n 'video': [\n ],\n 'audio': [\n ],\n 'image': [\n ]\n};\ntry {\n $$$ = JSON.parse(source.getVariable());\n if ($$$ == null) {\n error;\n } else {\n '';\n };\n} catch (e) {\n $$$ = original;\n put($$$);\n}\nx = '⓪①②③④⑤⑥⑦⑧⑨⑩';\nvar Headers = JSON.parse(cache.get(Get('url') + \"headers\"));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nfunction test(e) {\n if (e == undefined) {\n return java.log('\\n' + JSON.stringify($$$['urls'], null, '\\t')) + login('【源站输出提示】' + n(2) + k(3) + '源站已打印完毕,请到日志查看 ');\n }\n if (e == -1) {\n login('【初始化提示】' + n(2) + k(17) + '已恢复默认设置 ');\n return put(original);\n }\n if (e == 0) {\n date1 = new Date().getTime();\n html = java.ajax($$$.urls[0]);\n date2 = new Date().getTime();\n t = date2 - date1;\n time = t \/ 1000 + 's';\n c = String(html).indexOf('Internet Archive');\n logTime = '【' + name(e) + '】\\n┋┋\\n' + '解析时间:' + time;\n if (c == -1 || t > 5000) {\n return login('【源站更新提示】' + n(2) + '源站更新完毕,请到日志查看' + '\\n \\n' + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♣️源站已失效(可能被墙)♣️\\n┋┋\\n请更新网址\/切换源站\/切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t < 1000) {\n return login('【源站更新提示】' + n(2) + '源站更新完毕,请到日志查看' + '\\n \\n' + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n❤️延迟低,推荐使用此站❤️\\n┋┋\\n网络环境优良,请继续保持状态\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t >= 1000 && t < 2000) {\n return login('【源站更新提示】' + n(2) + '源站更新完毕,请到日志查看' + '\\n \\n' + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♦️延迟一般,勉强可使用♦️\\n┋┋\\n请切换其他源站或切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t >= 2000 && t < 5000) {\n return login('【源站更新提示】' + n(2) + '源站更新完毕,请到日志查看' + '\\n \\n' + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♠延迟过高,不建议使用♠\\n┋┋\\n请切换其他源站或切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n }\n }\n date1 = new Date().getTime();\n html = java.ajax($$$.urls[0]);\n date2 = new Date().getTime();\n t = date2 - date1;\n time = t \/ 1000 + 's';\n c = String(html).indexOf('Internet Archive');\n logTime = '【' + name(0) + '】\\n┋┋\\n' + '解析时间:' + time;\n if (c == -1 || t > 5000) {\n return login('【访问失败提示】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♣️源站已失效(可能被墙)♣️\\n┋┋\\n请更新网址\/切换源站\/切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t < 1000) {\n return login('【网络环境优良】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n❤️延迟低,推荐使用此站❤️\\n┋┋\\n网络环境优良,请继续保持状态\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t >= 1000 && t < 2000) {\n return login('【网络环境一般】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♦️延迟一般,勉强可使用♦️\\n┋┋\\n请切换其他源站或切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else if (t >= 2000 && t < 5000) {\n return login('【网络环境堪忧】' + n(2) + '┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + logTime + '\\n┋┋\\n♠延迟过高,不建议使用♠\\n┋┋\\n请切换其他源站或切换网络环境\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n }\n}\nfunction put(data) {\n return source.setVariable(JSON.stringify(data, null, '\\t'));\n}\nfunction update() {\n html = java.ajax(fburl);\n J = org.jsoup.Jsoup.parse(html);\n u = J.select('.website_href');\n for (i = 0; i < 1; i++) {\n host = String(u.attr('href').split(' ')[i]).replace(\/http:\/g, 'https:').replace(\/\\\/+$\/, '');\n if (String($$$['urls']).indexOf(host) === -1) {\n java.log('\\n✅已添加源站:\\n' + host);\n $$$['urls'].unshift(host);\n put($$$);\n $(0);\n } else {\n return test(1);\n }\n }\n}\nfunction name(e) {\n if (n == undefined) {\n e = 0;\n }\n return x[e] + ' ' + $$$.urls[e];\n}\nfunction login(e) {\n if (e == undefined) {\n return;\n }\n java.longToast(e);\n}\nfunction n(e) {\n n = '\\n';\n for (m = 1; m < e; m++) {\n n = n + '\\n';\n }\n return n;\n}\nfunction k(e) {\n k = ' ';\n for (q = 1; q < e; q++) {\n k = k + ' ';\n }\n return k;\n}\nfunction l(e) {\n l = '';\n for (o = 1; o < e; o++) {\n l = l + '';\n }\n return l;\n}\nfunction look(e) {\n if (e == 0) {\n return login('【查看当前源站】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + ('\\n ' + '📌' + name($$$.ci0)) + '\\n┋┋' + ('\\n ' + '🎲书源类型:' + (source.bookSourceType == 0 ? '📄文本' : (source.bookSourceType == 1 ? '🎧音频' : (source.bookSourceType == 2 ? '💻图片\/视频' : '🗳资源')))) + '\\n┋┋' + ('\\n' + '📺播放方式:' + typeQ($$$.q)) + '\\n┋┋' + ('\\n' + '🎼码率设置:' + typeO($$$.o)) + '\\n┋┋' + ('\\n' + '📚全局排序:' + typeP($$$.p)) + '\\n┋┋' + ('\\n' + '📚搜索排序:' + typeR($$$.r)) + '\\n┋┋' + ('\\n' + '🔎搜索方式:' + typeS($$$.s)) + '\\n┋┋' + ('\\n🔍繁体搜索:' + ($$$.search_TC == true ? '开启' : '关闭')) + '\\n┋┋' + ('\\n📑简繁转换:' + ($$$.TC_to_SC == false ? '关闭' : '开启')) + '\\n┋┋' + ('\\n🗃目录整理:' + ($$$.settle == false ? '关闭' : '开启')) + '\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n } else {\n return login('【查看历史接口】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋' + ('\\n ci1:' + name($$$.ci1)) + '\\n┋┋' + ('\\n ci2:' + name($$$.ci2)) + '\\n┋┋' + ('\\n ci3:' + name($$$.ci3)) + '\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛');\n }\n}\nfunction $(e) {\n if (e == undefined) {\n e = result['序号:'];\n e = e > 0 ? e : '0';\n }\n if (\/^ci[123]$\/.test(e)) {\n eval('i=$$$.' + e);\n }\n if (\/\\D|^$\/.test(e) || e < 0 || e >= $$$['urls'].length) {\n return login('【源站错误提示】' + n(2) + '已选择的源站无效,请重新选择');\n }\n $$$['url'] = $$$['urls'][e];\n $$$['ci3'] = $$$['ci2'];\n $$$['ci2'] = $$$['ci1'];\n $$$['ci1'] = $$$['ci0'];\n $$$['ci0'] = e;\n put($$$);\n test(e);\n}\nQ = ['刷新播放','自动播放'];\nfunction typeQ(e) {\n if (e == undefined) {\n e = 0;\n }\n return Q[e];\n}\nfunction q(e) {\n if (q == undefined) {\n q = result.q;\n }\n if (e == $$$.q) {\n return login('【播放切换提示】' + n(2) + '已经选择此播放方式,无需更换');\n }\n login('【播放切换提示】' + n(2) + '已经切换到[' + typeQ(e) + ']方式');\n $$$.q = e;\n return put($$$);\n}\nO = ['动态','64Kbps','128Kbps'];\nfunction typeO(e) {\n if (e == undefined) {\n e = 0;\n }\n return O[e];\n}\nfunction o(e) {\n if (o == undefined) {\n o = result.o;\n }\n if (e == $$$.o) {\n return login('【码率切换提示】' + n(2) + '已经选择此码率,无需更换');\n }\n login('【码率切换提示】' + n(2) + '已经切换到[' + typeO(e) + ']码率');\n $$$.o = e;\n return put($$$);\n}\nP = ['总浏览量','月浏览量','发布日期','存档日期','审查日期','添加日期','标题字母筛选','作者字母筛选'];\nfunction typeP(e) {\n if (e == undefined) {\n e = 1;\n }\n return P[e];\n}\nfunction p(e) {\n if (p == undefined) {\n p = result.p;\n }\n if (e == $$$.p) {\n return login('【全局排序提示】' + n(2) + '已经选择此排序,无需更换');\n }\n login('【全局排序提示】' + n(2) + '已经切换到[' + typeP(e) + ']排序');\n $$$.p = e;\n return put($$$);\n}\nR = ['相关排序','全局设置'];\nfunction typeR(e) {\n if (e == undefined) {\n e = 1;\n }\n return R[e];\n}\nfunction r(e) {\n if (r == undefined) {\n r = result.r;\n }\n if (e == $$$.r) {\n return login('【搜索排序提示】' + n(2) + '已经选择此排序,无需更换');\n }\n login('【搜索排序提示】' + n(2) + '已经切换到[' + typeR(e) + ']排序');\n $$$.r = e;\n return put($$$);\n}\nS = ['标题简介','文本内容'];\nfunction typeS(e) {\n if (e == undefined) {\n e = 1;\n }\n return S[e];\n}\nfunction s(e) {\n if (s == undefined) {\n s = result.s;\n }\n if (e == $$$.s) {\n return login('【搜索方式提示】' + n(2) + '已经选择此搜索方式,无需更换');\n }\n login('【搜索方式提示】' + n(2) + '已经切换到[' + typeS(e) + ']搜索');\n $$$.s = e;\n return put($$$);\n}\nfunction search_TC() {\n if (search_TC == undefined) {\n search_TC = true;\n }\n if ($$$.search_TC == true) {\n login('【繁体搜索提示】' + n(2) + '已关闭繁体搜索,请重新搜索');\n $$$.search_TC = false;\n put($$$);\n } else {\n login('【繁体搜索提示】' + n(2) + '已开启繁体搜索,请重新搜索');\n $$$.search_TC = true;\n put($$$);\n }\n}\nfunction TC_to_SC() {\n if (TC_to_SC == undefined) {\n TC_to_SC = true;\n }\n if ($$$.TC_to_SC == true) {\n login('【简繁转换提示】' + n(2) + '已关闭繁体转换,请刷新书籍');\n $$$.TC_to_SC = false;\n put($$$);\n } else {\n login('【简繁转换提示】' + n(2) + '已开启繁体转换,请刷新书籍');\n $$$.TC_to_SC = true;\n put($$$);\n }\n}\nfunction settle() {\n if (settle == undefined) {\n settle = true;\n }\n if ($$$.settle == true) {\n login('【目录整理提示】' + n(2) + '已关闭目录整理,请刷新目录');\n $$$.settle = false;\n put($$$);\n } else {\n login('【目录整理提示】' + n(2) + '已开启目录整理,请刷新目录');\n $$$.settle = true;\n put($$$);\n }\n}\nfunction Login() {\n java.startBrowser(baseUrl + '\/account\/login', '登录');\n}", "respondTime": 3802, "ruleBookInfo": { "author": "author", "canReName": "reName", "coverUrl": "cover", "downloadUrls": "durl", "init": "<js>\neval(String(source.loginUrl));\nvar Headers = JSON.parse(cache.get(Get('url') + \"headers\").replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (String(book['author']) !== \"xiaohan231\") {\n Account = (cache.get(Get('url') + \"Account_1\") && String(cache.get(Get('url') + \"Account_1\")).length > 0) ? cache.get(Get('url') + \"Account_1\") : '';\n var J = org.jsoup.Jsoup.parse(result);\n var $2 = element => String(java.getElements(element).text());\n var $3 = element => String(J.select(element).attr('src'));\n url = baseUrl;\n s = '';\n k = '';\n t = '';\n l = '';\n l = String(l);\n l = Get('settle') == true ? l.replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, l.match(\/\\d+\/) ? l.match(\/(\\d+)\/)[1].padStart(3, '0') : '$1') : l;\n Setting = '\\n📌当前源站:' + (Get('ci0') == 0 ? '〖默认〗' : '〖自选〗') + x[Get('ci0')] + (Get('url').length > 26 ? Get('url').substring(0, 26) + \"<br>\" + Get('url').substring(26) : Get('url')) + ('\\n🎲书源类型:' + (source.bookSourceType == 2 ? '〖默认〗' : '〖自选〗') + (source.bookSourceType == 0 ? '📄文本' : (source.bookSourceType == 1 ? '🎧音频' : (source.bookSourceType == 2 ? '💻图片\/视频' : '🗳资源')))) + ('\\n📺播放方式:' + (Get('q') == 0 ? '〖默认〗刷新播放' : '〖自选〗自动播放')) + ('\\n🎼码率设置:〖' + (Get('o') == 0 ? '默认' : '自选') + '〗' + O[Get('o')]) + ('\\n📚全局排序:〖' + (Get('p') == 0 ? '默认' : '自选') + '〗' + P[Get('p')]) + ('\\n📚搜索排序:〖' + (Get('r') == 0 ? '默认' : '自选') + '〗' + R[Get('r')]) + ('\\n🔎搜索方式:〖' + (Get('r') == 0 ? '默认' : '自选') + '〗' + S[Get('s')]) + ('\\n🔍繁体搜索:' + (Get('search_TC') == true ? '〖自选〗开启' : '〖默认〗关闭')) + ('\\n📑简繁转换:' + (Get('TC_to_SC') == true ? '〖默认〗开启' : '〖自选〗关闭')) + ('\\n🗃目录整理:' + (Get('settle') == true ? '〖自选〗开启' : '〖默认〗关闭'));\n changeLog = '\\nㅤ\\n' + Setting + '\\nㅤ\\n';\n name = cache.get('Name' + baseUrl);\n author = cache.get('Author' + baseUrl);\n kind1 = cache.get('Kind' + baseUrl);\n kind = String(kind1).replace(\/^(.{60}).*\/, '$1');\n latest = $2('.metadata-definition.4');\n intro = cache.get('Intro' + baseUrl);\n cover = cache.get('Cover' + baseUrl);\n if (cache.get('Type' + baseUrl) && cache.get('Type' + baseUrl).includes('collection')) {\n latest = '';\n if (book.readConfig && book.group > 0) {\n if (author .includes('我的合集') && String($$$.my).indexOf(name + '::' + baseUrl) == -1) {\n $$$['my'].push(name + '::' + baseUrl);\n put($$$);\n login(Put(JSON.stringify('【发现提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n❤️合集已添加到:发现>书籍❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n if (kind1.includes('texts') && String($$$.text).indexOf(name + '::' + baseUrl) == -1) {\n $$$['text'].push(name + '::' + baseUrl);\n put($$$);\n login(Put(JSON.stringify('【发现提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n❤️合集已添加到:发现>书籍❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n if (kind1.includes('movies') && String($$$.video).indexOf(name + '::' + baseUrl) == -1) {\n $$$['video'].push(name + '::' + baseUrl);\n put($$$);\n login(Put(JSON.stringify('【发现提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n❤️合集已添加到:发现>视频❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n if ((kind1.includes('audio') || kind1.includes('etree')) && String($$$.audio).indexOf(name + '::' + baseUrl) == -1) {\n $$$['audio'].push(name + '::' + baseUrl);\n put($$$);\n login(Put(JSON.stringify('【发现提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n❤️合集已添加到:发现>音频❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n if (kind1.includes('image') && String($$$.image).indexOf(name + '::' + baseUrl) == -1) {\n $$$['image'].push(name + '::' + baseUrl);\n put($$$);\n login(Put(JSON.stringify('【发现提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n❤️合集已添加到:发现>图像❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n }\n if (book.readConfig && book.group < 1 && (String($$$.my).indexOf(book.name + '::' + baseUrl) !== -1 || String($$$.text).indexOf(book.name + '::' + baseUrl) !== -1 || String($$$.video).indexOf(book.name + '::' + baseUrl) !== -1 || String($$$.audio).indexOf(book.name + '::' + baseUrl) !== -1 || String($$$.image).indexOf(book.name + '::' + baseUrl) !== -1)) {\n removeFromArrayByKey($$$, 'my', book.name + '::' + baseUrl);\n removeFromArrayByKey($$$, 'text', book.name + '::' + baseUrl);\n removeFromArrayByKey($$$, 'video', book.name + '::' + baseUrl);\n removeFromArrayByKey($$$, 'audio', book.name + '::' + baseUrl);\n removeFromArrayByKey($$$, 'image', book.name + '::' + baseUrl);\n put($$$);\n login(Put(JSON.stringify('【发现提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n♣️合集已从发现移除♣️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n }\n if (cache.get('Type' + baseUrl) && cache.get('Type' + baseUrl).includes('texts')) {\n if (result.includes('js-bookreader')) {\n var LIST = JSON.parse(java.getElements('.js-bookreader').attr('value'));\n var list = Object.values(LIST.multipleBooksList.by_subprefix);\n var readurl = LIST.url;\n var read = java.ajax(decodeURIComponent('https:' + readurl));\n var klist = Object.keys(JSON.parse(read).data.metadata);\n var vlist = Object.values(JSON.parse(read).data.metadata);\n author = String($2('.metadata-definition.0 dd')).replace(\/\\,\\s\/g, '\/').replace(\/\\,\/g, '\/').replace(\/undefined\/g, '');\n latest = list[list.length - 1].title;\n var Durls = java.getElements('.format-group');\n var durls1 = [];\n var durls2 = [];\n for (j in Durls) {\n let num = parseInt(j) + 1;\n durls1.push('[' + num + ']' + String(Durls[j].select('.format-summary').text()).replace(\/download\/g, '') + '〔' + String(Durls[j].select('.hover-badge-stealth').text()).replace(\/download\/g, '') + '〕');\n durls2.push(Durls[j].select('.format-summary').attr('href'));\n }\n var dintro = '📥下载链接:\\n' + durls1.join('\\n');\n if (book.readConfig && book.getVariable(\"custom\") > 0) {\n dt = book.getVariable(\"custom\");\n DURL = Get('url') + durls2[dt-1];\n java.startBrowser(DURL, '下载链接:' + durls1[dt-1]);\n book.setVariable(JSON.stringify('', null, '\\t'));\n }\n var intros = [];\n for (j in klist) {\n intros.push('◈ ' + klist[j] + ' : ' + vlist[j]);\n }\n intro = dintro + '\\nㅤ\\n' + intros.join('\\n').replace(\/\\,\/g, ', ').replace(\/\\[\\\/.*?\\]\/g, ' ').replace(\/\\[.*?\\]\/g, '');\n var li = JSON.parse(read).data.brOptions;\n cover = li.data[0][0].uri ? String(li.data[0][0].uri).replace(\/\\&$\/, '') : cover;\n }\n if (result.includes('js-iaux-pdfs')) {\n var LIST = JSON.parse(java.getElements('.js-ia-metadata').attr('value'));\n var list = JSON.parse(java.getElements('.js-iaux-pdfs').attr('value'));\n var klist = Object.keys(LIST.metadata);\n var vlist = Object.values(LIST.metadata);\n author = String($2('.metadata-definition.0 dd')).replace(\/\\,\\s\/g, '\/').replace(\/\\,\/g, '\/').replace(\/undefined\/g, '');\n latest = list[list.length - 1].title;\n var Durls = java.getElements('.format-group');\n var durls1 = [];\n var durls2 = [];\n for (j in Durls) {\n let num = parseInt(j) + 1;\n durls1.push('[' + num + ']' + String(Durls[j].select('.format-summary').text()).replace(\/download\/g, '') + '〔' + String(Durls[j].select('.hover-badge-stealth').text()).replace(\/download\/g, '') + '〕');\n durls2.push(Durls[j].select('.format-summary').attr('href'));\n }\n var dintro = '📥下载链接:\\n' + durls1.join('\\n');\n if (book.readConfig && book.getVariable(\"custom\") > 0) {\n dt = book.getVariable(\"custom\");\n DURL = Get('url') + durls2[dt-1];\n java.startBrowser(DURL, '下载链接:' + durls1[dt-1]);\n book.setVariable(JSON.stringify('', null, '\\t'));\n }\n var intros = [];\n for (j in klist) {\n intros.push('◈ ' + klist[j] + ' : ' + vlist[j]);\n }\n intro = dintro + '\\nㅤ\\n' + intros.join('\\n').replace(\/\\,\/g, ', ').replace(\/\\[\\\/.*?\\]\/g, ' ').replace(\/\\[.*?\\]\/g, '');\n cover = cover;\n }\n }\n if (cache.get('Type' + baseUrl) && \/movies\/.test(cache.get('Type' + baseUrl))) {\n if (result.includes('js-play8-playlist')) {\n var list = JSON.parse(java.getElements('.js-play8-playlist').attr('value'));\n author = String($2('.metadata-definition.0 dd')).replace(\/\\,\\s\/g, '\/').replace(\/\\,\/g, '\/').replace(\/undefined\/g, '');\n latest = list[list.length - 1].title;\n var Durls = java.getElements('.format-group');\n var durls1 = [];\n var durls2 = [];\n for (j in Durls) {\n let num = parseInt(j) + 1;\n durls1.push('[' + num + ']' + String(Durls[j].select('.format-summary').text()).replace(\/download\/g, '') + '〔' + String(Durls[j].select('.hover-badge-stealth').text()).replace(\/download\/g, '') + '〕');\n durls2.push(Durls[j].select('.format-summary').attr('href'));\n }\n var dintro = '📥下载链接:\\n' + durls1.join('\\n');\n if (book.readConfig && book.getVariable(\"custom\") > 0) {\n dt = book.getVariable(\"custom\");\n DURL = Get('url') + durls2[dt-1];\n java.startBrowser(DURL, '下载链接:' + durls1[dt-1]);\n book.setVariable(JSON.stringify('', null, '\\t'));\n }\n intro = dintro + '\\nㅤ\\n' + $2('.metadata-definition').replace(\/^by\/, '\\n◈ by :').replace(\/Publication\\sdate\/, '\\n◈ Publication date :').replace(\/Usage\/, '\\n◈ Usage :').replace(\/Topics\/, '\\n◈ Topics :').replace(\/Language\/, '\\n◈ Language :').replace(\/Addeddate\/, '\\n◈ Addeddate :').replace(\/Collection_added\/, '\\n◈ Collection_added :').replace(\/Color\/, '\\n◈ Color :').replace(\/Identifier\/, '\\n◈ Identifier :').replace(\/Reviews allowed\/, '\\n◈ Reviews allowed :').replace(\/Scanner\/, '\\n◈ Scanner :').replace(\/Sound\/, '\\n◈ Sound :').replace(\/Source\/, '\\n◈ Source :');\n cover = list[0].image ? Get('url') + list[0].image : cover;\n }\n if (result.includes('js-tv3-init')) {\n var $2 = element => String(java.getElements(element).text());\n var $3 = element => java.getElements(element);\n var list = JSON.parse(java.getElements('.js-tv3-init').attr('value'));\n latest = '';\n intro = $2('.col-sm-8.thats-left.item-details-metadata').replace(\/^tv\\s\/, '◈ ').replace(\/CEST\\s\/, 'CEST\\n◈ ').replace(\/Captioning\/, '\\n◈ Captioning').replace(\/TOPIC\\sFREQUENCY\/, '\\n◈ TOPIC FREQUENCY :').replace(\/Network\/, '\\n◈ Network :').replace(\/Duration\/, '\\n◈ Duration :').replace(\/Scanned\\sin\/, '\\n◈ Scanned in :').replace(\/Language\/, '\\n◈ Language :').replace(\/Source\/, '\\n◈ Source :').replace(\/Tuner\/, '\\n◈ Tuner :').replace(\/Video\\sCodec\/, '\\n◈ Video Codec :').replace(\/Audio\\sCocec\/, '\\n◈ Audio Cocec :').replace(\/Pixel\\swidth\/, '\\n◈ Pixel width :').replace(\/Pixel\\sheight\/, '\\n◈ Pixel height :').replace(\/Audio\\\/Visual\/, '\\n◈ Audio\/Visual :').replace(\/Notes\/, '\\n◈ Notes :').replace(\/◈\\s\\n◈\/, '\\n◈');\n }\n if (result.includes('js-carousel2')) {\n var Durls = java.getElements('.format-group');\n var durls1 = [];\n var durls2 = [];\n for (j in Durls) {\n let num = parseInt(j) + 1;\n durls1.push('[' + num + ']' + String(Durls[j].select('.format-summary').text()).replace(\/download\/g, '') + '〔' + String(Durls[j].select('.hover-badge-stealth').text()).replace(\/download\/g, '') + '〕');\n durls2.push(Durls[j].select('.format-summary').attr('href'));\n }\n var dintro = '📥下载链接:\\n' + durls1.join('\\n');\n if (book.readConfig && book.getVariable(\"custom\") > 0) {\n dt = book.getVariable(\"custom\");\n DURL = Get('url') + durls2[dt-1];\n java.startBrowser(DURL, '下载链接:' + durls1[dt-1]);\n book.setVariable(JSON.stringify('', null, '\\t'));\n }\n intro = dintro + '\\nㅤ\\n' + $2('.metadata-definition').replace(\/^by\/, '\\n◈ by :').replace(\/Topics\/, '\\n◈ Topics :').replace(\/Addeddate\/, '\\n◈ Addeddate :').replace(\/Identifier\/, '\\n◈ Identifier :').replace(\/Reviews allowed\/, '\\n◈ Reviews allowed :').replace(\/Scanner\/, '\\n◈ Scanner :');\n }\n }\n if (cache.get('Type' + baseUrl) && \/audio|etree\/.test(cache.get('Type' + baseUrl))) {\n if (result.includes('js-ia-metadata')) {\n var LIST = JSON.parse(java.getElements('.js-ia-metadata').attr('value'));\n var IMGLIST = JSON.parse(java.getElements('.js-iaux-loose-images').attr('value'));\n var list = LIST.files;\n var klist = Object.keys(LIST.metadata);\n var vlist = Object.values(LIST.metadata);\n author = String($2('.metadata-definition.0 dd')).replace(\/\\,\\s\/g, '\/').replace(\/\\,\/g, '\/').replace(\/undefined\/g, '');\n latest = list[list.length - 1].title;\n var Durls = java.getElements('.format-group');\n var durls1 = [];\n var durls2 = [];\n for (j in Durls) {\n let num = parseInt(j) + 1;\n durls1.push('[' + num + ']' + String(Durls[j].select('.format-summary').text()).replace(\/download\/g, '') + '〔' + String(Durls[j].select('.hover-badge-stealth').text()).replace(\/download\/g, '') + '〕');\n durls2.push(Durls[j].select('.format-summary').attr('href'));\n }\n var dintro = '📥下载链接:\\n' + durls1.join('\\n');\n if (book.readConfig && book.getVariable(\"custom\") > 0) {\n dt = book.getVariable(\"custom\");\n DURL = Get('url') + durls2[dt-1];\n java.startBrowser(DURL, '下载链接:' + durls1[dt-1]);\n book.setVariable(JSON.stringify('', null, '\\t'));\n }\n var intros = [];\n for (j in klist) {\n intros.push('◈ ' + klist[j] + ' : ' + vlist[j]);\n }\n intro = dintro + '\\nㅤ\\n' + intros.join('\\n').replace(\/\\,\/g, ', ').replace(\/\\[\\\/.*?\\]\/g, ' ').replace(\/\\[.*?\\]\/g, '');\n cover = IMGLIST.image_url ? IMGLIST.image_url : cover;\n }\n }\n if (cache.get('Type' + baseUrl) && \/image\/.test(cache.get('Type' + baseUrl))) {\n var Durls = java.getElements('.format-group');\n var durls1 = [];\n var durls2 = [];\n for (j in Durls) {\n let num = parseInt(j) + 1;\n durls1.push('[' + num + ']' + String(Durls[j].select('.format-summary').text()).replace(\/download\/g, '') + '〔' + String(Durls[j].select('.hover-badge-stealth').text()).replace(\/download\/g, '') + '〕');\n durls2.push(Durls[j].select('.format-summary').attr('href'));\n }\n var dintro = '📥下载链接:\\n' + durls1.join('\\n');\n if (book.readConfig && book.getVariable(\"custom\") > 0) {\n dt = book.getVariable(\"custom\");\n DURL = Get('url') + durls2[dt-1];\n java.startBrowser(DURL, '下载链接:' + durls1[dt-1]);\n book.setVariable(JSON.stringify('', null, '\\t'));\n }\n intro = dintro + '\\nㅤ\\n' + $2('.metadata-definition').replace(\/^by\/, '\\n◈ by :').replace(\/Topics\/, '\\n◈ Topics :').replace(\/Addeddate\/, '\\n◈ Addeddate :').replace(\/Identifier\/, '\\n◈ Identifier :').replace(\/Reviews allowed\/, '\\n◈ Reviews allowed :').replace(\/Scanner\/, '\\n◈ Scanner :');\n }\n if(String(Account).length > 0) {\n let scurl = Get('url') + '\/bookmarks.php?add_bookmark=1&mediatype=' + cache.get('Type' + baseUrl) + '&identifier=' + cache.get('Identifier' + baseUrl) + '&title=' + java.encodeURI(String(cache.get('Name' + baseUrl)).replace(\/\\s\/g, '+'));\n let qxurl = Get('url') + '\/details\/' + cache.get(Get('url') + \"Fav_1\") + '?remove_item=' + cache.get('Identifier' + baseUrl) + '&kind=favorite';\n let dataId = cache.get('Identifier' + baseUrl)\n var SC = cache.get(book.originName + Account + dataId) ? cache.get(book.originName + Account + dataId) : '';\n if (book.readConfig && book.group > 0 && !SC.includes('y') && !cache.get('Type' + baseUrl).includes('collection')) {\n java.ajax(scurl);\n cache.put(book.originName + Account + dataId,'y');\n login(Put(JSON.stringify('【收藏提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n❤️已添加收藏❤️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n if (book.readConfig && book.group < 1 && SC.includes('y') && !cache.get('Type' + baseUrl).includes('collection')) {\n java.ajax(qxurl);\n cache.put(book.originName + Account + dataId,'n');\n login(Put(JSON.stringify('【收藏提示】\\n\\n┏┅━┅━┅━┅━┅┅━┅━┅━┅━┅┓\\n┋┋\\n' + name + '\\n┋┋' + '\\n♣️已取消收藏♣️\\n┋┋' + '\\n┗┅━┅━┅━┅━┅┅━┅━┅━┅━┅┛')));\n }\n }\n book = JSON.stringify({\n 'name': name,\n 'author': author,\n 'kind': kind,\n 'word': '',\n 'latest': latest,\n 'intro': changeLog + intro,\n 'cover': cover,\n 'url': url,\n 'durl': '',\n 'reName': true\n });\n} else {\n (function Book() {\n apiBaseUrl = cache.get(`cache_api_${Get('url')}`);\n json = java.ajax(apiBaseUrl);\n Title = JSON.parse(json)['title'];\n Intro = JSON.parse(json)['intro'];\n return { Title: Title, Intro: Intro };\n }());\n book = JSON.stringify({\n 'kind': book['kind'],\n 'latest': Title[Title.length - 1],\n 'intro': Intro[0]\n });\n}\nPut(book);\n<\/js>", "intro": "intro", "kind": "kind", "lastChapter": "latest", "name": "name", "tocUrl": "url", "wordCount": "word" }, "ruleContent": { "content": "<js>\nif (String(book['author']) !== \"xiaohan231\") {\n if (cache.get('Type' + book.bookUrl) && \/collection\/.test(cache.get('Type' + book.bookUrl))) {\n result ='<img src=\"' + Imgurl(String(book.coverUrl).replace(\/\\,\\{.*\/, '')) + '\">';\n }\n if (cache.get('Type' + book.bookUrl) && cache.get('Type' + book.bookUrl).includes('texts')) {\n if (!result.includes('js-iaux-pdfs') && java.get('FDF' + baseUrl) == 'n') {\n if (String(chapter).includes('isVip=true')) {\n java.startBrowser(baseUrl, book.durChapterTitle);\n }\n var readurl = decodeURIComponent('https:' + JSON.parse(java.getElements('.js-bookreader').attr('value')).url);\n var read = java.ajax(readurl);\n var list = JSON.parse(read).data.brOptions.data;\n var allURIs = [];\n list.forEach(pageGroup => {\n pageGroup.forEach(page => {\n allURIs.push(page.uri);\n });\n });\n var result = '';\n for(i in allURIs){\n result +='<img src=\"' + Imgurl(allURIs[i]) + '\">\\n';\n }\n } else {\n var start = cache.get(book.name + baseUrl);\n if (start == 'y') {\n cache.put(book.name + baseUrl, 'n');\n java.startBrowser(baseUrl, book.durChapterTitle);\n } else {\n cache.put(book.name + baseUrl, 'y');\n java.toast('【PDF下载提示】\\nㅤ\\n❤️网页下载PDF❤️');\n }\n result ='<img src=\"' + Imgurl(String(book.coverUrl).replace(\/\\,\\{.*\/, '')) + '\">\\n';\n }\n }\n if (cache.get('Type' + book.bookUrl) && \/movies\/.test(cache.get('Type' + book.bookUrl))) {\n if (source.bookSourceType !== 1) {\n if (baseUrl.includes('movies') || baseUrl.includes('TV3')) {\n var start = Get('q') == 0 ? cache.get(book.name + baseUrl) : 'y';\n if (java.get('Video' + baseUrl) && start == 'y') {\n cache.put(book.name + baseUrl, 'n');\n java.startBrowser(java.get('Video' + baseUrl), book.durChapterTitle);\n } else {\n cache.put(book.name + baseUrl, 'y');\n java.toast('【播放提示】\\nㅤ\\n❤️刷新开始播放❤️');\n }\n result ='<img src=\"' + java.get('Image' + baseUrl) + '\">\\n' + (java.get('Intro' + baseUrl) ? java.get('Intro' + baseUrl) : '');\n } else {\n java.toast('【播放提示】\\nㅤ\\n♣️视频没有播放链接♣️');\n result ='<img src=\"' + Imgurl(String(book.coverUrl).replace(\/\\,\\{.*\/, '')) + '\">\\n';\n }\n } else {\n result;\n }\n }\n if (cache.get('Type' + book.bookUrl) && \/audio|etree\/.test(cache.get('Type' + book.bookUrl))) {\n if (source.bookSourceType !== 1) {\n var start = Get('q') == 0 ? cache.get(book.name + baseUrl) : 'y';\n if (java.get('Audio' + baseUrl) && start == 'y') {\n cache.put(book.name + baseUrl, 'n');\n java.startBrowser(java.get('Audio' + baseUrl), book.durChapterTitle);\n } else {\n cache.put(book.name + baseUrl, 'y');\n java.toast('【播放提示】\\nㅤ\\n❤️刷新开始播放❤️');\n }\n result ='<img src=\"' + Imgurl(String(book.coverUrl).replace(\/\\,\\{.*\/, '')) + '\">';\n } else {\n result;\n }\n }\n if (cache.get('Type' + book.bookUrl) && \/image\/.test(cache.get('Type' + book.bookUrl))) {\n var list = java.getElements('.carousel-image-wrapper');\n var result = '';\n for(i in list){\n result +='<img src=\"' + Imgurl(Get('url') + list[i].attr('href')) + '\">\\n';\n }\n }\n} else {\n '<br><img src=\"https:\/\/qyyuapi.com\/img\/' + String(title).replace(\/〔.*$\/, \"\") + '.jpg\">';\n}\n<\/js>", "imageDecode": "", "imageStyle": "FULL", "nextContentUrl": "", "payAction": "baseUrl", "sourceRegex": ".*\\.(mp3|mp4).*", "webJs": "" }, "ruleExplore": { "author": "author", "bookList": "<js>\nvar _0x2844=['\\x59\\x57\\x56\\x7a\\x51\\x6d\\x46\\x7a\\x5a\\x54\\x59\\x30\\x52\\x47\\x56\\x6a\\x62\\x32\\x52\\x6c\\x56\\x47\\x39\\x54\\x64\\x48\\x4a\\x70\\x62\\x6d\\x63\\x3d','\\x64\\x6d\\x46\\x79\\x61\\x57\\x46\\x69\\x62\\x47\\x56\\x44\\x62\\x32\\x31\\x74\\x5a\\x57\\x35\\x30','\\x49\\x79\\x4d\\x6a\\x49\\x33\\x68\\x70\\x59\\x57\\x38\\x74\\x61\\x47\\x46\\x75\\x4a\\x69\\x59\\x6d\\x4a\\x67\\x3d\\x3d','\\x51\\x55\\x56\\x54\\x4c\\x30\\x56\\x44\\x51\\x69\\x39\\x51\\x53\\x30\\x4e\\x54\\x4e\\x31\\x42\\x68\\x5a\\x47\\x52\\x70\\x62\\x6d\\x63\\x3d'];var _0x271a=function(_0x28447c,_0x271a07){_0x28447c=_0x28447c-0x0;var _0x3fa6e2=_0x2844[_0x28447c];if(_0x271a['JnZkTY']===undefined){(function(){var _0x256bf8=function(){var _0x41a19b;try{_0x41a19b=Function('return\\x20(function()\\x20'+'{}.constructor(\\x22return\\x20this\\x22)(\\x20)'+');')();}catch(_0x1834f8){_0x41a19b=window;}return _0x41a19b;};var _0x449a97=_0x256bf8();var _0x5cf63b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=';_0x449a97['atob']||(_0x449a97['atob']=function(_0x5e93b7){var _0x12aa6c=String(_0x5e93b7)['replace'](\/=+$\/,'');var _0x53c98d='';for(var _0x5c8e3c=0x0,_0x385c1e,_0x472ac7,_0x5cd6b6=0x0;_0x472ac7=_0x12aa6c['charAt'](_0x5cd6b6++);~_0x472ac7&&(_0x385c1e=_0x5c8e3c%0x4?_0x385c1e*0x40+_0x472ac7:_0x472ac7,_0x5c8e3c++%0x4)?_0x53c98d+=String['fromCharCode'](0xff&_0x385c1e>>(-0x2*_0x5c8e3c&0x6)):0x0){_0x472ac7=_0x5cf63b['indexOf'](_0x472ac7);}return _0x53c98d;});}());_0x271a['EMYZMi']=function(_0x5efd9a){var _0x466d2a=atob(_0x5efd9a);var _0xeaf427=[];for(var _0x54cfbf=0x0,_0x54f1be=_0x466d2a['length'];_0x54cfbf<_0x54f1be;_0x54cfbf++){_0xeaf427+='%'+('00'+_0x466d2a['charCodeAt'](_0x54cfbf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xeaf427);};_0x271a['UUPFFl']={};_0x271a['JnZkTY']=!![];}var _0x55573a=_0x271a['UUPFFl'][_0x28447c];if(_0x55573a===undefined){_0x3fa6e2=_0x271a['EMYZMi'](_0x3fa6e2);_0x271a['UUPFFl'][_0x28447c]=_0x3fa6e2;}else{_0x3fa6e2=_0x55573a;}return _0x3fa6e2;};eval(String(java[_0x271a('\\x30\\x78\\x30')](source[_0x271a('\\x30\\x78\\x31')],_0x271a('\\x30\\x78\\x32'),_0x271a('\\x30\\x78\\x33'),'')));\nvar User = '';\nvar Title = '';\nvar Link = '';\nvar Intro = '';\nuser_Check();\nvar data = [];\nvar Headers = JSON.parse(cache.get(Get('url') + \"headers\").replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (User == true) {\n var list = JSON.parse(result).response.body ? (JSON.parse(result).response.body.hits ? JSON.parse(result).response.body.hits.hits : JSON.parse(result).response.body.page_elements.collections.hits.hits) : [];\n for (i in list) {\n name = list[i].fields.title;\n var collections = [];\n var collectionElements = list[i].fields.collection;\n for (var j in collectionElements) {\n collections.push(String(collectionElements[j]));\n }\n collection = collections.join(',');\n if (list[i].fields.mediatype.includes('collection')) {\n author = '【默认合集】';\n if (collection.includes('texts')) {\n author = '【书籍合集】';\n } else if (collection.includes('movies')) {\n author = '【视频合集】';\n } else if (collection.includes('audio') || collection.includes('etree')) {\n author = '【音频合集】';\n } else if (collection.includes('image')) {\n author = '【图像合集】';\n } else {\n author = '【我的合集】';\n }\n kind = shortenNumber(list[i].fields.item_count || 0) + ' items' + ',' + formatBytes(list[i].fields.collection_size || 0) + ',collection' + ',' + collection;\n latest = '';\n } else {\n author = String(list[i].fields.creator).replace(\/\\,\\s\/g, '\/').replace(\/\\,\/g, '\/').replace(\/undefined\/g, '');\n kind = String('✦ ' + shortenNumber(list[i].fields.downloads || 0) + ',' + '♥ ' + shortenNumber(list[i].fields.num_favorites || 0) + ',' + String(list[i].fields.mediatype).replace(\/etree\/, 'music') + ',' + list[i].fields.language + ',' + list[i].fields.year).replace(\/undefined\/g, '').replace(\/✦\\s\\,\/, '✦ 0,').replace(\/♥\\s\\,\/, '♥ 0,');\n latest = 'Addeddate: ' + String(list[i].fields.addeddate).replace(\/T\/, ' ').replace(\/Z\/, '');\n }\n intro = String(list[i].fields.description).replace(\/undefined\/g, '');\n cover = decodeURIComponent(Get('url') + '\/services\/img\/' + list[i].fields.identifier);\n url = decodeURIComponent(Get('url') + '\/details\/' + list[i].fields.identifier);\n cache.put('Type' + url, list[i].fields.mediatype);\n cache.put('Identifier' + url, list[i].fields.identifier);\n cache.put('Name' + url, name);\n cache.put('Author' + url, author);\n cache.put('Kind' + url, kind);\n cache.put('Cover' + url, cover);\n cache.put('Intro' + url, intro);\n data.push({\n 'name': name,\n 'author': author,\n 'kind': kind,\n 'word': '',\n 'latest': latest,\n 'intro': intro,\n 'cover': cover,\n 'url': url\n });\n }\n var next = java.ajax(baseUrl.replace(\/&page=(\\d+)\/, function(match, p1) {return '&page=' + (parseInt(p1) + 1);}) + ',' + JSON.stringify(Option));\n var nextlist = JSON.parse(next).response.body ? (JSON.parse(next).response.body.hits ? JSON.parse(next).response.body.hits.hits : JSON.parse(next).response.body.page_elements.collections.hits.hits) : [];\n if (!list[0] || !nextlist[0]) {\n Data();\n }\n data = JSON.stringify(data);\n} else {\n data = Data();\n}\nPut(data);\n<\/js>", "bookUrl": "url", "coverUrl": "cover", "intro": "intro", "kind": "kind", "lastChapter": "latest", "name": "name", "wordCount": "word" }, "ruleReview": {}, "ruleSearch": { "author": "author", "bookList": "<js>\nvar _0x2844=['\\x59\\x57\\x56\\x7a\\x51\\x6d\\x46\\x7a\\x5a\\x54\\x59\\x30\\x52\\x47\\x56\\x6a\\x62\\x32\\x52\\x6c\\x56\\x47\\x39\\x54\\x64\\x48\\x4a\\x70\\x62\\x6d\\x63\\x3d','\\x64\\x6d\\x46\\x79\\x61\\x57\\x46\\x69\\x62\\x47\\x56\\x44\\x62\\x32\\x31\\x74\\x5a\\x57\\x35\\x30','\\x49\\x79\\x4d\\x6a\\x49\\x33\\x68\\x70\\x59\\x57\\x38\\x74\\x61\\x47\\x46\\x75\\x4a\\x69\\x59\\x6d\\x4a\\x67\\x3d\\x3d','\\x51\\x55\\x56\\x54\\x4c\\x30\\x56\\x44\\x51\\x69\\x39\\x51\\x53\\x30\\x4e\\x54\\x4e\\x31\\x42\\x68\\x5a\\x47\\x52\\x70\\x62\\x6d\\x63\\x3d'];var _0x271a=function(_0x28447c,_0x271a07){_0x28447c=_0x28447c-0x0;var _0x3fa6e2=_0x2844[_0x28447c];if(_0x271a['JnZkTY']===undefined){(function(){var _0x256bf8=function(){var _0x41a19b;try{_0x41a19b=Function('return\\x20(function()\\x20'+'{}.constructor(\\x22return\\x20this\\x22)(\\x20)'+');')();}catch(_0x1834f8){_0x41a19b=window;}return _0x41a19b;};var _0x449a97=_0x256bf8();var _0x5cf63b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=';_0x449a97['atob']||(_0x449a97['atob']=function(_0x5e93b7){var _0x12aa6c=String(_0x5e93b7)['replace'](\/=+$\/,'');var _0x53c98d='';for(var _0x5c8e3c=0x0,_0x385c1e,_0x472ac7,_0x5cd6b6=0x0;_0x472ac7=_0x12aa6c['charAt'](_0x5cd6b6++);~_0x472ac7&&(_0x385c1e=_0x5c8e3c%0x4?_0x385c1e*0x40+_0x472ac7:_0x472ac7,_0x5c8e3c++%0x4)?_0x53c98d+=String['fromCharCode'](0xff&_0x385c1e>>(-0x2*_0x5c8e3c&0x6)):0x0){_0x472ac7=_0x5cf63b['indexOf'](_0x472ac7);}return _0x53c98d;});}());_0x271a['EMYZMi']=function(_0x5efd9a){var _0x466d2a=atob(_0x5efd9a);var _0xeaf427=[];for(var _0x54cfbf=0x0,_0x54f1be=_0x466d2a['length'];_0x54cfbf<_0x54f1be;_0x54cfbf++){_0xeaf427+='%'+('00'+_0x466d2a['charCodeAt'](_0x54cfbf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xeaf427);};_0x271a['UUPFFl']={};_0x271a['JnZkTY']=!![];}var _0x55573a=_0x271a['UUPFFl'][_0x28447c];if(_0x55573a===undefined){_0x3fa6e2=_0x271a['EMYZMi'](_0x3fa6e2);_0x271a['UUPFFl'][_0x28447c]=_0x3fa6e2;}else{_0x3fa6e2=_0x55573a;}return _0x3fa6e2;};eval(String(java[_0x271a('\\x30\\x78\\x30')](source[_0x271a('\\x30\\x78\\x31')],_0x271a('\\x30\\x78\\x32'),_0x271a('\\x30\\x78\\x33'),'')));\nvar User = '';\nvar Title = '';\nvar Link = '';\nvar Intro = '';\nuser_Check();\nvar data = [];\nvar Headers = JSON.parse(cache.get(Get('url') + \"headers\").replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (User == true) {\n var list = JSON.parse(result).response.body.hits.hits;\n for (i in list) {\n name = list[i].fields.title;\n var collections = [];\n var collectionElements = list[i].fields.collection;\n for (var j in collectionElements) {\n collections.push(String(collectionElements[j]));\n }\n collection = collections.join(',');\n if (list[i].fields.mediatype.includes('collection')) {\n author = '【默认合集】';\n if (collection.includes('texts')) {\n author = '【书籍合集】';\n }\n if (collection.includes('movies')) {\n author = '【视频合集】';\n }\n if (collection.includes('audio') || collection.includes('etree')) {\n author = '【音频合集】';\n }\n if (collection.includes('image')) {\n author = '【图像合集】';\n }\n kind = shortenNumber(list[i].fields.item_count) + ' items' + ',' + formatBytes(list[i].fields.collection_size) + ',collection' + ',' + collection;\n latest = '';\n } else {\n author = String(list[i].fields.creator).replace(\/\\,\\s\/g, '\/').replace(\/\\,\/g, '\/').replace(\/undefined\/g, '');\n kind = String('✦ ' + shortenNumber(list[i].fields.downloads || 0) + ',' + '♥ ' + shortenNumber(list[i].fields.num_favorites || 0) + ',' + String(list[i].fields.mediatype).replace(\/etree\/, 'music') + ',' + list[i].fields.language + ',' + list[i].fields.year).replace(\/undefined\/g, '').replace(\/✦\\s\\,\/, '✦ 0,').replace(\/♥\\s\\,\/, '♥ 0,');\n latest = 'Addeddate: ' + String(list[i].fields.addeddate).replace(\/T\/, ' ').replace(\/Z\/, '');\n }\n intro = String(list[i].fields.description).replace(\/undefined\/g, '');\n cover = decodeURIComponent(Get('url') + '\/services\/img\/' + list[i].fields.identifier);\n url = decodeURIComponent(Get('url') + '\/details\/' + list[i].fields.identifier);\n cache.put('Type' + url, list[i].fields.mediatype);\n cache.put('Identifier' + url, list[i].fields.identifier);\n cache.put('Name' + url, name);\n cache.put('Author' + url, author);\n cache.put('Kind' + url, kind);\n cache.put('Cover' + url, cover);\n cache.put('Intro' + url, intro);\n if (!(\/data|web|account|software|other\/.test(collection)) && !(\/data|web|account|software|other\/.test(list[i].fields.mediatype))) {\n data.push({\n 'name': name,\n 'author': author,\n 'kind': kind,\n 'word': '',\n 'latest': latest,\n 'intro': intro,\n 'cover': cover,\n 'url': url\n });\n }\n }\n var next = java.ajax(baseUrl.replace(\/&page=(\\d+)\/, function(match, p1) {return '&page=' + (parseInt(p1) + 1);}) + ',' + JSON.stringify(Option));\n var nextlist = JSON.parse(next).response.body.hits ? JSON.parse(next).response.body.hits.hits : JSON.parse(next).response.body.page_elements.collections.hits.hits;\n var searchkey = java.get(Get('url') + \"searchkey\");\n if (!list[0] || !nextlist[0] || \/书源|使用|说明|書源|說明\/.test(searchkey)) {\n Data();\n }\n data = JSON.stringify(data);\n} else {\n data = Data();\n}\nPut(data);\n<\/js>", "bookUrl": "url", "checkKeyWord": "我的", "coverUrl": "cover", "intro": "intro", "kind": "kind", "lastChapter": "latest", "name": "name", "wordCount": "word" }, "ruleToc": { "chapterList": "<js>\nvar _0x2844=['\\x59\\x57\\x56\\x7a\\x51\\x6d\\x46\\x7a\\x5a\\x54\\x59\\x30\\x52\\x47\\x56\\x6a\\x62\\x32\\x52\\x6c\\x56\\x47\\x39\\x54\\x64\\x48\\x4a\\x70\\x62\\x6d\\x63\\x3d','\\x64\\x6d\\x46\\x79\\x61\\x57\\x46\\x69\\x62\\x47\\x56\\x44\\x62\\x32\\x31\\x74\\x5a\\x57\\x35\\x30','\\x49\\x79\\x4d\\x6a\\x49\\x33\\x68\\x70\\x59\\x57\\x38\\x74\\x61\\x47\\x46\\x75\\x4a\\x69\\x59\\x6d\\x4a\\x67\\x3d\\x3d','\\x51\\x55\\x56\\x54\\x4c\\x30\\x56\\x44\\x51\\x69\\x39\\x51\\x53\\x30\\x4e\\x54\\x4e\\x31\\x42\\x68\\x5a\\x47\\x52\\x70\\x62\\x6d\\x63\\x3d'];var _0x271a=function(_0x28447c,_0x271a07){_0x28447c=_0x28447c-0x0;var _0x3fa6e2=_0x2844[_0x28447c];if(_0x271a['JnZkTY']===undefined){(function(){var _0x256bf8=function(){var _0x41a19b;try{_0x41a19b=Function('return\\x20(function()\\x20'+'{}.constructor(\\x22return\\x20this\\x22)(\\x20)'+');')();}catch(_0x1834f8){_0x41a19b=window;}return _0x41a19b;};var _0x449a97=_0x256bf8();var _0x5cf63b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=';_0x449a97['atob']||(_0x449a97['atob']=function(_0x5e93b7){var _0x12aa6c=String(_0x5e93b7)['replace'](\/=+$\/,'');var _0x53c98d='';for(var _0x5c8e3c=0x0,_0x385c1e,_0x472ac7,_0x5cd6b6=0x0;_0x472ac7=_0x12aa6c['charAt'](_0x5cd6b6++);~_0x472ac7&&(_0x385c1e=_0x5c8e3c%0x4?_0x385c1e*0x40+_0x472ac7:_0x472ac7,_0x5c8e3c++%0x4)?_0x53c98d+=String['fromCharCode'](0xff&_0x385c1e>>(-0x2*_0x5c8e3c&0x6)):0x0){_0x472ac7=_0x5cf63b['indexOf'](_0x472ac7);}return _0x53c98d;});}());_0x271a['EMYZMi']=function(_0x5efd9a){var _0x466d2a=atob(_0x5efd9a);var _0xeaf427=[];for(var _0x54cfbf=0x0,_0x54f1be=_0x466d2a['length'];_0x54cfbf<_0x54f1be;_0x54cfbf++){_0xeaf427+='%'+('00'+_0x466d2a['charCodeAt'](_0x54cfbf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xeaf427);};_0x271a['UUPFFl']={};_0x271a['JnZkTY']=!![];}var _0x55573a=_0x271a['UUPFFl'][_0x28447c];if(_0x55573a===undefined){_0x3fa6e2=_0x271a['EMYZMi'](_0x3fa6e2);_0x271a['UUPFFl'][_0x28447c]=_0x3fa6e2;}else{_0x3fa6e2=_0x55573a;}return _0x3fa6e2;};eval(String(java[_0x271a('\\x30\\x78\\x30')](source[_0x271a('\\x30\\x78\\x31')],_0x271a('\\x30\\x78\\x32'),_0x271a('\\x30\\x78\\x33'),'')));\nvar User = '';\nvar Title = '';\nvar Link = '';\nvar Intro = '';\nuser_Check();\nvar data = [];\nvar Headers = JSON.parse(cache.get(Get('url') + \"headers\").replace(Get('url'), baseUrl));\nvar Option = {\n \"method\": \"GET\",\n \"headers\": Headers\n};\nif (String(book['author']) !== \"xiaohan231\") {\n if (cache.get('Type' + baseUrl) && cache.get('Type' + baseUrl).includes('collection')) {\n Title = ['取消分组后刷新,从发现中移除合集','设置分组后刷新,可添加合集到发现'];\n Link = ['https:\/\/www.baidu.com\/collection\/1','https:\/\/www.baidu.com\/collection\/2'];\n for (i in Title) {\n data.push({\n 'title': Title[i],\n 'link': Link[i],\n 'vol': '',\n 'vip': false,\n });\n }\n }\n if (cache.get('Type' + baseUrl) && cache.get('Type' + baseUrl).includes('texts')) {\n if (result.includes('js-bookreader')) {\n var list = Object.values(JSON.parse(java.getElements('.js-bookreader').attr('value')).multipleBooksList.by_subprefix);\n for (i in list) {\n link = decodeURIComponent(Get('url') + list[i].url_path) + '?view=theater,' + JSON.stringify(Option);\n title = list[i].title;\n vol = list[i].file_format.includes('PDF') ? shortenNumber(list[i].raw.size) : '';\n vip = list[i].raw.private;\n PDF = list[i].file_format.includes('PDF') ? 'y' : 'n';\n java.put('FDF' + link, PDF);\n order = title.match(\/(\\d+)\/);\n title = Get('settle') == true ? String(title).replace(\/\\s共.*?图\/, '').replace(\/(-|_|\\s-\\s)\/g, ' ').replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, title.match(\/\\d+\/) ? order[1].padStart(3, '0') : '$1') : title;\n data.push({\n 'title': title,\n 'link': link,\n 'vol': vol,\n 'vip': vip\n });\n }\n }\n if (result.includes('js-iaux-pdfs')) {\n var list = JSON.parse(java.getElements('.js-iaux-pdfs').attr('value'));\n for (i in list) {\n link = decodeURIComponent(Get('url') + list[i].url_path) + '?view=theater,' + JSON.stringify(Option);\n title = list[i].title;\n vol = shortenNumber(list[i].raw.size);\n vip = list[i].raw.private;\n order = title.match(\/(\\d+)\/);\n title = Get('settle') == true ? String(title).replace(\/\\s共.*?图\/, '').replace(\/(-|_|\\s-\\s)\/g, ' ').replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, title.match(\/\\d+\/) ? order[1].padStart(3, '0') : '$1') : title;\n data.push({\n 'title': title,\n 'link': link,\n 'vol': vol,\n 'vip': vip\n });\n }\n }\n }\n if (cache.get('Type' + baseUrl) && \/movies\/.test(cache.get('Type' + baseUrl))) {\n if (result.includes('js-play8-playlist')) {\n var list = JSON.parse(java.getElements('.js-play8-playlist').attr('value'));\n for (i in list) {\n title = list[i].title;\n link = 'https:\/\/www.baidu.com\/movies\/' + i;\n image = list[i].image ? (Get('url') + list[i].image) : book.coverUrl;\n video = decodeURIComponent(Get('url') + list[i].sources[0].file);\n java.put('Image' + link, image);\n java.put('Video' + link, video);\n if (source.bookSourceType == 1) {\n link = `${video},{\"webView\":true}`;\n }\n vol = list[i].sources[0].type + ' ' + list[i].sources[0].height + 'x' + list[i].sources[0].width + ' ' + list[i].sources[0].label;\n order = title.match(\/(\\d+)\/);\n title = Get('settle') == true ? String(title).replace(\/\\s共.*?图\/, '').replace(\/(-|_|\\s-\\s)\/g, ' ').replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, title.match(\/\\d+\/) ? order[1].padStart(3, '0') : '$1') : title;\n data.push({\n 'title': title,\n 'link': link,\n 'vol': vol,\n 'vip': false\n });\n }\n } else if (result.includes('js-tv3-init')) {\n var $2 = element => String(java.getElements(element).text());\n var $3 = element => java.getElements(element);\n var list = JSON.parse(java.getElements('.js-tv3-init').attr('value'))[\"TV3.clipstream_clips\"];\n for (i in list) {\n title = '【' + $3('.sniptitle')[i].text() + '】';\n link = 'https:\/\/www.baidu.com\/TV3\/' + i;\n image = decodeURIComponent($3('.js-tv2-col_clicked img')[i].attr('src'));\n intro = $3('.snippet')[i].text();\n video = decodeURIComponent(list[i]);\n java.put('Image' + link, image);\n java.put('Intro' + link, intro);\n java.put('Video' + link, video);\n if (source.bookSourceType == 1) {\n link = `${video},{\"webView\":true}`;\n }\n vol = '';\n data.push({\n 'title': title,\n 'link': link,\n 'vol': vol,\n 'vip': false\n });\n }\n } else if (result.includes('js-carousel2')) {\n var $2 = element => String(java.getElements(element).text());\n link = 'https:\/\/www.baidu.com\/n\/';\n data.push({\n 'title': $2('.breaker-breaker.0'),\n 'link': link,\n 'vol': '',\n 'vip': false\n });\n } else {\n var $2 = element => String(java.getElements(element).text());\n link = decodeURIComponent($2('.breaker-breaker a.0'));\n link = `${link},{\"webView\":true}`;\n data.push({\n 'title': $2('.breaker-breaker.0'),\n 'link': link,\n 'vol': '',\n 'vip': false\n });\n }\n }\n if (cache.get('Type' + baseUrl) && \/audio|etree\/.test(cache.get('Type' + baseUrl))) {\n if (result.includes('js-ia-metadata')) {\n O_1 = ['VBR','64','128'];\n var LIST = JSON.parse(java.getElements('.js-ia-metadata').attr('value'));\n var list = JSON.parse(java.getElements('.js-ia-metadata').attr('value')).files;\n for (j in list) {\n if (list[j].format.includes(O_1[Get('o')])) {\n bt = true;\n break;\n }\n bt = false;\n }\n for (i in list) {\n BT = bt ? list[i].format.includes(O_1[Get('o')]) : list[i].format.includes('VBR');\n if (list[i].length && BT) {\n title = list[i].title ? list[i].title : list[i].name;\n D = LIST.d1;\n Dir = LIST.dir;\n Name = decodeURIComponent(list[i].name);\n link = 'https:\/\/www.baidu.com\/audio\/' + i;\n audio = `https:\/\/${D}${Dir}\/${Name}`;\n java.put('Audio' + link, audio);\n if (source.bookSourceType == 1) {\n link = `https:\/\/${D}${Dir}\/${Name},{\"webView\":true}`;\n }\n vol = list[i].format + ' ' + list[i].length;\n order = title.match(\/(\\d+)\/);\n title = Get('settle') == true ? String(title).replace(\/\\s共.*?图\/, '').replace(\/(-|_|\\s-\\s)\/g, ' ').replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, title.match(\/\\d+\/) ? order[1].padStart(3, '0') : '$1') : title;\n data.push({\n 'title': title,\n 'link': link,\n 'vol': vol,\n 'vip': false\n });\n }\n }\n } else {\n var $2 = element => String(java.getElements(element).text());\n var $3 = element => String(java.getElements(element).attr('href'));\n link = decodeURIComponent($3('.breaker-breaker a.0'));\n link = `${link},{\"webView\":true}`;\n data.push({\n 'title': $2('.breaker-breaker.0'),\n 'link': link,\n 'vol': '',\n 'vip': false\n });\n }\n }\n if (cache.get('Type' + baseUrl) && \/image\/.test(cache.get('Type' + baseUrl))) {\n if (result.includes('js-play8-playlist')) {\n cache.put('Type' + baseUrl, 'movies');\n var list = JSON.parse(java.getElements('.js-play8-playlist').attr('value'));\n for (i in list) {\n title = list[i].title;\n link = 'https:\/\/www.baidu.com\/movies\/' + i;\n image = list[i].image ? decodeURIComponent(Get('url') + list[i].image) : book.coverUrl;\n video = decodeURIComponent(Get('url') + list[i].sources[0].file);\n java.put('Image' + link, image);\n java.put('Video' + link, video);\n if (source.bookSourceType == 1) {\n link = `${video},{\"webView\":true}`;\n }\n vol = list[i].sources[0].type + ' ' + list[i].sources[0].height + 'x' + list[i].sources[0].width + ' ' + list[i].sources[0].label;\n order = title.match(\/(\\d+)\/);\n title = Get('settle') == true ? String(title).replace(\/\\s共.*?图\/, '').replace(\/(-|_|\\s-\\s)\/g, ' ').replace(\/\\s-\\s|-\/g, ' ').replace(\/\\s+\/, ' ').replace(\/.*第(\\d+)[话話章回期](|\\s)第.*?[话話章回期]\/, '$1').replace(\/.*第(\\d+)[话話章回期][^\\s]\/, '$1 ').replace(\/.*第(\\d+)[话話章回期]\\s\\d+\/, '$1').replace(\/.*第.*(\\d+).*?[话話章回期]\/, '$1').replace(\/(\\d+)\/, title.match(\/\\d+\/) ? order[1].padStart(3, '0') : '$1') : title;\n data.push({\n 'title': title,\n 'link': link,\n 'vol': vol,\n 'vip': false\n });\n }\n } else {\n var $2 = element => String(java.getElements(element).text());\n data.push({\n 'title': $2('.breaker-breaker.0'),\n 'link': baseUrl,\n 'vol': '',\n 'vip': false\n });\n }\n }\n data = JSON.stringify(data);\n} else {\n data = Data1();\n}\nPut(data);\n<\/js>", "chapterName": "title", "chapterUrl": "link", "isVip": "vip", "preUpdateJs": "java.refreshTocUrl()", "updateTime": "vol" }, "searchUrl": "<js>\neval(String(source.loginUrl));\n(function (e) {\n if (Get('search_TC') == true || e.indexOf('TC') > -1) {\n e = String(java.s2t(e)).replace(\/TC\/, '');\n }\n var search = Get('s') == 0 ? '?' : '?service_backend=fts&';\n var sort = Get('r') == 0 ? '' : java.encodeURI(get('sort',Get('p')));\n var sort_1 = Get('r') == 0 ? '' : get('sort_1',Get('p'));\n var client_url = 'https:\/\/archive.org\/search?query=' + e + sort;\n java.put(Get('url') + \"searchkey\", e);\n return Get('url') + '\/services\/search\/beta\/page_production\/' + search + 'user_query=' + java.encodeURI(e) + '&hits_per_page=100&page={{page}}&filter_map=' + filter_map('s') + sort_1 + '&aggregations=false&client_url=' + java.encodeURI(client_url);\n}(key));\n<\/js>", "variableComment": "JspHXCgzmq549cSvxZRk3VTWZ\/6k3kzeFeZYuGh1E57uQPm6gkVOfbKqM5kCCPowDXJkiSRSa3npJPxd9vxKh3cMNvD1zWkrw4ju5caIY4nxOyT73azNVhhjJZjyz\/ebHvYW8WL3jcWxqxmNG6krxvli7namCa0q6ODFeq24oEdko9o6Qp4abnH7CJftdjfn6wuSjWOHcv24gGCqJw4SAAmrFhFTTu5N1\/yBmdA\/FoFdXzVCmh2O7QuWCNXEFEvtqz\/dxjI8B6IAvPH5ODSHyJK4S1EmxkBS2KulmuqCT2aDz6rJyZNvlzxUKRZTZDpuhW1k7t9LEvq1mTbfzdhHTSUJeKpWwCLeVq0vUQi7hX6pIpxSPMWsKBl+WMzv\/puLxTaIYB8le4S26dkr2hV2bGH3pA5YCkYUScdfILxk5JAGQ4QGx6B0jUjw0g1As4m9xlu3aXTAeop8NkfCtnPkaGqBNz5Jy8n9Dsb9YyaTRE01Sq2WGuErTpnYTaYDsFukJL3Oq071kZl65uglkJOlJyI8LMAZfXnykL7kV69T94fNpfR7l5B+PMUuV2leXpXCCpnf\/g+EazBuR8T\/LtV+2hhbC3WJ4NSmBmaUkg2iTWCSK2h+e7NfC4EW3MMwuRVyyx0zaQn+ISAjDUzWX0Ur7M8EZdnLkuDi1+eZUo69QfZJxsJ8r8KA32ZtRwkY\/dGFWKg4m7zvhyYv7rJyry69F7t7JSwXGIuHVQPbQw6QHKdZxLa+ezvVp1Q\/61gbbPagg8W9Mu53Yc+pVacX0KwmLxZNbmRAA5MsbdEXdaYReinkNuOn+6KuiZGDOWUnIIRe8xdSp2cnEyLOoVMl2oBBQyqNfRav38wVvgXxreX6e6sG2qmGnsropuSSC1mbGqr1E7JBHyUXKBmnLHm+ff0nEG6o03qRuKVtaSv6K+PmQ\/Js7OunyQ2TLFzXsl0ktofIlfXbJpu9XUHQa6qp\/VFBwTyRK2BZO203BgBmOZLZ0i75qDtvnvgr4QQpfGc8j9+XH\/iQGyFKoIj+K8MG7P3hOCBKiv2Mv6aRZ9P99SMeyJs4iUruBi7CHP7JgNwZn6zqCwVZac8zHWo0\/Kg4d8ov+HQhmbBUWf7hibTiKQ6S\/1f5IdAdTfgRA7uxE9BaC5gGIEqK\/Yy\/ppFn0\/31Ix7Im0DHw1Y0GWZ0x3+y2cMMIxLcoK2SzU0g6F2bfnNgtZnI+KEB\/rwKm\/EVJOQxkSOejKyoniLkosHFLimtHpR0eV+FHhcXuWQ\/t\/fs\/Z5nm8kNCGcXF0aDIJ1ELRBWErbVe5\/OdvivGX9o1GwPMvrg1yhLBkh4FahZl\/rk6\/GRap9lScFhZrjifEbTg9Okz13KcSl+Dk+7QxXJQU18IGUPwqlXJlPiAK+3rXVGn6kurMYhqMkz1aE7RCpzRvgTPqtc8BpoKQy8FJnB\/2PBzhgp2d5s+7afQyF\/\/xJrRn5cstKsnALr7fu3R+xLBHYxNglpsdNDhZ+txeiPlA04bYhnGe23afUD0CGhVGKVY+r1M3RyEnY3KhbfwMfT4m20i3piotGE3t2rx1JHCe\/qX+gjmmIUFWzCRS04Tt73caDyre0HCCN2pqS6ZBS2icFhNeUihcw0FbXw9fGHwSA68AOfa6\/lurfPZdRDoKqsgFxUiqp76j9hbCleRE6neIzfKzAXW8BtgB3ZZXaStAkO55LeK4cc8EcCG+0h1YQAwbUA\/oYXPNrhgCwrC48H2VCwIpU9ch6YlYI6I6RNUQRkH4SMasdyIQfxpwc9Nv\/TnVir+cpO+M7RMH7wrvVfD0mtxrTiNtux5d9ACVYe0LYW+\/G8mO45EUVKGEYAOmBhfTjW5YMJOzcqkqmTxP0lcD4\/ZmgMZSFen3PRMNtCZJDYMqxwql3I8+hp4gt+kVCo0EOM0KgQ23jItkz0J+23QxJ1oY++Jkm6Y1OaBTVgm28zKddWjl2qyHMOWIglHNpW1SxiV9I7Fcg7GrKHBiH\/aZ5lClGqo1hsiXS75Rhv2AleDujtaf5lNcB+YsAZ33T65C1H4oO10esqFiWtFGkGUZKbJcuUGqD2eWT7FTm\/Ud8\/xfX4tC9upPYq4MnsvhELpvu\/NTYIMETldTVFx46981Jo42hjZEEy2Ds11+sryxkgOBfivl+A\/7aQbrh\/+7KpoDZyzuVvlLUfZ1aHOaXsdPUeEJeFitPGca4naQuMZo570DEigh5R26PyWyKxQceAiPti0Gp4Xbcg1fmFTbCek1631x63h8snLkoEH2wLbmLH0BVB4JXc1gJniYNcVuznqAWTJfQs5MPSa59+nyQuSED4otTFXxfbkw4kPfNa5hQ92MqnA9nOluT3uzKTh+mEIkl1MzErD5Nd+JEHSpGGAUKQdeyFAm8hZGZJRmpVUPKgMUqRjs+TykKCsDFpEoB7GE5Id4wGw3jC++5vV1Nh+KTCJiXdn+SFn6uhqLOnH9r+V9GaEv21qZngu4e\/AT5BIuTPLpw6iDROnaOPTNKOaCiV5GJaZ\/Fz8OqWd2n3Ce3fPTev9ojgUZDn3lDyehz\/Ed+p3KMxmbbvGgbWgAs4uudaIDbPO\/McFZ1tGwIXFBvWRtRIKwuL3yjp6mS0BFTKhPd85xcv\/XIs2mYKFPVDSQQts7\/pF56lFWcjRG+OWo1jw5LuCn+eLIU6O7HqNQvBqUu8YSpsocWR\/PVB\/HYDvwMbbNx52XThNPjeJuAO9\/XglQaioEspXr3DV8Cf2w7R1fS3csZz9ljyY5kpHxd5E8OJck1xeCQHuw3jA4aRZMXZA1KALUvyuZG+G7OHQKXLCctK87O8gWp4RrBHRPtVywsPCpwRXOrQfBAnlwB3L7TfY84XHxkKGkpbTcIzy+hK950IyUXKNhtvJN2OKYfZ+XL\/kHJR+n4HSjNP7BfpUPFED\/0+QHsHixtJdMH6jiFT8lGpIF5ffqnsQ8D\/QZ1RK9Ti0a17NQ==", "weight": 0 }