Merge branch 'develop' into feature/resolver-dlsite-affiliate

This commit is contained in:
Aoi Irie 2019-08-28 00:31:20 +09:00 committed by GitHub
commit 1bec21f15f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 2429 additions and 22 deletions

View File

@ -96,7 +96,8 @@ class DLsiteResolver implements Resolver
// #work_makerから「makerを含むテキスト」を持つ要素を持つtdを探す // #work_makerから「makerを含むテキスト」を持つ要素を持つtdを探す
// 作者名単体の場合もあるし、"作者A / 作者B"のようになることもある // 作者名単体の場合もあるし、"作者A / 作者B"のようになることもある
$makersNode = $xpath->query('//*[@id="work_maker"]//*[contains(text(), "' . $makers[0] . '")]/ancestor::td')->item(0); $makersNode = $xpath->query('//*[@id="work_maker"]//*[contains(text(), "' . $makers[0] . '")]/ancestor::td')->item(0);
$makers = trim($makersNode->textContent); // nbspをspaceに置換
$makers = trim(str_replace("\xc2\xa0", ' ', $makersNode->textContent));
// makersHaed // makersHaed
// $makerNode(td)に対するthを探す // $makerNode(td)に対するthを探す
@ -111,10 +112,11 @@ class DLsiteResolver implements Resolver
// OGP説明文から定型文を消す // OGP説明文から定型文を消す
if (strpos($url, 'dlsite.com/eng/') || strpos($url, 'dlsite.com/ecchi-eng/')) { if (strpos($url, 'dlsite.com/eng/') || strpos($url, 'dlsite.com/ecchi-eng/')) {
$metadata->description = trim(preg_replace('~DLsite.+ is a download shop for .+With a huge selection of products, we\'re sure you\'ll find whatever tickles your fancy\. DLsite is one of the greatest indie contents download shops in Japan\.$~', '', $metadata->description)); $metadata->description = preg_replace('~DLsite.+ is a download shop for .+With a huge selection of products, we\'re sure you\'ll find whatever tickles your fancy\. DLsite is one of the greatest indie contents download shops in Japan\.$~', '', $metadata->description);
} else { } else {
$metadata->description = trim(preg_replace('~「DLsite.+」は.+のダウンロードショップ。お気に入りの作品をすぐダウンロードできてすぐ楽しめる毎日更新しているのであなたが探している作品にきっと出会えます。国内最大級の二次元総合ダウンロードショップ「DLsite」$~', '', $metadata->description)); $metadata->description = preg_replace('~「DLsite.+」は.+のダウンロードショップ。お気に入りの作品をすぐダウンロードできてすぐ楽しめる毎日更新しているのであなたが探している作品にきっと出会えます。国内最大級の二次元総合ダウンロードショップ「DLsite」$~', '', $metadata->description);
} }
$metadata->description = trim(strip_tags($metadata->description));
// 整形 // 整形
$metadata->description = $makersHead . ': ' . $makers . PHP_EOL . $metadata->description; $metadata->description = $makersHead . ': ' . $makers . PHP_EOL . $metadata->description;

View File

