diff options
Diffstat (limited to 'bridges/CdactionBridge.php')
-rw-r--r-- | bridges/CdactionBridge.php | 108 |
1 files changed, 55 insertions, 53 deletions
diff --git a/bridges/CdactionBridge.php b/bridges/CdactionBridge.php index 6712faf6..a73a1b4f 100644 --- a/bridges/CdactionBridge.php +++ b/bridges/CdactionBridge.php @@ -1,60 +1,62 @@ <?php -class CdactionBridge extends BridgeAbstract { - const NAME = 'CD-ACTION bridge'; - const URI = 'https://cdaction.pl'; - const DESCRIPTION = 'Fetches the latest posts from given category.'; - const MAINTAINER = 'tomaszkane'; - const PARAMETERS = array( array( - 'category' => array( - 'name' => 'Kategoria', - 'type' => 'list', - 'values' => array( - 'Najnowsze (wszystkie)' => 'najnowsze', - 'Newsy' => 'newsy', - 'Recenzje' => 'recenzje', - 'Teksty' => array( - 'Publicystyka' => 'publicystyka', - 'Zapowiedzi' => 'zapowiedzi', - 'Już graliśmy' => 'juz-gralismy', - 'Poradniki' => 'poradniki', - ), - 'Kultura' => 'kultura', - 'Wideo' => 'wideo', - 'Czasopismo' => 'czasopismo', - 'Technologie' => array( - 'Artykuły' => 'artykuly', - 'Testy' => 'testy', - ), - 'Na luzie' => array( - 'Konkursy' => 'konkursy', - 'Nadgodziny' => 'nadgodziny', - ) - ) - )) - ); +class CdactionBridge extends BridgeAbstract +{ + const NAME = 'CD-ACTION bridge'; + const URI = 'https://cdaction.pl'; + const DESCRIPTION = 'Fetches the latest posts from given category.'; + const MAINTAINER = 'tomaszkane'; + const PARAMETERS = [ [ + 'category' => [ + 'name' => 'Kategoria', + 'type' => 'list', + 'values' => [ + 'Najnowsze (wszystkie)' => 'najnowsze', + 'Newsy' => 'newsy', + 'Recenzje' => 'recenzje', + 'Teksty' => [ + 'Publicystyka' => 'publicystyka', + 'Zapowiedzi' => 'zapowiedzi', + 'Już graliśmy' => 'juz-gralismy', + 'Poradniki' => 'poradniki', + ], + 'Kultura' => 'kultura', + 'Wideo' => 'wideo', + 'Czasopismo' => 'czasopismo', + 'Technologie' => [ + 'Artykuły' => 'artykuly', + 'Testy' => 'testy', + ], + 'Na luzie' => [ + 'Konkursy' => 'konkursy', + 'Nadgodziny' => 'nadgodziny', + ] + ] + ]] + ]; - public function collectData() { - $html = getSimpleHTMLDOM($this->getURI() . '/' . $this->getInput('category')); + public function collectData() + { + $html = getSimpleHTMLDOM($this->getURI() . '/' . $this->getInput('category')); - $newsJson = $html->find('script#__NEXT_DATA__', 0)->innertext; - if (!$newsJson = json_decode($newsJson)) { - return; - } + $newsJson = $html->find('script#__NEXT_DATA__', 0)->innertext; + if (!$newsJson = json_decode($newsJson)) { + return; + } - $queriesIndex = $this->getInput('category') === 'najnowsze' ? 0 : 1; - foreach ($newsJson->props->pageProps->dehydratedState->queries[$queriesIndex]->state->data->results as $news) { - $item = array(); - $item['uri'] = $this->getURI() . '/' . $news->category->slug . '/' . $news->slug; - $item['title'] = $news->title; - $item['timestamp'] = $news->publishedAt; - $item['author'] = $news->editor->fullName; - $item['content'] = $news->lead; - $item['enclosures'][] = $news->bannerUrl; - $item['categories'] = array_column($news->tags, 'name'); - $item['uid'] = $news->id; + $queriesIndex = $this->getInput('category') === 'najnowsze' ? 0 : 1; + foreach ($newsJson->props->pageProps->dehydratedState->queries[$queriesIndex]->state->data->results as $news) { + $item = []; + $item['uri'] = $this->getURI() . '/' . $news->category->slug . '/' . $news->slug; + $item['title'] = $news->title; + $item['timestamp'] = $news->publishedAt; + $item['author'] = $news->editor->fullName; + $item['content'] = $news->lead; + $item['enclosures'][] = $news->bannerUrl; + $item['categories'] = array_column($news->tags, 'name'); + $item['uid'] = $news->id; - $this->items[] = $item; - } - } + $this->items[] = $item; + } + } } |