Advertisement
Guest User

pyqts

a guest
May 27th, 2013
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.38 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. # Form implementation generated from reading ui file 'untitled.ui'
  5. #
  6. # Created: Tue May 21 19:22:45 2013
  7. #      by: PyQt4 UI code generator 4.10
  8. #
  9. # WARNING! All changes made in this file will be lost!
  10.  
  11. import sys
  12. from PyQt4 import QtCore, QtGui
  13. import time
  14. from PyQt4.QtCore import SIGNAL, QObject, QTimer
  15. import libtorrent as lt
  16.  
  17. try:
  18.     _fromUtf8 = QtCore.QString.fromUtf8
  19. except AttributeError:
  20.     def _fromUtf8(s):
  21.         return s
  22.  
  23. try:
  24.     _encoding = QtGui.QApplication.UnicodeUTF8
  25.     def _translate(context, text, disambig):
  26.         return QtGui.QApplication.translate(context, text, disambig, _encoding)
  27. except AttributeError:
  28.     def _translate(context, text, disambig):
  29.         return QtGui.QApplication.translate(context, text, disambig)
  30.  
  31.  
  32. class wrapper():
  33. ##################
  34.     name = ""
  35.     class session():
  36.         ses = lt.session()
  37.         ses.listen_on(6881, 6891)
  38.  
  39.     session = session()
  40.    
  41.     class Actions():   
  42.         def pausing(self,ses):
  43.             if ses.ses.is_paused() == True:
  44.  
  45.                 ses.ses.resume()
  46.             else:
  47.                 ses.ses.pause()
  48.         def newTor(self):
  49.             s = QtGui.QFileDialog.getOpenFileName()
  50.             info = lt.torrent_info(str(s)) 
  51.             return info
  52.  
  53.         def infors(self,session = None):
  54.             h = session.ses.add_torrent({'ti': self.newTor(), 'save_path': './'})
  55.             return h
  56.     x = Actions()
  57.     h = None
  58.  
  59.     class Ui_Form(object):
  60.        
  61.         def setupUi(self, Form):
  62.             Form.setObjectName(_fromUtf8("Form"))
  63.             Form.resize(740, 607)
  64.             self.closeb = QtGui.QPushButton(Form)
  65.             self.closeb.setGeometry(QtCore.QRect(550, 550, 98, 27))
  66.             self.closeb.setObjectName(_fromUtf8("closeb"))
  67.             self.newb = QtGui.QPushButton(Form)
  68.             self.newb.setGeometry(QtCore.QRect(50, 550, 98, 27))
  69.             self.newb.setObjectName(_fromUtf8("newb"))
  70.             self.stopb = QtGui.QPushButton(Form)
  71.             self.stopb.setGeometry(QtCore.QRect(150, 550, 98, 27))
  72.             self.stopb.setObjectName(_fromUtf8("stopb"))
  73.             self.pausingb = QtGui.QPushButton(Form)
  74.             self.pausingb.setGeometry(QtCore.QRect(250, 550, 98, 27))
  75.             self.pausingb.setObjectName(_fromUtf8("pausingb"))
  76.             self.selallb = QtGui.QPushButton(Form)
  77.             self.selallb.setGeometry(QtCore.QRect(350, 550, 141, 27))
  78.             self.selallb.setObjectName(_fromUtf8("selallb"))
  79.             self.treeWidget = QtGui.QTreeWidget(Form)
  80.             self.treeWidget.setGeometry(QtCore.QRect(35, 21, 681, 501))
  81.             self.treeWidget.setObjectName(_fromUtf8("treeWidget"))
  82.  
  83.        
  84.             self.retranslateUi(Form)
  85.             QtCore.QObject.connect(self.closeb, QtCore.SIGNAL(_fromUtf8("clicked()")), Form.close)
  86.             #QtCore.QObject.connect(self.pausingb, QtCore.SIGNAL(_fromUtf8("clicked()")), pausing)
  87.             QtCore.QObject.connect(self.stopb, QtCore.SIGNAL(_fromUtf8("clicked()")), self.stopb.click)
  88.             #QtCore.QObject.connect(self.newb, QtCore.SIGNAL(_fromUtf8("clicked()")), newTor)
  89.             QtCore.QMetaObject.connectSlotsByName(Form)
  90.             self.pausingb.clicked.connect(lambda: wrapper.x.pausing(wrapper.session))
  91.             self.newb.clicked.connect(lambda: wrapper.x.newTor())
  92.  
  93.         def retranslateUi(self, Form):
  94.             Form.setWindowTitle(_translate("Form", "JKTorrent", None))
  95.             self.closeb.setText(_translate("Form", "Close", None))
  96.             self.newb.setText(_translate("Form", "Add new", None))
  97.             self.stopb.setText(_translate("Form", "Open folder", None))
  98.             self.pausingb.setText(_translate("Form", "Pause", None))
  99.             self.selallb.setText(_translate("Form", "Select all", None))
  100.             self.treeWidget.headerItem().setText(0, _translate("Form", "Nazwa", None))
  101.             self.treeWidget.headerItem().setText(1, _translate("Form", "%", None))
  102.             self.treeWidget.headerItem().setText(2, _translate("Form", "UP kB/s", None))
  103.             self.treeWidget.headerItem().setText(3, _translate("Form", "DWN kB/s", None))
  104.             self.treeWidget.headerItem().setText(4, _translate("Form", "Stan", None))
  105.             self.treeWidget.headerItem().setText(5, _translate("Form", "Peerów", None))
  106.  
  107.  
  108.     class MyForm(QtGui.QMainWindow):
  109.         def __init__(self, parent=None):
  110.             QtGui.QWidget.__init__(self, parent)
  111.             self.ui = wrapper.Ui_Form()
  112.             self.ui.setupUi(self)  
  113.  
  114.  
  115.    
  116.  
  117.     class Runnable(QtCore.QRunnable):
  118.  
  119.         def run(self):
  120.  
  121.             #global session
  122.             #h = infors()
  123.             app = QtCore.QCoreApplication.instance()
  124.             h = wrapper.x.infors(wrapper.session)
  125.            
  126.             print 'starting', wrapper.h.name()
  127.             while (not wrapper.h.is_seed()):
  128.                 #print "Increasing"
  129.                 s = wrapper.h.status()
  130.  
  131.                 #listastr << h.name() << s.progress * 100 << s.upload_rate / 1000 << s.download_rate / 1000 << state_str[s.state] << s.num_peers
  132.                 state_str = ['queued', 'checking', 'downloading metadata', 'downloading', 'finished', 'seeding', 'allocating', 'checking fastresume']
  133.                 print '\r%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s' % (s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, s.num_peers, state_str[s.state]),
  134.                 #liststr = QtCore.QStringList([QtCore.QString(h.name()), QtCore.QString(s.progress * 100), QtCore.QString(s.upload_rate / 1000), QtCore.QString(s.download_rate / 1000), QtCore.QString(state_str[s.state]), QtCore.QString(s.num_peers)])
  135.                 #row = QtGui.QTreeWidgetItem(liststr)
  136.                 #myapp.ui.treeWidget.addItem(row)
  137.                 sys.stdout.flush()
  138.  
  139.                 time.sleep(1)
  140.                 #count += 1
  141.             print wrapper.h.name(), 'complete'
  142.             app.quit()
  143.    
  144.  
  145.  
  146.  
  147. if __name__ == "__main__":
  148.     app = QtGui.QApplication(sys.argv)
  149.     w = wrapper()
  150.     myapp = wrapper.MyForm()
  151.    
  152.     runnable = wrapper.Runnable()
  153.     myapp.show()
  154.     QtCore.QThreadPool.globalInstance().start(runnable)
  155.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement