diff --git a/app/Data/Countries.php b/app/Data/Countries.php index 4dc746d..afbdf98 100644 --- a/app/Data/Countries.php +++ b/app/Data/Countries.php @@ -8,6 +8,18 @@ class Countries * All countries keyed by ISO2 code. * Fields: name, iso2, iso3, flag, dial_code, timezone, currency */ + /** + * Resolve any ISO2 code (case-insensitive) to its full country name. + * Falls back to the uppercased code, then to null for empty input. + * Use this instead of printing raw two-letter codes to end users. + */ + public static function name(?string $iso2): ?string + { + $code = strtoupper(trim((string) $iso2)); + if ($code === '') return null; + return self::all()[$code]['name'] ?? $code; + } + public static function all(): array { // Return lowercase ISO2 code — used as the fi fi-{code} CSS class (flag-icons library) diff --git a/app/Http/Controllers/SuperAdminController.php b/app/Http/Controllers/SuperAdminController.php index 95926bf..f0ad885 100644 --- a/app/Http/Controllers/SuperAdminController.php +++ b/app/Http/Controllers/SuperAdminController.php @@ -506,7 +506,7 @@ class SuperAdminController extends Controller foreach ($uniqueViewers as $viewer) { if (!$viewer->country) continue; if (!isset($countryMap[$viewer->country])) { - $countryMap[$viewer->country] = ['country' => $viewer->country, 'country_name' => $viewer->country_name, 'total' => 0]; + $countryMap[$viewer->country] = ['country' => $viewer->country, 'country_name' => $viewer->country_name ?: \App\Data\Countries::name($viewer->country), 'total' => 0]; } $countryMap[$viewer->country]['total']++; } diff --git a/app/Http/Controllers/VideoController.php b/app/Http/Controllers/VideoController.php index 725fc96..b19241b 100644 --- a/app/Http/Controllers/VideoController.php +++ b/app/Http/Controllers/VideoController.php @@ -3383,7 +3383,7 @@ class VideoController extends Controller $totalGeo = $rawCountries->sum('cnt'); $countries = $rawCountries->map(fn ($c) => [ 'code' => $c->country, - 'name' => $c->country_name, + 'name' => $c->country_name ?: \App\Data\Countries::name($c->country), 'count' => (int) $c->cnt, 'pct' => $totalGeo > 0 ? round($c->cnt / $totalGeo * 100) : 0, ])->values(); @@ -3722,7 +3722,7 @@ class VideoController extends Controller : asset('images/default-avatar.svg')) : null, 'country' => $topCountry ? $topCountry->country : null, - 'country_name' => $topCountry ? $topCountry->country_name : null, + 'country_name' => $topCountry ? ($topCountry->country_name ?: \App\Data\Countries::name($topCountry->country)) : null, 'reach' => $accesses, 'created_at' => $s->created_at, ]; @@ -3868,7 +3868,7 @@ class VideoController extends Controller return response()->json([ 'country' => $country, - 'country_name' => $countryName ?? $country, + 'country_name' => $countryName ?: (\App\Data\Countries::name($country) ?? $country), 'total_views' => $totalViews, 'registered_users' => $registeredUsers, 'guest_count' => $guestCount, @@ -3943,7 +3943,7 @@ class VideoController extends Controller ->orderByDesc('cnt') ->limit(5) ->get() - ->map(fn ($c) => ['code' => $c->country, 'name' => $c->country_name, 'count' => (int) $c->cnt]); + ->map(fn ($c) => ['code' => $c->country, 'name' => $c->country_name ?: \App\Data\Countries::name($c->country), 'count' => (int) $c->cnt]); return response()->json([ 'date' => $day->format('M d, Y'), @@ -3971,7 +3971,7 @@ class VideoController extends Controller ->map(fn ($r) => [ 'type' => $r->type, 'country' => $r->country, - 'country_name' => $r->country_name, + 'country_name' => $r->country_name ?: \App\Data\Countries::name($r->country), 'at' => $r->downloaded_at, ]); @@ -4101,7 +4101,7 @@ class VideoController extends Controller foreach ($accesses as $a) { $code = $a->country ?: 'XX'; if (! isset($countries[$code])) { - $countries[$code] = ['code' => $code, 'name' => $a->country_name ?: $code, 'count' => 0]; + $countries[$code] = ['code' => $code, 'name' => $a->country_name ?: (\App\Data\Countries::name($code) ?? $code), 'count' => 0]; } $countries[$code]['count']++; @@ -4199,7 +4199,7 @@ class VideoController extends Controller foreach ($rows as $r) { $code = $r->country ?: 'XX'; if (! isset($countries[$code])) { - $countries[$code] = ['code' => $code, 'name' => $r->country_name ?: $code, 'count' => 0]; + $countries[$code] = ['code' => $code, 'name' => $r->country_name ?: (\App\Data\Countries::name($code) ?? $code), 'count' => 0]; } $countries[$code]['count']++; } diff --git a/drafts/VS Screen Arena - Standalone(1).html b/drafts/VS Screen Arena - Standalone(1).html new file mode 100644 index 0000000..e7b8920 --- /dev/null +++ b/drafts/VS Screen Arena - Standalone(1).html @@ -0,0 +1,391 @@ + + +
+ +