fixed brave news

This commit is contained in:
lolcat 2023-11-09 08:50:53 -05:00
parent 165d80f80b
commit 9fd993b47b
1 changed files with 38 additions and 115 deletions

View File

@ -1139,131 +1139,54 @@ class brave{
$proxy $proxy
); );
$news = preg_match(
$this->fuckhtml '/const data ?= ?(\[{.*}]);/',
->getElementsByClassName( $html,
"snippet inline gap-standard", $json
"div"
); );
foreach($news as $article){ if(!isset($json[1])){
$data = [ throw new Exception("Failed to grep javascript object");
"title" => null,
"author" => null,
"description" => null,
"date" => null,
"thumb" =>
[
"url" => null,
"ratio" => null
],
"url" => null
];
$this->fuckhtml->load($article);
$elems =
$this->fuckhtml
->getElementsByTagName("*");
// get title
$data["title"] =
$this->fuckhtml
->getTextContent(
$this->fuckhtml
->getElementsByClassName(
"snippet-title",
$elems
)
[0]
["innerHTML"]
);
// get description
$data["description"] =
$this->titledots(
$this->fuckhtml
->getTextContent(
$this->fuckhtml
->getElementsByClassName(
"snippet-description",
$elems
)
[0]
["innerHTML"]
)
);
// get date
$date =
explode(
"",
$this->fuckhtml
->getTextContent(
$this->fuckhtml
->getElementsByClassName(
"snippet-url",
$elems
)[0]
)
);
if(
count($date) !== 1 &&
trim($date[1]) != ""
){
$data["date"] =
strtotime(
$date[1]
);
} }
// get URL $json = $this->fuckhtml->parseJsObject($json[1], true);
$data["url"] =
$this->fuckhtml->getTextContent(
$this->unshiturl(
$this->fuckhtml
->getElementsByClassName(
"result-header",
$elems
)
[0]
["attributes"]
["href"]
)
);
// get thumbnail if($json === null){
$thumb =
$this->fuckhtml
->getElementsByTagName(
"img"
);
if( throw new Exception("Failed to parse javascript object");
count($thumb) === 2 && }
trim(
$thumb[1] foreach(
["attributes"] $json[1]["data"]["body"]["response"]["news"]["results"]
["src"] as $news
) != ""
){ ){
$data["thumb"] = [ if(
"url" => !isset($news["thumbnail"]["src"]) ||
$this->fuckhtml->getTextContent( $news["thumbnail"]["src"] == "void 0"
$this->unshiturl( ){
$thumb[1]
["attributes"] $thumb = [
["src"] "url" => null,
) "ratio" => null
), ];
}else{
$thumb = [
"url" => $this->unshiturl($news["thumbnail"]["src"]),
"ratio" => "16:9" "ratio" => "16:9"
]; ];
} }
$out["news"][] = $data; $out["news"][] = [
"title" => $news["title"],
"author" => null,
"description" => $news["description"],
"date" => !isset($news["age"]) || $news["age"] == "void 0" ? null : strtotime($news["age"]),
"thumb" => $thumb,
"url" => $news["url"]
];
} }
return $out; return $out;