diff options
Diffstat (limited to 'bridges/WorldCosplayBridge.php')
-rw-r--r-- | bridges/WorldCosplayBridge.php | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/bridges/WorldCosplayBridge.php b/bridges/WorldCosplayBridge.php deleted file mode 100644 index 721c545f..00000000 --- a/bridges/WorldCosplayBridge.php +++ /dev/null @@ -1,149 +0,0 @@ -<?php - -class WorldCosplayBridge extends BridgeAbstract -{ - const NAME = 'WorldCosplay Bridge'; - const URI = 'https://worldcosplay.net/'; - const DESCRIPTION = 'Returns WorldCosplay photos'; - const MAINTAINER = 'AxorPL'; - - const API_CHARACTER = 'api/photo/list.json?character_id=%u&limit=%u'; - const API_COSPLAYER = 'api/member/photos.json?member_id=%u&limit=%u'; - const API_SERIES = 'api/photo/list.json?title_id=%u&limit=%u'; - const API_TAG = 'api/tag/photo_list.json?id=%u&limit=%u'; - - const CONTENT_HTML - = '<a href="%s" target="_blank"><img src="%s" alt="%s" title="%s"></a>'; - - const ERR_CONTEXT = 'No context provided'; - const ERR_QUERY = 'Unable to query: %s'; - - const LIMIT_MIN = 1; - const LIMIT_MAX = 24; - - const PARAMETERS = [ - 'Character' => [ - 'cid' => [ - 'name' => 'Character ID', - 'type' => 'number', - 'required' => true, - 'title' => 'WorldCosplay character ID', - 'exampleValue' => 18204 - ] - ], - 'Cosplayer' => [ - 'uid' => [ - 'name' => 'Cosplayer ID', - 'type' => 'number', - 'required' => true, - 'title' => 'Cosplayer\'s WorldCosplay profile ID', - 'exampleValue' => 406782 - ] - ], - 'Series' => [ - 'sid' => [ - 'name' => 'Series ID', - 'type' => 'number', - 'required' => true, - 'title' => 'WorldCosplay series ID', - 'exampleValue' => 3139 - ] - ], - 'Tag' => [ - 'tid' => [ - 'name' => 'Tag ID', - 'type' => 'number', - 'required' => true, - 'title' => 'WorldCosplay tag ID', - 'exampleValue' => 33643 - ] - ], - 'global' => [ - 'limit' => [ - 'name' => 'Limit', - 'type' => 'number', - 'required' => false, - 'title' => 'Maximum number of photos to return', - 'exampleValue' => 5, - 'defaultValue' => 5 - ] - ] - ]; - - public function collectData() - { - $limit = $this->getInput('limit'); - $limit = min(self::LIMIT_MAX, max(self::LIMIT_MIN, $limit)); - switch ($this->queriedContext) { - case 'Character': - $id = $this->getInput('cid'); - $url = self::API_CHARACTER; - break; - case 'Cosplayer': - $id = $this->getInput('uid'); - $url = self::API_COSPLAYER; - break; - case 'Series': - $id = $this->getInput('sid'); - $url = self::API_SERIES; - break; - case 'Tag': - $id = $this->getInput('tid'); - $url = self::API_TAG; - break; - default: - returnClientError(self::ERR_CONTEXT); - } - $url = self::URI . sprintf($url, $id, $limit); - - $json = json_decode(getContents($url)); - if ($json->has_error) { - returnServerError($json->message); - } - $list = $json->list; - - foreach ($list as $img) { - $image = $img->photo ?? $img; - $item = [ - 'uri' => self::URI . substr($image->url, 1), - 'title' => $image->subject, - 'author' => $img->member->global_name, - 'enclosures' => [$image->large_url], - 'uid' => $image->id, - ]; - // Context cosplayer don't have created_at - if (isset($image->created_at)) { - $item['timestamp'] = $image->created_at; - } - $item['content'] = sprintf( - self::CONTENT_HTML, - $item['uri'], - $item['enclosures'][0], - $item['title'], - $item['title'] - ); - $this->items[] = $item; - } - } - - public function getName() - { - switch ($this->queriedContext) { - case 'Character': - $id = $this->getInput('cid'); - break; - case 'Cosplayer': - $id = $this->getInput('uid'); - break; - case 'Series': - $id = $this->getInput('sid'); - break; - case 'Tag': - $id = $this->getInput('tid'); - break; - default: - return parent::getName(); - } - return sprintf('%s %u - ', $this->queriedContext, $id) . self::NAME; - } -} |