. * */ namespace Friendica\Factory\Api\Mastodon; use Friendica\BaseFactory; use Friendica\Collection\Api\Mastodon\Emojis; class Emoji extends BaseFactory { public function create(string $shortcode, string $url): \Friendica\Object\Api\Mastodon\Emoji { return new \Friendica\Object\Api\Mastodon\Emoji($shortcode, $url); } /** * Creates an emoji collection from shortcode => image mappings. * * @param array $smilies * * @return Emojis */ public function createCollectionFromArray(array $smilies): Emojis { $prototype = null; $emojis = []; foreach ($smilies as $shortcode => $icon) { if (preg_match('/src="(.+?)"/', $icon, $matches)) { $url = $matches[1]; $shortcode = trim($shortcode, ':'); if ($prototype === null) { $prototype = $this->create($shortcode, $url); $emojis[] = $prototype; } else { $emojis[] = \Friendica\Object\Api\Mastodon\Emoji::createFromPrototype($prototype, $shortcode, $url); } } } return new Emojis($emojis); } /** * @param array $smilies * * @return Emojis */ public function createCollectionFromSmilies(array $smilies): Emojis { return self::createCollectionFromArray(array_combine($smilies['texts'], $smilies['icons'])); } }