diff --git a/app/MetadataResolver/KomifloResolver.php b/app/MetadataResolver/KomifloResolver.php new file mode 100644 index 0000000..81e0577 --- /dev/null +++ b/app/MetadataResolver/KomifloResolver.php @@ -0,0 +1,30 @@ +get('https://api.komiflo.com/content/id/' . $id); + if ($res->getStatusCode() === 200) { + $json = json_decode($res->getBody()->getContents(), true); + $metadata = new Metadata(); + + $metadata->title = $json['content']['data']['title'] ?? ''; + $metadata->description = ($json['content']['attributes']['artists']['children'][0]['data']['name'] ?? '?') . + ' - ' . + ($json['content']['parents'][0]['data']['title'] ?? '?'); + + return $metadata; + } else { + throw new \RuntimeException("{$res->getStatusCode()}: $url"); + } + } +} \ No newline at end of file diff --git a/app/MetadataResolver/MetadataResolver.php b/app/MetadataResolver/MetadataResolver.php index 1896376..1a19f3a 100644 --- a/app/MetadataResolver/MetadataResolver.php +++ b/app/MetadataResolver/MetadataResolver.php @@ -7,6 +7,7 @@ class MetadataResolver implements Resolver public $rules = [ '~(((sp\.)?seiga\.nicovideo\.jp/seiga(/#!)?|nico\.ms))/im~' => NicoSeigaResolver::class, '~nijie\.info/view\.php~' => NijieResolver::class, + '~komiflo\.com(/#!)?/comics/(\\d+)~' => KomifloResolver::class, '/.*/' => OGPResolver::class ];