【2018.7.26】freekan源码3.8.3的搜索功能修复

  • A+
所属分类:源码分享

把以下代码替换原来里边的代码即可/app/Http/Controllers/Core/CoreController.php

  1. <?php
  2. namespace App\Http\Controllers\Core;
  3. use App\Http\Controllers\Admin\IndexController;
  4. use App\Http\Controllers\Common\CommonController;
  5. use App\Http\Controllers\Common\SystemCotroller;
  6. use App\Http\Controllers\Controller;
  7. use Illuminate\Http\Request;
  8. use QL\Ext\CurlMulti;
  9. use QL\QueryList;
  10. class CoreController extends Controller
  11. {
  12.     private $ql;
  13.     private $common;
  14.     private $domin;
  15.     private $opts = array('headers' => array('User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'));
  16.     private $vinfo = array();
  17.     private $search = array();
  18.     public function __construct()
  19.     {
  20.         $this->ql = new QueryList();
  21.         $this->ql->use(CurlMulti::class);
  22.         $this->domin = 'https://www.360kan.com';
  23.         $this->common = new CommonController();
  24.     }
  25.     public function indexDsCollect()
  26.     {
  27.         $_var_0 = ['title' => ['ul:eq(10) .s1', 'text', ''], 'url' => ['ul:eq(10) a.js-link', 'href', ''], 'img' => ['ul:eq(10) .js-playicon img', 'data-src', ''], 'pf' => ['ul:eq(10) .s2', 'text', ''], 'js' => ['ul:eq(10) .w-newfigure-hint', 'text']];
  28.         $_var_1 = $this->ql->get($this->domin, ''$this->opts)->rules($_var_0)->query()->getData();
  29.         $this->ql->destruct();
  30.         return $_var_1->all();
  31.     }
  32.     public function dyList($_var_2$_var_3)
  33.     {
  34.         if ($_var_2 == 101) {
  35.             die('未找到相应资源');
  36.         }
  37.         $_var_4 = $this->domin . '/dianying/list?rank=rankhot&cat=' . $_var_2 . '&area=all&act=all&year=all&pageno=' . $_var_3;
  38.         $_var_5 = ['title' => ['ul:eq(8) .s1', 'text', ''], 'url' => ['ul:eq(8) a.js-tongjic', 'href', ''function ($_var_6) {
  39.             return base64_encode($this->domin . $_var_6);
  40.         }], 'img' => ['ul:eq(8) .cover.g-playicon img', 'src', ''], 'pf' => ['ul:eq(8) .s2', 'text', ''], 'year' => ['ul:eq(8) .hint', 'text'], 'star' => ['ul:eq(8) .star', 'text', '']];
  41.         $_var_7 = $this->ql->get($_var_4)->rules($_var_5)->query()->getData();
  42.         $this->ql->destruct();
  43.         return $_var_7->all();
  44.     }
  45.     public function dsjList($_var_8$_var_9)
  46.     {
  47.         $_var_10 = $this->domin . '/dianshi/list?rank=rankhot&cat=' . $_var_8 . '&area=all&act=all&year=all&pageno=' . $_var_9;
  48.         $_var_11 = ['title' => ['.list.g-clear .s1', 'text', ''], 'url' => ['.list.g-clear a.js-tongjic', 'href', ''function ($_var_12) {
  49.             return base64_encode($this->domin . $_var_12);
  50.         }], 'img' => ['.list.g-clear .cover.g-playicon img', 'src', ''], 'js' => ['.list.g-clear .hint', 'text', ''], 'star' => ['.list.g-clear .star', 'text', '']];
  51.         $_var_13 = $this->ql->get($_var_10)->rules($_var_11)->query()->getData();
  52.         $this->ql->destruct();
  53.         return $_var_13->all();
  54.     }
  55.     public function zyList($_var_14$_var_15)
  56.     {
  57.         $_var_16 = $this->domin . '/zongyi/list?rank=rankhot&cat=' . $_var_14 . '&area=all&act=all&pageno=' . $_var_15;
  58.         $_var_17 = ['title' => ['.list.g-clear .s1', 'text', ''], 'url' => ['.list.g-clear a.js-tongjic', 'href', ''function ($_var_18) {
  59.             return base64_encode($this->domin . $_var_18);
  60.         }], 'img' => ['.list.g-clear .cover.g-playicon img', 'src', ''], 'js' => ['.list.g-clear .hint', 'text', ''], 'star' => ['.list.g-clear .star', 'text', '']];
  61.         $_var_19 = $this->ql->get($_var_16)->rules($_var_17)->query()->getData();
  62.         $this->ql->destruct();
  63.         return $_var_19->all();
  64.     }
  65.     public function dmList($_var_20$_var_21)
  66.     {
  67.         $_var_22 = $this->domin . '/dongman/list?rank=rankhot&cat=' . $_var_20 . '&area=all&act=all&pageno=' . $_var_21;
  68.         $_var_23 = ['title' => ['.list.g-clear .s1', 'text', ''], 'url' => ['.list.g-clear a.js-tongjic', 'href', ''function ($_var_24) {
  69.             return base64_encode($this->domin . $_var_24);
  70.         }], 'img' => ['.list.g-clear .cover.g-playicon img', 'src', ''], 'js' => ['.list.g-clear .hint', 'text', '']];
  71.         $_var_25 = $this->ql->get($_var_22)->rules($_var_23)->query()->getData();
  72.         $this->ql->destruct();
  73.         return $_var_25->all();
  74.     }
  75.     public function getDyPlay($_var_26)
  76.     {
  77.         $_var_27 = ['title' => ['.title-left.g-clear h1', 'text', ''], 'desc' => ['.item-desc.js-close-wrap', 'text', '-span'], 'playname' => ['.top-list-zd.g-clear a[data-daochu^="to="]', 'text', '-span'], 'play' => ['.top-list-zd.g-clear a[data-daochu^="to="]', 'href', ''function ($_var_28) {
  78.             if (strpos($_var_28, 'cps') && strpos($_var_28, 'youku')) {
  79.                 $_var_29 = explode('&', $_var_28);
  80.                 $_var_30 = str_replace('url=', ''$_var_29['1']);
  81.                 return $_var_30;
  82.             } else {
  83.                 if (strpos($_var_28, '?')) {
  84.                     $_var_31 = strpos($_var_28, '?');
  85.                     return substr($_var_28, 0, $_var_31);
  86.                 } else {
  87.                     return $_var_28;
  88.                 }
  89.             }
  90.         }]];
  91.         $_var_32 = $this->ql->get($_var_26)->rules($_var_27)->query()->getData();
  92.         $this->ql->destruct();
  93.         return $_var_32->all();
  94.     }
  95.     public function getDsjPlay($_var_33)
  96.     {
  97.         $_var_34 = ['title' => ['.title-left.g-clear h1', 'text', ''], 'desc' => ['.item-desc.js-close-wrap', 'text', '-span']];
  98.         $_var_35 = $this->ql->get($_var_33)->rules($_var_34)->query()->getData();
  99.         $this->ql->destruct();
  100.         return $_var_35->all();
  101.     }
  102.     public function getZyPlay($_var_36)
  103.     {
  104.         $_var_37 = ['bt' => ['.title-left.g-clear h1', 'text', ''], 'zd' => ['.ea-site', 'text', ''], 'desc' => ['.item-desc.js-close-wrap', 'text', '-span'], 'title' => ['.js-year-page .s1', 'text', ''], 'href' => ['.js-year-page a.js-link', 'href'], 'time' => ['.js-year-page .w-newfigure-hint', 'text', '']];
  105.         $_var_38 = $this->ql->get($_var_36)->rules($_var_37)->query()->getData();
  106.         $this->ql->destruct();
  107.         return $_var_38->all();
  108.     }
  109.     public function getLike($_var_39)
  110.     {
  111.         $_var_40 = ['title' => ['.tuijian-list .s1', 'text', ''], 'url' => ['.tuijian-list a', 'href', ''function ($_var_41) {
  112.             return base64_encode($this->domin . $_var_41);
  113.         }], 'img' => ['.tuijian-list img', 'data-src']];
  114.         $_var_42 = $this->ql->get($_var_39)->rules($_var_40)->query()->getData();
  115.         $this->ql->destruct();
  116.         return $_var_42->all();
  117.     }
  118.     public function getTDLike($_var_43 = 'tv', $_var_44)
  119.     {
  120.         if ($_var_43 == 'tv') {
  121.             $_var_45 = ['title' => ['.s-guess-list .title', 'text', ''], 'url' => ['.s-guess-list .title a', 'href', ''function ($_var_46) {
  122.                 return base64_encode($this->domin . $_var_46);
  123.             }], 'img' => ['.s-guess-list li .js-playicon img', 'data-src', '']];
  124.         } else {
  125.             $_var_45 = ['title' => ['.m-guess-list .title', 'text', ''], 'url' => ['.m-guess-list .title a', 'href', ''function ($_var_47) {
  126.                 return base64_encode($this->domin . $_var_47);
  127.             }], 'img' => ['.m-guess-list li .js-playicon img', 'data-src', '']];
  128.         }
  129.         $_var_48 = $this->ql->get($_var_44)->rules($_var_45)->query()->getData();
  130.         return $_var_48->all();
  131.     }
  132.     public function getSearch($_var_49$_var_50 = "")
  133.     {
  134.         $_var_51 = 'https://so.360kan.com/index.php?kw=' . $_var_49;
  135.         $_var_52 = ['dy_title' => ['.b-mainpic_new a', 'title', ''], 'dy_addr' => ['.b-mainpic_new a', 'href', ''function ($_var_53use($_var_50) {
  136.             $_var_54 = str_replace('http://', 'https://', $_var_53);
  137.             if ($_var_50 == 'wx') {
  138.                 return 'http://' . config('webset.webdomin') . '/play/' . base64_encode($_var_53) . '.html';
  139.             }
  140.             return base64_encode($_var_54);
  141.         }], 'dy_img' => ['.b-mainpic_new a img', 'src', ''], 'dy_type' => ['.cont .playtype', 'text', ''], 'dy_desc' => ['.js-b-fulldesc', 'data-full']];
  142.         $_var_55 = $this->ql->get($_var_51)->rules($_var_52)->query()->getData();
  143.         $this->ql->destruct();
  144.         return $_var_55->all();
  145.     }
  146.     public function getTotal()
  147.     {
  148.         $_var_56 = $this->domin . '/dianshi/list.php';
  149.         $_var_57 = ['total' => ['.app span', 'text', '']];
  150.         $_var_58 = $this->ql->get($_var_56)->rules($_var_57)->query()->getData();
  151.         $this->ql->destruct();
  152.         return $_var_58->all();
  153.     }
  154.     public function getCx($_var_59$_var_60)
  155.     {
  156.         $_var_61 = 'http://' . $_var_60 . '/index.php?m=vod-search';
  157.         $_var_62 = ['wd' => $_var_59, 'submit' => 'search'];
  158.         $_var_63 = $this->common->curl_post($_var_61$_var_62);
  159.         $_var_64 = ['title' => ['.xing_vb4 a', 'text', '-span'], 'url' => ['.xing_vb4 a', 'href', '']];
  160.         $_var_65 = $this->ql->html($_var_63)->rules($_var_64)->query()->getData();
  161.         $this->ql->destruct();
  162.         $_var_66 = $_var_65->all();
  163.         foreach ($_var_66 as $_var_59 => $_var_67) {
  164.             $_var_67['url'] = 'http://' . $_var_60 . $_var_67['url'];
  165.             $_var_66[$_var_59]['url'] = $_var_67['url'];
  166.         }
  167.         return $_var_66;
  168.     }
  169.     public function autoCxSearch($_var_68$_var_69$_var_70 = '')
  170.     {
  171.         $_var_71 = 'http://' . $_var_69 . '/index.php?m=vod-search';
  172.         $_var_72 = ['wd' => $_var_68, 'submit' => 'search'];
  173.         $_var_73 = $this->common->curl_post($_var_71$_var_72);
  174.         $_var_74 = ['title' => ['.xing_vb4 a', 'text', '-span'], 'url' => ['.xing_vb4 a', 'href', ''], 'type' => ['.xing_vb5', 'text', '']];
  175.         $_var_75 = [];
  176.         $_var_76 = $this->ql->html($_var_73)->rules($_var_74)->query()->getData();
  177.         $_var_77 = $_var_76->all();
  178.         foreach ($_var_77 as $_var_68 => $_var_78) {
  179.             if (mb_strpos($_var_78['type'], '伦理') === false) {
  180.                 $_var_78['url'] = 'http://' . $_var_69 . $_var_78['url'];
  181.                 $_var_75[] = $_var_78['url'];
  182.             }
  183.         }
  184.         $_var_79 = ['dy_addr' => ['.nvc dl dd a:eq(2)', 'href', ''function ($_var_80use($_var_70) {
  185.             if ($_var_70 == 'wx') {
  186.                 return 'http://' . config('webset.webdomin') . '/play/' . base64_encode($_var_80) . '.html';
  187.             }
  188.             return base64_encode($_var_80);
  189.         }], 'dy_title' => ['.vodh h2', 'text'], 'dy_star' => ['.vodinfobox ul li:eq(2) span', 'text', ''], 'dy_desc' => ['.vodplayinfo:eq(1)', 'text', ''], 'dy_img' => ['.lazy', 'src']];
  190.         if ($_var_69 == 'www.go1977.com') {
  191.             $_var_79 = ['dy_addr' => ['.nvc dl dd a:eq(2)', 'href', ''function ($_var_81use($_var_70) {
  192.                 if ($_var_70 == 'wx') {
  193.                     return 'http://' . config('webset.webdomin') . '/play/' . base64_encode($_var_81) . '.html';
  194.                 }
  195.                 return base64_encode($_var_81);
  196.             }], 'dy_title' => ['.vodh h2', 'text'], 'dy_star' => ['.vodinfobox ul li:eq(2) span', 'text', ''], 'dy_desc' => ['.vodplayinfo:eq(0)', 'text', ''], 'dy_img' => ['.lazy', 'src']];
  197.         }
  198.         $this->ql->rules($_var_79)->curlMulti($_var_75)->success(function (QueryList $_var_82) {
  199.             $_var_83 = $_var_82->query()->getData();
  200.             $_var_84 = $_var_83->all();
  201.             $this->search[] = $_var_84;
  202.             $_var_82->destruct();
  203.         })->start(['maxThread' => 100, 'maxTry' => 3, 'opt' => [CURLOPT_TIMEOUT => 10, CURLOPT_CONNECTTIMEOUT => 1, CURLOPT_RETURNTRANSFER => true], 'cache' => ['enable' => true, 'compress' => true, 'dir' => 'storage/app/public/cache', 'expire' => 86400, 'verifyPost' => false]]);
  204.         $_var_85 = [];
  205.         $_var_86 = $this->search;
  206.         foreach ($_var_86 as $_var_78) {
  207.             $_var_85[] = $_var_78[0];
  208.         }
  209.         return $_var_85;
  210.     }
  211.     public function getCxData($_var_87)
  212.     {
  213.         $_var_88 = ['dyname' => ['.vodh h2', 'text'], 'dydesc' => ['.vodplayinfo:eq(1)', 'text', ''], 'dylogo' => ['.lazy', 'src']];
  214.         if (strpos($_var_87, 'www.go1977.com') !== false) {
  215.             $_var_88 = ['dyname' => ['.vodh h2', 'text'], 'dydesc' => ['.vodplayinfo:eq(0)', 'text', ''], 'dylogo' => ['.lazy', 'src']];
  216.         }
  217.         $_var_89 = $this->ql->get($_var_87)->rules($_var_88)->query()->getData();
  218.         $this->ql->destruct();
  219.         return $_var_89->all();
  220.     }
  221.     public function getCxLink($_var_90$_var_91 = '')
  222.     {
  223.         $_var_92 = [];
  224.         $_var_93 = [];
  225.         $_var_94 = [];
  226.         $_var_95 = [];
  227.         $_var_96 = 1;
  228.         $_var_97 = 1;
  229.         $_var_98 = 1;
  230.         $_var_99 = ['dyaddr' => ['input', 'value', '']];
  231.         $_var_100 = $this->ql->get($_var_90)->rules($_var_99)->range('.vodplayinfo ul>li')->query()->getData();
  232.         $this->ql->destruct();
  233.         $_var_101 = $_var_100->all();
  234.         if (count($_var_101) > 3) {
  235.             foreach ($_var_101 as $_var_102) {
  236.                 if (strpos($_var_102['dyaddr'], 'm3u8')) {
  237.                     $_var_93[] = '第' . $_var_96++ . '集$' . (config('playerconfig.m3u8') ?? '/public/player/player.php?url=') . $_var_102['dyaddr'];
  238.                 } elseif (strpos($_var_102['dyaddr'], 'mp4')) {
  239.                     $_var_95[] = '第' . $_var_97++ . '集$' . (config('playerconfig.mp4') ?? '/public/player/player.php?url=') . $_var_102['dyaddr'];
  240.                 } else {
  241.                     $_var_94[] = '第' . $_var_98++ . '集$' . $_var_102['dyaddr'];
  242.                 }
  243.             }
  244.         } else {
  245.             foreach ($_var_101 as $_var_102) {
  246.                 if (strpos($_var_102['dyaddr'], 'm3u8')) {
  247.                     $_var_93[] = '超清HD$' . (config('playerconfig.m3u8') ?? '/public/player/player.php?url=') . $_var_102['dyaddr'];
  248.                 } elseif (strpos($_var_102['dyaddr'], 'mp4')) {
  249.                     $_var_95[] = '超清HD$' . (config('playerconfig.mp4') ?? '/public/player/player.php?url=') . $_var_102['dyaddr'];
  250.                 } else {
  251.                     $_var_94[] = '超清HD$' . $_var_102['dyaddr'];
  252.                 }
  253.             }
  254.         }
  255.         switch ($_var_91) {
  256.             case 'm3u8':
  257.                 return $_var_93;
  258.                 break;
  259.             case 'mp4':
  260.                 return $_var_95;
  261.                 break;
  262.             case 'zhilian':
  263.                 return $_var_94;
  264.                 break;
  265.             case 'total':
  266.                 if ($_var_93) {
  267.                     $_var_92['m3u8'] = $_var_93;
  268.                 }
  269.                 if ($_var_95) {
  270.                     $_var_92['mp4'] = $_var_95;
  271.                 }
  272.                 if ($_var_94) {
  273.                     $_var_92['zhilian'] = $_var_94;
  274.                 }
  275.                 return $_var_92;
  276.                 break;
  277.         }
  278.     }
  279.     public function AutoCxList(Request $_var_103$_var_104$_var_105$_var_106)
  280.     {
  281.         $_var_107 = 'http://' . $_var_104 . '/?m=vod-type-id-' . $_var_105 . '-pg-' . $_var_106 . '.html';
  282.         $_var_108 = [];
  283.         $_var_109 = ['link' => ['.xing_vb4 a', 'href', ''function ($_var_110use($_var_104) {
  284.             return 'http://' . $_var_104 . $_var_110;
  285.         }]];
  286.         $_var_111 = $this->ql->get($_var_107)->rules($_var_109)->query()->getData()->all();
  287.         foreach ($_var_111 as $_var_112) {
  288.             $_var_108[] = $_var_112['link'];
  289.         }
  290.         $_var_113 = ['dy_addr' => ['.nvc dl dd a:eq(2)', 'href', ''function ($_var_114) {
  291.             return base64_encode($_var_114);
  292.         }], 'dy_title' => ['.vodh h2', 'text'], 'dy_star' => ['.vodinfobox ul li:eq(2) span', 'text', ''], 'dy_img' => ['.lazy', 'src']];
  293.         $this->ql->rules($_var_113)->curlMulti($_var_108)->success(function (QueryList $_var_115) {
  294.             $_var_116 = $_var_115->query()->getData();
  295.             $_var_117 = $_var_116->all();
  296.             $this->vinfo[] = $_var_117;
  297.             $_var_115->destruct();
  298.         })->start(['maxThread' => 100, 'maxTry' => 3, 'opt' => [CURLOPT_TIMEOUT => 10, CURLOPT_CONNECTTIMEOUT => 1, CURLOPT_RETURNTRANSFER => true], 'cache' => ['enable' => true, 'compress' => true, 'dir' => 'storage/app/public/cache', 'expire' => 86400, 'verifyPost' => false]]);
  299.         return $this->vinfo;
  300.     }
  301.     public function getWxSearch($_var_118)
  302.     {
  303.         $_var_119 = '';
  304.         $_var_120 = [];
  305.         $_var_121 = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . config('wxconfig.sina_app_key');
  306.         $_var_122 = config('autocxconfig.dizhi');
  307.         $_var_119 = $this->getSearch($_var_118, 'wx');
  308.         $_var_123 = $this->autoCxSearch($_var_118$_var_122, 'wx');
  309.         $_var_124 = ['dy_title' => config('wxconfig.twtitle'), 'dy_img' => config('wxconfig.reimg'), 'dy_addr' => 'http://' . config('webset.webdomin') . '/search/' . urlencode($_var_118) . '.html'];
  310.         if (!emptyempty($_var_123)) {
  311.             foreach ($_var_123 as $_var_125) {
  312.                 array_unshift($_var_119$_var_125);
  313.             }
  314.         }
  315.         if (!emptyempty($_var_119) || !emptyempty($_var_123)) {
  316.             array_unshift($_var_119$_var_124);
  317.         }
  318.         if (!emptyempty($_var_119)) {
  319.             $_var_126 = count($_var_119);
  320.             if (config('wxconfig.fanghong')) {
  321.                 if ($_var_126 >= 4) {
  322.                     for ($_var_127 = 0; $_var_127 < 4; $_var_127++) {
  323.                         $_var_121 .= '&url_long=' . $_var_119[$_var_127]['dy_addr'];
  324.                     }
  325.                     $_var_128 = $this->common->curl_get_dwz($_var_121);
  326.                     $_var_129 = json_decode($_var_128, 1);
  327.                     foreach ($_var_129 as $_var_118 => $_var_125) {
  328.                         $_var_120[$_var_118] = $_var_119[$_var_118];
  329.                         $_var_120[$_var_118]['dy_addr'] = $_var_125['url_short'];
  330.                     }
  331.                     return $_var_120;
  332.                 } else {
  333.                     for ($_var_127 = 0; $_var_127 < $_var_126$_var_127++) {
  334.                         $_var_121 .= '&url_long=' . $_var_119[$_var_127]['dy_addr'];
  335.                     }
  336.                     $_var_128 = $this->common->curl_get_dwz($_var_121);
  337.                     $_var_129 = json_decode($_var_128, 1);
  338.                     foreach ($_var_129 as $_var_118 => $_var_125) {
  339.                         $_var_120[$_var_118] = $_var_119[$_var_118];
  340.                         $_var_120[$_var_118]['dy_addr'] = $_var_125['url_short'];
  341.                     }
  342.                     return $_var_120;
  343.                 }
  344.             } else {
  345.                 return $_var_119;
  346.             }
  347.         }
  348.     }
  349. }

如果你不会可以直接下载把文件覆盖/app/Http/Controllers/Core/的文件即可以

【2018.7.26】freekan源码3.8.3的搜索功能修复

此处为隐藏的内容!
发表评论并刷新,才能查看

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: