[{"articleStyle":3,"cacheFirst":false,"customOrder":3,"enableJs":true,"enabled":true,"enabledCookieJar":true,"header":"{\n  \"User-Agent\": \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/120.0.0.0 Safari\/537.36\",\n  \"Referer\": \"https:\/\/www.yinghuazz.com\/\"\n}","injectJs":"(function(){\n'use strict';\nvar C={LP:500,FR:3,SS:1,TH:24};\nif(window.__GESTURE_CFG)Object.assign(C,window.__GESTURE_CFG);\nfunction full(){return document.fullscreenElement||document.webkitFullscreenElement}\nfunction isLS(v){return v&&v.videoWidth&&v.videoHeight?v.videoWidth>=v.videoHeight:false}\nfunction fs(){var v=document.querySelector('video'),ok=full()&&isLS(v);try{ok?screen.orientation.lock('landscape').catch(function(){}):screen.orientation.unlock()}catch(e){}}\ndocument.addEventListener('fullscreenchange',fs);document.addEventListener('webkitfullscreenchange',fs);if(full())fs();\nfunction tip(css){var e=document.createElement('div');e.style.cssText=css+'display:none;opacity:0;transition:opacity .15s';document.body.appendChild(e);return e}\nfunction set(e,t){if(!e)return;if(t==null){e.style.opacity=0;e.__h&&clearTimeout(e.__h);e.__h=setTimeout(function(){e.style.display='none'},160)}else{e.textContent=t;e.style.display='block';e.__h&&clearTimeout(e.__h);e.style.opacity=1}}\nvar TC='position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.30);color:#fff;padding:10px 20px;border-radius:8px;font-size:16px;font-weight:bold;z-index:99999;pointer-events:none;font-family:-apple-system,sans-serif;white-space:nowrap;';\nfunction fmt(t){t=Math.max(0,Math.floor(t||0));var h=Math.floor(t\/3600),m=Math.floor(t%3600\/60),s=t%60,p=function(n){return n<10?'0'+n:''+n};return(h?h+':'+p(m):m)+':'+p(s)}\nvar TE=null;\nfunction bind(v){\nif(v.__gb)return;v.__gb=true;\nvar G={sx:0,lp:null,ff:false,wp:false,or:1,pt:0,tm:null,sp:false};\nfunction stopL(){if(G.lp){clearTimeout(G.lp);G.lp=null}}\nfunction startL(){G.lp=null;G.ff=true;G.or=v.playbackRate||1;G.wp=v.paused;v.playbackRate=C.FR;if(G.wp){var p=v.play();if(p&&p.catch)p.catch(function(){})}TE=TE||tip(TC);set(TE,'▶▶ '+v.playbackRate+'x')}\nfunction resetFF(){if(!G.ff)return;v.playbackRate=G.or;G.ff=false;set(TE,null);if(G.wp)v.pause()}\nfunction flush(){if(G.sp){G.sp=false;if(isFinite(G.pt))v.currentTime=G.pt}if(G.tm){clearTimeout(G.tm);G.tm=null}}\nfunction onS(e){if(e.touches.length!==1){stopL();return}var t=e.touches[0];G.sx=t.clientX;G.st=v.currentTime||0;G.wp=v.paused;G.or=v.playbackRate||1;stopL();G.lp=setTimeout(startL,C.LP)}\nfunction onM(e){if(e.touches.length!==1)return;stopL();var dx=e.touches[0].clientX-G.sx;if(Math.abs(dx)<=15)return;resetFF();e.preventDefault();var d=v.duration;if(!isFinite(d)||d<=0)return;var nt=Math.max(0,Math.min(d,G.st+dx\/(window.innerWidth*C.SS)*d));G.pt=nt;TE=TE||tip(TC);set(TE,fmt(nt)+' \/ '+fmt(d));if(!G.sp){G.sp=true;G.tm=setTimeout(function(){G.sp=false;if(isFinite(G.pt))v.currentTime=G.pt},C.TH)}}\nfunction onE(){stopL();if(G.ff){resetFF();return}flush();set(TE,null)}\nv.addEventListener('touchstart',onS,{passive:true});v.addEventListener('touchmove',onM,{passive:false});v.addEventListener('touchend',onE);v.addEventListener('touchcancel',onE);\n}\nvar BV=new WeakSet();\nfunction bindAll(){var vs=document.querySelectorAll('video');for(var i=0;i<vs.length;i++){if(!BV.has(vs[i])){BV.add(vs[i]);bind(vs[i])}}}\nbindAll();new MutationObserver(bindAll).observe(document.documentElement,{childList:true,subtree:true});\nconsole.log('[注入] 已启用');\n})();","lastUpdateTime":1794231982819,"loadWithBaseUrl":true,"preload":false,"ruleArticles":"ul.stui-vodlist > li, ul.stui-vodlist__media > li","ruleContent":"@js:\n(function () {\n    var html = '';\n    try { html = String(result || ''); } catch (e0) { html = ''; }\n    if (html.length < 3000 || html.indexOf('stui-content__playlist') < 0) {\n        try { html = String(java.ajax(baseUrl) || ''); } catch (e1) {}\n    }\n    var doc = Packages.org.jsoup.Jsoup.parse(html);\n    var HOST = 'https:\/\/www.yinghuazz.com';\n\n    function abs(u) {\n        u = String(u == null ? '' : u);\n        if (!u) return '';\n        if (u.indexOf('javascript') === 0) return '';\n        if (u.indexOf('\/\/') === 0) return 'https:' + u;\n        if (u.indexOf('http') === 0) return u;\n        return HOST + (u.charAt(0) === '\/' ? u : '\/' + u);\n    }\n    function trim(s) {\n        return String(s == null ? '' : s).replace(\/^[\\s\\u3000]+|[\\s\\u3000]+$\/g, '');\n    }\n    \/\/ 阅读的 AnalyzeRule.getString() 默认 unescape=true，会把正文做一次 unescapeHtml4，\n    \/\/ 所以这里必须「双重转义」：输出 &amp;lt; 这类，过一次反转义后才得到正确的 &lt;。\n    function esc(s) {\n        return String(s == null ? '' : s)\n            .split('&').join('&amp;amp;')\n            .split('<').join('&amp;lt;')\n            .split('>').join('&amp;gt;')\n            .split('\"').join('&amp;quot;');\n    }\n    function q(s) {\n        s = String(s == null ? '' : s);\n        var o = '';\n        for (var i = 0; i < s.length; i++) {\n            var c = s.charAt(i);\n            if (c === '\\\\') o += '\\\\\\\\';\n            else if (c === '\"') o += '\\\\\"';\n            else if (c === '\\n') o += '\\\\n';\n            else if (c === '\\r') o += '\\\\r';\n            else if (c === '<') o += '\\\\u003c';\n            else if (c === '>') o += '\\\\u003e';\n            else o += c;\n        }\n        return '\"' + o + '\"';\n    }\n\n    var name = '';\n    var h1 = doc.select('h1.title').first();\n    if (h1) name = trim(String(h1.ownText() || h1.text()).replace(\/\\s+\/g, ' '));\n    var posterEl = doc.select('.stui-content__thumb img').first();\n    var poster = posterEl ? abs(posterEl.attr('data-original') || posterEl.attr('src')) : '';\n    var stateEl = doc.select('.stui-content__thumb .pic-text').first();\n    var state = stateEl ? trim(stateEl.text()) : '';\n    var introEl = doc.select('#desc p.col-pd').first();\n    var intro = introEl ? trim(introEl.text()) : '';\n\n    var boxes = doc.select('div.playlist');\n    var lines = '';\n    var cnt = 0;\n    var firstEp = '';\n    for (var i = 0; i < boxes.size(); i++) {\n        var box = boxes.get(i);\n        var h3 = box.select('h3.title').first();\n        var ln = h3 ? trim(String(h3.text()).replace(\/\\s+\/g, '')) : '';\n        if (!ln) ln = '线路' + (i + 1);\n        var as = box.select('ul.stui-content__playlist a');\n        var eps = '';\n        var n = 0;\n        for (var j = 0; j < as.size(); j++) {\n            var a = as.get(j);\n            var u = abs(a.attr('href'));\n            if (!u) continue;\n            var t = trim(a.text());\n            if (!t) t = '第' + (n + 1) + '集';\n            if (n > 0) eps += ',';\n            else if (cnt === 0) firstEp = u;\n            eps += '{\"t\":' + q(t) + ',\"u\":' + q(u) + '}';\n            n++;\n        }\n        if (!n) continue;\n        if (cnt > 0) lines += ',';\n        lines += '{\"n\":' + q(ln) + ',\"e\":[' + eps + ']}';\n        cnt++;\n    }\n    function pickUrl(h) {\n        h = String(h || '');\n        var p = h.indexOf('player_aaaa');\n        if (p < 0) return '';\n        var b = h.indexOf('{', p);\n        if (b < 0) return '';\n        var d = 0, e = -1;\n        for (var i = b; i < h.length; i++) {\n            var c = h.charAt(i);\n            if (c === '{') d++;\n            else if (c === '}') { d--; if (d === 0) { e = i; break; } }\n        }\n        if (e < 0) return '';\n        try {\n            var o = JSON.parse(h.substring(b, e + 1));\n            return o && o.url ? String(o.url) : '';\n        } catch (err) { return ''; }\n    }\n    var firstUrl = '';\n    if (firstEp) {\n        try { firstUrl = pickUrl(java.ajax(firstEp)); } catch (e2) { firstUrl = ''; }\n    }\n    if (!cnt) {\n        return '<div style=\"padding:20px 16px;font-size:15px;line-height:1.8\">没有解析到播放列表，可能站点改版了。'\n            + '<br><a href=\"' + esc(baseUrl) + '\" style=\"color:#2f7cf6\">点这里打开原网页<\/a><\/div>';\n    }\n\n    var CL = [\n        'var D = window.YHDATA || [];',\n        'var v = document.getElementById(\"yh-v\");',\n        'var tip = document.getElementById(\"yh-tip\");',\n        'var boxL = document.getElementById(\"yh-lines\");',\n        'var boxE = document.getElementById(\"yh-eps\");',\n        'var boxI = document.getElementById(\"yh-idx\");',\n        'var curL = 0;',\n        'var curE = 0;',\n        'var curUrl = \"\";',\n        'var hls = null;',\n        'var mode = \"native\";',\n        'var cdn = [',\n        '  \"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@1.5.13\/dist\/hls.min.js\",',\n        '  \"https:\/\/fastly.jsdelivr.net\/npm\/hls.js@1.5.13\/dist\/hls.min.js\",',\n        '  \"https:\/\/unpkg.com\/hls.js@1.5.13\/dist\/hls.min.js\"',\n        '];',\n        'var ci = 0;',\n        'var autoSrc = v.getAttribute(\"src\") || \"\";',\n        'var queue = [];',\n        'var watch = null;',\n        '',\n        'if (autoSrc && D.length && D[0].e && D[0].e.length) D[0].e[0].v = autoSrc;',\n        '',\n        'function say(t) {',\n        '  if (t == null) t = \"\";',\n        '  if (tip) tip.textContent = String(t);',\n        '}',\n        '',\n        'function get(url, ok, fail) {',\n        '  if (window.fetch) {',\n        '    fetch(url, { credentials: \"include\" }).then(function (r) {',\n        '      return r.text();',\n        '    }).then(ok).catch(fail);',\n        '    return;',\n        '  }',\n        '  var x = new XMLHttpRequest();',\n        '  x.open(\"GET\", url, true);',\n        '  x.onreadystatechange = function () {',\n        '    if (x.readyState === 4) {',\n        '      if (x.status >= 200 && x.status < 400) ok(x.responseText);',\n        '      else fail();',\n        '    }',\n        '  };',\n        '  x.onerror = fail;',\n        '  x.send();',\n        '}',\n        '',\n        'function pick(html) {',\n        '  var p = html.indexOf(\"player_aaaa\");',\n        '  if (p < 0) return \"\";',\n        '  var b = html.indexOf(\"{\", p);',\n        '  if (b < 0) return \"\";',\n        '  var d = 0;',\n        '  var e = -1;',\n        '  for (var i = b; i < html.length; i++) {',\n        '    var c = html.charAt(i);',\n        '    if (c === \"{\") d++;',\n        '    else if (c === \"}\") {',\n        '      d--;',\n        '      if (d === 0) {',\n        '        e = i;',\n        '        break;',\n        '      }',\n        '    }',\n        '  }',\n        '  if (e < 0) return \"\";',\n        '  var o;',\n        '  try {',\n        '    o = JSON.parse(html.substring(b, e + 1));',\n        '  } catch (err) {',\n        '    return \"\";',\n        '  }',\n        '  return o && o.url ? String(o.url) : \"\";',\n        '}',\n        '',\n        'function clearWatch() {',\n        '  if (watch) {',\n        '    clearTimeout(watch);',\n        '    watch = null;',\n        '  }',\n        '}',\n        '',\n        'function armWatch() {',\n        '  clearWatch();',\n        '  watch = setTimeout(function () {',\n        '    watch = null;',\n        '    if (v.readyState < 1) {',\n        '      say(\"该线路无响应，正在换线…\");',\n        '      autoNext();',\n        '    }',\n        '  }, 15000);',\n        '}',\n        '',\n        'function loadHls(cb) {',\n        '  if (window.Hls) {',\n        '    cb();',\n        '    return;',\n        '  }',\n        '  if (ci >= cdn.length) {',\n        '    setModeFail();',\n        '    return;',\n        '  }',\n        '  var s = document.createElement(\"script\");',\n        '  s.src = cdn[ci++];',\n        '  s.onload = function () {',\n        '    if (window.Hls) cb();',\n        '    else loadHls(cb);',\n        '  };',\n        '  s.onerror = function () {',\n        '    loadHls(cb);',\n        '  };',\n        '  document.head.appendChild(s);',\n        '}',\n        '',\n        'function setModeFail() {',\n        '  mode = \"native\";',\n        '  say(\"该线路无法播放，正在换线…\");',\n        '  autoNext();',\n        '}',\n        '',\n        'function playHls(u) {',\n        '  clearWatch();',\n        '  loadHls(function () {',\n        '    if (!window.Hls || !Hls.isSupported()) {',\n        '      setModeFail();',\n        '      return;',\n        '    }',\n        '    try {',\n        '      if (hls) {',\n        '        try { hls.destroy(); } catch (e) { }',\n        '        hls = null;',\n        '      }',\n        '      hls = new Hls({ maxBufferLength: 30 });',\n        '      hls.on(Hls.Events.ERROR, function (ev, d) {',\n        '        if (d && d.fatal) {',\n        '          curUrl = \"\";',\n        '          say(\"播放出错，正在换线…\");',\n        '          autoNext();',\n        '        }',\n        '      });',\n        '      hls.loadSource(u);',\n        '      hls.attachMedia(v);',\n        '      var p = v.play();',\n        '      if (p && p.catch) p.catch(function () { });',\n        '      say(\"已切换兼容播放模式\");',\n        '      armWatch();',\n        '    } catch (e2) {',\n        '      setModeFail();',\n        '    }',\n        '  });',\n        '}',\n        '',\n        'function playUrl(u) {',\n        '  if (u.indexOf(\"\/\/\") === 0) u = \"https:\" + u;',\n        '  curUrl = u;',\n        '  say(\"▶ \" + D[curL].e[curE].t + \" · \" + D[curL].n);',\n        '  if (mode === \"hls\") {',\n        '    playHls(u);',\n        '    return;',\n        '  }',\n        '  armWatch();',\n        '  var cur = v.getAttribute(\"src\") || \"\";',\n        '  if (cur !== u) {',\n        '    v.src = u;',\n        '    try { v.load(); } catch (e) { }',\n        '  }',\n        '  try {',\n        '    var p = v.play();',\n        '    if (p && p.catch) p.catch(function () { });',\n        '  } catch (e2) { }',\n        '}',\n        '',\n        'v.addEventListener(\"error\", function () {',\n        '  if (!curUrl) return;',\n        '  var err = v.error;',\n        '  if (err && err.code === 1) return;',\n        '  var failed = curUrl;',\n        '  curUrl = \"\";',\n        '  if (D[curL] && D[curL].e && D[curL].e[curE]) D[curL].e[curE].v = \"\";',\n        '  if (mode === \"native\" && err && (err.code === 3 || err.code === 4)) {',\n        '    mode = \"hls\";',\n        '    playHls(failed);',\n        '    return;',\n        '  }',\n        '  say(\"播放出错，正在换线…\");',\n        '  autoNext();',\n        '}, false);',\n        '',\n        'v.addEventListener(\"loadedmetadata\", clearWatch, false);',\n        'v.addEventListener(\"canplay\", clearWatch, false);',\n        'v.addEventListener(\"playing\", clearWatch, false);',\n        '',\n        'function chip(cls, text, attr, val) {',\n        '  var el = document.createElement(\"span\");',\n        '  el.className = cls;',\n        '  el.setAttribute(attr, String(val));',\n        '  el.textContent = text == null ? \"\" : String(text);',\n        '  return el;',\n        '}',\n        '',\n        'function tabs() {',\n        '  if (!boxL) return;',\n        '  while (boxL.firstChild) boxL.removeChild(boxL.firstChild);',\n        '  for (var i = 0; i < D.length; i++) {',\n        '    boxL.appendChild(chip(\"yh-tab\" + (i === curL ? \" on\" : \"\"), D[i].n, \"data-l\", i));',\n        '  }',\n        '}',\n        '',\n        'function eps() {',\n        '  if (!boxE) return;',\n        '  var e = D[curL].e;',\n        '  while (boxE.firstChild) boxE.removeChild(boxE.firstChild);',\n        '  for (var i = 0; i < e.length; i++) {',\n        '    boxE.appendChild(chip(\"yh-ep\" + (i === curE ? \" on\" : \"\"), e[i].t, \"data-e\", i));',\n        '  }',\n        '  if (boxI) boxI.textContent = \"共 \" + D.length + \" 条线路 · 当前线路 \" + e.length + \" 集\";',\n        '}',\n        '',\n        'function hit(node, attr, root) {',\n        '  while (node && node !== root) {',\n        '    if (node.getAttribute && node.getAttribute(attr) != null) return node;',\n        '    node = node.parentNode;',\n        '  }',\n        '  return null;',\n        '}',\n        '',\n        'function autoNext() {',\n        '  clearWatch();',\n        '  if (!queue.length) {',\n        '    say(\"所有线路都试过了，暂时没有可用直链\");',\n        '    return;',\n        '  }',\n        '  var li = queue.shift();',\n        '  curL = li;',\n        '  var ep = D[li].e[curE];',\n        '  tabs();',\n        '  eps();',\n        '  if (!ep) {',\n        '    autoNext();',\n        '    return;',\n        '  }',\n        '  if (ep.v) {',\n        '    playUrl(ep.v);',\n        '    return;',\n        '  }',\n        '  say(\"正在检测 \" + D[li].n + \"…\");',\n        '  get(ep.u, function (h) {',\n        '    var u = pick(h);',\n        '    if (!u) {',\n        '      autoNext();',\n        '      return;',\n        '    }',\n        '    ep.v = u;',\n        '    playUrl(u);',\n        '  }, function () {',\n        '    autoNext();',\n        '  });',\n        '}',\n        '',\n        'function startEp(ei, fromLine) {',\n        '  clearWatch();',\n        '  curE = ei;',\n        '  queue = [];',\n        '  var total = D.length;',\n        '  for (var k = 0; k < total; k++) {',\n        '    var li = (fromLine + k) % total;',\n        '    if (D[li] && D[li].e && D[li].e[ei]) queue.push(li);',\n        '  }',\n        '  autoNext();',\n        '}',\n        '',\n        'boxL.onclick = function (ev) {',\n        '  var t = hit(ev.target, \"data-l\", boxL);',\n        '  if (!t) return;',\n        '  var li = parseInt(t.getAttribute(\"data-l\"), 10) || 0;',\n        '  var ei = (D[li] && D[li].e[curE]) ? curE : 0;',\n        '  startEp(ei, li);',\n        '};',\n        '',\n        'boxE.onclick = function (ev) {',\n        '  var t = hit(ev.target, \"data-e\", boxE);',\n        '  if (!t) return;',\n        '  var ei = parseInt(t.getAttribute(\"data-e\"), 10) || 0;',\n        '  startEp(ei, curL);',\n        '};',\n        '',\n        'if (!D.length) say(\"没有播放数据\");',\n        'else {',\n        '  tabs();',\n        '  eps();',\n        '  startEp(0, 0);',\n        '}'\n    ].join('\\n');\n\n    var out = [];\n    out.push('<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">');\n    out.push('<style>');\n    out.push('html,body{margin:0;padding:0;background:transparent;overflow-x:hidden}');\n    out.push('*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}');\n    out.push('.yh{padding:10px 12px 30px;font-size:15px;line-height:1.6;color:inherit}');\n    out.push('.yh-hd{display:flex;align-items:center;margin:2px 0 10px}');\n    out.push('.yh-hd>div{min-width:0;flex:1}');\n    out.push('.yh-hd img{width:52px;height:70px;object-fit:cover;border-radius:6px;background:rgba(128,128,128,.18);margin-right:10px;flex:0 0 auto}');\n    out.push('.yh-name{font-size:16px;font-weight:600;line-height:1.35;word-break:break-word;overflow-wrap:break-word}');\n    out.push('.yh-sub{font-size:12px;opacity:.6;margin-top:3px}');\n    out.push('.yh-stage{background:#000;border-radius:8px;overflow:hidden}');\n    out.push('.yh-box{position:relative;width:100%;padding-top:56.25%;background:#000}');\n    out.push('.yh-box video{position:absolute;left:0;top:0;display:block;width:100%!important;height:100%!important;object-fit:contain;background:#000}');\n    out.push('.yh-tip{margin:7px 2px 0;font-size:12px;line-height:1.5;opacity:.7;min-height:17px}');\n    out.push('.yh-lines{display:flex;flex-wrap:wrap;margin:10px 0 8px}');\n    out.push('.yh-tab{margin:0 8px 8px 0;padding:5px 12px;border-radius:14px;font-size:13px;border:1px solid rgba(128,128,128,.45);background:rgba(128,128,128,.10);color:inherit}');\n    out.push('.yh-tab.on{background:#2f7cf6;border-color:#2f7cf6;color:#fff}');\n    out.push('.yh-eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));grid-gap:8px;max-height:44vh;overflow:auto;-webkit-overflow-scrolling:touch;padding:2px 0 4px}');\n    out.push('.yh-ep{padding:8px 4px;font-size:13px;text-align:center;border-radius:6px;border:1px solid rgba(128,128,128,.35);background:rgba(128,128,128,.08);color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}');\n    out.push('.yh-ep.on{background:#2f7cf6;border-color:#2f7cf6;color:#fff}');\n    out.push('.yh-ep:active{opacity:.65}');\n    out.push('.yh-idx{font-size:12px;opacity:.55;margin:8px 2px 0}');\n    out.push('.yh-intro{margin-top:14px;font-size:13px;line-height:1.75;opacity:.78;word-break:break-word;overflow-wrap:break-word}');\n    out.push('.yh-intro b{display:block;margin-bottom:4px;font-size:13px;opacity:.9}');\n    out.push('<\/style>');\n\n    out.push('<div class=\"yh\">');\n    out.push('<div class=\"yh-hd\">');\n    if (poster) out.push('<img src=\"' + esc(poster) + '\" onerror=\"this.remove()\">');\n    out.push('<div><div class=\"yh-name\">' + esc(name || '未知标题') + '<\/div>');\n    if (state) out.push('<div class=\"yh-sub\">' + esc(state) + '<\/div>');\n    out.push('<\/div><\/div>');\n    out.push('<div class=\"yh-stage\"><div class=\"yh-box\">');\n    out.push('<video id=\"yh-v\" controls playsinline webkit-playsinline x5-playsinline preload=\"none\"'\n        + (poster ? ' poster=\"' + esc(poster) + '\"' : '')\n        + (firstUrl ? ' src=\"' + esc(firstUrl) + '\"' : '') + '><\/video>');\n    out.push('<\/div><\/div>');\n    out.push('<div class=\"yh-tip\" id=\"yh-tip\">正在解析播放地址…<\/div>');\n    out.push('<div class=\"yh-lines\" id=\"yh-lines\"><\/div>');\n    out.push('<div class=\"yh-eps\" id=\"yh-eps\"><\/div>');\n    out.push('<div class=\"yh-idx\" id=\"yh-idx\"><\/div>');\n    if (intro) out.push('<div class=\"yh-intro\"><b>简介<\/b>' + esc(intro) + '<\/div>');\n    out.push('<\/div>');\n    out.push('<div id=\"yh-loading-toast\" style=\"position:fixed;left:50%;bottom:58%;transform:translateX(-50%);'\n        + 'background:transparent;color:#000;font-size:14px;font-weight:bold;z-index:999999;'\n        + 'pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.8);'\n        + 'opacity:1;transition:opacity .5s ease;white-space:nowrap;\">资源加载中...<\/div>');\n    out.push('<script>setTimeout(function(){var t=document.getElementById(\"yh-loading-toast\");'\n        + 'if(t){t.style.opacity=\"0\";setTimeout(function(){if(t.parentNode)t.parentNode.removeChild(t);},500);}},3000);<\/'\n        + 'script>');\n    out.push('<script>var YHDATA=[' + lines + '];' + CL + '<\/' + 'script>');\n    return out.join('');\n})()","ruleImage":"a.stui-vodlist__thumb@data-original","ruleLink":"a.stui-vodlist__thumb@href","ruleNextPage":"ul.stui-page a:contains(下一页)@href","ruleTitle":"a@text","searchUrl":"\/index.php\/vod\/search\/wd\/{{key}}.html","showWebLog":false,"singleUrl":false,"sortUrl":"日漫::\/index.php\/vod\/show\/id\/20\/page\/1.html\n国漫::\/index.php\/vod\/show\/id\/21\/page\/1.html\n美漫::\/index.php\/vod\/show\/id\/22\/page\/1.html\n电影::\/index.php\/vod\/show\/id\/23\/page\/1.html\n其它::\/index.php\/vod\/show\/id\/24\/page\/1.html\n里番::\/index.php\/vod\/show\/id\/26\/page\/1.html\n搜索::\/index.php\/vod\/search\/wd\/{{source.getVariable()}}.html","sourceComment":"樱花动漫 https:\/\/www.yinghua228.com\/ \n搜索间隔不能小于30s。不要频繁搜索","sourceGroup":"🎬 视频","sourceIcon":"https:\/\/www.yinghuazz.com\/statics\/img\/favicon.ico","sourceName":"樱花动漫","sourceUrl":"https:\/\/www.yinghuazz.com","type":0}]