[GithubTrendingBridge] Add support for spoken languages (#4149)

* [GithubTrendingBridge] Add support for spoken languages

* Update GithubTrendingBridge.php
This commit is contained in:
tillcash 2024-07-29 01:30:36 +05:30 committed by GitHub
parent f7ddbcd733
commit 00d5242871
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -586,16 +586,18 @@ class GithubTrendingBridge extends BridgeAbstract
'Monthly' => 'monthly',
],
'defaultValue' => 'today'
],
'spokenLanguage' => [
'name' => 'Spoken Language Code',
'type' => 'text',
'exampleValue' => 'en',
]
]
];
public function collectData()
{
$params = ['since' => urlencode($this->getInput('date_range'))];
$url = self::URI . '/' . $this->getInput('language') . '?' . http_build_query($params);
$url = $this->constructUrl();
$html = getSimpleHTMLDOM($url);
$this->items = [];
@ -630,4 +632,32 @@ class GithubTrendingBridge extends BridgeAbstract
return parent::getName();
}
private function constructUrl()
{
$url = self::URI;
$language = $this->getInput('language');
$dateRange = $this->getInput('date_range');
$spokenLanguage = $this->getInput('spokenLanguage');
if (!empty($language)) {
$url .= '/' . $language;
}
$queryParams = [];
if (!empty($dateRange)) {
$queryParams['since'] = $dateRange;
}
if (!empty($spokenLanguage)) {
$queryParams['spoken_language_code'] = trim($spokenLanguage);
}
if (!empty($queryParams)) {
$url .= '?' . http_build_query($queryParams);
}
return $url;
}
}