#!/usr/bin/python
import urllib
import sys
import webbrowser
from PyQt4 import QtGui
from PyQt4 import QtCore
class SIAS(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 500, 300)
self.setWindowTitle('Site Info And Source')
self.button = QtGui.QPushButton('Clicca qui per inserire un indirizzo', self)
self.button.setFocusPolicy(QtCore.Qt.NoFocus)
self.button.move(20, 20)
self.connect(self.button, QtCore.SIGNAL('clicked()'), self.showDialog)
self.setFocus()
self.label = QtGui.QLineEdit()
self.label.displayText()
self.fregior = QtGui.QLineEdit(self)
self.fregior.move(230, 22)
self.fregior.setText("Sito non ancora inserito")
self.su = QtGui.QLabel(self)
self.su.setText("Sito:")
self.su.move(200,25)
self.sorgente = QtGui.QTextEdit(self)
self.sorgente.move(200,50)
self.cb = QtGui.QCheckBox('Mostra Informazioni', self)
self.cb.setFocusPolicy(QtCore.Qt.NoFocus)
self.cb.move(10, 110)
self.connect(self.cb, QtCore.SIGNAL('stateChanged(int)'), self.infor)
self.cb1 = QtGui.QCheckBox('Mostra Sorgente', self)
self.cb1.setFocusPolicy(QtCore.Qt.NoFocus)
self.cb1.move(10, 130)
self.connect(self.cb1, QtCore.SIGNAL('stateChanged(int)'), self.inform)
self.siasb = QtGui.QPushButton('Informazioni sull\'applicazione.', self)
self.siasb.move(10,200)
self.connect(self.siasb, QtCore.SIGNAL('clicked()'), self.showfregio)
self.viewsource = QtGui.QPushButton("Visualizza Sorgente", self)
self.viewsource.move(110,20)
self.connect(self.viewsource, QtCore.SIGNAL('clicked()'), self.redirect)
self.inf = QtGui.QLabel(self)
informazionisias= "Testo "
self.inf.setText(informazionisias)
self.inf.setGeometry(10,10,300,100)
self.viewsource.hide()
self.inf.hide()
def showDialog(self):
text, ok = QtGui.QInputDialog.getText(self, 'Inserire sito web', 'Inserisci sito web:')
if ok:
self.label.setText(unicode(text))
self.fregior.setText(unicode(text))
cd = "%s" % self.label.displayText()
if "http://" in cd:
try:
remote = urllib.urlopen(cd)
except:
self.sorgente.setText("Errore")
else:
cd1 = "http://" + cd
try:
remote = urllib.urlopen(cd1)
except:
self.sorgente.setText("Errore")
content = remote.read()
self.scr = content
self.informations = remote.info()
def infor(self, value):
if self.cb.isChecked():
self.cb1.setChecked(False)
self.sorgente.setText(unicode(self.informations))
else:
self.sorgente.setText("")
def inform(self, value):
if self.cb1.isChecked():
self.cb.setChecked(False)
self.sorgente.setPlainText(self.scr)
else:
self.sorgente.setText("")
def showfregio(self, parent=None):
self.oka=QtGui.QPushButton("Torna all'applicazione", self)
self.oka.move(40,110)
self.connect(self.oka, QtCore.SIGNAL("clicked()"), self.foo )
self.viewsource = QtGui.QPushButton("Visualizza Sorgente", self)
self.viewsource.move(150,110)
self.connect(self.viewsource, QtCore.SIGNAL('clicked()'), self.redirect)
self.inf = QtGui.QLabel(self)
informazionisias= "SIAS e' un'applicazione free che permette di visualizzare le \ninfromazioni e la sorgente di un sito web inserito. E' stato \ncreato principalmente a scopo didattico. \nPer usarlo inserire l'indirizzo e selezionare la sorgente o le \ninformazioni. Ne e' vietata la ridistribuzione senza citare la \nfonte:
http://www.universalsite.org\nPer visualizzare la sorgente cliccare sul bottone sottostante. "
self.inf.setText(informazionisias)
self.inf.setGeometry(10,10,300,100)
hbox = QtGui.QHBoxLayout()
hbox.addStretch(1)
self.cb1.hide()
self.cb.hide()
self.button.hide()
self.siasb.hide()
self.fregior.hide()
self.sorgente.hide()
self.su.hide()
self.viewsource.show()
self.oka.show()
self.inf.show()
vbox = QtGui.QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
self.setLayout(vbox)
self.resize(300, 150)
def redirect(self):
webbrowser.open_new("http://www.universalsite.org/forum/informatica/sias-python-application/")
def foo(self):
self.viewsource.hide()
self.inf.hide()
self.oka.hide()
self.cb1.show()
self.cb.show()
self.button.show()
self.siasb.show()
self.fregior.show()
self.sorgente.show()
self.su.hide()
self.setGeometry(300, 300, 500, 300)
self.setWindowTitle('Site Info And Source')
app = QtGui.QApplication(sys.argv)
mainwindowsias = SIAS()
mainwindowsias.show()
app.exec_()