makerに一致するテキストを探すように修正

This commit is contained in:
eai04191 2019-04-30 06:15:27 +09:00
parent ce3ef3cdff
commit a958ccaa08

View File

@ -27,16 +27,24 @@ class DLsiteResolver implements Resolver
if ($res->getStatusCode() === 200) {
$metadata = $this->ogpResolver->parse($res->getBody());
$dom = new \DOMDocument();
@$dom->loadHTML(mb_convert_encoding($res->getBody(), 'HTML-ENTITIES', 'UTF-8'));
$xpath = new \DOMXPath($dom);
// 抽出
preg_match('~\[(.+)\] \| DLsite$~', $metadata->title, $match);
$title = $xpath->query('//title')->item(0)->textContent;
preg_match('~\[(.+)\] \| DLsite.+$~', $title, $match);
$maker = $match[1];
// makerに一致するthのテキストを探す
$makerHead = $xpath->query('//a[contains(text(), "'.$maker.'")]/ancestor::tr/th')->item(0)->textContent;
// 余分な文を消す
$metadata->title = trim(preg_replace('~ \[.+\] \| DLsite$~', '', $metadata->title));
$metadata->description = trim(preg_replace('~「DLsite.+」は同人誌・同人ゲーム・同人音声のダウンロードショップ。お気に入りの作品をすぐダウンロードできてすぐ楽しめる毎日更新しているのであなたが探している作品にきっと出会えます。国内最大級の二次元総合ダウンロードショップ「DLsite」$~', '', $metadata->description));
// 整形
$metadata->description = 'サークル: ' . $maker . PHP_EOL . $metadata->description;
$metadata->description = $makerHead.': ' . $maker . PHP_EOL . $metadata->description;
$metadata->image = str_replace('img_sam.jpg', 'img_main.jpg', $metadata->image);
return $metadata;