天空影视
https://skyysw.com/
Simwoodone (12535)06/08 15:24
该用户很懒,什么介绍也没有写!
{
"bookSourceUrl": "https:\/\/skyysw.com\/",
"bookSourceName": "天空影视",
"enabledExplore": true,
"enabled": true,
"bookSourceGroup": "有声漫画",
"author": "",
"help": false,
"html": "<!DOCTYPE html>\n<html lang=\"zh\">\n<head><meta charset=\"UTF-8\"><title>天空影视<\/title><\/head>\n<body><\/body>\n<script src=\"https:\/\/vc.jd.com\/web\/js\/jquery-3.1.1.min.js\"><\/script>\n<script>\nvar isCookieJar=true;\nvar BASE=\"https:\/\/skyysw.com\";\nvar UA={\"User-Agent\":\"Mozilla\/5.0\"};\n\nclass FlutterJSBridge{constructor(){this.init()}\ninit(){try{if(window.flutter_inappwebview)window.flutter_inappwebview.callHandler('CookieJar',isCookieJar)}catch(e){}}\nasync log(s){try{await window.flutter_inappwebview.callHandler('log',s)}catch(e){}}\nasync text(t,s){try{await window.flutter_inappwebview.callHandler('text',t,s)}catch(e){}}\nasync showvideoplay(u,t,k){try{await window.flutter_inappwebview.callHandler('showvideoplay',u,t,k)}catch(e){}}\nasync startBrowser(u,t,h){try{await window.flutter_inappwebview.callHandler('startBrowser',u,t,h)}catch(e){}}\n}\nclass Http{constructor(){}\nasync Get(u,h,f){return await window.flutter_inappwebview.callHandler('http',\"get\",u,\"\",JSON.stringify(h),f,\"\")}\n}\nconst flutterBridge=new FlutterJSBridge();\nconst http=new Http();\n\nvar PLAY_SVG=\"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB2aWV3Qm94PSIwIDAgMjMgMjgiPjxkZWZzPjxmaWx0ZXIgaWQ9InMiPjxmZURyb3BTaGFkb3cgZHg9IjAiIGR5PSIwLjYiIHN0ZERldmlhdGlvbj0iMC43IiBmbG9vZC1jb2xvcj0iIzAwMCIgZmxvb2Qtb3BhY2l0eT0iMC4zNSIvPjwvZmlsdGVyPjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LjUsNCkiPjxwYXRoIGQ9Ik0wIDBoMTR2MTRIMHoiIGZpbGw9Im5vbmUiLz48ZyBmaWxsPSJub25lIj48cGF0aCBmaWxsPSIjMjg1OWM1IiBkPSJNNC41IDguODgyVjUuMTE4YTEgMSAwIDAgMSAxLjQ0Ny0uODk0bDMuNzY0IDEuODgyYTEgMSAwIDAgMSAwIDEuNzg4TDUuOTQ3IDkuNzc2QTEgMSAwIDAgMSA0LjUgOC44ODIiLz48cGF0aCBmaWxsPSIjOGZiZmZhIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjA5LjA4NGEuNzUuNzUgMCAwIDAtLjIzMiAxLjQ4MkE1LjUwMiA1LjUwMiAwIDAgMSA3IDEyLjVhNS41IDUuNSAwIDAgMS01LjExNi0zLjQ3NWEuNzUuNzUgMCAwIDAtMS4zOTQuNTUyQTcuMDAyIDcuMDAyIDAgMCAwIDE0IDdBNyA3IDAgMCAwIDguMDkuMDg0bS0yLjQ2NiAxLjQ5QS43NS43NSAwIDAgMCA1LjI1MS4xMjNhNyA3IDAgMCAwLS45MzguMzE0YS43NS43NSAwIDAgMCAuNTc2IDEuMzg1cS4zNTYtLjE0OC43MzUtLjI0Nk0zLjE3IDIuOTU1YS43NS43NSAwIDAgMC0xLjA0NC0xLjA3NkE3IDcgMCAwIDAgLjkxNyAzLjQzNWEuNzUuNzUgMCAxIDAgMS4zMDMuNzQ0Yy4yNTgtLjQ1Mi41NzgtLjg2NC45NS0xLjIyNE0xLjU1NCA2LjEyN2EuNzUuNzUgMCAxIDAtMS40ODUtLjIxQTcgNyAwIDAgMCAwIDYuOTAzYS43NS43NSAwIDEgMCAxLjUgMHEwLS4zOTYuMDU0LS43NzYiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48L2c+PHRleHQgeD0iMTEuNSIgeT0iMjUuNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxLjMiIGZvbnQtZmFtaWx5PSJzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxQaW5nRmFuZyBTQyxNaWNyb3NvZnQgWWFIZWksc2Fucy1zZXJpZiIgZmlsbD0iIzI4NTljNSIgZm9udC13ZWlnaHQ9ImJvbGQiIGZpbHRlcj0idXJsKCNzKSI+54K55Ye75pKt5pS+PC90ZXh0Pjwvc3ZnPg==\";\n$.showvideoplay=function(u,t,k){flutterBridge.showvideoplay(u,t,k)};\nfunction showvideoplay(u,t,k){flutterBridge.showvideoplay(u,t,k)}\nfunction enc(s){return encodeURIComponent(s)}\nfunction dec(s){return decodeURIComponent(s)}\n\n\/\/ === 搜索 (卡片外层是<a>标签, 内嵌thumb+video-info) ===\nasync function search(key,page){\n if(page>2)return\"[]\";\n var u=BASE+\"\/index.php\/vod\/search\/wd\/\"+encodeURIComponent(key)+\"\/page\/\"+page+\".html\";\n var r=await http.Get(u,UA,true);\n flutterBridge.text(0,r.data);\n var $doc=$($.parseHTML(r.data));\n var books=[];\n \/\/ 搜索页卡片: <a href=\"\/vod\/detail\/...\"><div class=\"thumb\"><div class=\"video-info\">...<\/div><\/a>\n var items=$doc.find(\"a[href*='\/vod\/detail\/']\");\n var seen={};\n items.each(function(){\n var $a=$(this);\n var href=$a.attr(\"href\");\n if(!href||href.indexOf(\"\/vod\/detail\/\")<0||seen[href])return;\n seen[href]=true;\n var title=$a.find(\".video-info .title\").text().trim()||$a.find(\".title\").text().trim()||\"\";\n var cover=$a.find(\"img\").attr(\"src\")||\"\";\n if(cover&&!cover.startsWith(\"http\"))cover=BASE+cover;\n books.push({bookUrl:BASE+href,name:title,author:\"\",kind:\"\",coverUrl:cover,intro:\"\",tocUrl:BASE+href,wordCount:\"\",type:0,latestChapterTitle:\"\"});\n });\n return JSON.stringify(books);\n}\n\n\/\/ === 详情 ===\nasync function info(bookurl){\n var r=await http.Get(bookurl,UA,true);\n flutterBridge.text(1,r.data);\n var $h=$($.parseHTML(r.data));\n var title=$h.find(\"title\").text().replace(\/详情介绍.*$\/,\"\").trim()||\"\";\n var cover=$h.find(\"img\").attr(\"src\")||\"\";\n if(cover&&!cover.startsWith(\"http\"))cover=BASE+cover;\n var intro=$h.find(\"meta[property='og:description']\").attr(\"content\")||\"\";\n return JSON.stringify({bookUrl:bookurl,name:title,author:\"\",kind:\"\",coverUrl:cover,intro:intro?\"@html:\"+intro:\"\",tocUrl:bookurl,wordCount:\"\",type:0,latestChapterTitle:\"\"});\n}\n\n\/\/ === 选集 (第一个播放源tab) ===\nasync function chapter(tocUrl){\n var r=await http.Get(tocUrl,UA,true);\n flutterBridge.text(2,r.data);\n var $h=$($.parseHTML(r.data));\n var chapters=[];\n \/\/ 优先 #playlist1 的 .listitem a, 回退到任意 .listitem a\n var links=$h.find(\"#playlist1 .listitem a, .tab-pane.active .listitem a, .play-box .listitem a\");\n if(links.length===0)links=$h.find(\"a[href*='\/vod\/play\/']\");\n links.each(function(i){\n var href=$(this).attr(\"href\");\n if(!href||href.indexOf(\"\/vod\/play\/\")<0)return;\n var name=$(this).text().trim()||\"\";\n chapters.push({name:name,chapterId:enc(BASE+href),index:i,isPay:false,isVip:false,isVolume:false,tag:\"\"});\n });\n return JSON.stringify(chapters);\n}\n\n\/\/ === 播放 (提取player_aaaa中的m3u8) ===\nasync function content(url,bookurl){\n var playUrl=dec(url);\n if(!playUrl)return\"无效地址\";\n var r=await http.Get(playUrl,UA,true);\n var h=r.data||\"\";\n var v=\"\";\n var m=h.match(\/\"url\"\\s*:\\s*\"(https?:[^\"]+\\.m3u8[^\"]*)\"\/i);\n if(m)v=m[1].replace(\/\\\\\\\/\/g,\"\/\");\n if(!v){m=h.match(\/(https?:\\\/\\\/[^\\s\"'<>]+\\.m3u8[^\\s\"'<>]*)\/i);if(m)v=m[1];}\n if(v)return'<img src=\"data:image\/svg+xml;base64,'+PLAY_SVG+',{"js":"showvideoplay(\\''+v+'\\',\\'天空影视\\',\\''+v+'\\')"}\"\/>';\n return'<img src=\"data:image\/svg+xml;base64,'+PLAY_SVG+',{"js":"flutterBridge.startBrowser(\\''+playUrl+'\\',\\'天空影视\\',\\''+JSON.stringify(UA).replace(\/\"\/g,\"\\\\\\\\\\\"\")+'\\')"}\"\/>';\n}\n\n\/\/ === 发现 ===\nasync function getfinds(){\n return JSON.stringify([\n {title:\"电影\",url:\"\/index.php\/vod\/type\/id\/2.html\",type:0},\n {title:\"电视剧\",url:\"\/index.php\/vod\/type\/id\/1.html\",type:0},\n {title:\"综艺\",url:\"\/index.php\/vod\/type\/id\/3.html\",type:0},\n {title:\"动漫\",url:\"\/index.php\/vod\/type\/id\/4.html\",type:0}\n ]);\n}\nasync function find(url,page){\n if(page>2)return\"[]\";\n var u=BASE+url;\n var r=await http.Get(u,UA,true);\n var $doc=$($.parseHTML(r.data));\n var books=[];\n var seen={};\n $doc.find(\"a[href*='\/vod\/detail\/']\").each(function(){\n var $a=$(this);\n var href=$a.attr(\"href\");\n if(!href||href.indexOf(\"\/vod\/detail\/\")<0||seen[href])return;\n seen[href]=true;\n var title=$a.find(\".video-info .title\").text().trim()||$a.find(\".title\").text().trim()||$a.attr(\"title\")||\"\";\n var cover=$a.find(\"img\").attr(\"src\")||\"\";\n if(cover&&!cover.startsWith(\"http\"))cover=BASE+cover;\n books.push({bookUrl:BASE+href,name:title,author:\"\",kind:\"\",coverUrl:cover,intro:\"\",tocUrl:BASE+href,wordCount:\"\",type:0,latestChapterTitle:\"\"});\n });\n return JSON.stringify(books);\n}\n\nasync function getloginurl(){return BASE}\nasync function login(){}\nasync function pay(b,u){}\nasync function imagedecrypt(u,i){}\nasync function shouldOverrideUrlLoading(u){return true}\n<\/script>\n<\/html>\n",
"login": false,
"lastUpdateTime": "1780903496893"
}