diff --git a/app/src/main/java/com/github/catvod/spider/Jable.java b/app/src/main/java/com/github/catvod/spider/Jable.java index 13e5b590..816f8cb0 100644 --- a/app/src/main/java/com/github/catvod/spider/Jable.java +++ b/app/src/main/java/com/github/catvod/spider/Jable.java @@ -1,11 +1,9 @@ package com.github.catvod.spider; -import com.github.catvod.bean.Class; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Util; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -17,6 +15,9 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; +import com.github.catvod.bean.Class; +import com.github.catvod.utils.Util; + public class Jable extends Spider { private static final String siteUrl = "https://jable.tv"; @@ -26,7 +27,9 @@ public class Jable extends Spider { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Util.CHROME); + headers.put("User-Agent", "PostmanRuntime/7.36.3"); + headers.put("Host", "jable.tv"); + headers.put("Postman-Token", "33290483-3c8d-413f-a160-0d3aea9e6f95"); return headers; } @@ -101,4 +104,4 @@ public class Jable extends Spider { public String playerContent(String flag, String id, List vipFlags) throws Exception { return Result.get().url(id).header(getHeaders()).string(); } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/spider/Supjav.java b/app/src/main/java/com/github/catvod/spider/Supjav.java new file mode 100644 index 00000000..dc980660 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Supjav.java @@ -0,0 +1,205 @@ +package com.github.catvod.spider; + + +import com.github.catvod.bean.Class; +import com.github.catvod.bean.Result; +import com.github.catvod.bean.Vod; +import com.github.catvod.crawler.Spider; +import com.github.catvod.net.OkHttp; +import com.github.catvod.utils.Util; + +import org.apache.commons.lang3.StringUtils; + +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import java.io.IOException; +import java.net.*; +import java.util.*; + +public class Supjav extends Spider { + + private static final String siteUrl = "https://supjav.com/zh/"; + private static final String playUrl = "https://lk1.supremejav.com/"; + + private HashMap getHeaders() { + return getHeaders(siteUrl); + } + + private HashMap getHeaders(String referer) { + HashMap headers = new HashMap<>(); + headers.put("Referer", referer); + headers.put("User-Agent", "PostmanRuntime/7.36.3"); + headers.put("Host", "supjav.com"); + headers.put("Postman-Token", "33290483-3c8d-413f-a160-0d3aea9e6f95"); + return headers; + } + + private HashMap getTVVideoHeaders(String referer) { + HashMap headers = new HashMap<>(); + headers.put("Referer", referer); + headers.put("User-Agent", Util.CHROME); + return headers; + } + + @Override + public String homeContent(boolean filter) { + List list = new ArrayList<>(); + List classes = new ArrayList<>(); + Document doc = Jsoup.parse(OkHttp.string(siteUrl, getHeaders())); + for (Element element : doc.select("ul.nav > li > a")) { + String href = element.attr("href"); + if (href.split("/").length < 5) continue; + String typeId = href.replace(siteUrl, ""); + String typeName = element.text(); + classes.add(new Class(typeId, typeName)); + } + for (Element element : doc.select("div.post")) { + String src = element.select("img").attr("src"); + String data = element.select("img").attr("data-original"); + String url = element.select("a").attr("href"); + String name = element.select("a").attr("title"); + String pic = StringUtils.isEmpty(data) ? src : data; + String id = url.split("/")[4]; + list.add(new Vod(id, name, pic)); + } + return Result.string(classes, list); + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + List list = new ArrayList<>(); + Document doc = Jsoup.parse(OkHttp.string(siteUrl + tid + "/page/" + pg, getHeaders())); + for (Element element : doc.select("div.post")) { + String pic = element.select("img").attr("data-original"); + String url = element.select("a").attr("href"); + String name = element.select("a").attr("title"); + String id = url.split("/")[4]; + list.add(new Vod(id, name, pic)); + } + return Result.string(list); + } + + @Override + public String detailContent(List ids) { + Document doc = Jsoup.parse(OkHttp.string(siteUrl.concat(ids.get(0)), getHeaders())); + String name = doc.select("div.post-meta > img").attr("alt"); + String img = doc.select("div.post-meta > img").attr("src"); + String type = doc.select("p.cat > a").text(); + String director = "", actor = ""; + for (Element p : doc.select("div.cats > p")) { + if (p.select("span").text().contains("Maker")) { + director = p.select("a").text(); + } + if (p.select("span").text().contains("Cast")) { + actor = p.select("a").text(); + } + } + + Vod vod = new Vod(); + vod.setVodId(ids.get(0)); + vod.setVodPic(img); + vod.setVodName(name); + vod.setVodActor(actor); + vod.setVodDirector(director); + vod.setTypeName(type); + + Map sites = new LinkedHashMap<>(); + Elements sources = doc.select("a.btn-server"); + for (int i = 0; i < sources.size(); i++) { + Element source = sources.get(i); + String sourceName = source.text(); + if (sourceName.equals("TV")) continue; + String sourceUrl = source.attr("data-link"); + sites.put(sourceName, "播放" + "$" + sourceUrl); + } + if (sites.size() > 0) { + vod.setVodPlayFrom(StringUtils.join(sites.keySet(), "$$$")); + vod.setVodPlayUrl(StringUtils.join(sites.values(), "$$$")); + } + return Result.string(vod); + } + + @Override + public String searchContent(String key, boolean quick) { + List list = new ArrayList<>(); + Document doc = Jsoup.parse(OkHttp.string(siteUrl.concat("?s=").concat(URLEncoder.encode(key)), getHeaders())); + for (Element element : doc.select("div.post")) { + String pic = element.select("img").attr("data-original"); + String url = element.select("a").attr("href"); + String name = element.select("a").attr("title"); + String id = url.split("/")[4]; + list.add(new Vod(id, name, pic)); + } + return Result.string(list); + } + + @Override + public String playerContent(String flag, String id, List vipFlags) throws URISyntaxException, IOException { + String redirect = OkHttp.getLocation(playUrl + "supjav.php?c=" + new StringBuilder(id).reverse(), getTVVideoHeaders(playUrl + "supjav.php?l=" + new StringBuilder(id) + "&bg=undefined")); + switch (flag) { + case "TV": + return parseTV(redirect); + case "ST": + return parseST(redirect); + case "FST": + return parseFST(redirect); + case "VOE": + return parseVOE(redirect); + default: + return Result.get().url(id).parse().string(); + } + } + + private String parseVOE(String redirect) { + String data = OkHttp.string(redirect, getTVVideoHeaders(playUrl)); + return Result.get().url(Util.findByRegex("prompt\\(\"Node\",(.*?)\\);", data,1).trim().replace("\"", "")).header(getHeaders(redirect)).string(); + } + + private String parseFST(String redirect) { + String data = OkHttp.string(redirect, getTVVideoHeaders(playUrl)); + return Result.get().url(Util.findByRegex("file:\"(.*?)\"}]", data,1)).header(getHeaders(redirect)).string(); + } + + private String parseTV(String redirect) throws MalformedURLException { + String data = OkHttp.string(redirect, getTVVideoHeaders(Util.getHost(redirect))); + return Result.get().url(Util.getVar(data, "urlPlay")).header(getTVVideoHeaders(Util.getHost(redirect))).string(); + } + + private String parseST(String redirect) throws IOException { + String data = OkHttp.string(redirect, getTVVideoHeaders(playUrl)); + String robot = Jsoup.parse(data).getElementById("robotlink").text(); + robot = robot.substring(0, robot.indexOf("&token=") + 7); + for (String text : data.split("&token=")) { + if (!text.contains("').substring(")) continue; + robot = "https:/" + robot + text.split("'")[0] + "&stream=1"; + String url = OkHttp.getLocation(robot, getTVVideoHeaders(redirect)); + return Result.get().url(url).header(getHeaders(redirect)).string(); + } + return ""; + } + + private String parseDS(String redirect) throws URISyntaxException, IOException { + String host = "https://" + Util.getHost(redirect); + redirect = host + OkHttp.getLocation(redirect, getTVVideoHeaders(playUrl)); + String data = OkHttp.string(redirect, getHeaders()); + for (String text : data.split("'")) { + if (!text.startsWith("/pass_md5/")) continue; + String token = text.split("/")[3]; + String url = OkHttp.string(host + text, getHeaders(redirect)); + url = url + getDSRnd() + "?token=" + token + "&expiry=" + System.currentTimeMillis(); + return Result.get().url(url).header(getHeaders(redirect)).string(); + } + return ""; + } + + private String getDSRnd() { + StringBuilder sb = new StringBuilder(); + String t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + for (int o = 0; o < 10; o++) + sb.append(t.charAt((int) Math.floor(Math.random() * t.length()))); + return sb.toString(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/utils/Util.java b/app/src/main/java/com/github/catvod/utils/Util.java index 8ab14eae..924d3760 100644 --- a/app/src/main/java/com/github/catvod/utils/Util.java +++ b/app/src/main/java/com/github/catvod/utils/Util.java @@ -254,4 +254,23 @@ public class Util { webHttpHeaderMap.put("Origin", u); return webHttpHeaderMap; } + + public static String getHost(String url) { + URI uri = URI.create(url); + return uri.getHost(); + } + + + public static String findByRegex(String regex, String content, Integer groupCount) { + // 创建 Pattern 对象 + Pattern r = Pattern.compile(regex); + + // 现在创建 matcher 对象 + Matcher m = r.matcher(content); + if (m.find()) { + return m.group(groupCount); + } else { + return ""; + } + } } diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 3fc18a2c..c267397f 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index bec74ca4..6de65f08 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -5fe554759b1ede7ebdb3a7b0001d3ad5 +42ba7105783cf54d189276fa4d04ff47 diff --git a/json/index.json b/json/index.json index 782b7dba..5eeed7a4 100644 --- a/json/index.json +++ b/json/index.json @@ -1,5 +1,5 @@ { - "spider": "../jar/custom_spider.jar;md5;5fe554759b1ede7ebdb3a7b0001d3ad5", + "spider": "../jar/custom_spider.jar;md5;42ba7105783cf54d189276fa4d04ff47", "lives": [ { "name": "直播ipv6", diff --git a/json/index1.json b/json/index1.json new file mode 100644 index 00000000..17cab578 --- /dev/null +++ b/json/index1.json @@ -0,0 +1,792 @@ +{ + "spider": "../jar/custom_spider.jar;md5;42ba7105783cf54d189276fa4d04ff47", + "lives": [ + { + "name": "直播ipv6", + "type": "0", + "pass": true, + "url": "https://fanmingming.com/txt?url=https://live.fanmingming.com/tv/m3u/ipv6.m3u", + "epg": "https://epg.112114.xyz/?ch={name}&date={date}", + "logo": "https://epg.112114.xyz/logo/{name}.png" + }, + { + "name": "第三方源|不保存可用", + "type": "0", + "pass": true, + "url": "http://home.jundie.top:81/Cat/tv/live.txt", + "epg": "https://epg.112114.xyz/?ch={name}&date={date}", + "logo": "https://epg.112114.xyz/logo/{name}.png" + } + ], + "sites": [ + { + "key": "Supjav", + "name": "Supjav", + "type": 3, + "api": "csp_Supjav", + "searchable": 1, + "filterable": 1 + }, + { + "key": "Jable", + "name": "Jable", + "type": 3, + "api": "csp_Jable", + "searchable": "1", + "filterable": "0", + "changeable": 0, + "ext": {} + } + ], + "parses": [ + { + "name": "解析聚合", + "type": 3, + "url": "Demo" + }, + { + "name": "Json并发", + "type": 2, + "url": "Parallel" + }, + { + "name": "Json轮询", + "type": 2, + "url": "Sequence" + }, + { + "name": "爱心笔记本", + "type": 4, + "url": "http://119.91.123.253:2345/Api/yun.php?url=" + }, + { + "name": "魏晓芳", + "type": 1, + "url": "https://svip.renrenmi.cc:2222/api/?key=ogGC18CjsACNo60r3E&url=" + }, + { + "name": "fuqi", + "type": 1, + "url": "https://play.fuqizhishi.com/maotv/API.php?appkey=xiongdimenbieguaiwodingbuzhulegailekey07201538&url=" + }, + { + "name": "盘古", + "type": 0, + "url": "https://www.m3u8.tv.cdn.8old.cn/jx.php?url=" + }, + { + "name": "左岸", + "type": 1, + "url": "http://110.42.2.115:880/analysis/json/?uid=2100&my=fgjnoqstLMRUZ03489&url=", + "ext": { + "flag": [ + "qq", + "qiyi", + "mgtv", + "youku", + "letv", + "sohu", + "xigua", + "1905", + "优播线路", + "腾播线路" + ], + "header": { + "User-Agent": "Dart/2.14 (dart:io)" + } + } + }, + { + "name": "太空", + "type": 1, + "url": "http://124.222.68.182/jiexi/4kJX.php/?url=", + "ext": { + "flag": [ + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "sohu", + "搜狐", + "letv", + "乐视", + "mgtv", + "芒果", + "CL4K", + "renrenmi", + "ltnb", + "bilibili", + "1905", + "xigua" + ] + } + }, + { + "name": "未知", + "type": 1, + "url": "http://106.52.218.221:88/?url=", + "ext": { + "flag": [ + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "mgtv", + "芒果", + "letv", + "乐视", + "pptv", + "PPTV", + "sohu", + "bilibili", + "哔哩哔哩", + "哔哩" + ] + } + }, + { + "name": "随便1", + "type": 1, + "url": "http://cl.yjhan.com:8090/home/api?type=ys&uid=821518&key=aghlmnyBFIJMPRX489&url=" + }, + { + "name": "随便2", + "type": 1, + "url": "https://www.nfjx.xyz/home/api?type=ys&uid=5767995&key=ijkmovxDEHIJPQRW69&url=" + }, + { + "name": "LTRX", + "type": 1, + "url": "https://svip.spchat.top/api/?type=ys&key=bKemW41JnxmQb4l67h&url=", + "ext": { + "flag": [ + "rx" + ] + } + }, + { + "name": "OJBK", + "type": 0, + "url": "https://jmwl.qd234.cn/v/?v=", + "ext": { + "flag": [ + "ltnb", + "renrenmi", + "rx", + "xfyun", + "muxm3u8", + "xigua", + "xueren", + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "mgtv", + "芒果", + "bilibili", + "哔哩哔哩", + "哔哩", + "pptv", + "PPTV", + "sohu", + "letv" + ] + } + }, + { + "name": "parwix1", + "type": 0, + "url": "https://jx.parwix.com:4433/player/?url=", + "ext": { + "flag": [ + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "mgtv", + "芒果", + "letv", + "乐视", + "pptv", + "PPTV", + "sohu", + "bilibili", + "哔哩哔哩", + "哔哩" + ] + } + }, + { + "name": "parwix2", + "type": 0, + "url": "https://jx.parwix.com:4433/player/analysis.php?v=", + "ext": { + "flag": [ + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "mgtv", + "芒果", + "letv", + "乐视", + "pptv", + "PPTV", + "sohu", + "bilibili", + "哔哩哔哩", + "哔哩" + ] + } + }, + { + "name": "线路m9", + "type": 1, + "url": "https://api.m3u8.tv:5678/home/api?type=ys&uid=1931000&key=gktuvyzABEORSYZ135&url=" + }, + { + "name": "线路NX", + "type": 1, + "url": "https://vip.nxflv.com/home/api?uid=701203&key=bltuyCEFKLTX013679&url=" + }, + { + "name": "①秒播", + "type": 1, + "url": "https://jx.hfyrw.com/mao.go?url=" + }, + { + "name": "②秒播", + "type": 1, + "url": "http://27.124.4.42:4567/jhjson/ceshi.php?url=", + "ext": { + "flag": [ + "qiyi", + "qq", + "letv", + "sohu", + "youku", + "mgtv", + "bilibili", + "wasu", + "xigua", + "1905" + ] + } + }, + { + "name": "③秒播", + "url": "http://81.71.48.249:4456/jsonc/293shipin.php?url=", + "type": 1, + "i": "77", + "ext": { + "flag": [ + "qiyi", + "爱奇艺", + "奇艺", + "qq", + "腾讯", + "youku", + "优酷", + "pptv", + "PPTV", + "letv", + "乐视", + "bilibili", + "哔哩哔哩", + "哔哩", + "mgtv", + "芒果" + ] + } + }, + { + "name": "④秒播", + "type": 1, + "url": "http://106.55.234.91:4433/?url=", + "ext": { + "flag": [ + "qiyi", + "qq", + "letv", + "sohu", + "youku", + "mgtv", + "bilibili", + "wasu", + "xigua", + "1905" + ] + } + }, + { + "name": "⑤秒播", + "type": 1, + "url": "http://81.71.48.249:4456/jsonc/longxia.php?url=", + "ext": { + "flag": [ + "qq", + "qiyi", + "mgtv", + "youku", + "letv", + "sohu", + "xigua", + "1905" + ], + "header": { + "User-Agent": "Dart/2.14 (dart:io)" + } + } + }, + { + "name": "⑦秒播", + "type": 1, + "url": "https://app.okmedcos.com/4k/?url=" + }, + { + "name": "⑧秒播", + "type": 1, + "url": "https://jie.1z1.cc/api/?key=HdMmTMfyf1uTOQUL0b&url=" + }, + { + "name": "Pro", + "type": 1, + "url": "http://api.vip123kan.vip/?url=", + "ext": { + "flag": [ + "youku", + "优酷", + "mgtv", + "芒果", + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "qq", + "奇艺" + ] + } + }, + { + "name": "2", + "type": 1, + "url": "https://jx.mczdyw.com/xg.php?url=", + "ext": { + "flag": [ + "mgtv", + "芒果" + ] + } + }, + { + "name": "3", + "type": 1, + "url": "https://www.aiaine.com/api/?key=kVqmG5dAQ5dZTcECw8&url=", + "ext": { + "flag": [ + "youku", + "优酷", + "mgtv", + "芒果", + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "qq", + "奇艺" + ] + } + }, + { + "name": "4", + "type": 1, + "url": "https://svip.rongxingvr.top/api/?key=niBgMGXVdCQhsmeEBK&url=", + "ext": { + "flag": [ + "youku", + "优酷", + "mgtv", + "芒果", + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "qq", + "奇艺" + ] + } + }, + { + "name": "8", + "type": 1, + "url": "https://app.iminna.com/jx/?url=", + "ext": { + "flag": [ + "youku", + "优酷", + "mgtv", + "芒果", + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "qq", + "奇艺" + ] + } + }, + { + "name": "飓风影院2", + "type": 1, + "url": "https://vvip.funsline.cn/api/?key=3xWfEoDf4V9p9Y20CR&url=", + "ext": { + "flag": [ + "ziqie", + "youku", + "优酷", + "qiyi", + "爱奇艺", + "奇艺", + "mgtv", + "芒果", + "qq", + "腾讯" + ] + } + }, + { + "name": "我爱电影网", + "type": 1, + "url": "https://jhpc.manduhu.com/j1217.php?url=", + "ext": { + "flag": [ + "qiyi", + "爱奇艺", + "奇艺", + "mgtv", + "芒果", + "youku", + "优酷", + "pptv", + "PPTV" + ] + } + }, + { + "name": "王牌", + "type": 1, + "url": "https://za.kuanjv.com/?url=", + "ext": { + "flag": [ + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "mgtv", + "芒果", + "搜狐", + "sohu", + "letv", + "乐视", + "bilibili", + "哔哩哔哩", + "哔哩", + "xigua", + "西瓜" + ] + } + }, + { + "name": "盘古解析", + "type": 1, + "url": "https://json.pangujiexi.com:12345/json.php?url=", + "ext": { + "flag": [ + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "mgtv", + "芒果" + ] + } + }, + { + "name": "欢雨", + "type": 1, + "url": "http://www.youhuifuligou.com/json/?id=7&url=", + "ext": { + "flag": [ + "qq", + "腾讯", + "qiyi", + "爱奇艺", + "奇艺", + "youku", + "优酷", + "letv", + "乐视", + "xigua", + "西瓜" + ] + } + } + ], + "flags": [ + "youku", + "qq", + "iqiyi", + "qiyi", + "letv", + "sohu", + "tudou", + "pptv", + "mgtv", + "wasu", + "bilibili", + "renrenmi" + ], + "ijk": [ + { + "group": "软解码", + "options": [ + { + "category": 4, + "name": "opensles", + "value": "0" + }, + { + "category": 4, + "name": "overlay-format", + "value": "842225234" + }, + { + "category": 4, + "name": "framedrop", + "value": "1" + }, + { + "category": 4, + "name": "soundtouch", + "value": "1" + }, + { + "category": 4, + "name": "start-on-prepared", + "value": "1" + }, + { + "category": 1, + "name": "http-detect-range-support", + "value": "0" + }, + { + "category": 1, + "name": "fflags", + "value": "fastseek" + }, + { + "category": 2, + "name": "skip_loop_filter", + "value": "48" + }, + { + "category": 4, + "name": "reconnect", + "value": "1" + }, + { + "category": 4, + "name": "enable-accurate-seek", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec-auto-rotate", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec-handle-resolution-change", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec-hevc", + "value": "0" + }, + { + "category": 1, + "name": "dns_cache_timeout", + "value": "600000000" + } + ] + }, + { + "group": "硬解码", + "options": [ + { + "category": 4, + "name": "opensles", + "value": "0" + }, + { + "category": 4, + "name": "overlay-format", + "value": "842225234" + }, + { + "category": 4, + "name": "framedrop", + "value": "1" + }, + { + "category": 4, + "name": "soundtouch", + "value": "1" + }, + { + "category": 4, + "name": "start-on-prepared", + "value": "1" + }, + { + "category": 1, + "name": "http-detect-range-support", + "value": "0" + }, + { + "category": 1, + "name": "fflags", + "value": "fastseek" + }, + { + "category": 2, + "name": "skip_loop_filter", + "value": "48" + }, + { + "category": 4, + "name": "reconnect", + "value": "1" + }, + { + "category": 4, + "name": "enable-accurate-seek", + "value": "0" + }, + { + "category": 4, + "name": "mediacodec", + "value": "1" + }, + { + "category": 4, + "name": "mediacodec-auto-rotate", + "value": "1" + }, + { + "category": 4, + "name": "mediacodec-handle-resolution-change", + "value": "1" + }, + { + "category": 4, + "name": "mediacodec-hevc", + "value": "1" + }, + { + "category": 1, + "name": "dns_cache_timeout", + "value": "600000000" + } + ] + } + ], + "ads": [ + "mimg.0c1q0l.cn", + "www.googletagmanager.com", + "www.google-analytics.com", + "mc.usihnbcq.cn", + "mg.g1mm3d.cn", + "mscs.svaeuzh.cn", + "cnzz.hhttm.top", + "tp.vinuxhome.com", + "cnzz.mmstat.com", + "www.baihuillq.com", + "s23.cnzz.com", + "z3.cnzz.com", + "c.cnzz.com", + "stj.v1vo.top", + "z12.cnzz.com", + "img.mosflower.cn", + "tips.gamevvip.com", + "ehwe.yhdtns.com", + "xdn.cqqc3.com", + "www.jixunkyy.cn", + "sp.chemacid.cn", + "hm.baidu.com", + "s9.cnzz.com", + "z6.cnzz.com", + "um.cavuc.com", + "mav.mavuz.com", + "wofwk.aoidf3.com", + "z5.cnzz.com", + "xc.hubeijieshikj.cn", + "tj.tianwenhu.com", + "xg.gars57.cn", + "k.jinxiuzhilv.com", + "cdn.bootcss.com", + "ppl.xunzhuo123.com", + "xomk.jiangjunmh.top", + "img.xunzhuo123.com", + "z1.cnzz.com", + "s13.cnzz.com", + "xg.huataisangao.cn", + "z7.cnzz.com", + "xg.huataisangao.cn", + "z2.cnzz.com", + "s96.cnzz.com", + "q11.cnzz.com", + "thy.dacedsfa.cn", + "xg.whsbpw.cn", + "s19.cnzz.com", + "z8.cnzz.com", + "s4.cnzz.com", + "f5w.as12df.top", + "ae01.alicdn.com", + "www.92424.cn", + "k.wudejia.com", + "vivovip.mmszxc.top", + "qiu.xixiqiu.com", + "cdnjs.hnfenxun.com", + "cms.qdwght.com" + ], + "wallpaper": "https://bing.ee123.net/img/4k" +} \ No newline at end of file