forked from Korbs/4get
fixed brave news
This commit is contained in:
parent
165d80f80b
commit
9fd993b47b
1 changed files with 38 additions and 115 deletions
|
@ -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;
|
||||||
|
|
Reference in a new issue