From 1fd4c2de6d2552f4619c6e67aac60bc635465cd1 Mon Sep 17 00:00:00 2001 From: lolcat Date: Sun, 27 Aug 2023 01:45:59 -0400 Subject: [PATCH] added yandex web and video search, removed fb search --- banner/cynic.png | Bin 0 -> 68909 bytes lib/frontend.php | 10 +- scraper/brave.php | 121 +++++---- scraper/facebook.php | 8 +- scraper/google.php | 505 +++++++++++++++++++++++++++++++++++- scraper/yandex.php | 596 ++++++++++++++++++++++++++++++++++++++++++- settings.php | 16 +- 7 files changed, 1178 insertions(+), 78 deletions(-) create mode 100644 banner/cynic.png diff --git a/banner/cynic.png b/banner/cynic.png new file mode 100644 index 0000000000000000000000000000000000000000..05c728bffdbb119e9b0f28e9cf4657737e37d62e GIT binary patch literal 68909 zcmZshV~{36l&-&aPusR_+qS!>ZQHhO+qP}nw(V)noyCpVh~0|F%2QQuWt|@xQTgP1 zA{6ArVWF^~00022q=bkP000#KFE)k*`FGAkO%?suK^hpT$o%V3{xtv&?ZZD2Kt(}D zMHCww8vsxR04l$}{>I1uCHWVVsFDCGo8$iiNGkuS;^QkxNL1sS|28-OdkO%M0IdJX zNC5HHf8(tyt*!sXmDch9g39LR%J}AgFIMiut49A*0y!(mDFXyf*G>OjV440`0{?OU zKePK6{MP{jFa`i9GRRv0rB5y?BB&(MTwD(;-#Gc#g_V847#vf!S;>-eZyG0-@J~U5RXXH>{*u-eJF=A3Mf>It z*v4}LWQV;31b94a82h-Y-u4FeX#X;nVWj7y+CzgTcKcAqN#V;Dg%>U}xaBxAu8$9t zO?R2%LZB=SL-B4WIU@efh^^cwqic<J0?W5~ z&JC%lA(M~pdf&IOzgk`qm0etmh1q^1PNck;2vMD$FoUkre=x&5pxL}* za$SbHhJPj0K^gQf>VH$21VlsrA>jyHdlkozAuZrsZ%Z9iu?-4q%yzdGWoO;fD?2aG zX=JgBnJv%mLtn+ABYS+{VL0jF#cN#cF!l+sS~9!BdkVmVFjQdXb`}3bG3H|2vZ?dl z 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 IM6N<$f~>PId;kCd literal 0 HcmV?d00001 diff --git a/lib/frontend.php b/lib/frontend.php index 0f2a1ff..9350230 100644 --- a/lib/frontend.php +++ b/lib/frontend.php @@ -878,6 +878,7 @@ class frontend{ "option" => [ "ddg" => "DuckDuckGo", "brave" => "Brave", + "yandex" => "Yandex", //"google" => "Google", "mojeek" => "Mojeek", "marginalia" => "Marginalia", @@ -903,9 +904,10 @@ class frontend{ "display" => "Scraper", "option" => [ "yt" => "YouTube", - "fb" => "Facebook videos", + //"fb" => "Facebook videos", "ddg" => "DuckDuckGo", - "brave" => "Brave"//, + "brave" => "Brave", + "yandex" => "Yandex" //"google" => "Google" ] ]; @@ -972,11 +974,11 @@ class frontend{ include "scraper/google.php"; $lib = new google(); break; - + /* case "fb": include "scraper/facebook.php"; $lib = new facebook(); - break; + break;*/ case "mojeek": include "scraper/mojeek.php"; diff --git a/scraper/brave.php b/scraper/brave.php index 50e7b49..0a73158 100644 --- a/scraper/brave.php +++ b/scraper/brave.php @@ -1182,6 +1182,28 @@ class brave{ $this->fuckhtml->load($infobox); $div = $this->fuckhtml->getElementsByTagName("div"); + /* + Get small description + */ + $small_desc = + $this->fuckhtml + ->getElementsByClassName( + "infobox-description", + $div + ); + + if(count($small_desc) !== 0){ + + $answer["description"][] = [ + "type" => "quote", + "value" => + $this->fuckhtml + ->getTextContent( + $small_desc[0] + ) + ]; + } + /* Get title + url */ @@ -1292,28 +1314,25 @@ class brave{ if(count($code) === 0){ - $answer["description"] = - [ - [ - "type" => "text", - "value" => - $this->fuckhtml - ->getTextContent( - $desc_tmp - ) - ], - [ - "type" => "quote", - "value" => - $this->fuckhtml - ->getTextContent( - $author - ) - ] + $answer["description"][] = [ + "type" => "text", + "value" => + $this->fuckhtml + ->getTextContent( + $desc_tmp + ) + ]; + + $answer["description"][] = [ + "type" => "quote", + "value" => + $this->fuckhtml + ->getTextContent( + $author + ) ]; }else{ - $text = []; $i = 0; foreach($code as $snippet){ @@ -1344,7 +1363,7 @@ class brave{ ); $value = $this->fuckhtml->getTextContent($tmphtml[0], false, false); - $this->appendtext($value, $text, $i); + $this->appendtext($value, $answer["description"], $i); $type = null; switch($tag["tagName"]){ @@ -1365,10 +1384,10 @@ class brave{ $type == "title" ){ - $text[$i - 1]["value"] = rtrim($text[$i - 1]["value"]); + $answer["description"][$i - 1]["value"] = rtrim($answer["description"][$i - 1]["value"]); } - $text[] = [ + $answer["description"][] = [ "type" => $type, "value" => $value ]; @@ -1393,21 +1412,21 @@ class brave{ if(strlen($tmphtml) !== 0){ $value = $this->fuckhtml->getTextContent($tmphtml, false, false); - $this->appendtext($value, $text, $i); + $this->appendtext($value, $answer["description"], $i); } break; case "pre": - switch($text[$i - 1]["type"]){ + switch($answer["description"][$i - 1]["type"]){ case "text": case "italic": - $text[$i - 1]["value"] = rtrim($text[$i - 1]["value"]); + $answer["description"][$i - 1]["value"] = rtrim($answer["description"][$i - 1]["value"]); break; } - $text[] = + $answer["description"][] = [ "type" => "code", "value" => @@ -1441,7 +1460,7 @@ class brave{ ->getTextContent( $elem ), - $text, + $answer["description"], $i ); } @@ -1451,21 +1470,19 @@ class brave{ if( $i !== 0 && - $text[$i - 1]["type"] == "text" + $answer["description"][$i - 1]["type"] == "text" ){ - $text[$i - 1]["value"] = rtrim($text[$i - 1]["value"]); + $answer["description"][$i - 1]["value"] = rtrim($answer["description"][$i - 1]["value"]); } if($author){ - $text[] = [ + $answer["description"][] = [ "type" => "quote", "value" => $this->fuckhtml->getTextContent($author) ]; } - - $answer["description"] = $text; } }else{ @@ -1481,22 +1498,20 @@ class brave{ if(count($description) !== 0){ - $description = + $answer["description"][] = [ - [ - "type" => "text", - "value" => - $this->titledots( - preg_replace( - '/ Wikipedia$/', - "", - $this->fuckhtml - ->getTextContent( - $description[0] - ) + "type" => "text", + "value" => + $this->titledots( + preg_replace( + '/ Wikipedia$/', + "", + $this->fuckhtml + ->getTextContent( + $description[0] ) ) - ] + ) ]; $ratings = @@ -1514,7 +1529,7 @@ class brave{ "div" ); - $description[] = [ + $answer["description"][] = [ "type" => "title", "value" => "Ratings" ]; @@ -1550,36 +1565,34 @@ class brave{ )[0] ); - $c = count($description) - 1; + $c = count($answer["description"]) - 1; if( $c !== -1 && - $description[$c]["type"] == "text" + $answer["description"][$c]["type"] == "text" ){ - $description[$c]["value"] .= $num . " "; + $answer["description"][$c]["value"] .= $num . " "; }else{ - $description[] = [ + $answer["description"][] = [ "type" => "text", "value" => $num . " " ]; } - $description[] = [ + $answer["description"][] = [ "type" => "link", "value" => $this->fuckhtml->getTextContent($href), "url" => $this->fuckhtml->getTextContent($href["attributes"]["href"]) ]; - $description[] = [ + $answer["description"][] = [ "type" => "text", "value" => " (" . $votes . ")\n" ]; } } - - $answer["description"] = $description; } } diff --git a/scraper/facebook.php b/scraper/facebook.php index 46d58d6..7bd576b 100644 --- a/scraper/facebook.php +++ b/scraper/facebook.php @@ -228,16 +228,16 @@ class facebook{ ) ); } - + /* $html = $this->get( "https://www.facebook.com/watch/search/", $req - ); - /* + );*/ + $handle = fopen("scraper/facebook.html", "r"); $html = fread($handle, filesize("scraper/facebook.html")); - fclose($handle);*/ + fclose($handle); preg_match_all( '/({"__bbox":.*,"sequence_number":0}})\]\]/', diff --git a/scraper/google.php b/scraper/google.php index 7ed3577..d0e90ca 100644 --- a/scraper/google.php +++ b/scraper/google.php @@ -824,8 +824,6 @@ class google{ $html = fread($handle, filesize("scraper/google.html")); fclose($handle); - $this->fuckhtml->load($html); - $out = [ "status" => "ok", "spelling" => [ @@ -841,6 +839,507 @@ class google{ "news" => [], "related" => [] ]; + + $this->parsejavascript($html); + + $containers = + $this->fuckhtml + ->getElementsByClassName( + $this->findstyles( + [ + "background-color" => "#fff", + "margin-bottom" => "10px", + "-webkit-box-shadow" => "0 1px 6px rgba(32,33,36,0.28)", + "border-radius" => "8px" + ], + self::is_class + ), + "div" + ); + + foreach($containers as $container){ + + $this->fuckhtml->load($container); + + $title = + $this->fuckhtml + ->getElementsByClassName( + $this->findstyles( + [ + "color" => "#1967d2", + "font-size" => "20px", + "line-height" => "26px" + ], + self::is_class + ), + "div" + ); + + if(count($title) !== 0){ + + /* + Container is a web link + */ + $web = [ + "title" => + $this->titledots( + $this->fuckhtml + ->getTextContent( + $title[0] + ) + ), + "description" => null, + "url" => + $this->decodeurl( + $this->fuckhtml + ->getElementsByTagName("a") + [0] + ["attributes"] + ["href"] + ), + "date" => null, + "type" => "web", + "thumb" => [ + "url" => null, + "ratio" => null + ], + "sublink" => [], + "table" => [] + ]; + + $container = $container["innerHTML"]; + + $description_container = + $this->fuckhtml + ->getElementsByClassName( + $this->findstyles( + [ + "padding" => "12px 16px 12px" + ], + self::is_class + ), + "div" + )[1]; + + $description = + $description_container["innerHTML"]; + + // get sublinks + $this->fuckhtml->load($description); + + $links = + $this->fuckhtml + ->getElementsByTagName("a"); + + $skip = true; + foreach($links as $link){ + + $description = + str_replace( + $link["outerHTML"], + "", + $description + ); + + if($skip){ + + $skip = false; + continue; + } + + $sublink = [ + "title" => null, + "description" => null, + "url" => null, + "date" => null + ]; + + $sublink["title"] = + $this->fuckhtml + ->getTextContent( + $link + ); + + $sublink["url"] = + $this->decodeurl( + $link + ["attributes"] + ["href"] + ); + + $web["sublink"][] = $sublink; + } + + // get thumbnail before we call loadhtml again + $img = + $this->fuckhtml + ->getElementsByTagName("img"); + + if(count($img) !== 0){ + + if( + isset($img[0]["attributes"]["alt"]) && + stripos($img[0]["attributes"]["alt"], "Video for") !== false + ){ + + // is a video thumbnail + $web["thumb"]["ratio"] = "16:9"; + }else{ + + // is a google thumbnail + $web["thumb"]["ratio"] = "1:1"; + } + + $web["thumb"]["url"] = + $this->getimage( + $img[0]["attributes"]["id"] + ); + } + + // get table elements + $this->fuckhtml->load($description); + + $levels = + $this->fuckhtml + ->getElementsByClassName( + $this->findstyles( + [ + "padding-bottom" => "8px" + ], + self::is_class + ), + "div" + ); + + $additional_info = []; + foreach($levels as $level){ + + $this->fuckhtml->load($level); + + $spans = + $this->fuckhtml + ->getElementsByTagName( + "span" + ); + + $is_rating = -2; + + foreach($spans as $span){ + + // clean up description + $description = + str_replace( + $span["outerHTML"], + "", + $description + ); + + $innertext = + $this->fuckhtml + ->getTextContent( + $span + ); + + if($innertext == ""){ continue; } + + if( + strtolower($innertext) + == "rating" + ){ + + $is_rating = -1; + continue; + } + + /* + Parse rating object + */ + + if($is_rating >= -1){ + + if($span["level"] !== 1){ continue; } + + $is_rating++; + + // 10/10 (123) + if($is_rating === 0){ + + $innertext = explode(" ", $innertext, 2); + + $web["table"]["Rating"] = $innertext[0]; + $web["table"]["Hits"] = + trim( + str_replace( + [ + "(", + ")" + ], + "", + $innertext[1] + ) + ); + continue; + } + + // US$4.99 + // MYR 50.00 + // $38.34 + // JP¥6,480 + if($is_rating === 2){ + + $web["table"]["Price"] = $innertext; + continue; + } + + // Android / In stock + if($is_rating === 4){ + + $web["table"]["Support"] = $innertext; + continue; + } + + // ignore the rest + continue; + } + + /* + Parse standalone text + */ + $additional_info[] = $innertext; + } + } + + for($i=0; $ifuckhtml->load($description); + + // get date node + $span = + $this->fuckhtml + ->getElementsByTagName( + "span" + ); + + if(count($span) !== 0){ + + $description = + str_replace( + $span[0]["outerHTML"], + "", + $description + ); + + $span = + strtotime( + $this->fuckhtml + ->getTextContent( + $span[0] + ) + ); + + if($span){ + + $web["date"] = $span; + } + } + + $web["description"] = + trim( + $this->fuckhtml + ->getTextContent( + $description + ), + " ·." + ); + + $out["web"][] = $web; + + continue; + } + + // check for container title header + $container_title = + $this->fuckhtml + ->getElementsByClassName( + $this->findstyles( + [ + "font-weight" => "bold", + "font-size" => "16px", + "color" => "#000", + "margin" => "0", + "padding" => "12px 16px 0 16px" + ], + self::is_class + ), + "div" + ); + + if(count($container_title) !== 0){ + + $container_title = + strtolower( + $this->fuckhtml + ->getTextContent( + $container_title[0] + ) + ); + + if( + $container_title == "related searches" || + $container_title == "people also search for" + ){ + + /* + Parse related searches + */ + $as = + $this->fuckhtml + ->getElementsByTagName("a"); + + foreach($as as $a){ + + $out["related"][] = + $this->fuckhtml + ->getTextContent($a); + } + } + + continue; + } + + /* + Parse image carousel + */ + $title_container = + $this->fuckhtml + ->getElementsByClassName( + $this->findstyles( + [ + "padding" => "12px 16px 12px" + ], + self::is_class + ), + "div" + ); + + if(count($title_container) !== 0){ + + $title_container = + strtolower( + $this->fuckhtml + ->getTextContent( + $title_container[0] + ) + ); + + if($title_container == "imagesview all"){ + + /* + Image carousel + */ + $pcitem = + $this->fuckhtml + ->getElementsByClassName( + "pcitem", + "div" + ); + + foreach($pcitem as $item){ + + $this->fuckhtml->load($item); + + $link = + $this->fuckhtml + ->getElementsByTagName( + "a" + )[0]; + + parse_str( + parse_url( + $this->fuckhtml + ->getTextContent( + $link + ["attributes"] + ["href"] + ), + PHP_URL_QUERY + ), + $link + ); + + if(isset($link["tbm"])){ + + continue; + } + + $image = + $this->fuckhtml + ->getElementsByTagName("img")[0]; + + $title = + $this->fuckhtml + ->getTextContent( + $image + ["attributes"] + ["alt"] + ); + + $image = + $this->getimage( + $image + ["attributes"] + ["id"] + ); + + $out["image"][] = [ + "title" => $title, + "source" => [ + [ + "url" => $link["imgurl"], + "width" => (int)$link["w"], + "height" => (int)$link["h"] + ], + [ + "url" => $image, + "width" => (int)$link["tbnw"], + "height" => (int)$link["tbnh"] + ] + ], + "url" => $link["imgrefurl"] + ]; + } + } + } + + /* + Get next page + */ + $as = + $this->fuckhtml + ->getElementsByTagName("a"); + + foreach($as as $a){ + + if( + isset($a["attributes"]["aria-label"]) && + strtolower($a["attributes"]["aria-label"]) == "next page" + ){ + + $out["npt"] = + $this->fuckhtml + ->getTextContent( + $a["attributes"]["href"] + ); + } + } + } + + return $out; } @@ -1163,7 +1662,7 @@ class google{ return $time; } - private function loadjavascriptcrap($html){ + private function parsejavascript($html){ $this->fuckhtml->load($html); diff --git a/scraper/yandex.php b/scraper/yandex.php index 437c8aa..8cb733e 100644 --- a/scraper/yandex.php +++ b/scraper/yandex.php @@ -18,8 +18,6 @@ class yandex{ $curlproc = curl_init(); - $search = $get["text"]; - if($get !== []){ $get = http_build_query($get); $url .= "?" . $get; @@ -40,7 +38,7 @@ class yandex{ "Accept-Language: en-US,en;q=0.5", "DNT: 1", "Cookie: yp=1716337604.sp.family%3A{$nsfw}#1685406411.szm.1:1920x1080:1920x999", - "Referer: https://yandex.com/images/search?text={$search}", + "Referer: https://yandex.com/images/search", "Connection: keep-alive", "Upgrade-Insecure-Requests: 1", "Sec-Fetch-Dest: document", @@ -72,6 +70,35 @@ class yandex{ switch($pagetype){ + case "web": + return [ + "lang" => [ + "display" => "Language", + "option" => [ + "any" => "Any language", + "en" => "English", + "ru" => "Russian", + "be" => "Belorussian", + "fr" => "French", + "de" => "German", + "id" => "Indonesian", + "kk" => "Kazakh", + "tt" => "Tatar", + "tr" => "Turkish", + "uk" => "Ukrainian" + ] + ], + "newer" => [ + "display" => "Newer than", + "option" => "_DATE" + ], + "older" => [ + "display" => "Older than", + "option" => "_DATE" + ] + ]; + break; + case "images": return [ @@ -149,12 +176,214 @@ class yandex{ ]; break; - default: - return []; + case "videos": + return [ + "nsfw" => [ + "display" => "NSFW", + "option" => [ + "yes" => "Yes", + "maybe" => "Maybe", + "no" => "No" + ] + ], + "time" => [ + "display" => "Time posted", + "option" => [ + "any" => "Any time", + "9" => "Recently" + ] + ], + "duration" => [ + "display" => "Duration", + "option" => [ + "any" => "Any duration", + "short" => "Short" + ] + ] + ]; break; } } - + + public function web($get){ + + // has captcha + // https://yandex.com/search/touch/?text=lol&app_platform=android&appsearch_header=1&ui=webmobileapp.yandex&app_version=23070603&app_id=ru.yandex.searchplugin&search_source=yandexcom_touch_native&clid=2218567 + + // https://yandex.com/search/site/?text=minecraft&web=1&frame=1&v=2.0&searchid=3131712 + // &within=777&from_day=26&from_month=8&from_year=2023&to_day=26&to_month=8&to_year=2023 + + if($get["npt"]){ + + $npt = $this->nextpage->get($get["npt"], "web"); + + $html = + $this->get( + "https://yandex.com" . $npt, + [], + "yes" + ); + }else{ + + $search = $get["s"]; + $lang = $get["lang"]; + $older = $get["older"]; + $newer = $get["newer"]; + + $params = [ + "text" => $search, + "web" => "1", + "frame" => "1", + "searchid" => "3131712" + ]; + + if($lang != "any"){ + + $params["lang"] = $lang; + } + + if( + $newer === false && + $older !== false + ){ + + $newer = 0; + } + + if($newer !== false){ + + $params["from_day"] = date("j", $newer); + $params["from_month"] = date("n", $newer); + $params["from_year"] = date("Y", $newer); + + if($older === false){ + + $older = time(); + } + + $params["to_day"] = date("j", $older); + $params["to_month"] = date("n", $older); + $params["to_year"] = date("Y", $older); + } + + try{ + $html = + $this->get( + "https://yandex.com/search/site/", + $params, + "yes" + ); + }catch(Exception $error){ + + throw new Exception("Could not get search page"); + } + + /* + $handle = fopen("scraper/yandex.html", "r"); + $html = fread($handle, filesize("scraper/yandex.html")); + fclose($handle);*/ + } + + $out = [ + "status" => "ok", + "spelling" => [ + "type" => "no_correction", + "using" => null, + "correction" => null + ], + "npt" => null, + "answer" => [], + "web" => [], + "image" => [], + "video" => [], + "news" => [], + "related" => [] + ]; + + $this->fuckhtml->load($html); + + // get nextpage + $npt = + $this->fuckhtml + ->getElementsByClassName( + "b-pager__next", + "a" + ); + + if(count($npt) !== 0){ + + $out["npt"] = + $this->nextpage->store( + $this->fuckhtml + ->getTextContent( + $npt + [0] + ["attributes"] + ["href"] + ), + "web" + ); + } + + // get items + $items = + $this->fuckhtml + ->getElementsByClassName( + "b-serp-item", + "li" + ); + + foreach($items as $item){ + + $this->fuckhtml->load($item); + + $link = + $this->fuckhtml + ->getElementsByClassName( + "b-serp-item__title-link", + "a" + )[0]; + + $out["web"][] = [ + "title" => + $this->titledots( + $this->fuckhtml + ->getTextContent( + $link + ) + ), + "description" => + $this->titledots( + $this->fuckhtml + ->getTextContent( + $this->fuckhtml + ->getElementsByClassName( + "b-serp-item__text", + "div" + )[0] + ) + ), + "url" => + $this->fuckhtml + ->getTextContent( + $link + ["attributes"] + ["href"] + ), + "date" => null, + "type" => "web", + "thumb" => [ + "url" => null, + "ratio" => null + ], + "sublink" => [], + "table" => [] + ]; + } + + return $out; + } + public function image($get){ if($get["npt"]){ @@ -402,7 +631,7 @@ class yandex{ $json["type"] == "captcha" ){ - throw new Exception("Yandex blocked this 4get instance. Yandex blocks don't last very long, but the block timer gets reset everytime you make another unsuccessful request. Please try again in ~7 minutes."); + throw new Exception("Yandex blocked this 4get instance. Please try again in ~7 minutes."); } if($json === null){ @@ -513,6 +742,359 @@ class yandex{ return $out; } + public function video($get){ + + if($get["npt"]){ + + $params = + json_decode( + $this->nextpage->get( + $get["npt"], + "web" + ), + true + ); + + $nsfw = $params["nsfw"]; + unset($params["nsfw"]); + }else{ + $search = $get["s"]; + $nsfw = $get["nsfw"]; + $time = $get["time"]; + $duration = $get["duration"]; + + // https://yandex.com/video/search + // ?tmpl_version=releases/frontend/video/v1.1168.0#8d942de0f4ebc4eb6b8f3c24ffbd1f8dbc5bbe63 + // &format=json + // &request= + // { + // "blocks":[ + // {"block":"extra-content","params":{},"version":2}, + // {"block":"i-global__params:ajax","params":{},"version":2}, + // {"block":"search2:ajax","params":{},"version":2}, + // {"block":"vital-incut","params":{},"version":2}, + // {"block":"content_type_search","params":{},"version":2}, + // {"block":"serp-controller","params":{},"version":2}, + // {"block":"cookies_ajax","params":{},"version":2} + // ], + // "metadata":{ + // "bundles":{"lb":"^G]!q "releases/frontend/video/v1.1168.0#8d942de0f4ebc4eb6b8f3c24ffbd1f8dbc5bbe63", + "format" => "json", + "request" => json_encode([ + "blocks" => [ + (object)[ + "block" => "extra-content", + "params" => (object)[], + "version" => 2 + ], + (object)[ + "block" => "i-global__params:ajax", + "params" => (object)[], + "version" => 2 + ], + (object)[ + "block" => "search2:ajax", + "params" => (object)[], + "version" => 2 + ], + (object)[ + "block" => "vital-incut", + "params" => (object)[], + "version" => 2 + ], + (object)[ + "block" => "content_type_search", + "params" => (object)[], + "version" => 2 + ], + (object)[ + "block" => "serp-controller", + "params" => (object)[], + "version" => 2 + ], + (object)[ + "block" => "cookies_ajax", + "params" => (object)[], + "version" => 2 + ] + ], + "metadata" => (object)[ + "bundles" => (object)[ + "lb" => "^G]!q (object)[ + "las" => "react-with-dom=1;185.0=1;73.0=1;145.0=1;5a502a.0=1;32c342.0=1;b84ac8.0=1" + ], + "extraContent" => (object)[ + "names" => [ + "i-react-ajax-adapter" + ] + ] + ] + ]), + "text" => $search + ]; + + if($duration != "any"){ + + $params["duration"] = $duration; + } + + if($time != "any"){ + + $params["within"] = $time; + } + } + /* + $handle = fopen("scraper/yandex-video.json", "r"); + $json = fread($handle, filesize("scraper/yandex-video.json")); + fclose($handle); + */ + try{ + $json = + $this->get( + "https://yandex.com/video/search", + $params, + $nsfw + ); + }catch(Exception $error){ + + throw new Exception("Could not fetch JSON"); + } + + $json = json_decode($json, true); + + if($json === null){ + + throw new Exception("Could not parse JSON"); + } + + if(!isset($json["blocks"])){ + + throw new Exception("Yandex blocked this 4get instance. Please try again in 7~ minutes."); + } + + $out = [ + "status" => "ok", + "npt" => null, + "video" => [], + "author" => [], + "livestream" => [], + "playlist" => [], + "reel" => [] + ]; + + $html = null; + foreach($json["blocks"] as $block){ + + if(isset($block["html"])){ + + $html .= $block["html"]; + } + } + + $this->fuckhtml->load($html); + + $div = + $this->fuckhtml + ->getElementsByTagName("div"); + + /* + Get nextpage + */ + $npt = + $this->fuckhtml + ->getElementsByClassName( + "more more_direction_next i-bem", + $div + ); + + if(count($npt) !== 0){ + + $params["p"] = "1"; + $params["nsfw"] = $nsfw; + $out["npt"] = + $this->nextpage->store( + json_encode($params), + "web" + ); + } + + $items = + $this->fuckhtml + ->getElementsByClassName( + "serp-item", + $div + ); + + foreach($items as $item){ + + $data = + json_decode( + $this->fuckhtml + ->getTextContent( + $item["attributes"]["data-video"] + ), + true + ); + + $this->fuckhtml->load($item); + + $thumb = + $this->fuckhtml + ->getElementsByClassName( + "thumb-image__image", + "img" + ); + + if(count($thumb) === 0){ + + $thumb = [ + "url" => null, + "ratio" => null + ]; + }else{ + + $c = 1; + $thumb = [ + "url" => + str_replace( + "//", + "https://", + $this->fuckhtml + ->getTextContent( + $thumb + [0] + ["attributes"] + ["src"] + ), + $c + ), + "ratio" => "16:9" + ]; + } + + $smallinfos = + $this->fuckhtml + ->getElementsByClassName( + "serp-item__sitelinks-item", + "div" + ); + + $date = null; + $views = null; + $first = true; + + foreach($smallinfos as $info){ + + if($first){ + + $first = false; + continue; + } + + $info = + $this->fuckhtml + ->getTextContent( + $info + ); + + if($temp_date = strtotime($info)){ + + $date = $temp_date; + }else{ + + $views = $this->parseviews($info); + } + } + + $description = + $this->fuckhtml + ->getElementsByClassName( + "serp-item__text serp-item__text_visibleText_always", + "div" + ); + + if(count($description) === 0){ + + $description = null; + }else{ + + $description = + $this->titledots( + $this->fuckhtml + ->getTextContent( + $description[0] + ) + ); + } + + $out["video"][] = [ + "title" => + $this->fuckhtml + ->getTextContent( + $this->titledots( + $data["title"] + ) + ), + "description" => $description, + "author" => [ + "name" => null, + "url" => null, + "avatar" => null + ], + "date" => $date, + "duration" => + (int)$data + ["counters"] + ["toHostingLoaded"] + ["stredParams"] + ["duration"], + "views" => $views, + "thumb" => $thumb, + "url" => + $this->fuckhtml + ->getTextContent( + $data["counters"] + ["toHostingLoaded"] + ["postfix"] + ["href"] + ) + ]; + } + + return $out; + } + + private function parseviews($text){ + + $text = explode(" ", $text); + + $num = (float)$text[0]; + $mod = $text[1]; + + switch($mod){ + + case "bln.": $num = $num * 1000000000; break; + case "mln.": $num = $num * 1000000; break; + case "thsd.": $num = $num * 1000; break; + } + + return $num; + } + private function titledots($title){ $substr = substr($title, -3); diff --git a/settings.php b/settings.php index c53599f..c968e57 100644 --- a/settings.php +++ b/settings.php @@ -70,6 +70,10 @@ $settings = [ "value" => "brave", "text" => "Brave" ], + [ + "value" => "yandex", + "text" => "Yandex" + ], /*[ "value" => "google", "text" => "Google" @@ -118,10 +122,6 @@ $settings = [ "value" => "yt", "text" => "YouTube" ], - [ - "value" => "fb", - "text" => "Facebook videos" - ], [ "value" => "ddg", "text" => "DuckDuckGo" @@ -129,6 +129,10 @@ $settings = [ [ "value" => "brave", "text" => "Brave" + ], + [ + "value" => "yandex", + "text" => "Yandex" ]/*, [ "value" => "google", @@ -147,8 +151,8 @@ $settings = [ [ "value" => "brave", "text" => "Brave" - ],/* - [ + ], + /*[ "value" => "google", "text" => "Google" ],*/