Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- LoLhistory
- Created on Mon Jul 22 15:12:52 2013
- @author: ArcticTurtle
- """
- import os
- import sys
- import time
- import datetime
- from PyQt4 import QtCore, QtGui, QtSql
- class ParserForm(QtGui.QDialog):
- def __init__(self, parent=None):
- super(ParserForm, self).__init__(parent)
- self.browser = QtGui.QTextBrowser()
- self.browser.setFixedWidth(900)
- self.line = QtGui.QLineEdit()
- self.progress = QtGui.QProgressBar()
- self.progress.setMaximum(100)
- self.progress.setValue(0)
- layout = QtGui.QVBoxLayout()
- layout.addWidget(self.browser)
- layout.addWidget(self.line)
- layout.addWidget(self.progress)
- self.setLayout(layout)
- self.line.setFocus()
- self.connect(self.line, QtCore.SIGNAL("returnPressed()"), self.updateUI)
- self.setWindowTitle("Load League of Legends history")
- self.browser.append("0 + Enter to quit.")
- self.browser.append("Summoner name + Enter to parse")
- self.thread = parserthread()
- self.connect(self.thread, QtCore.SIGNAL("updateProgress(int, int, QString)"), self.updateProgress)
- self.connect(self.thread, QtCore.SIGNAL("updateFinished()"), self.updateFinished)
- self.connect(self.thread, QtCore.SIGNAL("showtext(QString)"), self.showtext)
- self.connect(self.thread, QtCore.SIGNAL("addchamp(QString)"), self.addchamp)
- self.champlist = []
- def updateUI(self):
- text = self.line.text()
- if text == '0':
- app.exit()
- else:
- self.thread.setname(text)
- self.browser.append("Started at " + str(datetime.datetime.now()))
- self.thread.begin()
- def showtext(self, text):
- self.browser.append(text)
- app.processEvents()
- def addchamp(self, text):
- self.champlist.append(text)
- def updateProgress(self, progress, total, filename):
- try:
- if filename == "ERROR!":
- self.progress.setValue((progress/(total+1.0))*100)
- self.browser.append("An error occured, parsing was not completed.")
- self.progress.update()
- app.processEvents()
- else:
- self.progress.setValue((progress/(total+1.0))*100)
- self.progress.update()
- val = self.progress.value()
- app.processEvents()
- except:
- None
- def updateFinished(self):
- try:
- self.champlist.sort()
- nc = 0
- for c in self.champlist:
- if nc == 0:
- c1 = c
- nc += 1
- elif c == c1:
- nc += 1
- elif c != c1:
- self.browser.append(c1 + "\t played \t" + str(nc) + "\t times.")
- c1 = c
- nc = 1
- self.progress.setValue(100)
- self.browser.append("Done.")
- self.browser.append("Ended at " + str(datetime.datetime.now()))
- except:
- None
- ########################################################################
- class parserthread(QtCore.QThread):
- """"""
- #----------------------------------------------------------------------
- def __init__(self):
- """Constructor"""
- super(parserthread, self).__init__()
- self.myname = "N/A"
- def setname(self,name):
- self.emit(QtCore.SIGNAL("showtext(QString)"), "Name was set")
- self.myname = name
- def run(self):
- n = 0
- totn = 0
- mypath = "C:\\Riot Games\\League of Legends\\Logs\\Game - R3d Logs"
- self.emit(QtCore.SIGNAL("showtext(QString)"),mypath)
- try:
- for files in os.listdir(mypath):
- totn += 1
- self.emit(QtCore.SIGNAL("showtext(QString)"), "Total games played: " + str(totn))
- for files in os.listdir(mypath):
- if os.path.isfile(os.path.join(mypath,files)):
- n += 1
- self.findinfo(os.path.join(mypath,files))
- self.emit(QtCore.SIGNAL("updateProgress(int, int, QString)"), n, totn, files)
- self.emit(QtCore.SIGNAL("updateFinished()"))
- except e:
- self.emit(QtCore.SIGNAL("updateProgress(int, int, QString)"), 100, 100, "ERROR!")
- self.emit(QtCore.SIGNAL("updateFinished()"))
- def findinfo(self, thisfile):
- readfile = open(thisfile, 'r')
- for line in readfile:
- if str(self.myname).lower() in line.lower():
- if line.find("Hero ") > 0:
- champ = line[line.find("Hero ")+4:line.find(" created for ")]
- champ = champ.replace("(0)","")
- #self.emit(QtCore.SIGNAL("showtext(QString)"),champ)
- self.emit(QtCore.SIGNAL("addchamp(QString)"),champ)
- def begin(self):
- self.start()
- app = QtGui.QApplication(sys.argv)
- form = ParserForm()
- form.show()
- app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement