def main(): credentials = AuthCredentials(user_file='bot') site = EsportsClient('lol', credentials=credentials) acs = ACS() result = site.cargo_client.query( tables='MatchScheduleGame=MSG,AcsMetadata=ACS', join_on='MSG.GameId=ACS.GameId', fields= 'MSG.MatchHistory=MatchHistory, MSG.GameId=GameId, MSG.OverviewPage=OverviewPage, MSG.MatchId=MatchId, MSG.N_GameInMatch=N_GameInMatch, MSG._pageName=Page', where='MatchHistory LIKE "%matchhistory%" AND ACS.GameId IS NULL') passed_startat = True startat = 'FRA1TMNT1 210419' for game in result: if 'gameHash' in game['MatchHistory']: re_match = re.match( r'^.*match-details/(.+?)/(.+?)\?gameHash=(.+?)(?:&a?m?p?;?tab=.*)?$', game['MatchHistory']) realm = re_match[1] game_id = re_match[2] game_hash = re_match[3] else: re_match = re.match(r'^.*match-details/(.+?)/([^/]*).*$', game['MatchHistory']) realm = re_match[1] game_id = re_match[2] game_hash = None fingerprint = '{} {}'.format(realm, game_id) if fingerprint == startat: passed_startat = True if not passed_startat: continue print('Processing {} now, hash is {}...'.format( fingerprint, game_hash)) try: site.save_title( 'V4 data:{}_{}'.format(realm, game_id), json.dumps(acs.get_game(realm, game_id, game_hash))) except HTTPError: with open('acs_errors.txt', 'a') as f: f.write('\n{} {} {}'.format(realm, game_id, game_hash)) print(game['MatchHistory']) print(game['Page']) continue try: site.save_title( 'V4 data:{}_{}/Timeline'.format(realm, game_id), json.dumps(acs.get_game_timeline(realm, game_id, game_hash))) except HTTPError: print(game['MatchHistory']) print(game['Page']) pass site.save_title('V4 metadata:{}_{}'.format(realm, game_id), get_metadata(game, realm, game_id, game_hash))
for player in sorted_data["players"][team]: player = player[0] game_rd_player = self.rosters_data[team]["players"][player] if players_data.get(player): player_data = self.concat_args(players_data[player]) else: player_data = self.concat_args([{"player": player}]) player_roles_data = self.concat_args( game_rd_player["roles_data"]) player_games_by_role = self.concat_args( game_rd_player["games_by_role"]) players_text += self.PLAYER_TEXT.format( player_data, player_roles_data, player_games_by_role) teamsvs = self.concat_args(self.rosters_data[team]["teamsvs"]) output += self.TEAM_TEXT.format(team, teamsvs, players_text) return output def save_page(self, output): username = self.site.credentials.username username = username.split('@')[0] if "@" in username else username page = self.site.client.pages[f"User:{username}/Team Rosters Sandbox"] self.site.save(page=page, text=output, summary="Generating Rosters from Scoreboard Data") if __name__ == '__main__': credentials = AuthCredentials(user_file='bot') lol_site = EsportsClient('lol', credentials=credentials) AutoRostersRunner(lol_site, "LMF 2022 Opening").run()
def check_results(site: EsportsClient, title): title = site.target(title) tables = [ 'TournamentResults=TR', 'TournamentResults__RosterLinks=RL', 'PlayerRedirects=PR', 'Players=P', ] join = [ 'TR._ID=RL._rowID', 'RL._value=PR.AllName', 'PR._pageName=P._pageName', ] result = site.cargo_client.query( tables=','.join(tables), join_on=','.join(join), fields='TR.Team=Team,RL._value=Player', where='TR.Team != P.Team AND TR._pageName="Data:{}"'.format(title)) return result if __name__ == '__main__': credentials = AuthCredentials(user_file="me") fn_site = EsportsClient('fortnite-esports', credentials=credentials) final_result = check_results( fn_site, "Fortnite Champion Series: Chapter 2 Season 4/Heat 3/Europe") print(final_result) print(len(final_result))
No personal data is stored in this cog. """ return @commands.group() async def patchupdate(self, ctx): pass @patchupdate.command() async def championstats(self, ctx, version=None): await ctx.send("Okay, starting!") site = await utils.login_if_possible(ctx, self.bot, 'lol') async with ctx.typing(): await updatestats(site, "champion", version) await ctx.send("Okay, done!") @patchupdate.command() async def itemstats(self, ctx, version=None): await ctx.send("Okay, starting!") site = await utils.login_if_possible(ctx, self.bot, 'lol') async with ctx.typing(): await updatestats(site, "item", version) await ctx.send("Okay, done!") if __name__ == "__main__": lolsite = EsportsClient('lol', credentials=AuthCredentials(user_file='me')) asyncio.run(updatestats(lolsite, "champion")) # asyncio.run(updatestats(lolsite, "item"))
from mwrogue.auth_credentials import AuthCredentials from mwrogue.esports_client import EsportsClient from mwrogue.wiki_time_parser import time_from_str credentials = AuthCredentials(user_file='me') site = EsportsClient('lol', credentials=credentials) # for ns in site.namespaces: # print(ns.name) assert site.cache.get_disambiguated_player_from_event( 'European Masters/2021 Season/Spring Play-In', 'G2 Arctic', 'Koldo') == 'Koldo' assert site.cache.get_disambiguated_player_from_event( 'Claro Stars League/2021 Season/Opening Season', 'Luxor Gaming', 'Zeldris') == 'Zeldris (Christian Ticlavilca)' assert site.cache.get_disambiguated_player_from_event( 'El_Nexo/2020_Season/Split_1_Playoffs', 'Movistar Riders Academy', 'Marky') == 'Marky (Pedro José Serrano)' # check fallback to Teams.Short assert site.cache.get_team_from_event_tricode('GUL 2020 Closing Playoffs', 'MK') == 'Mad Kings' assert site.cache.get_team_from_event_tricode('Worlds 2019 Main Event', 'SKT') == 'SK Telecom T1' assert site.cache.get_disambiguated_player_from_event(