#coding:utf-8
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import urllib,re,sys
doc_version=['11.9.0','11.8.0','11.7.0','11.6.0','11.5.0','11.4.0','11.3.0','11.2.0','11.1.0']
baseurl='http://www.3gpp.org/ftp/Specs/html-info/%s.htm'
class StandardDialog(QDialog):
def __init__(self,parent=None):
super(StandardDialog,self).__init__(parent)
self.setWindowTitle("3GPP doc Downloader!")
DimMsgDecodeButton=QPushButton(self.tr("Dim Msg Decode"))
self.label_SrcBuf = QLabel('3GPP DocID: 29273 29280 ...')
self.fileTextEditInput=QTextEdit()
self.fileTextEditOutput=QTextEdit()
self.fileTextEditOutput.setReadOnly(1)
layout=QGridLayout()
#col 0
layout.addWidget(self.label_SrcBuf, 0, 0)
layout.addWidget(self.fileTextEditInput, 1, 0, 3, 1)
layout.addWidget(self.fileTextEditOutput,4,0, 12, 1)
#col 1
layout.addWidget(DimMsgDecodeButton,2,1)
self.setLayout(layout)
self.connect(DimMsgDecodeButton,SIGNAL("clicked()"),self.DecodeDimMsgSlot)
def getdoc(self,doc_no):
url=baseurl%(doc_no)
log='preparing download from'+url
self.fileTextEditOutput.append(log)
try:
webpage=urllib.urlopen(url).read()
for ver in doc_version:
doc_urls=re.findall('<a href=(.*?)>'+ver, webpage)
if doc_urls:
doc_url=doc_urls[0]
break
filename1=re.search('\d{5}-b\d{2}.zip',doc_url)
if filename1:
filename=filename1.group()
else:
filename=doc_no
s=urllib.urlopen(doc_url)
destfile=s.read()
open(filename,'wb').write(destfile)
log='download %s from %s success!!'%(filename, doc_url)
self.fileTextEditOutput.append(log)
except:
log='open url ['+url+'] failure!'
self.fileTextEditOutput.append(log)
def DecodeDimMsgSlot(self):
hexstr=str(self.fileTextEditInput.toPlainText()).strip()
downloadlist=re.split('[ ,]',hexstr)
print downloadlist
for docid in downloadlist:
self.getdoc(docid)
if __name__ == '__main__':
print 'starting!!!'
app=QApplication(sys.argv)
form=StandardDialog()
form.show()
app.exec_()
3GPP 文档下载器
最新推荐文章于 2024-05-04 16:02:08 发布