diff --git a/app/Models/Emote.php b/app/Models/Emote.php index afe9db9..0f7cbed 100644 --- a/app/Models/Emote.php +++ b/app/Models/Emote.php @@ -11,6 +11,7 @@ class Emote extends Model 'guild_id', 'emote_name', 'type', + 'image', ]; protected $casts = [ diff --git a/app/Services/UpdateEmoteImages.php b/app/Services/UpdateEmoteImages.php new file mode 100644 index 0000000..c0ad483 --- /dev/null +++ b/app/Services/UpdateEmoteImages.php @@ -0,0 +1,47 @@ +discord->guilds->get('id', $guildId); + if (! $guild) { + return; + } + + foreach ($guild->emojis as $emoji) { + $type = $emoji->animated ? 'ANIMATED' : 'STATIC'; + $emote = \App\Models\Emote::where('emote_id', $emoji->id)->where('type', $type)->whereNull('image')->first(); + if (! $emote) { + continue; + } + + $ext = $emoji->animated ? 'gif' : 'png'; + $url = "https://cdn.discordapp.com/emojis/{$emoji->id}.{$ext}"; + + try { + $client = new \GuzzleHttp\Client; + $response = $client->get($url); + if ($response->getStatusCode() === 200) { + $imageData = $response->getBody()->getContents(); + $emote->image = $imageData; + $emote->save(); + } + } catch (\Exception $e) { + } + } + } +} diff --git a/database/migrations/2026_02_19_160000_add_image_to_emotes_table.php b/database/migrations/2026_02_19_160000_add_image_to_emotes_table.php new file mode 100644 index 0000000..b5723bb --- /dev/null +++ b/database/migrations/2026_02_19_160000_add_image_to_emotes_table.php @@ -0,0 +1,28 @@ +binary('image')->nullable()->after('type'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('emotes', function (Blueprint $table) { + $table->dropColumn('image'); + }); + } +};