Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import praw
- import json
- from pprint import pprint
- from praw.models import MoreComments
- import re
- import timeit
- def generateRollingLeaderboard(currentRoundNum, interval):
- unsortedLeaderboardLastInterval = {}
- for user in leaderboard:
- winCountLastInterval = 0
- rounds = leaderboard[user]["rounds"]
- for round in rounds:
- if(int(round) >= (currentRoundNum - interval)):
- winCountLastInterval += 1
- if(winCountLastInterval > 0):
- unsortedLeaderboardLastInterval[user] = winCountLastInterval
- sortedLeaderboardLastInterval = sorted(unsortedLeaderboardLastInterval.items(), key=lambda x: x[1], reverse=True)
- outputString = ""
- for user in sortedLeaderboardLastInterval:
- outputString += ("%s, %d\n" % (user[0], user[1]))
- with open('rollingLeaderboard.txt', 'w') as f:
- f.write(outputString)
- f.close();
- def generateIntervalLeaderboard(startRoundNum, endRoundNum):
- unsortedLeaderboard = {}
- outputString = ""
- for user in leaderboard:
- winCount = 0
- rounds = leaderboard[user]["rounds"]
- for round in rounds:
- if(int(round) >= startRoundNum and int(round) <= endRoundNum):
- winCount += 1
- if(winCount > 0):
- unsortedLeaderboard[user] = winCount
- sortedLeaderboard = sorted(unsortedLeaderboard.items(), key=lambda x: x[1], reverse=True)
- for user in sortedLeaderboard:
- outputString += ("%s, %d\n" % (user[0], user[1]))
- with open('intervalLeaderboard.txt', 'w') as f:
- f.write(outputString)
- f.close();
- class Round(object):
- def __init__(self, host, number, title, duration, startTime, endTime, winner):
- self.host = host
- self.number = number
- self.title = title
- self.duration = duration
- self.startTime = startTime
- self.endTime = endTime
- self.winner = winner
- def toJSON(self):
- return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
- roundList = []
- reddit = praw.Reddit(user_agent='PG Stats Generator', client_id='', client_secret='', username='', password='')
- PictureGame = reddit.subreddit('PictureGame')
- wikiPageData = PictureGame.wiki["leaderboard"].content_md.split('\n')[4:-1]
- leaderboard = {}
- for line in wikiPageData:
- _, name, rawRounds, _ = line.split(" | ")
- rounds = [int(re.sub(r"\D", "", rawRound)) for rawRound in \
- re.findall(r"[\w\d]+", rawRounds)]
- leaderboard[name] = {
- "wins": len(rounds),
- "rounds": rounds
- }
- generateRollingLeaderboard(38029, 500)
Add Comment
Please, Sign In to add comment