def ViewProfile(request, route): BaseController.importBaseController() env = Environment(loader=PackageLoader("PDOT", Configuration.pagesFolder)) dbLayer = PlayersDbLayer() foundPlayer = dbLayer.queryById(route["playerId"]) if foundPlayer.uniqueId is not None: template = env.get_template(Configuration.webpageDirectory["playerProfile"]) return template.render( route=route, futureQuote=FutureQuote.getRandomQuote(), serverVersion=DatabaseUtility.getVersion(), playerName=foundPlayer.firstName + " " + foundPlayer.lastName, uniqueId=foundPlayer.uniqueId, firstName=foundPlayer.firstName, lastName=foundPlayer.lastName, height=foundPlayer.height, weight=foundPlayer.weight, born=foundPlayer.born, playedFrom=foundPlayer.playedFrom, playedTo=foundPlayer.playedTo, ) else: template = env.get_template(Configuration.webpageDirectory["playerProfileError"]) return template.render( route=route, futureQuote=FutureQuote.getRandomQuote(), serverVersion=DatabaseUtility.getVersion(), uniqueId=route["playerId"], )
def scrapeIntoDatabase(self): playersDbLayer = PlayersDbLayer() playerTable = self.mSoup.find(id="players") bulkPlayers = [] if playerTable is not None: rowCounter = 0 for row in playerTable.findAll('tr'): col = row.findAll('td') if len(col) > 0: firstName = SQLUtil.checkNameForSQL(col[0], 0) lastName = SQLUtil.checkNameForSQL(col[0], 1) fromYear = SQLUtil.checkStringForSQL(col[1]) toYear = SQLUtil.checkStringForSQL(col[2]) position = SQLUtil.checkStringForSQL(col[3]) # Unused height = SQLUtil.convertStringToHeight(col[4]) weight = SQLUtil.convertStringToInt(col[5]) birthDate = SQLUtil.convertDateToSQL(col[6]) university = SQLUtil.checkStringForSQL(col[7]) # Unused if Configuration.debugMode: print'Row #%s: Column #%s: %s' % (str(rowCounter), 0, firstName) # Name print'Row #%s: Column #%s: %s' % (str(rowCounter), 1, lastName) # Name print'Row #%s: Column #%s: %s' % (str(rowCounter), 2, fromYear) # From Year print'Row #%s: Column #%s: %s' % (str(rowCounter), 3, toYear) # To Year print'Row #%s: Column #%s: %s' % (str(rowCounter), 4, position) # Position print'Row #%s: Column #%s: %s' % (str(rowCounter), 5, height) # height print'Row #%s: Column #%s: %s' % (str(rowCounter), 6, weight) # Weight print'Row #%s: Column #%s: %s' % (str(rowCounter), 7, birthDate) # Birth date print'Row #%s: Column #%s: %s' % (str(rowCounter), 8, university) # Birth date bulkPlayers.append([firstName, lastName, str(height), str(weight), birthDate, fromYear, toYear]) rowCounter = rowCounter + 1 return playersDbLayer.bulkInsert(bulkPlayers)
def ViewProfile(self, request, route): env = Environment(loader=PackageLoader('PDOT', Configuration.pagesFolder)) dbLayer = PlayersDbLayer() foundPlayer = dbLayer.queryById(route['playerId']) aliasLayer = AliasDbLayer() knownAliases = aliasLayer.getAliasesForOfficialName(foundPlayer.firstName, foundPlayer.lastName) statLineLayer = StatLineDbLayer() statsArray = statLineLayer.queryStatsForId(foundPlayer.uniqueId) if foundPlayer.uniqueId is not None: template = env.get_template(Configuration.webpageDirectory['playerProfile']) return template.render(route=route, futureQuote=self.getFutureQuote(), serverVersion=DatabaseUtility.getVersion(), playerName=foundPlayer.firstName + ' ' + foundPlayer.lastName, uniqueId=foundPlayer.uniqueId, firstName=foundPlayer.firstName, lastName=foundPlayer.lastName, height=foundPlayer.height, weight=foundPlayer.weight, born=foundPlayer.born, playedFrom=foundPlayer.playedFrom, playedTo=foundPlayer.playedTo, aliases=knownAliases, statsResults=statsArray, url=self.url) else: template = env.get_template(Configuration.webpageDirectory['playerProfileError']) return template.render(route=route, futureQuote=self.getFutureQuote(), serverVersion=DatabaseUtility.getVersion(), uniqueId=route['playerId'], url=self.url)
def ViewDisplay(self, request, route): dbLayer = PlayersDbLayer() foundPlayers = dbLayer.queryByLetter(route['searchLetter']) env = Environment(loader=PackageLoader('PDOT', Configuration.pagesFolder)) template = env.get_template(Configuration.webpageDirectory['searchResults']) return template.render(route=route, futureQuote=self.getFutureQuote(), serverVersion=DatabaseUtility.getVersion(), queryDescription = 'Last Name of ' + route['searchLetter'] + '*', playerResult=foundPlayers, url=self.url)
def ViewByPlayerSearch(self, request, route): dbLayer = PlayersDbLayer() firstName = route['firstName'] fnType = route ['fnSearch'] lastName = route['lastName'] lnType = route['lnSearch'] fromYear = route['fromYear'] fyType = route['fySearch'] toYear = route['toYear'] tyType = route['tySearch'] weight = route['weight'] wType = route['wSearch'] height = route['height'] hType = route['hSearch'] birthDate = route['birthDate'] bdayType = route['bdaySearch'] foundPlayers = dbLayer.queryByDeepSearch(fnType, firstName, lnType, lastName, fyType, fromYear, tyType, toYear, wType, weight, hType, height, bdayType, birthDate) ''' foundPlayers = 'FN: ' + firstName + '<br>' foundPlayers += 'LN: ' + lastName + '<br>' foundPlayers += 'FY: ' + fromYear + '<br>' foundPlayers += 'TY: ' + toYear + '<br>' foundPlayers += 'W: ' + weight + '<br>' foundPlayers += 'H: ' + height + '<br>' foundPlayers += 'BDAY: ' + birthDate ''' env = Environment(loader=PackageLoader('PDOT', Configuration.pagesFolder)) template = env.get_template(Configuration.webpageDirectory['searchResults']) searchParameter = '<ul>' for item in self.getDeepQueryString(route): searchParameter += '<li>' + item + '</li>' searchParameter += '</ul><br>' return template.render(route=route, futureQuote=self.getFutureQuote(), serverVersion=DatabaseUtility.getVersion(), queryDescription = 'Deep Query', playerResult=foundPlayers, deepQueryParameters=searchParameter, url=self.url)
def createPersonTable(): players = PlayersDbLayer() return players.dropAndRecreateTable()