View Javadoc
1 package net.mlw.fball.loader.yahoo; 2 3 import java.io.File; 4 import java.io.FileNotFoundException; 5 import java.io.FileReader; 6 import java.io.IOException; 7 import java.io.LineNumberReader; 8 import java.net.MalformedURLException; 9 import java.net.URL; 10 import java.util.Iterator; 11 import java.util.List; 12 13 import net.mlw.fball.bo.Player; 14 import net.mlw.fball.bo.SeasonStats; 15 import net.mlw.fball.event.ProgressEvent; 16 import net.mlw.fball.event.StatusEvent; 17 import net.mlw.fball.loader.LoaderContextHolder; 18 import net.mlw.util.NetUtils; 19 import net.mlw.util.ParsingUtils; 20 21 import org.apache.commons.logging.Log; 22 import org.apache.commons.logging.LogFactory; 23 24 /*** 25 * 26 * @author Matthew L. Wilson 27 * @version $Revision: 1.8 $ $Date: 2004/06/04 15:37:48 $ 28 */ 29 public class SeasonStatsLoader extends LoaderContextHolder 30 { 31 /*** Commons Logger. **/ 32 private static final Log LOGGER = LogFactory.getLog(PlayerLoader.class); 33 34 /*** 35 * @see net.mlw.fball.loader.Loader#doLoad() 36 */ 37 public void doLoad() throws Exception 38 { 39 List players = playerDao.findByMap(null); 40 41 int count = 0; 42 int totalCount = players.size(); 43 eventListener.onEvent(new ProgressEvent(totalCount)); 44 for (Iterator iter = players.iterator(); iter.hasNext();) 45 { 46 try 47 { 48 Player player = (Player) iter.next(); 49 eventListener.onEvent(new StatusEvent(player.toString())); 50 51 String yahooPlayerId = player.getProvider("yahoo"); 52 53 File file = new File("/stats/players/" + yahooPlayerId); 54 file.mkdirs(); 55 file = new File("/stats/players/" + yahooPlayerId + "/career"); 56 57 //if (!file.exists()) 58 NetUtils.copyFile(new URL(location.replaceAll(":yahooPlayerId", yahooPlayerId)), file); 59 60 LineNumberReader reader = new LineNumberReader(new FileReader(file)); 61 62 String currentPosition = null; 63 while (reader.ready() && currentPosition == null) 64 { 65 String line = reader.readLine(); 66 currentPosition = getPosition(line); 67 } 68 69 if ("TE".equals(currentPosition)) 70 { 71 while (reader.ready()) 72 { 73 String line = reader.readLine(); 74 if (line.indexOf("<td class=\"yspscores\" align=\"left\">") >= 0) 75 { 76 String[] values = ParsingUtils.getTdContentsAsArray(line); 77 SeasonStats stats = seasonStatsDao.findById(player, new Integer(values[0])); 78 79 stats.setPosition("TE"); 80 stats.setTeam(teamDao.findByName("%" + values[1] + "%")); 81 82 stats.setGamesPlayed(new Integer(values[2])); 83 84 stats.setReceivingRecptions(new Integer(values[4])); 85 stats.setReceivingYards(new Integer(values[5])); 86 stats.setReceivingLong(new Integer(values[8])); 87 stats.setReceivingFirstdowns(new Integer(values[10])); 88 stats.setReceivingTouchdown(new Integer(values[11])); 89 90 stats.setRushingAttempts(new Integer(values[13])); 91 stats.setRushingYards(new Integer(values[14])); 92 stats.setRushingTouchdowns(new Integer(values[17])); 93 94 stats.setFumbles(new Integer(values[19])); 95 stats.setFunblesLost(new Integer(values[20])); 96 97 seasonStatsDao.save(stats); 98 } 99 } 100 } 101 if ("RB".equals(currentPosition)) 102 { 103 while (reader.ready()) 104 { 105 String line = reader.readLine(); 106 if (line.indexOf("<td class=\"yspscores\" align=\"left\">") >= 0) 107 { 108 String[] values = ParsingUtils.getTdContentsAsArray(line); 109 SeasonStats stats = seasonStatsDao.findById(player, new Integer(values[0])); 110 111 stats.setPosition("RB"); 112 stats.setTeam(teamDao.findByName("%" + values[1] + "%")); 113 114 stats.setGamesPlayed(new Integer(values[2])); 115 116 stats.setRushingAttempts(new Integer(values[4])); 117 stats.setRushingYards(new Integer(values[5])); 118 stats.setRushingTouchdowns(new Integer(values[8])); 119 120 stats.setReceivingRecptions(new Integer(values[10])); 121 stats.setReceivingYards(new Integer(values[11])); 122 stats.setReceivingLong(new Integer(values[14])); 123 stats.setReceivingFirstdowns(new Integer(values[16])); 124 stats.setReceivingTouchdown(new Integer(values[17])); 125 126 stats.setFumbles(new Integer(values[19])); 127 stats.setFunblesLost(new Integer(values[20])); 128 129 seasonStatsDao.save(stats); 130 } 131 } 132 } 133 else if ("QB".equals(currentPosition)) 134 { 135 while (reader.ready()) 136 { 137 String line = reader.readLine(); 138 if (line.indexOf("<td class=\"yspscores\" align=\"left\">") >= 0) 139 { 140 String[] values = ParsingUtils.getTdContentsAsArray(line); 141 142 SeasonStats stats = seasonStatsDao.findById(player, new Integer(values[0])); 143 144 stats.setPosition("QB"); 145 stats.setTeam(teamDao.findByName("%" + values[1] + "%")); 146 147 stats.setGamesPlayed(new Integer(values[2])); 148 149 stats.setQuarterBackRating(new Double(values[4])); 150 stats.setPassingCompletion(new Integer(values[5])); 151 stats.setPassingAttempts(new Integer(values[6])); 152 stats.setPassingYards(new Integer(values[8])); 153 stats.setPassingTouchdowns(new Integer(values[11])); 154 stats.setPassingInterception(new Integer(values[12])); 155 156 stats.setRushingAttempts(new Integer(values[14])); 157 stats.setRushingYards(new Integer(values[15])); 158 stats.setRushingTouchdowns(new Integer(values[18])); 159 160 stats.setPassingSacked(new Integer(values[20])); 161 stats.setPassingSackedYards(new Integer(values[21])); 162 163 stats.setFumbles(new Integer(values[23])); 164 stats.setFunblesLost(new Integer(values[24])); 165 166 seasonStatsDao.save(stats); 167 } 168 } 169 } 170 else if ("WR".equals(currentPosition)) 171 { 172 while (reader.ready()) 173 { 174 String line = reader.readLine(); 175 if (line.indexOf("<td class=\"yspscores\" align=\"left\">") >= 0) 176 { 177 String[] values = ParsingUtils.getTdContentsAsArray(line); 178 SeasonStats stats = seasonStatsDao.findById(player, new Integer(values[0])); 179 180 stats.setPosition("WR"); 181 stats.setTeam(teamDao.findByName("%" + values[1] + "%")); 182 stats.setGamesPlayed(new Integer(values[2])); 183 stats.setReceivingRecptions(new Integer(values[4])); 184 stats.setReceivingYards(new Integer(values[5])); 185 stats.setReceivingLong(new Integer(values[8])); 186 stats.setReceivingFirstdowns(new Integer(values[10])); 187 stats.setReceivingTouchdown(new Integer(values[11])); 188 189 stats.setKickReturnReturns(new Integer(values[13])); 190 stats.setKickReturnYards(new Integer(values[14])); 191 stats.setKickReturnLong(new Integer(values[16])); 192 193 stats.setPuntReturnReturns(new Integer(values[18])); 194 stats.setPuntReturnYards(new Integer(values[19])); 195 stats.setPuntReturnLong(new Integer(values[21])); 196 197 stats.setFumbles(new Integer(values[23])); 198 stats.setFunblesLost(new Integer(values[24])); 199 200 seasonStatsDao.save(stats); 201 } 202 } 203 } 204 else if ("K".equals(currentPosition)) 205 { 206 while (reader.ready()) 207 { 208 String line = reader.readLine(); 209 if (line.indexOf("<td class=\"yspscores\" align=\"left\">") >= 0) 210 { 211 String[] values = ParsingUtils.getTdContentsAsArray(line); 212 SeasonStats stats = seasonStatsDao.findById(player, new Integer(values[0])); 213 214 stats.setPosition("K"); 215 stats.setTeam(teamDao.findByName("%" + values[1] + "%")); 216 stats.setGamesPlayed(new Integer(values[2])); 217 218 stats.setFieldGoalRange0To19(new Integer(values[4])); 219 stats.setFieldGoalRange20To29(new Integer(values[5])); 220 stats.setFieldGoalRange30To39(new Integer(values[6])); 221 stats.setFieldGoalRange40To49(new Integer(values[7])); 222 stats.setFieldGoalRange50Plus(new Integer(values[8])); 223 224 stats.setFieldGoalMade(new Integer(values[9])); 225 stats.setFieldGoalAttempt(new Integer(values[10])); 226 227 stats.setFieldGoalLong(new Integer(values[12])); 228 229 stats.setExtraPointAttempt(new Integer(values[14])); 230 stats.setExtraPointMade(new Integer(values[15])); 231 232 seasonStatsDao.save(stats); 233 } 234 } 235 } 236 } 237 catch (NumberFormatException e) 238 { 239 // TODO Auto-generated catch block 240 e.printStackTrace(); 241 } 242 catch (MalformedURLException e) 243 { 244 // TODO Auto-generated catch block 245 e.printStackTrace(); 246 } 247 catch (FileNotFoundException e) 248 { 249 // TODO Auto-generated catch block 250 e.printStackTrace(); 251 } 252 catch (IOException e) 253 { 254 // TODO Auto-generated catch block 255 e.printStackTrace(); 256 } 257 eventListener.onEvent(new ProgressEvent(totalCount, ++count)); 258 } 259 } 260 261 private String getPosition(String line) 262 { 263 if (line.indexOf("Linebacker") > 0) 264 { 265 return ""; 266 } 267 else if (line.indexOf("Wide Receiver") > 0) 268 { 269 return "WR"; 270 } 271 else if (line.indexOf("Cornerback") > 0) 272 { 273 return ""; 274 } 275 else if (line.indexOf("Center") > 0) 276 { 277 return ""; 278 } 279 else if (line.indexOf("Running back") > 0) 280 { 281 return "RB"; 282 } 283 else if (line.indexOf("Defensive tackle") > 0) 284 { 285 return ""; 286 } 287 else if (line.indexOf("Cornerback") > 0) 288 { 289 return ""; 290 } 291 else if (line.indexOf("Quarterback") > 0) 292 { 293 return "QB"; 294 } 295 else if (line.indexOf("Tight end ") > 0) 296 { 297 return "TE"; 298 } 299 else if (line.indexOf("Kicker") > 0) 300 { 301 return "K"; 302 } 303 else 304 { 305 return null; 306 } 307 } 308 }

This page was automatically generated by Maven