51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Feeds;
|
|
|
|
use Goutte\Client;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
class AvasFeed implements Feed
|
|
{
|
|
protected $client;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->client = new Client();
|
|
}
|
|
/**
|
|
* Return the latest articles from avas
|
|
*
|
|
* @return array
|
|
*/
|
|
public function get(): array
|
|
{
|
|
|
|
$crawler = $this->client->request('GET', "https://avas.mv/");
|
|
|
|
$feeds = [];
|
|
|
|
|
|
$crawler->filter('div[class*="flex rtl -mx-4 flex-wrap md:px-0"] div[class*="w-full md:w-1/3 px-4 mb-7"] div a')->each(function ($node) use (&$feeds) {
|
|
$feeds[] = [
|
|
"title" => trim($node->text()),
|
|
"link" => "https://avas.mv" . $node->attr('href'),
|
|
"date" => Carbon::parse($node->filter('timeago')->first()->attr('datetime'))->format("Y-m-d H:i:s")
|
|
|
|
];
|
|
});
|
|
|
|
|
|
$crawler->filter('div[class*="flex md:-mx-4 flex-wrap md:px-0"] div[class*="w-full md:w-1/5 px-4 mb-8"] div a')->each(function ($node) use (&$feeds) {
|
|
$feeds[] = [
|
|
"title" => trim($node->text()),
|
|
"link" => "https://avas.mv" . $node->attr('href'),
|
|
"date" => Carbon::parse($node->filter('timeago')->first()->attr('datetime'))->format("Y-m-d H:i:s")
|
|
|
|
];
|
|
});
|
|
|
|
return $feeds;
|
|
}
|
|
}
|