summaryrefslogtreecommitdiff
path: root/lib/DBInfoscreen/Controller/Static.pm
blob: 1ddae406948249aa35571755137b95a4e0f2901b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package DBInfoscreen::Controller::Static;
use Mojo::Base 'Mojolicious::Controller';

# Copyright (C) 2011-2020 Daniel Friesel <derf+dbf@finalrewind.org>
# License: 2-Clause BSD

my %default = (
	mode   => 'app',
	admode => 'deparr',
);

my $dbf_version = qx{git describe --dirty} || 'experimental';

sub redirect {
	my ($self)  = @_;
	my $station = $self->param('station');
	my $params  = $self->req->params;

	$params->remove('station');

	for my $param (qw(platforms mode admode via)) {
		if (
			not $params->param($param)
			or ( exists $default{$param}
				and $params->param($param) eq $default{$param} )
		  )
		{
			$params->remove($param);
		}
	}

	$params = $params->to_string;

	$self->redirect_to("/${station}?${params}");
}

sub geolocation {
	my ($self) = @_;

	$self->render(
		'geolocation',
		with_geolocation => 1,
		hide_opts        => 1
	);
}

sub about {
	my ($self) = @_;

	$self->render(
		'about',
		hide_opts => 1,
		version   => $dbf_version
	);
}

sub privacy {
	my ($self) = @_;

	$self->render( 'privacy', hide_opts => 1 );
}

sub imprint {
	my ($self) = @_;

	$self->render( 'imprint', hide_opts => 1 );
}

1;