diff options
| author | Darkelarious <github@333networks.com> | 2025-03-08 15:56:30 +0100 |
|---|---|---|
| committer | Darkelarious <github@333networks.com> | 2025-03-08 15:56:30 +0100 |
| commit | 6bd235f3e62251d8763a552ab0042d59584de842 (patch) | |
| tree | 2ff943b6ddb8aa8980a3ed1fb4a1f869fc787d1c /lib/MasterWebInterface/Handler/Servers.pm | |
| parent | 318a5a20a930192df788dbac54b1f9c60e1b98b8 (diff) | |
| download | WebInterface-Perl-6bd235f3e62251d8763a552ab0042d59584de842.tar.gz WebInterface-Perl-6bd235f3e62251d8763a552ab0042d59584de842.zip | |
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.
Diffstat (limited to 'lib/MasterWebInterface/Handler/Servers.pm')
| -rwxr-xr-x | lib/MasterWebInterface/Handler/Servers.pm | 28 |
1 files changed, 20 insertions, 8 deletions
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; }, |
