diff options
| author | Darkelarious <darkelarious@333networks.com> | 2022-07-19 18:28:00 +0200 |
|---|---|---|
| committer | Darkelarious <darkelarious@333networks.com> | 2022-07-19 18:28:00 +0200 |
| commit | e9b4cd5fc79ca2d044eba4fed8bf62b138f44249 (patch) | |
| tree | f396b20f3f415989529484eaacf12314dc72e019 /lib/MasterWebInterface/Handler/Json/JsonServerList.pm | |
| parent | 30adff959ed724224d4a9e1d37b08705f5d62f53 (diff) | |
| download | WebInterface-Perl-e9b4cd5fc79ca2d044eba4fed8bf62b138f44249.tar.gz WebInterface-Perl-e9b4cd5fc79ca2d044eba4fed8bf62b138f44249.zip | |
simplify address format
Diffstat (limited to 'lib/MasterWebInterface/Handler/Json/JsonServerList.pm')
| -rwxr-xr-x | lib/MasterWebInterface/Handler/Json/JsonServerList.pm | 81 |
1 files changed, 24 insertions, 57 deletions
diff --git a/lib/MasterWebInterface/Handler/Json/JsonServerList.pm b/lib/MasterWebInterface/Handler/Json/JsonServerList.pm index 7781d94..702a02e 100755 --- a/lib/MasterWebInterface/Handler/Json/JsonServerList.pm +++ b/lib/MasterWebInterface/Handler/Json/JsonServerList.pm @@ -5,15 +5,12 @@ use Exporter 'import'; use JSON; TUWF::register( - qr{json/(.[\w]{1,20})} => \&serverlist_json, - qr{json/(.[\w]{1,20})/(all|[0a-z])} => \&serverlist_json, + qr{json/([\w]{1,20})} => \&serverlist_json, # valid list ); -################################################################################ -# LIST SERVERS +# # Generate a list of selected games in the database per game (arg: gamename) -# Same as &serverlist, but with json output. -################################################################################ +# sub serverlist_json { my($self, $gamename) = @_; @@ -21,50 +18,26 @@ sub serverlist_json # sorting, page my $f = $self->formValidate( - { - get => 's', - required => 0, - default => 'gamename', - enum => [ qw| hostname gamename country added gametype numplayers mapname | ] - }, - { - get => 'o', - required => 0, - default => 'a', - enum => [ 'a','d' ] - }, - { - get => 'p', - required => 0, - default => 1, - template => 'page', - }, - { - get => 'q', - required => 0, - default => '', - maxlength => 90 - }, - { - get => 'r', - required => 0, - default => 100, - template => 'page' - }, - { - get => 'g', - required => 0, - default => '', - maxlength => 90 - }, - { - get => 'a', - required => 0, - default => '', - maxlength => 200 - }, + { get => 's', required => 0, default => 'gamename', enum => [qw|hostname gamename country added gametype numplayers mapname|] }, + { get => 'o', required => 0, default => 'a', enum => ['a','d'] }, + { get => 'p', required => 0, default => 1, template => 'page' }, + { get => 'r', required => 0, default => 100, template => 'page' }, + { get => 'q', required => 0, default => '', maxlength => 90 }, + { get => 'g', required => 0, default => '', maxlength => 90 }, + { get => 'a', required => 0, default => '', maxlength => 200 }, ); - return $self->resNotFound if $f->{_err}; + + # generate json error data if errors in field + if ( $f->{_err} ) + { + $self->resHeader("Content-Type", "application/json; charset=UTF-8"); + $self->resJSON({ + error => 1, + in => "options", + options => $f->{_err} + }); + return; + } # load server list from database my ( $list, $np, $p ) = $self->dbServerListGet( @@ -77,7 +50,7 @@ sub serverlist_json updated => $self->{window_time}, gametype => $f->{g}, - # parse extra request parameters like version, populated, etc + # parse extra request parameters for ubrowser.333networks.com ($f->{a} =~ m/popserv/ig) ? (popserv => 1) : (), ($f->{a} =~ m/utdemo/ig) ? (utdemo => 1) : (), ); @@ -90,14 +63,8 @@ sub serverlist_json } # return json data as the response - my $json_data = encode_json [$list, {total => $p, players => $pl}]; - print { - $self->resFd() - } $json_data; - - # set content type and allow off-domain access (for example jQuery) - $self->resHeader("Access-Control-Allow-Origin", "*"); $self->resHeader("Content-Type", "application/json; charset=UTF-8"); + $self->resJSON( [$list, {total => $p, players => $pl}] ); } 1; |