@ -23,31 +23,27 @@ class DeviantArtResolver implements Resolver
public function resolve(string $url): Metadata public function resolve(string $url): Metadata
{ {
$res = $this->client->get($url); $res = $this->client->get('https://backend.deviantart.com/oembed?url=' . $url);
if ($res->getStatusCode() === 200) { if ($res->getStatusCode() === 200) {
$metadata = $this->ogpResolver->parse($res->getBody()); $data = json_decode($res->getBody()->getContents(), true);
$metadata = new Metadata();
$dom = new \DOMDocument(); if (preg_match('~\.wixmp\.com$~', parse_url($data['url'])['host'])) {
@$dom->loadHTML(mb_convert_encoding($res->getBody(), 'HTML-ENTITIES', 'UTF-8')); // アスペクト比を保ったまま、縦か横が最大1024pxになる画像を取得する。
$xpath = new \DOMXPath($dom);
$node = $xpath->query('//*[@id="pimp-preload"]/following-sibling::div//img')->item(0);
$srcset = $node->getAttribute('srcset');
$srcset_array = explode('w,', $srcset);
$src = end($srcset_array);
$src = preg_replace('~ \d+w$~', '', $src);
if (preg_match('~\.wixmp\.com$~', parse_url($src)['host'])) {
// アスペクト比を保ったまま、縦か横が最大700pxになるように変換する。
// Ref: https://support.wixmp.com/en/article/image-service-3835799 // Ref: https://support.wixmp.com/en/article/image-service-3835799
if (strpos($src, '/v1/fill/')) { // 作成されていない画像が参照されると403を返すようなので、サイト内で使用されている1024pxにした。
$src = preg_replace('~/v1/fill/w_\d+,h_\d+,q_\d+,strp~', '/v1/fit/w_700,h_700,q_70,strp', $src); if (strpos($data['url'], '/v1/fill/')) {
$metadata->image = preg_replace('~/v1/fill/w_\d+,h_\d+(?:,q_\d+),strp/.+\.(jpg|png|webp|gif)~', '/v1/fit/w_1024,h_1024,strp/image.jpg', $data['url']);
} else { } else {
$src = $src . '/v1/fit/w_700,h_700,q_70,strp/image.jpg'; $queryStartPos = strpos($data['url'], '?');
$metadata->image = substr_replace($data['url'], '/v1/fit/w_1024,h_1024,strp/image.jpg', $queryStartPos, 0);
} }
} else {
$metadata->image = $data['url'];
} }
$metadata->image = $src; $metadata->title = $data['title'] ?? '';
$metadata->description = 'By ' . $data['author_name'];
return $metadata; return $metadata;
} else { } else {

View File

@ -106,7 +106,7 @@ class DLsiteResolverTest extends TestCase
$metadata = $this->resolver->resolve('https://www.dlsite.com/books/work/=/product_id/BJ191317.html'); $metadata = $this->resolver->resolve('https://www.dlsite.com/books/work/=/product_id/BJ191317.html');
$this->assertEquals('永遠娘 vol.6', $metadata->title); $this->assertEquals('永遠娘 vol.6', $metadata->title);
$this->assertEquals('著者: あまがえる / 玉之けだま / びんせん / 甘露アメ / 源五郎 / すみやお / 宇宙烏賊 / 毒茸人 / あやね / ガロウド / ハードボイルドよし子 / 夜歌 / 黒青郎君' . PHP_EOL . '君の命はどんな味なのだろうな?', $metadata->description); $this->assertEquals('著者: あまがえる / 玉之けだま / びんせん / 甘露アメ / 源五郎 / すみやお / 宇宙烏賊 / 毒茸人 / あやね / ガロウド / ハードボイルドよし子 / 夜歌 / 黒青郎君' . PHP_EOL . '君の命はどんな味なのだろうな?', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/books/BJ192000/BJ191317_img_main.jpg', $metadata->image); $this->assertEquals('https://img.dlsite.jp/modpub/images2/work/books/BJ192000/BJ191317_img_main.jpg', $metadata->image);
$this->assertEquals(['ツンデレ', 'ロリ', '妖怪', '人外娘/モンスター娘', 'セーラー服', 'メイド', 'ストッキング', 'ファンタジー', 'ぶっかけ', '中出し', '近親相姦', 'アヘ顔', '口内射精'], $metadata->tags); $this->assertEquals(['ツンデレ', 'ロリ', '妖怪', '人外娘/モンスター娘', 'セーラー服', 'メイド', 'ストッキング', 'ファンタジー', 'ぶっかけ', '中出し', '近親相姦', 'アヘ顔', '口内射精'], $metadata->tags);
if ($this->shouldUseMock()) { if ($this->shouldUseMock()) {
@ -268,4 +268,20 @@ class DLsiteResolverTest extends TestCase
$this->resolver->resolve('http://www.dlsite.com/home/dlaf/=/aid/eai04191/url/https%3A%2F%2Fwww.dlsite.com%2Fhome%2F'); $this->resolver->resolve('http://www.dlsite.com/home/dlaf/=/aid/eai04191/url/https%3A%2F%2Fwww.dlsite.com%2Fhome%2F');
} }
public function testHTMLdescription()
{
$responseText = file_get_contents(__DIR__ . '/../../fixture/DLsite/testHTMLdescription.html');
$this->createResolver(DLsiteResolver::class, $responseText);
$metadata = $this->resolver->resolve('https://www.dlsite.com/books/work/=/product_id/BJ123822.html');
$this->assertEquals('獣○彼女カタログ', $metadata->title);
$this->assertEquals('著者: チキコ / MUJIN編集部' . PHP_EOL . '【DLsite.com独占販売】 エロ漫画界騒然、1冊まるごと獣○オンリー単行本! 人間チ×ポは出てきませんっ!!', $metadata->description);
$this->assertEquals('https://img.dlsite.jp/modpub/images2/work/books/BJ124000/BJ123822_img_main.jpg', $metadata->image);
$this->assertEquals(['断面図', '制服', '水着', 'メイド', '巫女', '軍服', '中出し', 'フェラチオ', '複数プレイ/乱交', '異種姦', '巨乳/爆乳', '処女', '褐色/日焼け'], $metadata->tags);
if ($this->shouldUseMock()) {
$this->assertSame('https://www.dlsite.com/books/work/=/product_id/BJ123822.html', (string) $this->handler->getLastRequest()->getUri());
}
}
} }

View File

@ -0,0 +1,65 @@
<?php
namespace Tests\Unit\MetadataResolver;
use App\MetadataResolver\DeviantArtResolver;
use Tests\TestCase;
class DeviantArtResolverTest extends TestCase
{
use CreateMockedResolver;
public function setUp()
{
parent::setUp();
if (!$this->shouldUseMock()) {
sleep(1);
}
}
public function testWixmp()
{
$responseText = file_get_contents(__DIR__ . '/../../fixture/DeviantArt/wixmp.json');
$this->createResolver(DeviantArtResolver::class, $responseText);
$metadata = $this->resolver->resolve('https://www.deviantart.com/bonchilo/art/Sally-Nox-743562408');
$this->assertSame('Sally Nox', $metadata->title);
$this->assertSame('By Bonchilo', $metadata->description);
$this->assertStringStartsWith('https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/f6b84a8f-053e-4ab6-bd6c-71276a4a9282/dcap4fc-6fd6359c-770b-4515-9e29-e99311d58d57.png/v1/fit/w_1024,h_1024,strp/image.jpg?token=', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://backend.deviantart.com/oembed?url=https://www.deviantart.com/bonchilo/art/Sally-Nox-743562408', (string) $this->handler->getLastRequest()->getUri());
}
}
public function testWixmpNoImageOptions()
{
$responseText = file_get_contents(__DIR__ . '/../../fixture/DeviantArt/wixmpNoImageOptions.json');
$this->createResolver(DeviantArtResolver::class, $responseText);
$metadata = $this->resolver->resolve('https://www.deviantart.com/messenger-lame/art/rem-639676105');
$this->assertSame('rem', $metadata->title);
$this->assertSame('By messenger-lame', $metadata->description);
$this->assertStringStartsWith('https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/9afa7937-381f-47f0-a8bc-40b9db1faad1/dakuh8p-aea3fc1c-c06e-466b-88ba-d27be8e164e9.png/v1/fit/w_1024,h_1024,strp/image.jpg?token=', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://backend.deviantart.com/oembed?url=https://www.deviantart.com/messenger-lame/art/rem-639676105', (string) $this->handler->getLastRequest()->getUri());
}
}
public function testMature()
{
$responseText = file_get_contents(__DIR__ . '/../../fixture/DeviantArt/mature.json');
$this->createResolver(DeviantArtResolver::class, $responseText);
$metadata = $this->resolver->resolve('https://www.deviantart.com/rasbii/art/backstage-620617246');
$this->assertSame('backstage', $metadata->title);
$this->assertSame('By Rasbii', $metadata->description);
$this->assertSame('https://orig00.deviantart.net/eb50/f/2016/191/a/b/preview_by_rasbii-da9hzby.png', $metadata->image);
if ($this->shouldUseMock()) {
$this->assertSame('https://backend.deviantart.com/oembed?url=https://www.deviantart.com/rasbii/art/backstage-620617246', (string) $this->handler->getLastRequest()->getUri());
}
}
}

File diff suppressed because it is too large Load Diff

1
tests/fixture/DeviantArt/mature.json vendored Normal file
View File

@ -0,0 +1 @@
{"version":"1.0","type":"photo","title":"backstage","category":"Anthro > Digital Media > Drawings > Animals","url":"https:\/\/orig00.deviantart.net\/eb50\/f\/2016\/191\/a\/b\/preview_by_rasbii-da9hzby.png","author_name":"Rasbii","author_url":"https:\/\/www.deviantart.com\/rasbii","provider_name":"DeviantArt","provider_url":"https:\/\/www.deviantart.com","safety":"adult","pubdate":"2016-07-09T13:12:42-07:00","community":{"statistics":{"_attributes":{"views":6678,"favorites":127,"comments":39,"downloads":0}}},"rating":"adult","license":{"_attributes":{"type":"text\/html","href":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/3.0\/"},"0":"Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License"},"width":"689","height":"619","imagetype":"png","thumbnail_url":"https:\/\/t00.deviantart.net\/eJ1IFDUqQxCrbw2pGNP2ZYtyqk4=\/fit-in\/300x900\/filters:no_upscale():origin()\/pre00\/e504\/th\/pre\/f\/2016\/191\/a\/b\/preview_by_rasbii-da9hzby.png","thumbnail_width":300,"thumbnail_height":270,"thumbnail_url_150":"https:\/\/t00.deviantart.net\/EUshcQ7hG73H6zzfsrnH8xJl5dQ=\/fit-in\/150x150\/filters:no_upscale():origin()\/pre00\/e504\/th\/pre\/f\/2016\/191\/a\/b\/preview_by_rasbii-da9hzby.png","thumbnail_url_200h":"https:\/\/t00.deviantart.net\/ijA0nHI6NA42Ocm0Bfd1rhrDHh0=\/300x200\/filters:fixed_height(100,100):origin()\/pre00\/e504\/th\/pre\/f\/2016\/191\/a\/b\/preview_by_rasbii-da9hzby.png","thumbnail_width_200h":223,"thumbnail_height_200h":200}

1
tests/fixture/DeviantArt/wixmp.json vendored Normal file
View File

@ -0,0 +1 @@
{"version":"1.0","type":"photo","title":"Sally Nox","category":"Manga & Anime > Digital Media > Drawings","url":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/f6b84a8f-053e-4ab6-bd6c-71276a4a9282\/dcap4fc-6fd6359c-770b-4515-9e29-e99311d58d57.png\/v1\/fill\/w_947,h_844,q_70,strp\/sally__nox_by_bonchilo_dcap4fc-pre.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTE0MCIsInBhdGgiOiJcL2ZcL2Y2Yjg0YThmLTA1M2UtNGFiNi1iZDZjLTcxMjc2YTRhOTI4MlwvZGNhcDRmYy02ZmQ2MzU5Yy03NzBiLTQ1MTUtOWUyOS1lOTkzMTFkNThkNTcucG5nIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.zbw4e5eH0NafyMmhM15DKN1NjawSZBUwr2RWQWB7O3o","author_name":"Bonchilo","author_url":"https:\/\/www.deviantart.com\/bonchilo","provider_name":"DeviantArt","provider_url":"https:\/\/www.deviantart.com","safety":"nonadult","pubdate":"2018-05-05T07:18:54-07:00","community":{"statistics":{"_attributes":{"views":243,"favorites":73,"comments":7,"downloads":7}}},"copyright":{"_attributes":{"url":"https:\/\/www.deviantart.com\/bonchilo","year":"2018","entity":"Bonchilo"}},"width":947,"height":844,"imagetype":"","thumbnail_url":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/f6b84a8f-053e-4ab6-bd6c-71276a4a9282\/dcap4fc-6fd6359c-770b-4515-9e29-e99311d58d57.png\/v1\/fit\/w_300,h_900,q_70,strp\/sally__nox_by_bonchilo_dcap4fc-300w.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTE0MCIsInBhdGgiOiJcL2ZcL2Y2Yjg0YThmLTA1M2UtNGFiNi1iZDZjLTcxMjc2YTRhOTI4MlwvZGNhcDRmYy02ZmQ2MzU5Yy03NzBiLTQ1MTUtOWUyOS1lOTkzMTFkNThkNTcucG5nIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.zbw4e5eH0NafyMmhM15DKN1NjawSZBUwr2RWQWB7O3o","thumbnail_width":300,"thumbnail_height":267,"thumbnail_url_150":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/f6b84a8f-053e-4ab6-bd6c-71276a4a9282\/dcap4fc-6fd6359c-770b-4515-9e29-e99311d58d57.png\/v1\/fit\/w_150,h_150,q_70,strp\/sally__nox_by_bonchilo_dcap4fc-150.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTE0MCIsInBhdGgiOiJcL2ZcL2Y2Yjg0YThmLTA1M2UtNGFiNi1iZDZjLTcxMjc2YTRhOTI4MlwvZGNhcDRmYy02ZmQ2MzU5Yy03NzBiLTQ1MTUtOWUyOS1lOTkzMTFkNThkNTcucG5nIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.zbw4e5eH0NafyMmhM15DKN1NjawSZBUwr2RWQWB7O3o","thumbnail_url_200h":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/f6b84a8f-053e-4ab6-bd6c-71276a4a9282\/dcap4fc-6fd6359c-770b-4515-9e29-e99311d58d57.png\/v1\/fill\/w_225,h_200,q_70,strp\/sally__nox_by_bonchilo_dcap4fc-200h.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTE0MCIsInBhdGgiOiJcL2ZcL2Y2Yjg0YThmLTA1M2UtNGFiNi1iZDZjLTcxMjc2YTRhOTI4MlwvZGNhcDRmYy02ZmQ2MzU5Yy03NzBiLTQ1MTUtOWUyOS1lOTkzMTFkNThkNTcucG5nIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.zbw4e5eH0NafyMmhM15DKN1NjawSZBUwr2RWQWB7O3o","thumbnail_width_200h":225,"thumbnail_height_200h":200}

View File

@ -0,0 +1 @@
{"version":"1.0","type":"photo","title":"rem","category":"Manga & Anime > Digital Media > Drawings","url":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/9afa7937-381f-47f0-a8bc-40b9db1faad1\/dakuh8p-aea3fc1c-c06e-466b-88ba-d27be8e164e9.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7InBhdGgiOiJcL2ZcLzlhZmE3OTM3LTM4MWYtNDdmMC1hOGJjLTQwYjlkYjFmYWFkMVwvZGFrdWg4cC1hZWEzZmMxYy1jMDZlLTQ2NmItODhiYS1kMjdiZThlMTY0ZTkucG5nIn1dXSwiYXVkIjpbInVybjpzZXJ2aWNlOmZpbGUuZG93bmxvYWQiXX0.QX4iUJ00rh1B0PXwyBedqQVbEHR6C72Yp0a9DpM5UIg","author_name":"messenger-lame","author_url":"https:\/\/www.deviantart.com\/messenger-lame","provider_name":"DeviantArt","provider_url":"https:\/\/www.deviantart.com","safety":"nonadult","pubdate":"2016-10-12T05:03:58-07:00","community":{"statistics":{"_attributes":{"views":1612,"favorites":313,"comments":9,"downloads":71}}},"tags":"rem, re_zero_kara_hajimeru_isekai_seikatsu","copyright":{"_attributes":{"url":"https:\/\/www.deviantart.com\/messenger-lame","year":"2016","entity":"messenger-lame"}},"width":"750","height":"1000","imagetype":"png","thumbnail_url":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/9afa7937-381f-47f0-a8bc-40b9db1faad1\/dakuh8p-aea3fc1c-c06e-466b-88ba-d27be8e164e9.png\/v1\/fit\/w_300,h_900,strp\/rem_by_messenger_lame_dakuh8p-300w.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTAwMCIsInBhdGgiOiJcL2ZcLzlhZmE3OTM3LTM4MWYtNDdmMC1hOGJjLTQwYjlkYjFmYWFkMVwvZGFrdWg4cC1hZWEzZmMxYy1jMDZlLTQ2NmItODhiYS1kMjdiZThlMTY0ZTkucG5nIiwid2lkdGgiOiI8PTc1MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19._gC85PXUst0iqKJCZZSUVonW0YRr5GHj2Qen_Q_95Og","thumbnail_width":300,"thumbnail_height":400,"thumbnail_url_150":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/9afa7937-381f-47f0-a8bc-40b9db1faad1\/dakuh8p-aea3fc1c-c06e-466b-88ba-d27be8e164e9.png\/v1\/fit\/w_150,h_150,strp\/rem_by_messenger_lame_dakuh8p-150.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTAwMCIsInBhdGgiOiJcL2ZcLzlhZmE3OTM3LTM4MWYtNDdmMC1hOGJjLTQwYjlkYjFmYWFkMVwvZGFrdWg4cC1hZWEzZmMxYy1jMDZlLTQ2NmItODhiYS1kMjdiZThlMTY0ZTkucG5nIiwid2lkdGgiOiI8PTc1MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19._gC85PXUst0iqKJCZZSUVonW0YRr5GHj2Qen_Q_95Og","thumbnail_url_200h":"https:\/\/images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com\/f\/9afa7937-381f-47f0-a8bc-40b9db1faad1\/dakuh8p-aea3fc1c-c06e-466b-88ba-d27be8e164e9.png\/v1\/fill\/w_150,h_200,strp\/rem_by_messenger_lame_dakuh8p-200h.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTAwMCIsInBhdGgiOiJcL2ZcLzlhZmE3OTM3LTM4MWYtNDdmMC1hOGJjLTQwYjlkYjFmYWFkMVwvZGFrdWg4cC1hZWEzZmMxYy1jMDZlLTQ2NmItODhiYS1kMjdiZThlMTY0ZTkucG5nIiwid2lkdGgiOiI8PTc1MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19._gC85PXUst0iqKJCZZSUVonW0YRr5GHj2Qen_Q_95Og","thumbnail_width_200h":150,"thumbnail_height_200h":200}