Einzelnen Beitrag anzeigen
  #7  
Alt 19.09.2010, 21:58
Dirk Joos Dirk Joos ist offline
registrierter Besucher
Junior-Forenmitglied
 
Registriert seit: 23.02.2004
Alter: 43
Beiträge: 26
Dirk Joos ist zur Zeit noch ein unbeschriebenes Blatt (Renommeepunkte ungefähr beim Startwert +20)
Click-TT Spielplan automatisch in Tippspiel importieren

Hallo zusammen,

ich habe ein Perl-Skript geschrieben, mit welchem man einen Click-TT Spielplan in eine CSV Datei konvertieren kann. Diese CSV Datei muss man dann nur noch im Tippspiel via "Blanko Import" hochladen.

Somit muss man als Administrator einer Tipprunde nicht mehr mühsam alle Spiele einzeln eintippen.

Ich habe das für die Tipprunde "Herren Verbandsklasse Süd" auf diesem Wege gemacht und es hat super funktioniert.

Hier der Code des Perl-Skriptes:

<code>
use strict;
use warnings;

use HTML::TableExtract;
use HTML::Entities;
use LWP::Simple;
use Text::Trim;

############# USER INPUT #####################
my $url = 'http://ttvwh.click-tt.de/cgi-bin/WebObjects/ClickTTVBW.woa/wa/groupPage?displayTyp=rueckrunde&displayDetail=meetings&championship=SK+TTVWH+10%2F11&group=140246'; # url with playing schedule
my $csv_file = "./vk_sued_rueckrunde.csv"; # name of output csv file
my $headers = ['22.01.2011','19:00','TSG Ailingen','TTC Mühringen']; # first entry of playing schedule
############ END USER INPUT #################

my $content = get $url;
die "Couldn't get $url" unless defined $content;

my $te = HTML::TableExtract->new('decode' => 1,
'headers' => $headers,
'keep_headers' => 1);
$te->parse( $content );

my $ref_table = ($te->tables())[0];
my $row_index = 0;
my @playing_schedule;
for my $ref_row ( $ref_table->rows() )
{
$playing_schedule[$row_index]{'Date'} = trim($ref_row->[0]);
if( $playing_schedule[$row_index]{'Date'} =~ m/^\s*$/ )
{
$playing_schedule[$row_index]{'Date'} = $playing_schedule[$row_index-1]{'Date'};
}

$playing_schedule[$row_index]{'Time'} = trim($ref_row->[1]);
if( $playing_schedule[$row_index]{'Time'} =~ m/v$/ )
{
$playing_schedule[$row_index]{'Time'} =~ s/v$//;
trim($playing_schedule[$row_index]{'Time'});
}

$playing_schedule[$row_index]{'Home Team'} = trim($ref_row->[2]);
$playing_schedule[$row_index]{'Guest Team'} = trim($ref_row->[3]);
$row_index++;
}


open(my $CSV, '>', $csv_file);
print $CSV "Datum;Uhrzeit;Heim;Gast;Runde\n";
for my $ref_row (@playing_schedule)
{
print( $CSV
join(";",
$ref_row->{'Date'},
$ref_row->{'Time'},
$ref_row->{'Home Team'},
$ref_row->{'Guest Team'},
"1"),
"\n");
}
close($CSV);
</code>

Den benötigten Input habe ich am Anfang des Skriptes markiert. Ihr benötigt die URL, welche den Spielplan enthält. Im Skript ist z.B. die URL der Verbandsklasse Süd Rückrunde eingetragen.
Als Zweites müsst ihr den Namen des zu generierenden CSV-Files angeben. Als Drittes müsst ihr Datum, Zeit, Heimmannschaft und Gastmannschaft der ersten Spielplan-Zeile eingeben.

Bei Rückfragen stehe ich gerne zur Verfügung.

Viel Spaß damit.
Dirk
Mit Zitat antworten