up
This commit is contained in:
Liu
2025-04-01 01:28:50 +08:00
parent 01eec799d7
commit 9543ab6f7a
49 changed files with 14225 additions and 35200 deletions

View File

@@ -4,9 +4,9 @@
"spider": "./spider.jar",
"lives": [
{
"name": "【公众号欧歌APP网络收集】接口即将关闭,请勿演示",
"name": "【公众号欧歌APP网络收集】测试完请删除,请勿贩卖",
"type": 0,
"url": "./lives/【公众号欧歌APP网络收集】接口即将关闭,请勿演示.txt",
"url": "./lives/【公众号欧歌APP网络收集】测试完请删除,请勿贩卖.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
},
{
@@ -31,20 +31,20 @@
"sites": [
{
"key": "豆瓣2",
"name": "📢【公众号欧歌APP网络收集】接口即将关闭,请勿演示",
"name": "📢【公众号欧歌APP网络收集】测试完请删除,请勿贩卖",
"type": 3,
"api": "csp_Douban",
"searchable": 0
},
{
"key": "豆瓣1",
"name": "📢【公众号欧歌APP网络收集】接口即将关闭,请勿演示公告❤更新:3/28❤",
"name": "📢【公众号欧歌APP网络收集】测试完请删除,请勿贩卖公告❤更新:3/31❤",
"type": 3,
"api": "csp_Notice",
"searchable": 0,
"changeable": 0,
"jar": "./jars/豆瓣1.jar",
"ext": "https://欧歌.yy.nxog.top/公告.php?b=【公众号欧歌APP网络收集】接口即将关闭,请勿演示"
"ext": "https://欧歌.yy.nxog.top/公告.php?b=【公众号欧歌APP网络收集】测试完请删除,请勿贩卖"
},
{
"key": "csp_Netfixtv",
@@ -139,15 +139,6 @@
"quickSearch": 1,
"filterable": 1
},
{
"key": "韩小圈",
"name": "💡韩小|影视",
"type": 3,
"api": "csp_HanXiaoQuan",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "巧技",
"name": "💡巧巧|影视",
@@ -190,50 +181,6 @@
"quickSearch": 1,
"filterable": 1
},
{
"key": "洽洽影视",
"name": "💡洽洽|影视",
"type": 3,
"api": "csp_AppGZ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "KhY021WelCEl+6MsvwnzaPussky6FQJcpCjT9V7/D61ft9vQAhNEPOYSMZVJSODd/JOOSOwUzim+9qfvgpNz7SvUPpAkXAweyrp76WY8s5EBwW7DBMY="
},
{
"key": "小米电影",
"name": "💡电影|影视",
"type": 3,
"searchable": 1,
"quickSearch": 1,
"api": "csp_MovieApp"
},
{
"key": "金牌影视",
"name": "💡金牌|影视",
"type": 3,
"api": "csp_WebJP",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "KhY021WelCEl+6MsvwnzaPusskysEhxc/i3d/FHwReBTtZTeDEVZJbQKKez3K+OxlrjAIMdUpAUxP8fGystYn0Hss098UFVR69Qm2ARgmeZN86q8Ww=="
},
{
"key": "二三",
"name": "💡二三|影视",
"type": 3,
"api": "csp_QJMuou",
"playerType": 2,
"ext": "caHR0cHM6Ly8xMjN5c3cuY29tfDIz5b2x6KeGfDQuMS44"
},
{
"key": "起点",
"name": "💡起点|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovL2NhaWppLm8wYS5jbnw3MGZkNjFkOTkxZjQzMjU3fDcwZmQ2MWQ5OTFmNDMyNTd8MTAw"
},
{
"key": "光速",
"name": "💡光速|影视",
@@ -242,22 +189,6 @@
"playerType": 1,
"ext": "jaHR0cDovLzU5LjE1My4xNjcuMTM3Ojg4OTl8NGQ4M2I4N2M0YzVlYTExMXw0ZDgzYjg3YzRjNWVhMTExfDQ2Mg=="
},
{
"key": "优秀",
"name": "💡优秀|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovL2FpLnhpYW95dW4uaW5rfEtMckZxU2ptYzRPSWo3NkJ8S0xyRnFTam1jNE9Jajc2QnwzMDA="
},
{
"key": "莉莉",
"name": "💡莉莉|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovLzExMS4xODAuMTk4LjQwOjExMTB8NDk0ODA4MDgwbGdneXNjb3w0OTQ4MDgwODBsZ2d5c2NvfDY2Ng=="
},
{
"key": "雨滴",
"name": "💡雨滴|影视",
@@ -267,15 +198,96 @@
"ext": "jaHR0cHM6Ly95ZHlzZHluYW1pY2RvbWFpbm5hbWUuNjguZ3k6MTA2NzgvYzltMmpzMjk4eDgyaDYvbDltOGJ4MjNqMm8ycDlxL2R5bmFtaWNkb21haW5uYW1lLnR4dHxrOW8zcDJjOGI3bTN6MG84fGs5bzNwMmM4YjdtM3owbzh8MTAw"
},
{
"key": "优质",
"name": "💡优质|影视",
"key": "二三",
"name": "💡二三|影视",
"type": 3,
"api": "csp_Muou",
"playerType": 2,
"ext": "caHR0cHM6Ly8xMjN5c3cuY29tfDIz5b2x6KeGfDQuMS44"
},
{
"key": "米兔",
"name": "💡米兔|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cHM6Ly9keXl6dHZhcHBhcGlnb29kZ3guNjguZ3k6MTI2ODkvY2l3azI4dnUzOGlvOC9hcGl1cmwudHh0fGR5eXp0dmFwaWFwcHl5ZHN8ZHl5enR2YXBpYXBweXlkc3wxMDA="
"ext": "jaHR0cHM6Ly93d3cuempjLmFwcHxhYjRlOWE0MjE2NzVmMTRifGFiNGU5YTQyMTY3NWYxNGJ8NDQy"
},
{
"key": "来看影视",
"key": "奇妙",
"name": "💡奇妙|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovLzE1NC4xMi45MS4yMTE6NjY4fDEyMzQ1Njc4OUFCQ0RFRkd8MTIzNDU2Nzg5QUJDREVGR3wxMDY="
},
{
"key": "玉米",
"name": "💡玉米|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cHM6Ly93d3cuempjLmFwcC98YWI0ZTlhNDIxNjc1ZjE0YnxhYjRlOWE0MjE2NzVmMTRifDQ0Mg=="
},
{
"key": "格格影视",
"name": "💡格格|影视",
"type": 3,
"api": "csp_AppGetApp",
"searchable": 1,
"quickSearch": 1,
"filterable": 0,
"ext": "w7TCmsK8w5rDrcKYwoPCmcKkw57CmsK0wpnCoVpcUFfDjMOcw67DnsOPwqXCnFdqwpnCmsOiw63DrsKjal9fwqrCpMKrwqfCq2tgXmHCssKrwqjCrcKqbWFhYcKpwqLDm8Opw6NhwqDCmMKgwqDCn8KawqDDg8KhwpnCpMKHw6jDpcOewqDCtFNXwpnCnsOiw6fDkMKqwqtsV1xQwqDDp8Ojw6nCoW1QV8KL5Ye+6YWb5pCf5ZGcwqblhp/kvYflkKdq5b+q6Ki56La+5ryJ562TwpBXXFDCoMK0w5/DrMOFwpjCqVdqwpnCmsObw6zDocKWwqjCmMKaw6TDp8OtwqrCrGdlZ2PCoMKfwprCoMK7wpjCo3nCpsKgwq3CmsKgw5vCpsKXwpPCqMOhw53DpcOtw61kYmRlwrDCpsKhwqXCmlrCmMKVwpHDncOYw6zDrMKhbVDCq1fDrsOmw5/Dq8KnwpTCl8KVwp7DrcKawrTCmcKhwoDCn8KqwpnDpcOfw5vCqMKvYWBQWMOQw5zDqMOdw6nCqsKjUH7DjcKTwqvCqcKoY2tQwofDosOhwrDCrcK1U8KoZmTCosKTwrvDqcOqwp/ClcKHwpXDm8K+w6PDrcKpaGNnXsKswqnCmsKhw4V7woR9fMKlwpPDpsOiw6XCmFB3wpXDnMOew6nCosKadsKYwqLCn8Omw5jCqcKqwqtlXmBewqnCocKqwpnDjcKUwpbCkcKiw6LCosKvwqzCsWFjZlfCpcKTwqHDmsOmwp/Cn8Knc8Orw6LDrcOsw4rCpcKfwqTCn8Ocw6LDpsOLw5/Cl8KZwqLClcOcw6fDrcKgwrRTwoTCosKlw57DsMKmwpnCoXXCkcKewpvDh8OUw7DCoMK0U1fnnKTmk53CoMKfwprCoMOewpjCk8KiwqnDqcOnw4XDnsOzWmpQV8Oww6jDs8OiwrBpZlfCrQ=="
},
{
"key": "云端影视",
"name": "💡云端|影视",
"type": 3,
"api": "csp_AppGetApp",
"searchable": 1,
"quickSearch": 1,
"filterable": 0,
"ext": "w7TCmsK8w5rDrcKYwoPCmcKkw57CmsK0wpnCocKbwqTCpMKgw6zCrcKpwqjDs8KXwqnCo8KUw7LDocObw6bDo8KWwpTCn8Kdw5rDnMOow6fDm8KgwpVeZsKxwqHDocOywrRkYGZnwrHCosOdwrLDp2XCmsKjYsKywqvDssKxwqzCm2ZfwpzCssOgwrLDm8OyZWPCmmLDqMKlw6rCssOrYsKUwqnCnsOaw6DDo8Ocw57CosKdwpHCmcOnw6HDm8Omw59hwqTCqMKkwqDCn8KawqDDjcKcwqTClcKFw6vDn8KhwrPCmlpXXFDCoMK8w6jDosOuworCn8KiwpTCoMKtwprCoMOjwqHCmcKkwobCqsKkwrPCoMKmU1fCpMKZw6nCmsK0wpnCocKO5Ya16YSY5o+V5ZGcwp/lh6bkvpDlkbFt5b6h6Ke26LW05ryJ562Mw5fCoMKmU1dxwpXDrMK+w5/DssKhbVBXwpvCssOiwq3DqcKswpZowpJnw6bCpsO0wqnDqWtXXFDCoMK0w5/DrMODwqlXalDCoMOewrPDqMKtwqNiwpNow5vCqsOnwqzDtGPCn2hXwqXCk8Khw53Dn8KWwqLCqcKgw63CvsOfw7LCoW1QV8Knw67DrMOjwq/CsGlXwq0="
},
{
"key": "洽洽影视",
"name": "💡洽洽|影视",
"type": 3,
"api": "csp_AppGZ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw5rDqsKcXmnCk8Oew5bCscKyw55hwpPCn8KdwqDCn8KawqDDrsKcwqBXasKZwprDleWHvumFouaPmOWQk1zlhpzkvpDlkarCtOW/quipgOi1t+a7gOesicKNwqDCn8KawqDDnsKYwpPCosKpw6nDp8OFw57Ds1pqUFfDsMOow7PDosKwaWZXwq0="
},
{
"key": "爱看机器人",
"name": "💡爱看|影视",
"type": 3,
"api": "csp_IkanBot",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "低端影视",
"name": "💡低端|影视",
"type": 3,
"api": "csp_Ddys",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "快看影视",
"name": "💡快看|影视",
"type": 3,
"api": "csp_Kuaikan",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "来看影视123",
"name": "💡来看|影视",
"type": 3,
"api": "csp_Lkdy",
@@ -283,6 +295,51 @@
"quickSearch": 1,
"filterable": 1
},
{
"key": "瓜子影视",
"name": "💡瓜子|影视",
"type": 3,
"api": "csp_Gz360",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "金牌影视",
"name": "💡金牌|影视",
"type": 3,
"api": "csp_WebJP",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKbwqPDp8Ohw6LDm8OkYcKTwp/CncKgwp/CmsKgw67CnMKgV2rCmcKaw5Xlh77phaLmj5jlkJNc5Yac5L6Q5ZGqwrTlv6roqYDotbfmu4DnrInCjcKgwp/CmsKgw57CmMKTwqLCqcOpw6fDhcOew7NaalBXw7DDqMOzw6LCsGlmV8Kt"
},
{
"key": "耐看影视123",
"name": "💡耐看|影视",
"type": 3,
"api": "csp_WebNK",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "w7TClcONw6LDrsKYwoXCosKcwpvCrcKcw6HDrsKnwqDCo2rCqMKiw7HDsMOxYcKewpvClMOvw5fCqMOmw59VXFLCpMOiw6PCnMKzwpzCjuWGtemEmOaPleWRnMKf5Yem5L6Q5ZGxbeW+oeintui1tOa8ieetjMOXwpvDtw=="
},
{
"key": "真心影视",
"name": "💡真心|影视",
"type": 3,
"api": "csp_WebGZ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "预告",
"name": "💡新片|预告",
"type": 3,
"api": "csp_YGP",
"searchable": 0
},
{
"key": "猎手影视",
"name": "💡猎手|影视",
@@ -328,158 +385,81 @@
"playerType": 2
},
{
"key": "厂长弹幕",
"key": "厂长影视",
"name": "💘厂长|弹幕",
"type": 3,
"api": "csp_Czzy",
"api": "csp_WebCzApp",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true
}
"filterable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDscKqwqdewpPDs8KjwqvCp8OwwpzCoFdcwpnCmsONw57Dm8KlwpPCmMKFw6vDn8KhwrPCmlrCmMKkwqTDqcOmwrTCqMKpwpbCqsKqwqnCp8Onw6nDqcKpwpfCkcKfwqnDqMOhw6HDo8OjwpjCm8KfwqPDocOcw5zDrsOtwpvCmcKpwp/DrsOVw6PDp8OhWlxQV8OMw5zDrsOew4/CpcKccsKRw6TCmsK0wpnCocKbwqTCpMKgw6zCrcKpwqjDscKqwqdewpPDs8Otw7PDr8OjwpfClcKfXsOcw6LDp8KgwqZTV8KkwpnDqcKawrTCmcKhwo7lhrXphJjmj5XlkZzCn+WHpuS+kOWRsW3lvqHop7botbTmvInnrYzDl8KgwqZTV8KUwpXDnMOlw7PDqcOufsKVwqlXwrPCk8Khw7DDr8KswplmZsKvwprDtw=="
},
{
"key": "热播弹幕",
"name": "💘热播|弹幕",
"type": 3,
"api": "csp_TianTian",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true,
"site": "0"
}
},
{
"key": "天天弹幕",
"name": "💘天天|弹幕",
"type": 3,
"api": "csp_TianTian",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true,
"site": "1"
}
},
{
"key": "浪酷弹幕",
"name": "💘浪酷|弹幕",
"type": 3,
"api": "csp_TianTian",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true,
"site": "2"
}
},
{
"key": "文才弹幕",
"name": "💘文才|弹幕",
"type": 3,
"api": "csp_Jpys",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true
}
},
{
"key": "糯米弹幕",
"key": "糯米影视",
"name": "💘糯米|弹幕",
"type": 3,
"api": "csp_Nmys",
"api": "csp_WebNM",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true
}
"filterable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKawqpewpPDp8KawqbCmcKhwqfCmcKgV8KzwpPCocOU5Ye/6YSb5o+V5ZCTXOWHpeS+iuWRscKz5b+r6Ke56LW05ruA56yJw5bCmsKmwpnCocKXwpXCk8Kiw7LDo8Ouw4TDn8KsV2pQwqDDqsOvw7LDo2lmZlfDtg=="
},
{
"key": "追剧仔弹幕",
"name": "💘追剧|弹幕",
"key": "热播影视",
"name": "💘热播|弹幕",
"type": 3,
"api": "csp_Zjz",
"api": "csp_AppRJ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true
},
"timeout": 10
"filterable": 0
},
{
"key": "现代弹幕",
"name": "💘现代|弹幕",
"key": "天天影视",
"name": "💘天天|弹幕",
"type": 3,
"api": "csp_XianDai",
"api": "csp_AppRJ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true
},
"timeout": 10
"filterable": 0,
"ext": "http://tt.ysdqjs.cn"
},
{
"key": "三六零弹幕",
"name": "💘三六零|弹幕",
"key": "浪酷影视",
"name": "💘浪酷|弹幕",
"type": 3,
"api": "csp_Sp360",
"searchable": 1,
"filterable": 1,
"changeable": 1,
"ext": {
"danmu": true
}
},
{
"key": "机器人弹幕",
"name": "💘机器人|弹幕",
"type": 3,
"api": "csp_Ikanbot",
"api": "csp_AppRJ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true
}
"filterable": 0,
"ext": "http://v.lkuys.cn"
},
{
"key": "小苹果弹幕",
"name": "💘小苹果|弹幕",
"key": "耐看影视",
"name": "💘耐看|弹幕",
"type": 3,
"api": "csp_Xpg",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"danmu": true
}
"api": "csp_WebNK",
"searchable": 0,
"changeable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKewpvDncOpw57Cp8OnwphXXFDCoMOnw6PDqcKhbVBXwovlh77phZvmkJ/lkZzCpuWGn+S9h+WQp2rlv6roqLnotr7mvInnrZPCkFdcUMKgw5fDn8Ocw6zCrMKgwqR7w57DrMKhwrPCmlrCp8KlwqnDosKpwrDCr8KhwrA="
},
{
"key": "哔哩弹幕",
"name": "💘哔哩|弹幕",
"key": "来看影视",
"name": "💘来看|弹幕",
"type": 3,
"api": "csp_Bilimd",
"api": "csp_WebLK",
"searchable": 0,
"changeable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw6XDpcKpwp/ClF7DpsOYwqHCpcKaWsKkwpnCoMKgwq3CmsKgw5XlhrjphJjmj5XlkJPCpeWHn+S+keWRsMK05b6k6Ke26LW05ruA562Sw5DCocKlwppawpTClcKTw6vDrMOqw63DhcKYwqlXasKZwprDscOuw7PCnGZmZsKgw7A="
},
{
"key": "一起影视",
"name": "💘一起|弹幕",
"type": 3,
"api": "csp_AppFree4K",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"style": {
"type": "rect",
"ratio": 1.597
},
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/bilibili.txt"
},
"timeout": 10
"filterable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw5rDqsKjwpPCncKjwqfDmcOsw57Dn8KbwpRewqbDosOjwqHCpcKaWnvClcKpwqDCrcKawqDDnMKYZWNkwrHDl8Ogw5vCqsKWY8KTYsKxwqbCocKlwppaecKmV8KzwpPCocKuw6BoZGRpw53Dl8Krwq3CrWRjYmHCsMKawqbCmcKhdcKRwp7Cm8OHw5TDsMKgwrRTV+ecpOaTncKgwp/CmsKgw4rClMKiwqPClcOOw6XDpsKgwrRTV8KYwqTDrcOjw63Cs8KpYsKRwqDCoMOvwqTCqMOfw6zCmMKVwpjClMKnw6nDo8OpwqnCncKjwp/CnsKnw6PDosOpwrnCqMKiwpxtwqDCn8KawqDCvsKUwp59wqXDjsOlw6bCoMK0U1fCmMKkw63Do8OtwrPCqWLClMKdXsOvw5zDnsOzwqjClMKjwpnCkcKow5fDp8Okw69ib8KRwpPCtsOXw6fCn8OuwqLCm8KVwp7CtsOEw4PDhcK8dnh6dsOMwr/DkcOPw4B4e8KCVsOuw6XDpsK2wqFfUFfClMOew5bDrMOyw6rCp3vClcKpwqDCrcKawqDDscKowqnCmWbCr8KpwqHDtg=="
},
{
"key": "csp_XYQHiker_农民影视",
@@ -623,138 +603,6 @@
"分类": "电视剧$2#电影$1#动漫$3#综艺$4"
}
},
{
"key": "快手直播",
"name": "🖐️快手┃直播",
"type": 3,
"api": "csp_KsLive",
"searchable": 0,
"quickSearch": 0,
"filterable": 1,
"style": {
"type": "rect",
"ratio": 1.597
}
},
{
"key": "搜索弹幕",
"name": "❤搜索|弹幕",
"type": 3,
"api": "csp_PanSearch",
"searchable": 1,
"filterable": 0,
"changeable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"danmu": true
}
},
{
"key": "易搜弹幕",
"name": "❤易搜|弹幕",
"type": 3,
"api": "csp_YiSo",
"searchable": 1,
"filterable": 0,
"changeable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"danmu": true,
"cookie": "satoken=0eedba28-be8a-4f01-81af-2d8d44808ecf"
}
},
{
"key": "夸搜弹幕",
"name": "❤夸搜|弹幕",
"type": 3,
"api": "csp_Qkso",
"searchable": 1,
"filterable": 1,
"changeable": 0,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"danmu": true
}
},
{
"key": "夸克趣盘搜弹幕",
"name": "❤盘搜|弹幕",
"type": 3,
"api": "csp_QuPanSou",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"danmu": true
}
},
{
"key": "我的阿里",
"name": "❤我的|阿里",
"type": 3,
"api": "csp_MyAli",
"searchable": 0,
"quickSearch": 0,
"filterable": 0,
"indexs": 0,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt"
},
"style": {
"type": "list"
}
},
{
"key": "我的夸克",
"name": "❤我的|夸克",
"type": 3,
"api": "csp_MyQuark",
"searchable": 0,
"quickSearch": 0,
"filterable": 0,
"indexs": 0,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt"
},
"style": {
"type": "list"
}
},
{
"key": "我的UC",
"name": "❤我的UC",
"type": 3,
"api": "csp_MyUc",
"searchable": 0,
"quickSearch": 0,
"filterable": 0,
"indexs": 0,
"ext": {
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt"
},
"style": {
"type": "list"
}
},
{
"key": "阿里合集",
"name": "❤阿里|合集",
"type": 3,
"api": "csp_AliShare",
"searchable": 1,
"changeable": 0,
"filterable": 0,
"indexs": 0,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"share": "./txt/alishare.txt"
},
"style": {
"type": "list"
}
},
{
"key": "New6v",
"name": "🎃New6V┃磁力",
@@ -1085,15 +933,6 @@
"filterable": 0,
"ext": "w7TClcK8w5rDrcKYwoPCmcKkw57ClcK0wpvDosKnwqTCoMKjwrPCosKpw7HDoMKUwqDCoF3CqsKmwqrCrsKtbGBgZsKuwqHDncOow61hwpHCoF3DoMOow5vDp8Ohwq3CmMKfwqXCp8Ogw7PDqsOdwp/Cn8KlwpTCp8OWw6nDpsKpwprClcKkwpHDqcOjwqjDrcOywqdSXFLDgsOhw6PDrcORwqLCosKUUsKzwpXCnMKlwpzCp8KZwqBSwrPClcOV5Ye+6YWi5o+Y5ZCTXOWGnOS+kOWRqsK05b+q6KmA6LW35ruA56yJwo3Cm8KfwpzCusOfwqZ7wpXCqcKbwq3CnMKqw7PCjWLCg8Kgw6fCrMOlw6vDqMKtwoZ7wp/CvMKVwqbCm8K7wpjCo3nCpsKbwq3CnMKqw7PCjWLCg8Kgw6fCrMOlw6vDqMKtwoZ7wp/CvMKVwqbCm8ONwpzCpMKVwoXDq8OfwpzCs8KcVcKt"
},
{
"key": "Dm84",
"name": "🤣巴士┃动漫",
"type": 3,
"api": "csp_Dm84",
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "58动漫网",
"name": "🤣之家┃动漫",
@@ -1182,133 +1021,149 @@
"ext": "KhY021WelCEl+6MsvwnzaPussky/EAoc9z7C4keyHaEQ+sKbXhMKd83VjTL7Ls6+m7XDIcGdziOxPv79y/h4QCvmOEJmZ1VD6dopzAVxkFzEFw=="
},
{
"key": "夸克多多弹幕",
"name": "❤UC4K弹幕",
"type": 3,
"api": "csp_Wobg",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"site": "https://wooguc.nxog.eu.org",
"danmu": true
}
},
{
"key": "夸克蜡笔弹幕",
"key": "欧哥",
"name": "❤欧歌4K弹幕",
"type": 3,
"api": "csp_Wobg",
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"site": "https://woog.nxog.eu.org",
"danmu": true
}
"changeable": 1,
"ext": "./json/og.json?"
},
{
"key": "夸克至臻弹幕",
"name": "❤至臻4K弹幕",
"key": "欧uc",
"name": "❤欧uc4K弹幕",
"type": 3,
"api": "csp_Wobg",
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"site": "https://zhizhen.banye.tech:7086",
"danmu": true
}
"changeable": 1,
"ext": "./json/og2.json?"
},
{
"key": "夸克木偶弹幕",
"key": "木偶",
"name": "❤木偶4K弹幕",
"type": 3,
"api": "csp_Wobg",
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"site": "https://mogg.banye.tech:7086",
"danmu": true
}
"ext": "./json/mogg.json?"
},
{
"key": "夸克六趣弹幕",
"name": "❤六趣4K弹幕",
"key": "蜡笔",
"name": "❤蜡笔4K弹幕",
"type": 3,
"api": "csp_Wobg",
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"site": "https://liuqu.banye.tech:7086",
"danmu": true
}
"ext": "./json/lb.json?"
},
{
"key": "夸克下饭弹幕",
"name": "❤下饭4K弹幕",
"key": "小米",
"name": "❤小米4K弹幕",
"type": 3,
"api": "csp_Wobg",
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"site": "https://xiafan.banye.tech:7086",
"danmu": true
}
"changeable": 1,
"ext": "./json/xm.json?"
},
{
"key": "夸克二小弹幕",
"key": "至臻",
"name": "❤至臻4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/zz.json?"
},
{
"key": "多多",
"name": "❤多多4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/yyds.json?"
},
{
"key": "二小",
"name": "❤二小4K弹幕",
"type": 3,
"api": "csp_Wobg",
"quickSearch": 1,
"changeable": 1,
"filterable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"site": "https://enxiao.banye.tech:7086",
"danmu": true
}
},
{
"key": "玩偶弹幕",
"name": "❤玩偶4K弹幕",
"type": 3,
"api": "csp_Wogg",
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"wogg": true,
"danmu": true
}
"changeable": 1,
"ext": "./json/ex.json?"
},
{
"key": "概念",
"name": "❤海绵4K",
"type": 3,
"api": "csp_PanWebShareCloudHM",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "rect",
"ratio": 1.433
},
"ext": "./json/hm.json?"
},
{
"key": "Pan1",
"name": "❤Pan14K",
"type": 3,
"api": "csp_PanWebShareCloudHM",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "rect",
"ratio": 1.433
},
"ext": "./json/pan1.json?"
},
{
"key": "趣盘",
"name": "❤趣盘4K",
"type": 3,
"api": "csp_PanWebQu",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKhwqXDqcOUw6jDrMOiwphewpPCn8OmwprCpsKZwqHCp8KZwqBXwrPCk8Khw5Tlh7/phJvmj5XlkJNc5Yel5L6K5ZGxwrPlv6vop7notbTmu4DnrInDlsKawqbCmcKhwpfClcKTwqLDssOjw67DhMOfwqxXalDCoMOqw6/DssOjaWZmV8O2"
},
{
"key": "聚搜",
"name": "❤聚搜4K",
"type": 3,
"api": "csp_PanWebSearch",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/aliyunpansearch.json"
},
{
"key": "push_agent",

View File

@@ -1,607 +0,0 @@
/*!
* Jinja Templating for JavaScript v0.1.8
* https://github.com/sstur/jinja-js
*
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
*
* In the interest of simplicity, it deviates from Jinja2 as follows:
* - Line statements, cycle, super, macro tags and block nesting are not implemented
* - auto escapes html by default (the filter is "html" not "e")
* - Only "html" and "safe" filters are built in
* - Filters are not valid in expressions; `foo|length > 1` is not valid
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
*
* Notes:
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
* - `.2` is not a valid number literal; use `0.2`
*
*/
/*global require, exports, module, define */
(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
})(this, (function(jinja) {
"use strict";
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
//non-primitive literals (array and object literals)
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
//bare identifiers such as variables and in object literals: {foo: 'value'}
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
var ACCESSOR = /(\.i|\[[@#i]\])/g;
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
//extended (english) operators
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
var LEADING_SPACE = /^\s+/;
var TRAILING_SPACE = /\s+$/;
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
var TAGS = {
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
};
var delimeters = {
'{%': 'directive',
'{{': 'output',
'{#': 'comment'
};
var operators = {
and: '&&',
or: '||',
not: '!',
is: '==',
isnot: '!='
};
var constants = {
'true': true,
'false': false,
'null': null
};
function Parser() {
this.nest = [];
this.compiled = [];
this.childBlocks = 0;
this.parentBlocks = 0;
this.isSilent = false;
}
Parser.prototype.push = function(line) {
if (!this.isSilent) {
this.compiled.push(line);
}
};
Parser.prototype.parse = function(src) {
this.tokenize(src);
return this.compiled;
};
Parser.prototype.tokenize = function(src) {
var lastEnd = 0,
parser = this,
trimLeading = false;
matchAll(src, START_TOKEN, function(open, index, src) {
//here we match the rest of the src against a regex for this tag
var match = src.slice(index + open.length).match(TAGS[open]);
match = (match ? match[0] : '');
//here we sub out strings so we don't get false matches
var simplified = match.replace(STRINGS, '@');
//if we don't have a close tag or there is a nested open tag
if (!match || ~simplified.indexOf(open)) {
return index + 1;
}
var inner = match.slice(0, 0 - open.length);
//check for white-space collapse syntax
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
if (inner.slice(-1) === '-') var wsCollapseRight = true;
inner = inner.replace(/^-|-$/g, '').trim();
//if we're in raw mode and we are not looking at an "endraw" tag, move along
if (parser.rawMode && (open + inner) !== '{%endraw') {
return index + 1;
}
var text = src.slice(lastEnd, index);
lastEnd = index + open.length + match.length;
if (trimLeading) text = trimLeft(text);
if (wsCollapseLeft) text = trimRight(text);
if (wsCollapseRight) trimLeading = true;
if (open === '{{{') {
//liquid-style: make {{{x}}} => {{x|safe}}
open = '{{';
inner += '|safe';
}
parser.textHandler(text);
parser.tokenHandler(open, inner);
});
var text = src.slice(lastEnd);
if (trimLeading) text = trimLeft(text);
this.textHandler(text);
};
Parser.prototype.textHandler = function(text) {
this.push('write(' + JSON.stringify(text) + ');');
};
Parser.prototype.tokenHandler = function(open, inner) {
var type = delimeters[open];
if (type === 'directive') {
this.compileTag(inner);
} else if (type === 'output') {
var extracted = this.extractEnt(inner, STRINGS, '@');
//replace || operators with ~
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
//put back || operators
extracted.src = extracted.src.map(function(part) {
return part.split('~').join('||');
});
var parts = this.injectEnt(extracted, '@');
if (parts.length > 1) {
var filters = parts.slice(1).map(this.parseFilter.bind(this));
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
} else {
this.push('filter(' + this.parseExpr(parts[0]) + ');');
}
}
};
Parser.prototype.compileTag = function(str) {
var directive = str.split(' ')[0];
var handler = tagHandlers[directive];
if (!handler) {
throw new Error('Invalid tag: ' + str);
}
handler.call(this, str.slice(directive.length).trim());
};
Parser.prototype.parseFilter = function(src) {
src = src.trim();
var match = src.match(/[:(]/);
var i = match ? match.index : -1;
if (i < 0) return JSON.stringify([src]);
var name = src.slice(0, i);
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
args = this.parseExpr(args, {
terms: true
});
return '[' + JSON.stringify(name) + ',' + args + ']';
};
Parser.prototype.extractEnt = function(src, regex, placeholder) {
var subs = [],
isFunc = typeof placeholder == 'function';
src = src.replace(regex, function(str) {
var replacement = isFunc ? placeholder(str) : placeholder;
if (replacement) {
subs.push(str);
return replacement;
}
return str;
});
return {
src: src,
subs: subs
};
};
Parser.prototype.injectEnt = function(extracted, placeholder) {
var src = extracted.src,
subs = extracted.subs,
isArr = Array.isArray(src);
var arr = (isArr) ? src : [src];
var re = new RegExp('[' + placeholder + ']', 'g'),
i = 0;
arr.forEach(function(src, index) {
arr[index] = src.replace(re, function() {
return subs[i++];
});
});
return isArr ? arr : arr[0];
};
//replace complex literals without mistaking subscript notation with array literals
Parser.prototype.replaceComplex = function(s) {
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
return this.injectEnt(parsed, 'v');
};
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
Parser.prototype.parseExpr = function(src, opts) {
opts = opts || {};
//extract string literals -> @
var parsed1 = this.extractEnt(src, STRINGS, '@');
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
parsed1.src = parsed1.src.replace(EOPS, function(s, before, op, after) {
return (op in operators) ? before + operators[op] + after : s;
});
//sub out non-string literals (numbers/true/false/null) -> #
// the distinction is necessary because @ can be object identifiers, # cannot
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function(s) {
return (s in constants || NUMBER.test(s)) ? '#' : null;
});
//sub out object/variable identifiers -> i
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
//remove white-space
parsed3.src = parsed3.src.replace(/\s+/g, '');
//the rest of this is simply to boil the expression down and check validity
var simplified = parsed3.src;
//sub out complex literals (objects/arrays) -> ~
// the distinction is necessary because @ and # can be subscripts but ~ cannot
while (simplified !== (simplified = this.replaceComplex(simplified)));
//now @ represents strings, # represents other primitives and ~ represents non-primitives
//replace complex variables (those with dot/subscript accessors) -> v
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v')));
//empty subscript or complex variables in subscript, are not permitted
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
simplified = simplified.replace(/[@#~v]/g, 'i');
//sub out operators
simplified = simplified.replace(OPERATORS, '%');
//allow 'not' unary operator
simplified = simplified.replace(/!+[i]/g, 'i');
var terms = opts.terms ? simplified.split(',') : [simplified];
terms.forEach(function(term) {
//simplify logical grouping
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i')));
if (!term.match(/^i(%i)*/)) {
throw new Error('Invalid expression: ' + src + " " + term);
}
});
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
parsed2.src = this.injectEnt(parsed3, 'i');
parsed1.src = this.injectEnt(parsed2, '#');
return this.injectEnt(parsed1, '@');
};
Parser.prototype.parseVar = function(src) {
var args = Array.prototype.slice.call(arguments);
var str = args.pop(),
index = args.pop();
//quote bare object identifiers (might be a reserved word like {while: 1})
if (src === 'i' && str.charAt(index + 1) === ':') {
return '"i"';
}
var parts = ['"i"'];
src.replace(ACCESSOR, function(part) {
if (part === '.i') {
parts.push('"i"');
} else if (part === '[i]') {
parts.push('get("i")');
} else {
parts.push(part.slice(1, -1));
}
});
return 'get(' + parts.join(',') + ')';
};
//escapes a name to be used as a javascript identifier
Parser.prototype.escName = function(str) {
return str.replace(/\W/g, function(s) {
return '$' + s.charCodeAt(0).toString(16);
});
};
Parser.prototype.parseQuoted = function(str) {
if (str.charAt(0) === "'") {
str = str.slice(1, -1).replace(/\\.|"/, function(s) {
if (s === "\\'") return "'";
return s.charAt(0) === '\\' ? s : ('\\' + s);
});
str = '"' + str + '"';
}
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
return JSON.parse(str);
};
//the context 'this' inside tagHandlers is the parser instance
var tagHandlers = {
'if': function(expr) {
this.push('if (' + this.parseExpr(expr) + ') {');
this.nest.unshift('if');
},
'else': function() {
if (this.nest[0] === 'for') {
this.push('}, function() {');
} else {
this.push('} else {');
}
},
'elseif': function(expr) {
this.push('} else if (' + this.parseExpr(expr) + ') {');
},
'endif': function() {
this.nest.shift();
this.push('}');
},
'for': function(str) {
var i = str.indexOf(' in ');
var name = str.slice(0, i).trim();
var expr = str.slice(i + 4).trim();
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
this.nest.unshift('for');
},
'endfor': function() {
this.nest.shift();
this.push('});');
},
'raw': function() {
this.rawMode = true;
},
'endraw': function() {
this.rawMode = false;
},
'set': function(stmt) {
var i = stmt.indexOf('=');
var name = stmt.slice(0, i).trim();
var expr = stmt.slice(i + 1).trim();
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
},
'block': function(name) {
if (this.isParent) {
++this.parentBlocks;
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
} else if (this.hasParent) {
this.isSilent = false;
++this.childBlocks;
blockName = 'block_' + (this.escName(name) || this.childBlocks);
this.push('function ' + blockName + '() {');
}
this.nest.unshift('block');
},
'endblock': function() {
this.nest.shift();
if (this.isParent) {
this.push('});');
} else if (this.hasParent) {
this.push('}');
this.isSilent = true;
}
},
'extends': function(name) {
name = this.parseQuoted(name);
var parentSrc = this.readTemplateFile(name);
this.isParent = true;
this.tokenize(parentSrc);
this.isParent = false;
this.hasParent = true;
//silence output until we enter a child block
this.isSilent = true;
},
'include': function(name) {
name = this.parseQuoted(name);
var incSrc = this.readTemplateFile(name);
this.isInclude = true;
this.tokenize(incSrc);
this.isInclude = false;
}
};
//liquid style
tagHandlers.assign = tagHandlers.set;
//python/django style
tagHandlers.elif = tagHandlers.elseif;
var getRuntime = function runtime(data, opts) {
var defaults = {
autoEscape: 'toJson'
};
var _toString = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty;
var getKeys = Object.keys || function(obj) {
var keys = [];
for (var n in obj)
if (_hasOwnProperty.call(obj, n)) keys.push(n);
return keys;
};
var isArray = Array.isArray || function(obj) {
return _toString.call(obj) === '[object Array]';
};
var create = Object.create || function(obj) {
function F() {}
F.prototype = obj;
return new F();
};
var toString = function(val) {
if (val == null) return '';
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
};
var extend = function(dest, src) {
var keys = getKeys(src);
for (var i = 0, len = keys.length; i < len; i++) {
var key = keys[i];
dest[key] = src[key];
}
return dest;
};
//get a value, lexically, starting in current context; a.b -> get("a","b")
var get = function() {
var val, n = arguments[0],
c = stack.length;
while (c--) {
val = stack[c][n];
if (typeof val != 'undefined') break;
}
for (var i = 1, len = arguments.length; i < len; i++) {
if (val == null) continue;
n = arguments[i];
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
}
return (val == null) ? '' : val;
};
var set = function(n, val) {
stack[stack.length - 1][n] = val;
};
var push = function(ctx) {
stack.push(ctx || {});
};
var pop = function() {
stack.pop();
};
var write = function(str) {
output.push(str);
};
var filter = function(val) {
for (var i = 1, len = arguments.length; i < len; i++) {
var arr = arguments[i],
name = arr[0],
filter = filters[name];
if (filter) {
arr[0] = val;
//now arr looks like [val, arg1, arg2]
val = filter.apply(data, arr);
} else {
throw new Error('Invalid filter: ' + name);
}
}
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
//auto escape if not explicitly safe or already escaped
val = filters[opts.autoEscape].call(data, val);
}
output.push(val);
};
var each = function(obj, loopvar, fn1, fn2) {
if (obj == null) return;
var arr = isArray(obj) ? obj : getKeys(obj),
len = arr.length;
var ctx = {
loop: {
length: len,
first: arr[0],
last: arr[len - 1]
}
};
push(ctx);
for (var i = 0; i < len; i++) {
extend(ctx.loop, {
index: i + 1,
index0: i
});
fn1(ctx[loopvar] = arr[i]);
}
if (len === 0 && fn2) fn2();
pop();
};
var block = function(fn) {
push();
fn();
pop();
};
var render = function() {
return output.join('');
};
data = data || {};
opts = extend(defaults, opts || {});
var filters = extend({
html: function(val) {
return toString(val)
.split('&').join('&amp;')
.split('<').join('&lt;')
.split('>').join('&gt;')
.split('"').join('&quot;');
},
safe: function(val) {
return val;
},
toJson: function(val) {
if (typeof val === 'object') {
return JSON.stringify(val);
}
return toString(val);
}
}, opts.filters || {});
var stack = [create(data || {})],
output = [];
return {
get: get,
set: set,
push: push,
pop: pop,
write: write,
filter: filter,
each: each,
block: block,
render: render
};
};
var runtime;
jinja.compile = function(markup, opts) {
opts = opts || {};
var parser = new Parser();
parser.readTemplateFile = this.readTemplateFile;
var code = [];
code.push('function render($) {');
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
code.push.apply(code, parser.parse(markup));
code.push('return $.render();');
code.push('}');
code = code.join('\n');
if (opts.runtime === false) {
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
} else {
runtime = runtime || (runtime = getRuntime.toString());
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
}
return {
render: fn
};
};
jinja.render = function(markup, data, opts) {
var tmpl = jinja.compile(markup);
return tmpl.render(data, opts);
};
jinja.templateFiles = [];
jinja.readTemplateFile = function(name) {
var templateFiles = this.templateFiles || [];
var templateFile = templateFiles[name];
if (templateFile == null) {
throw new Error('Template file not found: ' + name);
}
return templateFile;
};
/*!
* Helpers
*/
function trimLeft(str) {
return str.replace(LEADING_SPACE, '');
}
function trimRight(str) {
return str.replace(TRAILING_SPACE, '');
}
function matchAll(str, reg, fn) {
//copy as global
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
var match;
while ((match = reg.exec(str))) {
var result = fn(match[0], match.index, str);
if (typeof result == 'number') {
reg.lastIndex = result;
}
}
}
}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

1439
欧歌/api/pako.min.js vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,429 +0,0 @@
if (typeof Object.assign !== 'function') {
Object.assign = function() {
let target = arguments[0];
for (let i = 1; i < arguments.length; i++) {
let source = arguments[i];
for (let key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
}
// 通用免嗅探播放
let common_lazy = `js:
let html = request(input);
let hconf = html.match(/r player_.*?=(.*?)</)[1];
let json = JSON5.parse(hconf);
let url = json.url;
if (json.encrypt == '1') {
url = unescape(url);
} else if (json.encrypt == '2') {
url = unescape(base64Decode(url));
}
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
input = {
parse: 0,
jx: 0,
url: url,
};
} else {
input = url && url.startsWith('http') && tellIsJx(url) ? {parse:0,jx:1,url:url}:input;
}`;
// 默认嗅探播放
let def_lazy = `js:
input = { parse: 1, url: input, js: '' };`;
// 采集站播放
let cj_lazy = `js:
if (/\\.(m3u8|mp4)/.test(input)) {
input = { parse: 0, url: input };
} else {
if (rule.parse_url.startsWith('json:')) {
let purl = rule.parse_url.replace('json:', '') + input;
let html = request(purl);
let json = JSON.parse(html);
if (json.url) {
input = { parse: 0, url: json.url };
}
} else {
input = rule.parse_url + input;
}
}`;
function getMubans() {
const mubanDict = { // 模板字典
mx: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---/',
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
searchable: 2,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true,
推荐: '.cbox_list;*;*;*;*;*',
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
二级: {
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
img: '.vodlist_thumb&&data-original',
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
content: '.content_desc&&span&&Text',
tabs: '.play_source_tab&&a',
lists: '.content_playlist:eq(#id) li',
},
搜索: '*',
},
mxpro: {
title: '',
host: '', // homeUrl:'/',
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.navbar-items li:gt(0):lt(10);a&&Text;a&&href;/(\\d+)',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级: {
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
img: '.lazyload&&data-original||data-src||src',
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
content: '.module-info-introduction&&Text',
tabs: '.module-tab-item',
lists: '.module-play-list:eq(#id) a',
tab_text: 'div--small&&Text',
},
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
},
mxone5: {
title: '',
host: '',
url: '/show/fyclass--------fypage---.html',
searchUrl: '/search/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?)\.html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
二级: {
title: 'h1&&Text;.tag-link&&Text',
img: '.module-item-pic&&img&&data-src',
desc: '.video-info-items:eq(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
content: '.vod_content&&Text',
tabs: '.module-tab-item',
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
tab_text: 'div--small&&Text',
},
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
},
首图: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
img: '.myui-content__thumb .lazyload&&data-original',
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
content: '.content&&Text',
tabs: '.myui-panel__head&&li',
// tabs: '.nav-tabs&&li',
lists: '.myui-content__list:eq(#id) li',
},
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
},
首图2: {
title: '',
host: '',
url: '/list/fyclass-fypage.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA', // "Cookie": ""
},
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
title: '.stui-content__detail .title&&Text;.stui-content__detail&&p:eq(-2)&&a&&Text',
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
img: '.stui-content__thumb .lazyload&&data-original',
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
content: '.detail&&Text',
tabs: '.stui-pannel__head h3',
tabs1: '.stui-vodlist__head h3',
lists: '.stui-content__playlist:eq(#id) li',
},
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
},
默认: {
title: '',
host: '',
url: '',
searchUrl: '',
searchable: 2,
quickSearch: 0,
filterable: 0,
filter: '',
filter_url: '',
filter_def: {},
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
cate_exclude: '',
play_parse: true,
lazy: def_lazy,
double: true,
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
一级: '列表;标题;图片;描述;链接;详情',
二级: {
title: 'vod_name;vod_type',
img: '图片链接',
desc: '主要信息;年代;地区;演员;导演',
content: '简介',
tabs: '',
lists: 'xx:eq(#id)&&a',
tab_text: 'body&&Text',
list_text: 'body&&Text',
list_url: 'a&&href',
},
搜索: '列表;标题;图片;描述;链接;详情',
},
vfed: {
title: '',
host: '',
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA',
},
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
二级: {
title: 'h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text',
img: '.fed-list-info&&a&&data-original',
desc: '.fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text',
content: '.fed-part-esan&&Text',
tabs: '.fed-drop-boxs&&.fed-part-rows&&li',
lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li',
},
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
},
海螺3: {
title: '',
host: '',
searchUrl: '/v_search/**----------fypage---.html',
url: '/vod_____show/fyclass--------fypage---.html',
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '明星|专题|最新|排行',
limit: 40,
play_parse: true,
lazy: common_lazy,
double: true,
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
二级: {
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
img: '.hl-lazy&&data-original',
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
content: '.hl-content-text&&Text',
tabs: '.hl-tabs&&a',
tab_text: 'a--span&&Text',
lists: '.hl-plays-list:eq(#id)&&li',
},
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
},
海螺2: {
title: '',
host: '',
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
url: '/index.php/vod/show/id/fyclass/page/fypage/',
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
limit: 40,
play_parse: true,
lazy: common_lazy,
double: true,
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
二级: {
title: 'h2&&Text;.deployment&&Text',
img: '.lazy&&data-original',
desc: '.deployment&&Text',
content: '.ec-show&&Text',
tabs: '#tag&&a',
lists: '.play_list_box:eq(#id)&&li',
},
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
},
短视: {
title: '',
host: '', // homeUrl:'/',
url: '/channel/fyclass-fypage.html',
searchUrl: '/search.html?wd=**',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '解析|动态',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
二级: {
title: 'h1&&Text;.content-rt&&p:eq(0)&&Text',
img: '.img&&img&&data-src',
desc: '.content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text',
content: '.zkjj_a&&Text',
tabs: '.py-tabs&&option',
lists: '.player:eq(#id) li',
},
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
},
短视2: {
title: '',
host: '',
class_name: '电影&电视剧&综艺&动漫',
class_url: '1&2&3&4',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2,
quickSearch: 0,
headers: {
'User-Agent': 'MOBILE_UA'
},
url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable: 0, //是否启用分类筛选,
filter_url: '',
filter: {},
filter_def: {},
detailUrl: '/index.php/vod/detail/id/fyid.html',
play_parse: true,
lazy: common_lazy,
limit: 6,
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
二级: {
title: '.slide-info-title&&Text;.slide-info:eq(2)--strong&&Text',
img: '.detail-pic&&data-original',
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
content: '#height_limit&&Text',
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
tab_text: 'a--span&&Text',
lists: '.anthology-list-box:eq(#id) li',
},
搜索: 'json:list;name;pic;;id',
},
采集1: {
title: '',
host: '',
homeTid: '13',
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
// class_url: '1&2&3&4',
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
class_parse: 'json:class;',
limit: 20,
multi: 1,
searchable: 2, //是否启用全局搜索,
quickSearch: 1, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
play_parse: true,
parse_url: '',
lazy: cj_lazy,
推荐: '*',
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
二级: `js:
let html=request(input);
html=JSON.parse(html);
let data=html.list;
VOD=data[0];`,
搜索: '*',
},
};
return JSON.parse(JSON.stringify(mubanDict));
}
var mubanDict = getMubans();
var muban = getMubans();
export default {
muban,
getMubans
};

View File

@@ -1,811 +0,0 @@
{ "cookie": " buvid3=8B57D3BA-607A-1E85-018A-E8C430023CED42659infoc; b_lsid=BEB8EE7F_18742FF8C2E; bsource=search_baidu; _uuid=DE810E367-B52C-AF6E-A612-EDF4C31567F358591infoc; b_nut=100; buvid_fp=711a632b5c876fa8bbcf668c1efba551; SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7; sid=5h4ruv6o; buvid4=978E9208-13DA-F87A-3DC0-0B8EDF46E80434329-123040301-dWliG5BMrUb70r3g583u7w%3D%3D",
"filter": {
"dianshiju": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "yanqing",
"n": "言情"
},
{
"v": "ouxiang",
"n": "偶像"
},
{
"v": "dushi",
"n": "都市"
},
{
"v": "zhanzheng",
"n": "战争"
},
{
"v": "xuanyi",
"n": "悬疑"
},
{
"v": "lunli",
"n": "伦理"
},
{
"v": "jingsong",
"n": "惊悚"
},
{
"v": "wangluoju",
"n": "网络剧"
},
{
"v": "jingfei",
"n": "警匪"
},
{
"v": "guzhuang",
"n": "古装"
},
{
"v": "wuxia",
"n": "武侠"
},
{
"v": "shenhua",
"n": "神话"
},
{
"v": "lishi",
"n": "历史"
},
{
"v": "dongzuo",
"n": "动作"
},
{
"v": "diezhan",
"n": "谍战"
},
{
"v": "xiju",
"n": "喜剧"
},
{
"v": "kangri",
"n": "抗日"
},
{
"v": "jiating",
"n": "家庭"
},
{
"v": "juqing",
"n": "剧情"
},
{
"v": "lizhi",
"n": "励志"
},
{
"v": "nongcun",
"n": "农村"
},
{
"v": "kehuan",
"n": "科幻"
},
{
"v": "junlv",
"n": "军旅"
},
{
"v": "qihuan",
"n": "奇幻"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "neidi",
"n": "内地"
},
{
"v": "taiwan",
"n": "台湾"
},
{
"v": "xianggang",
"n": "香港"
},
{
"v": "hanguo",
"n": "韩国"
},
{
"v": "meiguo",
"n": "美国"
},
{
"v": "taiguo",
"n": "泰国"
},
{
"v": "riben",
"n": "日本"
},
{
"v": "yingguo",
"n": "英国"
},
{
"v": "xinjiapo",
"n": "新加坡"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "area"
},
{
"name": "年份",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "2024",
"n": "2024"
},
{
"v": "2023",
"n": "2023"
},
{
"v": "2022",
"n": "2022"
},
{
"v": "2021",
"n": "2021"
},
{
"v": "2020",
"n": "2020"
},
{
"v": "2019",
"n": "2019"
},
{
"v": "2018",
"n": "2018"
},
{
"v": "2017",
"n": "2017"
},
{
"v": "2016",
"n": "2016"
},
{
"v": "2015",
"n": "2015"
},
{
"v": "2014",
"n": "2014"
},
{
"v": "2013",
"n": "2013"
},
{
"v": "2012",
"n": "2012"
},
{
"v": "2011",
"n": "2011"
},
{
"v": "20102000",
"n": "2010-2000"
},
{
"v": "19991990",
"n": "90年代"
},
{
"v": "19891800",
"n": "更早"
}
],
"key": "year"
}
],
"zongyi": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "lxxuanxiu/",
"n": "选秀"
},
{
"v": "lxqinggan/",
"n": "情感"
},
{
"v": "lxfangtan/",
"n": "访谈"
},
{
"v": "lxgaoxiao/",
"n": "搞笑"
},
{
"v": "lxyouxi/",
"n": "游戏"
},
{
"v": "lxzhichang/",
"n": "职场"
},
{
"v": "lxyule/",
"n": "娱乐"
},
{
"v": "lxzhenrenxiu/",
"n": "真人秀"
},
{
"v": "lxshenghuo/",
"n": "生活"
},
{
"v": "lxtiyu/",
"n": "体育"
},
{
"v": "lxshenghui/",
"n": "盛会"
},
{
"v": "lxcaijing/",
"n": "财经"
},
{
"v": "lxqinzi/",
"n": "亲子"
},
{
"v": "lxjishi/",
"n": "纪实"
},
{
"v": "lxtuokouxiu/",
"n": "脱口秀"
},
{
"v": "lxwangluojiemu/",
"n": "网络节目"
},
{
"v": "lxmeishi/",
"n": "美食"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "dqdalu/",
"n": "大陆"
},
{
"v": "dqgangtai/",
"n": "港台"
},
{
"v": "dqrihan/",
"n": "日韩"
},
{
"v": "dqoumei/",
"n": "欧美"
},
{
"v": "dqqita/",
"n": "其他"
}
],
"key": "area"
}
],
"dongman": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "lxrexue/",
"n": "热血"
},
{
"v": "lxaiqing/",
"n": "爱情"
},
{
"v": "lxgaoxiao/",
"n": "搞笑"
},
{
"v": "lxmeinv/",
"n": "美女"
},
{
"v": "lxshaoer/",
"n": "少儿"
},
{
"v": "lxqinzi/",
"n": "亲子"
},
{
"v": "lxmofa/",
"n": "魔法"
},
{
"v": "lxyundong/",
"n": "运动"
},
{
"v": "lxjizhan/",
"n": "机战"
},
{
"v": "lxkehuan/",
"n": "科幻"
},
{
"v": "lxxiaoyuan/",
"n": "校园"
},
{
"v": "lxdongwu/",
"n": "动物"
},
{
"v": "lxmaoxian/",
"n": "冒险"
},
{
"v": "lxshenhua/",
"n": "神话"
},
{
"v": "lxtuili/",
"n": "推理"
},
{
"v": "lxjuqing/",
"n": "剧情"
},
{
"v": "lxlishi/",
"n": "历史"
},
{
"v": "lxzhanzheng/",
"n": "战争"
},
{
"v": "lxjingdian/",
"n": "经典"
},
{
"v": "lxnanxingxiang/",
"n": "男性向"
},
{
"v": "lxnvxingxiang/",
"n": "女性向"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "dqdalu/",
"n": "大陆"
},
{
"v": "dqriben/",
"n": "日本"
},
{
"v": "dqmeiguo/",
"n": "美国"
},
{
"v": "dqhanguo/",
"n": "韩国"
},
{
"v": "dqqita/",
"n": "其他"
}
],
"key": "area"
},
{
"name": "年份",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "nd2022/",
"n": "2022"
},
{
"v": "nd2021/",
"n": "2021"
},
{
"v": "nd2020/",
"n": "2020"
},
{
"v": "nd2019/",
"n": "2019"
},
{
"v": "nd2018/",
"n": "2018"
},
{
"v": "nd2017/",
"n": "2017"
},
{
"v": "nd2016/",
"n": "2016"
},
{
"v": "nd2015/",
"n": "2015"
},
{
"v": "nd2014/",
"n": "2014"
},
{
"v": "nd2013/",
"n": "2013"
},
{
"v": "nd2012/",
"n": "2012"
},
{
"v": "nd2011/",
"n": "2011"
},
{
"v": "nd20102000/",
"n": "2010-2000"
},
{
"v": "nd19991800/",
"n": "更早"
}
],
"key": "year"
}
],
"dianying": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "aiqing",
"n": "爱情"
},
{
"v": "dongzuo",
"n": "动作"
},
{
"v": "xiju",
"n": "喜剧"
},
{
"v": "zhanzheng",
"n": "战争"
},
{
"v": "kehuan",
"n": "科幻"
},
{
"v": "juqing",
"n": "剧情"
},
{
"v": "wuxia",
"n": "武侠"
},
{
"v": "maoxian",
"n": "冒险"
},
{
"v": "qiangzhan",
"n": "枪战"
},
{
"v": "kongbu",
"n": "恐怖"
},
{
"v": "xuanyi",
"n": "悬疑"
},
{
"v": "fanzui",
"n": "犯罪"
},
{
"v": "qihuan",
"n": "奇幻"
},
{
"v": "donghua",
"n": "动画"
},
{
"v": "jingsong",
"n": "惊悚"
},
{
"v": "jingdian",
"n": "经典"
},
{
"v": "qingchun",
"n": "青春"
},
{
"v": "wenyi",
"n": "文艺"
},
{
"v": "weidianying",
"n": "微电影"
},
{
"v": "guzhuang",
"n": "古装"
},
{
"v": "lishi",
"n": "历史"
},
{
"v": "yundong",
"n": "运动"
},
{
"v": "nongcun",
"n": "农村"
},
{
"v": "ertong",
"n": "儿童"
},
{
"v": "wangluodianying",
"n": "网络电影"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "neidi",
"n": "内地"
},
{
"v": "meiguo",
"n": "美国"
},
{
"v": "xianggang",
"n": "香港"
},
{
"v": "taiwan",
"n": "台湾"
},
{
"v": "riben",
"n": "日本"
},
{
"v": "taiguo",
"n": "泰国"
},
{
"v": "yindu",
"n": "印度"
},
{
"v": "dongnanyadiqu",
"n": "东南亚地区"
},
{
"v": "oumeidiqu",
"n": "欧美地区"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "area"
},
{
"name": "年份",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "2022",
"n": "2022"
},
{
"v": "2021",
"n": "2021"
},
{
"v": "2020",
"n": "2020"
},
{
"v": "2019",
"n": "2019"
},
{
"v": "2018",
"n": "2018"
},
{
"v": "2017",
"n": "2017"
},
{
"v": "2016",
"n": "2016"
},
{
"v": "2015",
"n": "2015"
},
{
"v": "2014",
"n": "2014"
},
{
"v": "2013",
"n": "2013"
},
{
"v": "2012",
"n": "2012"
},
{
"v": "2011",
"n": "2011"
},
{
"v": "20102000",
"n": "2010-2000"
},
{
"v": "19691800",
"n": "更早"
}
],
"key": "year"
}
]
},
"classes": [
{
"type_name": "电影",
"type_id": "dianying"
},
{
"type_name": "电视剧",
"type_id": "dianshiju"
},
{
"type_name": "综艺",
"type_id": "zongyi"
},
{
"type_name": "热播电影",
"type_id": "jingdian"
},
{
"type_name": "动漫",
"type_id": "dongman"
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.