Skip to content

Instantly share code, notes, and snippets.

@santisteban
Created February 28, 2016 01:08
Show Gist options
  • Save santisteban/6bb7f20262c6a4a1fc50 to your computer and use it in GitHub Desktop.
Save santisteban/6bb7f20262c6a4a1fc50 to your computer and use it in GitHub Desktop.
Modified hiscore.py from /u/Tompazi
# -*- coding: utf-8 -*-
import sys, requests, csv, io
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.setFixedSize(425, 550)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.lineEdit = QtGui.QLineEdit(self.centralwidget)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.horizontalLayout.addWidget(self.lineEdit)
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.horizontalLayout.addWidget(self.pushButton)
self.verticalLayout.addLayout(self.horizontalLayout)
self.treeWidget = QtGui.QTreeWidget(self.centralwidget)
self.treeWidget.setObjectName(_fromUtf8("treeWidget"))
self.verticalLayout.addWidget(self.treeWidget)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "RuneScape HiScores Lookup", None))
self.pushButton.setText(_translate("MainWindow", "Search for player", None))
self.treeWidget.headerItem().setText(0, _translate("MainWindow", "Skill", None))
self.treeWidget.headerItem().setText(1, _translate("MainWindow", "Rank", None))
self.treeWidget.headerItem().setText(2, _translate("MainWindow", "Level", None))
self.treeWidget.headerItem().setText(3, _translate("MainWindow", "XP", None))
__sortingEnabled = self.treeWidget.isSortingEnabled()
self.treeWidget.setSortingEnabled(False)
self.treeWidget.setSortingEnabled(__sortingEnabled)
class Main(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
self.pushButton.clicked.connect(lambda: self.searchForPlayer(self.lineEdit.text()))
def searchForPlayer(self, player):
self.treeWidget.clear()
if player:
try:
r = requests.get('http://services.runescape.com/m=hiscore/index_lite.ws?player={}'.format(player), timeout=3)
except (requests.exceptions.Timeout, IndexError):
pass
reader = csv.reader(io.StringIO(r.text))
skills = ["Overall","Attack","Defence","Strength","Constitution","Ranged","Prayer","Magic",
"Cooking","Woodcutting","Fletching","Fishing","Firemaking","Crafting","Smithing",
"Mining","Herblore","Agility","Thieving","Slayer","Farming","Runecrafting","Hunter",
"Construction","Summoning","Dungeoneering","Divination","Invention"]
if r.status_code == 200:
for x in range(0, len(skills)):
row = next(reader)
QtGui.QTreeWidgetItem(self.treeWidget)
self.treeWidget.topLevelItem(x).setText(0, _translate("MainWindow", skills[x], None))
self.treeWidget.topLevelItem(x).setText(1, _translate("MainWindow", row[0], None))
self.treeWidget.topLevelItem(x).setText(2, _translate("MainWindow", row[1], None))
self.treeWidget.topLevelItem(x).setText(3, _translate("MainWindow", "{:,.0f}".format(int(row[2])), None))
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
Window = Main()
Window.show()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment