Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3.2
- # -*- coding: Utf-8 -*-
- '''
- program: NCore torrents manager 0.1
- Ez a program Ncore torrentszerver generált oldalaiból a saját torrentlisták külső feldolgozását végzi el.
- Összehasonlítja a saját seed-elt torrentjeink listáját a saját seed kötelezett torrentjeink listájával.
- Futattásához telepíteni kell: Python 3.x (http://www.python.org/download/)
- PySide 1.x (http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads)
- (vagy a linuxos tárolókból)
- create by: 13.04.2013
- author: zfoxatis@gmail.com
- license: LGPL (http://hu.wikipedia.org/wiki/GNU_Lesser_General_Public_License)
- Thanks to all developers who have created: Python, Qt, PySide, Ubuntu, GNU
- '''
- import sys
- import os
- from PySide.QtGui import *
- from PySide.QtCore import *
- from html.parser import HTMLParser
- class MyScreen():
- '''Képernyő felbontása és a a középpont helyének kiszámolása'''
- def __init__(self):
- self.resolution = QDesktopWidget().screenGeometry()
- def screenSize(self):
- return self.resolution.width(),self.resolution.height()
- def screenCenterPoint(self):
- return int(self.screenSize()[0]/2),int(self.screenSize()[1]/2)
- class MyLabel(QLabel):
- def __init__(self):
- super(MyLabel,self).__init__()
- self.setFont(font1)
- class MyLabel2(QLabel):
- def __init__(self):
- super(MyLabel2,self).__init__()
- self.setFont(font2)
- class Font1(QFont):
- def __init__(self):
- super(Font1, self).__init__()
- self.setFamily('Arial')
- self.setBold(True)
- self.setPointSize(14)
- class Font2(Font1):
- def __init__(self):
- super(Font2, self).__init__()
- self.setBold(False)
- self.setPointSize(10)
- self.setItalic(True)
- class Font3(Font1):
- def __init__(self):
- super(Font3, self).__init__()
- self.setPointSize(11)
- class MyHTMLParser(HTMLParser):
- '''html forráskód feldolgozó'''
- def __init__(self):
- self.lista=[]
- super(MyHTMLParser, self).__init__(strict = False)
- def handle_starttag(self, tag, attrs):
- attr={}
- for name,data in attrs:
- attr[name]=data
- for pattern in ['title','onclick','href']: # az html tag amiben szerepel ez a 3 attributum az tartalmazza a torrent adatait
- try:
- attr[pattern]
- except:
- return
- self.lista.append(attr['title'].strip()+', '+attr['onclick'].split(';')[0])
- class MyDialog(QDialog):
- '''eredmény ablak '''
- def __init__(self, tabla):
- super(MyDialog, self).__init__()
- self.tabla=tabla
- self.setWindowTitle('Torrentek')
- self.resize(900,640)
- self.setModal(True)
- self.setSizeGripEnabled(True)
- self.move(MyScreen().screenCenterPoint()[0]-int(self.size().width()/2),MyScreen().screenCenterPoint()[1]-int(self.size().height()/2))
- self.gridLayout=QGridLayout()
- self.table =QTableWidget()
- self.table.setRowCount(len(self.tabla))
- self.table.setColumnCount(2)
- self.table.setColumnWidth(0, 430)
- self.table.setColumnWidth(1, 430)
- self.table.setHorizontalHeaderLabels(['Futtatott torrentek','Seed kötelezett torrentek' ])
- self.table.setFont(font3)
- sor=0
- for iteml,itemr in self.tabla:
- self.litem = QTableWidgetItem(iteml)
- self.ritem = QTableWidgetItem(itemr)
- self.table.setItem(sor,0,self.litem)
- self.table.setItem(sor,1,self.ritem)
- sor+=1
- self.exitButton=QPushButton('Vissza')
- self.gridLayout.addWidget(self.table, 0, 0 )
- self.gridLayout.addWidget(self.exitButton, 1, 0)
- self.setLayout(self.gridLayout)
- self.connect(self.exitButton, SIGNAL("clicked()"),self.close)
- class MainWindow(QMainWindow):
- '''főablak'''
- def __init__(self,window):
- super(MainWindow, self).__init__()
- self.resize(940,680)
- self.myFrame=QFrame()
- self.myGridLayout=QGridLayout()
- self.myHBoxLayout=QHBoxLayout()
- self.pasteWindow()
- self.setCentralWidget(self.myFrame)
- self.setWindowTitle('my NCore torrents manager :)')
- self.move(MyScreen().screenCenterPoint()[0]-int(self.size().width()/2),MyScreen().screenCenterPoint()[1]-int(self.size().height()/2))
- self.show()
- def pasteWindow(self):
- self.myseed_pagehtml=QPlainTextEdit()
- self.myneedseed_pagehtml=QPlainTextEdit()
- self.label1=MyLabel()
- self.label1.setText('Futtatott torrentek')
- self.label2=MyLabel()
- self.label2.setText('Seed kötelezett torrentek')
- self.label3=MyLabel2()
- self.label3.setText('''A saját nevedre kattintva bejővő oldal html kódja:
- 1. katt a nevedre ->
- 2. ctrl + u ->
- 3. ctrl + a ->
- 4. ctrl + c ->
- 5. katt ide a szövegterületre ->
- 6. ctrl + v''')
- self.label4=MyLabel2()
- self.label4.setText('''Az aktívitásra kattintva bejővő oldal html kódja
- 1. katt az aktivitásra ->
- 2. ctrl + u ->
- 3. ctrl + a ->
- 4. ctrl + c ->
- 5. katt ide a szövegterületre ->
- 6. ctrl + v''')
- self.delButton1=QPushButton('Töröl')
- self.delButton1.setFont(font3)
- self.delButton2=QPushButton('Töröl')
- self.delButton2.setFont(font3)
- self.okButton=QPushButton('Összehasonlítás')
- self.okButton.setFont(font1)
- self.exitButton=QPushButton('Kilépés')
- self.exitButton.setFont(font1)
- self.myHBoxLayout.addWidget(self.okButton)
- self.myHBoxLayout.addWidget(self.exitButton)
- self.myHBoxLayout.setStretch(0, 1)
- self.myHBoxLayout.setStretch(3, 1)
- self.myGridLayout.addWidget(self.label1, 0, 0)
- self.myGridLayout.addWidget(self.label2, 0, 1)
- self.myGridLayout.addWidget(self.label3, 1, 0)
- self.myGridLayout.addWidget(self.label4, 1, 1)
- self.myGridLayout.addWidget(self.myseed_pagehtml, 2, 0)
- self.myGridLayout.addWidget(self.myneedseed_pagehtml, 2, 1)
- self.myGridLayout.addWidget(self.delButton1, 3, 0)
- self.myGridLayout.addWidget(self.delButton2, 3, 1)
- self.myGridLayout.addLayout(self.myHBoxLayout, 4,0, 1, 2 )
- self.myFrame.setLayout(self.myGridLayout)
- self.connect(self.delButton1, SIGNAL("clicked()"), self.myseed_pagehtml.clear)
- self.connect(self.okButton, SIGNAL("clicked()"),self.listdialog)
- self.connect(self.exitButton, SIGNAL("clicked()"),self.close)
- self.connect(self.delButton2, SIGNAL("clicked()"),self.myneedseed_pagehtml.clear)
- def listdialog(self):
- self.listwork()
- self.listwin=MyDialog(self.tabla)
- self.listwin.show()
- def listwork(self):
- self.tabla=[]
- parser = MyHTMLParser()
- parser.feed(self.myseed_pagehtml.toPlainText())
- parser2 = MyHTMLParser()
- parser2.feed(self.myneedseed_pagehtml.toPlainText())
- #print(parser.lista)
- #print(parser2.lista)
- for oszlop1 in parser.lista:
- self.tabla.append([oszlop1,''])
- for oszlop2 in parser2.lista:
- if oszlop2 in parser.lista:
- self.tabla[parser.lista.index(oszlop2)]=[oszlop2,oszlop2]
- else:
- self.tabla.append(['',oszlop2])
- self.tabla.sort()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- app.setStyle('plastique') #windowsvista,cleanlooks,windows”, “motif”, “cde”, “plastique”, “windowsxp”, or “macintosh”.
- font1=Font1()
- font2=Font2()
- font3=Font3()
- QLocale.setDefault(QLocale(QLocale.Hungarian, QLocale.Hungary))
- translatorFileName = "qt_"
- translatorFileName += QLocale.system().name()
- translator = QTranslator(app)
- if translator.load(translatorFileName, QLibraryInfo.location(QLibraryInfo.TranslationsPath)):
- app.installTranslator(translator)
- window=QMainWindow()
- mainwindow = MainWindow(window)
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement