From 6bd235f3e62251d8763a552ab0042d59584de842 Mon Sep 17 00:00:00 2001 From: Darkelarious Date: Sat, 8 Mar 2025 15:56:30 +0100 Subject: Metadata and update to hotfix 4. Display thumbnails / snippets in 3rd party apps (like discord) and add map thumbnails + icons for multiple games. Minor fixes/optimisations. --- lib/MasterWebInterface/Handler/Servers.pm | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'lib/MasterWebInterface/Handler/Servers.pm') diff --git a/lib/MasterWebInterface/Handler/Servers.pm b/lib/MasterWebInterface/Handler/Servers.pm index 34c0182..f1c50d2 100755 --- a/lib/MasterWebInterface/Handler/Servers.pm +++ b/lib/MasterWebInterface/Handler/Servers.pm @@ -13,9 +13,11 @@ TUWF::register( # # Generate a list of selected games in the database per game (arg: gamename) # -sub serverlist +sub serverlist { my($self, $adv, $gamename) = @_; + $adv = "s" unless $adv; + $gamename = "all" unless $gamename; # sorting, page my $f = $self->formValidate( @@ -54,8 +56,14 @@ sub serverlist !($gamename eq "333networks" or $f->{gamename} eq "333networks") ? ( nolist => "333networks") : (), ); + # meta data + my $img = (-e "$self->{root}/s/map/default/$gamename.jpg") + ? "/map/default/$gamename.jpg" : "/map/default/333networks.jpg"; + my $label = $self->dbGetGameDesc($gamename) // ""; + my $desc = "There are $p $label servers currently listed online."; + # Write page - $self->htmlHeader(title => "Servers"); + $self->htmlHeader(title => "$label Serverlist", meta_desc => $desc, meta_img => $img); # search box type: simple or advanced if ($adv eq 'adv') @@ -118,10 +126,10 @@ sub serverlist # country flag # TODO: advanced filter by country only - my ($flag, $country) = $self->countryflag($l->{country}); + my ($flag, $country) = $self->countryflag($l->{country} // ""); td class => "tc1", style => "background-image: url(/flag/$flag.svg);", - title => $country, + title => $country // "", ''; # server name (and defaults) @@ -145,14 +153,18 @@ sub serverlist } else { - td $gn; + td class => "tc3 icon", + style => "background-image: url(/icon32/333networks.png);", + title => $l->{label}; + a href => "/$adv/$gn", ""; + end; } # game type (hover: raw, display: parsed) # TODO: advanced filter by gametype only td class => "tc4", - title => $l->{gametype}, - $self->better_gametype($l->{gametype}); + title => $l->{gametype} // "", + $self->better_gametype($l->{gametype} // ""); # number of players / maximum players td class => "tc5"; @@ -162,7 +174,7 @@ sub serverlist end; # map title/name - my $maplabel = ($l->{maptitle} && lc $l->{maptitle} ne "untitled" ? $l->{maptitle} : $l->{mapname}); + my $maplabel = ($l->{maptitle} && lc $l->{maptitle} ne "untitled" ? $l->{maptitle} : $l->{mapname} // ""); td class => "tc6", title => $maplabel // "---", $maplabel // "---"; end; }, -- cgit v1.2.3