summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-05-29 20:01:52 +0200
committerDaniel Friesel <derf@finalrewind.org>2019-05-29 20:01:52 +0200
commit155f9f39cc83fcf83e5dd48ae58b09736281c912 (patch)
tree6d181034a0f0599b9c5929e5db31d2f25435281c
parent146b3a2682c7c91984b15bfa34325558201203ba (diff)
use journey-specific status links -> one twitter card per journey
-rwxr-xr-xlib/Travelynx.pm2
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm13
-rw-r--r--templates/_checked_in.html.ep2
3 files changed, 14 insertions, 3 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm
index 209a471..19d6edf 100755
--- a/lib/Travelynx.pm
+++ b/lib/Travelynx.pm
@@ -2177,7 +2177,9 @@ sub startup {
$r->get('/register')->to('account#registration_form');
$r->get('/reg/:id/:token')->to('account#verify');
$r->get('/status/:name')->to('traveling#user_status');
+ $r->get('/status/:name/:ts')->to('traveling#user_status');
$r->get('/ajax/status/:name')->to('traveling#public_status_card');
+ $r->get('/ajax/status/:name/:ts')->to('traveling#public_status_card');
$r->post('/action')->to('traveling#log_action');
$r->post('/geolocation')->to('traveling#geolocation');
$r->post('/list_departures')->to('traveling#redirect_to_station');
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm
index de79728..59991a8 100755
--- a/lib/Travelynx/Controller/Traveling.pm
+++ b/lib/Travelynx/Controller/Traveling.pm
@@ -29,6 +29,7 @@ sub user_status {
my ($self) = @_;
my $name = $self->stash('name');
+ my $ts = $self->stash('ts');
my $user = $self->get_privacy_by_name($name);
if ( $user and ( $user->{public_level} & 0x02 ) ) {
@@ -41,7 +42,16 @@ sub user_status {
->to_abs->scheme('https'),
);
- if ( $status->{checked_in} ) {
+ if (
+ $ts
+ and ( not $status->{checked_in}
+ or $status->{sched_departure}->epoch != $ts )
+ )
+ {
+ $tw_data{title} = "Bahnfahrt beendet";
+ $tw_data{description} = "${name} hat das Ziel erreicht";
+ }
+ elsif ( $status->{checked_in} ) {
$tw_data{title} = "${name} ist unterwegs";
$tw_data{description} = sprintf(
'%s %s von %s nach %s',
@@ -53,7 +63,6 @@ sub user_status {
if ( $status->{real_arrival}->epoch ) {
$tw_data{description} .= $status->{real_arrival}
->strftime(' – Ankunft gegen %H:%M Uhr');
-
}
}
else {
diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep
index efe1eff..0683ae5 100644
--- a/templates/_checked_in.html.ep
+++ b/templates/_checked_in.html.ep
@@ -134,7 +134,7 @@
<a class="action-share blue-text right"
data-text="Ich bin gerade <%= $attrib %> <%= $journey->{train_type} %> <%= $journey->{train_no} %> nach <%= $journey->{arr_name} %> #NowTräwelling #dbl"
% if (current_user()->{is_public} & 0x02) {
- data-url="<%= url_for('/status')->to_abs->scheme('https') %>/<%= current_user->{name} %>"
+ data-url="<%= url_for('/status')->to_abs->scheme('https') %>/<%= current_user->{name} %>/<%= $journey->{sched_departure}->epoch %>"
% }
>
<i class="material-icons left">share</i> Teilen