<commit_before>#!/usr/bin/perl

package RER::Transilien;

use strict;
use warnings;
use utf8;
use 5.010;

use JSON::XS;
use RER::Results;
use RER::Gares;
use List::Util qw(min);
use Dancer qw(:syntax config debug error);




sub new {
    my %param = @_;

    my @trains;

    # Obtention des trigrammes correspondant aux gares recherchées
    my $gare_from;

    $gare_from = RER::Gares::find(code => $param{'from'})
        || die $param{'from'} . ": gare non trouvée\n";

    if (! defined $param{ds}) {
        die "Pas de datasources passés en argument à RER::Transilien::new()\n";
    }
    my @ds = @{$param{ds}};

    my @messages = ();

    my $data = eval { 
        for my $i (0..$#ds) { 
            if (($i == 0)
                && (! grep /^[CL]$/, @{RER::Gares::get_lines($gare_from)})
                && config->{restrict_lines}) {
                next;
            }
            if ($i == 1) {
                push @messages, "Attention, les horaires affichés sont théoriques. "
                        . "Renseignez-vous en gare pour vérifier si votre train est "
                        . "à l'heure et n'est pas supprimé.";
                push @messages, "Les horaires temps réel sont uniquement disponibles "
                        . "pour les gares des lignes C et L du Transilien.  Ils seront "
                        . "accessibles pour l'ensemble des gares Transilien avant fin "
                        . "février 2014.";
            }

            my $data = eval { $ds[$i]->get_next_trains($gare_from); };
            error $@ if $@;
            return $data unless $@;
        }
    };

    for (my $i = 0; $i < scalar(@$data); $i++) {
        my $train = $data->[$i];
        next if ! defined $train;

        my $today = ($train->real_time) ? $train->real_time->ymd('-') 
            : ($train->due_time) ? $train->due_time->ymd('-')
            : `date +'%Y-%m-%d'`;<commit_msg>Update message displayed when live timetables aren't used<commit_after>#!/usr/bin/perl

package RER::Transilien;

use strict;
use warnings;
use utf8;
use 5.010;

use JSON::XS;
use RER::Results;
use RER::Gares;
use List::Util qw(min);
use Dancer qw(:syntax config debug error);




sub new {
    my %param = @_;

    my @trains;

    # Obtention des trigrammes correspondant aux gares recherchées
    my $gare_from;

    $gare_from = RER::Gares::find(code => $param{'from'})
        || die $param{'from'} . ": gare non trouvée\n";

    if (! defined $param{ds}) {
        die "Pas de datasources passés en argument à RER::Transilien::new()\n";
    }
    my @ds = @{$param{ds}};

    my @messages = ();

    my $data = eval { 
        for my $i (0..$#ds) { 
            if (($i == 0)
                && (grep {/^[AB]$/} @{RER::Gares::get_lines($gare_from)})
                && config->{restrict_lines}) {
                next;
            }
#            if (($i == 0)
#                && ! (grep {!/^[AB]$/} @{RER::Gares::get_lines($gare_from)})
#                && config->{restrict_lines}) {
#                next;
#            }
            if ($i == 1) {
                push @messages, "Attention, les horaires affichés sont théoriques. "
                        . "Renseignez-vous en gare pour vérifier si votre train est "
                        . "à l'heure et n'est pas supprimé.";
                push @messages, "Les horaires temps réel sont uniquement disponibles "
                        . "pour les gares des lignes SNCF du Transilien (C, D, E, H, "
                        . "J, K, L, N, P, R, U) pour le moment.";
            }

            my $data = eval { $ds[$i]->get_next_trains($gare_from); };
            error $@ if $@;
            return $data unless $@;
        }
    };

    for (my $i = 0; $i < scalar(@$data); $i++) {
        my $train = $data->[$i];
        next if ! defined $train;

        my $today = ($train->real_time) ? $train->real_time->ymd('-') 
            : ($train->due_time) ? $train->due_time->ymd('-')
            : `date +'%Y-%m-%d'`;
{'fraction_non_alphanumeric': 0.16145181476846057, 'fraction_numerical': 0.005757196495619525, 'mean_word_length': 1.7653979238754325, 'pattern_counts': {'":': 2, '<': 5, '<?xml version=': 0, '>': 24, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1739256', 'n_tokens_mistral': 1416, 'n_tokens_neox': 1314, 'n_words': 352}