supjav jable

This commit is contained in:
lushunming 2024-08-09 15:23:21 +08:00
parent 4a27ff7dec
commit ace77fdc7e
7 changed files with 1025 additions and 6 deletions

View File

@ -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<String, String> getHeaders() {
HashMap<String, String> 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;
}

View File

@ -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<String, String> getHeaders() {
return getHeaders(siteUrl);
}
private HashMap<String, String> getHeaders(String referer) {
HashMap<String, String> 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<String, String> getTVVideoHeaders(String referer) {
HashMap<String, String> headers = new HashMap<>();
headers.put("Referer", referer);
headers.put("User-Agent", Util.CHROME);
return headers;
}
@Override
public String homeContent(boolean filter) {
List<Vod> list = new ArrayList<>();
List<Class> 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<String, String> extend) {
List<Vod> 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<String> 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<String, String> 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<Vod> 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<String> 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();
}
}

View File

@ -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 "";
}
}
}

Binary file not shown.

View File

@ -1 +1 @@
5fe554759b1ede7ebdb3a7b0001d3ad5
42ba7105783cf54d189276fa4d04ff47

View File

@ -1,5 +1,5 @@
{
"spider": "../jar/custom_spider.jar;md5;5fe554759b1ede7ebdb3a7b0001d3ad5",
"spider": "../jar/custom_spider.jar;md5;42ba7105783cf54d189276fa4d04ff47",
"lives": [
{
"name": "直播ipv6",

792
json/index1.json Normal file
View File

@ -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"
}