ToonGal
12-04-2004, 09:20 AM
This is literally what I was in the process of before my SageTV 'sabbatical'. The goal should be a full sports-reporting suite. I'll post my preliminary notes on this in case anyone can leverage this into something useful. It started when I found a 3rd party web-scraper, and I had enhanced it from there. XMLSports (http://sourceforge.net/project/showfiles.php?group_id=96721) was basically a web scraper that processes the ESPN pocketPC information. This was an exceptionally interesting find, because the web site is relatively simple to parse for basic sports scores, standings, news, etc. Because it is not very web-intensive, it was easy to adapt what was here to a processor. My last version never compiled, because I was literally working on this at the moment of my 'life event'.
Since my source code is unusable in the current form, XMLSports is as good a place to scrape info as a starting point. Here are my notes on the type of things I researched to make a fuller sports reporting suite. Unedited and unresearched since the first week of September, but still might be of use in some form.
See you soon, gang.
-- cut here -- cut here -- cut here -- cut here -- cut here -- cut here --
SPORTS REPORT SUITE -- DESIGN DOCUMENT
9:08 PM 9/05/2004
team data scraped from: http://proxy.espn.go.com/wireless/espn/html/pocketpc
===== SageTV display
Two level horizontal menu -> data panel underneath
-up/down: selects top menu, sub menu, data panel info
-left/right: shifts menu selection on menus; data panel info
Top menu bar: MLB NFL NBA NHL CollFB CollBB
-NFL submenu bar: News Scores Standings
--News: scrape <hr> to EOF, culling headline/URL
---Item: scrape <b> to "..."/<hr> + if(Next page) recursively
--Scores: scrape <hr> to EOF, reformat for preview/score
---Item/preview: scrape <b> to "..."/<hr> + if(Next page) recursively
---Item/score: scrape <hr> to bottom of box score + recap, reformat
---Item/score/recap: scrape <b> to "..."/<hr> + if(Next page) recursively
--Standings: 3rd level menu (vertical?) for {AFC|NFC}+{North,South,East,West}
---Item/menu: scrape <hr> to EOF for selected division, reformat
===== Scoreboard sources (NFL examples)
ESPN: http://sports.espn.go.com/nfl/scoreboard (SCORE: score/q, stats: p/r/r; PREVIEW: time, network, record (H/A), line, preview, stats)
FOX: http://msn.foxsports.com/nfl/scores (SCORE: logo, score/q, record, stats: p/r/r; PREVIEW: time, network, logo, record, O/U, line)
NFL: http://www.nfl.com/scores.shtml (SCORE: score/q, record, stats: p/r; PREVIEW: time, record)
===== NFL game data structure
GAME:
game date/time
status (quarter/time, Final)
broadcast network
headline (+ URL?)
AWAY:
away-team code
away-team city
away-team name
away-team record (overall, h/a)
away-team spread (line, O/U)
away-team score (Q1-4+OT, total)
away-team pass (name, stats)
away-team rush (name, stats)
away-team rec (name, stats)
HOME:
<same>
===== Team lookup data
paradigm: sport, ESPN team code, ESPN team name, city, team name, fgcolor, bgcolor
Example1: NFL, DAL, Dallas, Dallas, Cowboys, xxxxxx, 002E4D
Example2: NFL, PHI, Philadelphia, Philadelphia, Eagles, 114746, 003A42
Example3: NFL, NYG, NY Giants, New York, Giants, xxxxxx, 003155
===== Team icon sources
Yahoo: http://us.i1.yimg.com/us.yimg.com/i/us/sp/v/nfl/teams/1/80x60/dal.gif (80x60)
ESPN: http://espn.starwave.com/i/nfl/clubhouse/dal.gif (126x126)
FOX: http://msn.foxsports.com/fe/img/NFL/Jellies/Small/6.gif (30x20)
FOX: http://msn.foxsports.com/fe/img/NFL/Jellies/Large/6.gif (85x56)
FOX: http://msn.foxsports.com/fe/img/NFL/TeamLogo/Small/6.gif (25x25)
FOX: http://msn.foxsports.com/fe/img/NFL/TeamLogo/Large/6.gif (80x80)
NFL: http://images.nfl.com/images/logos65x40/DAL.gif (65x40)
NFL: http://images.nfl.com/images/logos/80x60/DAL.gif (80x60)
CNN: http://i.cnn.net/si/images/football/nfl/logos/cowboys_30.gif (30x30)
CNN: http://i.cnn.net/si/images/football/nfl/logos/cowboys_65.gif (65x65)
CNN: http://i.cnn.net/si/images/football/nfl/logos/cowboys_100.gif (100x100)
Snet: http://images.sportsnetwork.com/site02/football/nfl/Cowboys_logo.gif (114x80)
===== Network icon sources
ABC: http://espn.starwave.com/i/scoreboard/networkLogo_abc.gif (55x14)
ABC/sports: http://espn.go.com/i/sportindex/onair_abcsports.gif (260x24)
ABC/sports: http://espn.starwave.com/i/abcsports/abcsports_fpo.gif (162x37)
ABC/MNF: http://corporate.disney.go.com/media/corporate/monnitefootball.gif (150x100)
CBS: http://wwwimage.cbs.com/Common/images/pt_w_logo.gif (81x18)
ESPN: http://espn.starwave.com/i/scoreboard/networkLogo_espn.gif (55x14)
ESPN2: http://espn.starwave.com/i/scoreboard/networkLogo_espn2.gif (56x14)
FOX: http://msn.foxsports.com/fe/img/Misc/Logos/nfl-on-fox-sm.gif (73x14)
TNT: http://www.nba.com/media/broadcastlogos/broadcast_TNT.gif (24x8)
http://www.espn.go.com/i/frontpage/promo_tops/appearing_90.gif
===== Sport icon sources
MLB: http://mlb.mlb.com/mlb/images/official_info/logo_mlb_33x18.gif (33x18)
MLB: http://espn.go.com/i/teamlogos/leagues/lrg/mlb.gif (110x110)
NBA: http://www.nba.com/rm/images/nbaLogo.jpg (48x74)
NBA: http://espn.go.com/i/teamlogos/leagues/lrg/nba.gif (110x110)
NBA/EAST: http://www.nba.com/images/log_east_sm.gif (65x65)
NBA/WEST: http://www.nba.com/images/log_west_sm.gif (65x65)
NFL: http://espn.go.com/i/teamlogos/leagues/lrg/nfl.gif (110x110)
NFL/AFC: http://images.nfl.com/images/afc.gif (93x42)
NFL/NFC: http://images.nfl.com/images/nfc.gif (48x46)
NHL: http://espn.go.com/i/teamlogos/leagues/lrg/nhl.gif (110x110)
Since my source code is unusable in the current form, XMLSports is as good a place to scrape info as a starting point. Here are my notes on the type of things I researched to make a fuller sports reporting suite. Unedited and unresearched since the first week of September, but still might be of use in some form.
See you soon, gang.
-- cut here -- cut here -- cut here -- cut here -- cut here -- cut here --
SPORTS REPORT SUITE -- DESIGN DOCUMENT
9:08 PM 9/05/2004
team data scraped from: http://proxy.espn.go.com/wireless/espn/html/pocketpc
===== SageTV display
Two level horizontal menu -> data panel underneath
-up/down: selects top menu, sub menu, data panel info
-left/right: shifts menu selection on menus; data panel info
Top menu bar: MLB NFL NBA NHL CollFB CollBB
-NFL submenu bar: News Scores Standings
--News: scrape <hr> to EOF, culling headline/URL
---Item: scrape <b> to "..."/<hr> + if(Next page) recursively
--Scores: scrape <hr> to EOF, reformat for preview/score
---Item/preview: scrape <b> to "..."/<hr> + if(Next page) recursively
---Item/score: scrape <hr> to bottom of box score + recap, reformat
---Item/score/recap: scrape <b> to "..."/<hr> + if(Next page) recursively
--Standings: 3rd level menu (vertical?) for {AFC|NFC}+{North,South,East,West}
---Item/menu: scrape <hr> to EOF for selected division, reformat
===== Scoreboard sources (NFL examples)
ESPN: http://sports.espn.go.com/nfl/scoreboard (SCORE: score/q, stats: p/r/r; PREVIEW: time, network, record (H/A), line, preview, stats)
FOX: http://msn.foxsports.com/nfl/scores (SCORE: logo, score/q, record, stats: p/r/r; PREVIEW: time, network, logo, record, O/U, line)
NFL: http://www.nfl.com/scores.shtml (SCORE: score/q, record, stats: p/r; PREVIEW: time, record)
===== NFL game data structure
GAME:
game date/time
status (quarter/time, Final)
broadcast network
headline (+ URL?)
AWAY:
away-team code
away-team city
away-team name
away-team record (overall, h/a)
away-team spread (line, O/U)
away-team score (Q1-4+OT, total)
away-team pass (name, stats)
away-team rush (name, stats)
away-team rec (name, stats)
HOME:
<same>
===== Team lookup data
paradigm: sport, ESPN team code, ESPN team name, city, team name, fgcolor, bgcolor
Example1: NFL, DAL, Dallas, Dallas, Cowboys, xxxxxx, 002E4D
Example2: NFL, PHI, Philadelphia, Philadelphia, Eagles, 114746, 003A42
Example3: NFL, NYG, NY Giants, New York, Giants, xxxxxx, 003155
===== Team icon sources
Yahoo: http://us.i1.yimg.com/us.yimg.com/i/us/sp/v/nfl/teams/1/80x60/dal.gif (80x60)
ESPN: http://espn.starwave.com/i/nfl/clubhouse/dal.gif (126x126)
FOX: http://msn.foxsports.com/fe/img/NFL/Jellies/Small/6.gif (30x20)
FOX: http://msn.foxsports.com/fe/img/NFL/Jellies/Large/6.gif (85x56)
FOX: http://msn.foxsports.com/fe/img/NFL/TeamLogo/Small/6.gif (25x25)
FOX: http://msn.foxsports.com/fe/img/NFL/TeamLogo/Large/6.gif (80x80)
NFL: http://images.nfl.com/images/logos65x40/DAL.gif (65x40)
NFL: http://images.nfl.com/images/logos/80x60/DAL.gif (80x60)
CNN: http://i.cnn.net/si/images/football/nfl/logos/cowboys_30.gif (30x30)
CNN: http://i.cnn.net/si/images/football/nfl/logos/cowboys_65.gif (65x65)
CNN: http://i.cnn.net/si/images/football/nfl/logos/cowboys_100.gif (100x100)
Snet: http://images.sportsnetwork.com/site02/football/nfl/Cowboys_logo.gif (114x80)
===== Network icon sources
ABC: http://espn.starwave.com/i/scoreboard/networkLogo_abc.gif (55x14)
ABC/sports: http://espn.go.com/i/sportindex/onair_abcsports.gif (260x24)
ABC/sports: http://espn.starwave.com/i/abcsports/abcsports_fpo.gif (162x37)
ABC/MNF: http://corporate.disney.go.com/media/corporate/monnitefootball.gif (150x100)
CBS: http://wwwimage.cbs.com/Common/images/pt_w_logo.gif (81x18)
ESPN: http://espn.starwave.com/i/scoreboard/networkLogo_espn.gif (55x14)
ESPN2: http://espn.starwave.com/i/scoreboard/networkLogo_espn2.gif (56x14)
FOX: http://msn.foxsports.com/fe/img/Misc/Logos/nfl-on-fox-sm.gif (73x14)
TNT: http://www.nba.com/media/broadcastlogos/broadcast_TNT.gif (24x8)
http://www.espn.go.com/i/frontpage/promo_tops/appearing_90.gif
===== Sport icon sources
MLB: http://mlb.mlb.com/mlb/images/official_info/logo_mlb_33x18.gif (33x18)
MLB: http://espn.go.com/i/teamlogos/leagues/lrg/mlb.gif (110x110)
NBA: http://www.nba.com/rm/images/nbaLogo.jpg (48x74)
NBA: http://espn.go.com/i/teamlogos/leagues/lrg/nba.gif (110x110)
NBA/EAST: http://www.nba.com/images/log_east_sm.gif (65x65)
NBA/WEST: http://www.nba.com/images/log_west_sm.gif (65x65)
NFL: http://espn.go.com/i/teamlogos/leagues/lrg/nfl.gif (110x110)
NFL/AFC: http://images.nfl.com/images/afc.gif (93x42)
NFL/NFC: http://images.nfl.com/images/nfc.gif (48x46)
NHL: http://espn.go.com/i/teamlogos/leagues/lrg/nhl.gif (110x110)