Changeset 11332 for websites/jwatch.jp
- Timestamp:
- 05/10/08 10:34:39 (5 years ago)
- Location:
- websites/jwatch.jp/trunk
- Files:
-
- 4 modified
-
lib/JWatch/Controller/Root.pm (modified) (4 diffs)
-
misc/load_schedule_from_jsgoal.pl (modified) (4 diffs)
-
misc/update_game_from_jsgoal.pl (modified) (3 diffs)
-
root/src/index.tt2 (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
websites/jwatch.jp/trunk/lib/JWatch/Controller/Root.pm
r11302 r11332 5 5 use utf8; 6 6 use base 'Catalyst::Controller'; 7 use DateTime; 7 8 8 9 # … … 39 40 40 41 my @list = $c->model('DBIC')->resultset('Event')->search( 41 {}, 42 { 43 datetime => { 'LIKE' => DateTime->now(time_zone => 'local')->ymd .'%' } 44 }, 42 45 { 43 rows => 40,46 rows => 10, 44 47 order_by => 'datetime desc', 45 48 join => 'game', … … 64 67 ); 65 68 my %score = map {( $_->clubid, $_->get_column('score') )} @score; 66 $event->{gamedesc} = join (' ', 67 $game->homeclub->shortname, 68 $score{$game->clubid_home} || '0', 69 '-', 70 $score{$game->clubid_away} || '0', 71 $game->awayclub->shortname, 72 ); 69 $event->{score}->{home} = $score{$game->clubid_home}; 70 $event->{score}->{away} = $score{$game->clubid_away}; 73 71 $event->{referee} = $game->officials({type => 'referee'})->next; 74 72 $event->{referee}->{shortname} = (split(' ', $event->{referee}->name))[0]; … … 82 80 },{ 83 81 order_by => 'serialno desc', 84 rows => 1,85 82 } 86 83 )->name; 87 $event->{$player.'name'} = join ('', 88 '#',$event->$player, 89 (split(' ', $name))[0] 90 ); 84 $event->{$player."name"} = (split(' ', $name))[0]; 91 85 } 92 86 } 93 87 $c->stash->{eventlist} = \@list; 88 89 my @gamelist = $c->model('DBIC')->resultset('Game')->search( 90 { 91 kickoff => { 'LIKE' => DateTime->now(time_zone => 'local')->ymd .'%' } 92 } 93 ); 94 for my $g (@gamelist) { 95 $g->{referee} = $g->officials({type => 'referee'})->next; 96 $g->{referee} or next; 97 $g->{referee}->{shortname} = (split(' ', $g->{referee}->name))[0]; 98 } 99 $c->stash->{gamelist} = \@gamelist; 94 100 $c->stash->{template} = 'index.tt2'; 95 101 -
websites/jwatch.jp/trunk/misc/load_schedule_from_jsgoal.pl
r11302 r11332 6 6 use FindBin; 7 7 use Web::Scraper; 8 use DateTime; 8 9 use DateTime::Format::Strptime; 9 use DateTime::Format::MySQL;10 10 use YAML; 11 11 use URI; … … 21 21 my $clubs = $schema->resultset('Club'); 22 22 my $games = $schema->resultset('Game'); 23 my $events = $schema->resultset('Event'); 24 25 my $gamecount = $games->search_literal( 26 'now() > kickoff and '. 27 'now() < date_add(kickoff, interval 3 hour)' 28 ); 29 $gamecount > 0 or exit 0; 23 30 24 31 my $baseurl = 'http://www.jsgoal.jp'; … … 38 45 )) { 39 46 for my $game (@{$scraper->scrape(URI->new_abs($uri, $baseurl))}) { 40 $games->update_or_create($game); 47 my $found = $games->find({id => $game->{id}}); 48 if ($found) { 49 if (! defined $found->score_home && defined $game->{score_home}) { 50 $events->create({ 51 gameid => $game->{id}, 52 type => 'end', 53 datetime => DateTime->now(time_zone => 'Asia/Tokyo'), 54 }); 55 } 56 $found->update($game); 57 } else { 58 $games->create($game); 59 } 41 60 } 42 61 } … … 59 78 result 'kickoff'; 60 79 }->scrape(URI->new_abs($gameurl, $baseurl)); 61 $kickoff = DateTime::Format::MySQL->format_datetime( 62 $strp->parse_datetime($kickoff) 63 ); 80 $kickoff = $strp->parse_datetime($kickoff); 64 81 my $clubid_home = $clubs->find({shortname => $cell[1]->as_text})->id; 65 82 my $clubid_away = $clubs->find({shortname => $cell[3]->as_text})->id; -
websites/jwatch.jp/trunk/misc/update_game_from_jsgoal.pl
r11302 r11332 32 32 my ($game,$gameid,$kickoff,$type,$playerhash); 33 33 34 #for ($games->search_literal('now() > date_sub(kickoff, interval 2 hour) and now() < date_add(kickoff, interval 2 hour)')) { 35 for ($games->search_literal('kickoff > date_sub(now(),interval 2 day) and kickoff < now()')) { 34 for ($games->search_literal('now() > date_sub(kickoff, interval 3 hour) and now() < date_add(kickoff, interval 3 hour)')) { 36 35 $game = $_; 37 $gameid = $game-> gameid;36 $gameid = $game->id; 38 37 (my $gameid_short = $gameid) =~ s{\d{8}$}{}; 39 38 $kickoff = $game->kickoff; … … 52 51 $game_officials->find_or_create($_); 53 52 } 54 # $game_players->create($_) for @{$res->{players}}; 55 # $game_officials->create($_) for @{$res->{officials}}; 56 my $datetime = DateTime->from_epoch({epoch => $kickoff->epoch})->subtract(hours => 2); 53 my $datetime = DateTime->from_epoch({epoch => $kickoff->epoch}) 54 ->subtract(hours => 2); 57 55 $events->find_or_create({ 58 56 gameid => $gameid, 59 57 type => 'member', 60 datetime => $ DateTime::Format::MySQL->format_datetime($datetime);58 datetime => $datetime, 61 59 }); 62 60 } … … 164 162 $type = ($cell[0]->as_text eq '主審') ? 'referee' : 'assistant'; 165 163 my $officialid = $officials->search_literal("replace(name, ' ','') = ?", $cell[-1]->as_text)->next->officialid; 164 $officialid or return; 166 165 return { 167 166 gameid => $gameid, -
websites/jwatch.jp/trunk/root/src/index.tt2
r11302 r11332 1 [% META title = 'Jリーグ速報!jwatch.jp' %] 1 2 [% FOREACH e IN eventlist %] 2 [% e.datetime %] [% e.gamedesc %] [% e.gametime %]分 3 [% IF e.type == 'goal' %][% e.club.shortname %][% e.player1name %]がゴール!4 [% ELSIF e.type == 'change' %][% e.club.shortname %] 選手交代 IN: [% e.player1name %] -> OUT: [% e.player2name %]5 [% ELSIF e.type == 'yellow' %] [% e.referee.shortname %]が[% e.club.shortname %][% e.player1name %]にイエロー!6 [% ELSIF e.type == 'red' %] [% e.referee.shortname %]が[% e.club.shortname %][% e.player1name %]にレッド!3 ■ [% e.datetime.hms %] [% e.game.homeclub.shortname %] [% e.score.home || 0 %] - [% e.score.away || 0 %] [% e.game.awayclub.shortname %] [% e.gametime %]min. <br> 4 [% IF e.type == 'goal' %][% e.club.shortname %][% e.player1name %]がゴール! 5 [% ELSIF e.type == 'change' %][% e.club.shortname %] OUT: [% e.player1name %] -> IN: [% e.player2name %] 6 [% ELSIF e.type == 'yellow' %]<font color="yellow">■</font>[% e.referee.shortname %]が[% e.club.shortname %][% e.player1name %]にイエロー! 7 [% ELSIF e.type == 'red' %]<font color="red">■</font>[% e.referee.shortname %]が[% e.club.shortname %][% e.player1name %]にレッド! 7 8 [% ELSE %][% e.description %]に何かが! 8 9 [% END %]<br> 9 10 [% END %] 11 <br> 12 ■ 今日の試合<br> 13 [% FOREACH g IN gamelist %] 14 [% g.homeclub.shortname %] vs [% g.awayclub.shortname %] [% g.referee.shortname %]<br> 15 [% END %]
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)