PEP8-ed python files

This commit is contained in:
2020-08-25 18:35:38 +03:00
parent 021d471357
commit 7e6a23fa5d
3 changed files with 260 additions and 238 deletions
+150 -128
View File
@@ -14,161 +14,183 @@ from configer import config
class GUI(QMainWindow):
def __init__(self):
super().__init__()
loadUi('GUI/MainWindow.ui',self)
self.applylang()
self.btn.clicked.connect(self.download)
self.actionSettings.triggered.connect(self.show_settings)
self.actionHelp.triggered.connect(self.show_help)
def __init__(self):
super().__init__()
loadUi('GUI/MainWindow.ui', self)
self.applylang()
self.btn.clicked.connect(self.download)
self.actionSettings.triggered.connect(self.show_settings)
self.actionHelp.triggered.connect(self.show_help)
def applylang(self):
self.title.setText(switch['title'][config["lang"]])
chfont(self.title,switch['title'][f'font_{config["lang"]}'])
self.input.setPlaceholderText(switch['placeholder'][config["lang"]])
chfont(self.input,switch['placeholder'][f'font_{config["lang"]}'])
self.btn.setText(switch['btn'][config["lang"]])
chfont(self.btn,switch['btn'][f'font_{config["lang"]}'])
self.menu.setTitle(switch['menu'][config["lang"]])
chfont(self.menubar,switch['menu'][f'font_{config["lang"]}'])
self.actionSettings.setText(switch['settings'][config["lang"]])
self.actionHelp.setText(switch['helpbtn'][config["lang"]])
def applylang(self):
self.title.setText(switch['title'][config["lang"]])
chfont(self.title, switch['title'][f'font_{config["lang"]}'])
self.input.setPlaceholderText(switch['placeholder'][config["lang"]])
chfont(self.input, switch['placeholder'][f'font_{config["lang"]}'])
self.btn.setText(switch['btn'][config["lang"]])
chfont(self.btn, switch['btn'][f'font_{config["lang"]}'])
self.menu.setTitle(switch['menu'][config["lang"]])
chfont(self.menubar, switch['menu'][f'font_{config["lang"]}'])
self.actionSettings.setText(switch['settings'][config["lang"]])
self.actionHelp.setText(switch['helpbtn'][config["lang"]])
def download(self):
# Validating input
songID=self.input.text()
if not songID:
self.notification=NotificationDialog(switch['empinp'][config["lang"]])
self.notification.exec()
return
elif not songID.isdigit():
self.notification=NotificationDialog(switch['typerr'][config["lang"]])
self.notification.exec()
return
page=parse(load(f'https://www.newgrounds.com/audio/listen/{songID}').text,'html.parser')
if page.find(id='pageerror') is not None:
self.notification=NotificationDialog(switch['404'][config["lang"]])
self.notification.exec()
return
self.songTitle=page.find('title').text
# Getting download link
link='http://audio.ngfiles.com/'
page=str(page)
i=page.find('audio.ngfiles.com')+len('audio.ngfiles.com/')
while not link.endswith('.mp3'):
if page[i]!='\\': link+=page[i]
i+=1
# Locating file
self.dist=QFileDialog.getSaveFileName(self,switch['savefile'][config["lang"]],
link.split('/')[-1],
'MP3 Audio File (*.mp3)')[0]
if not self.dist: return
# Downloading
self.file=load(link,stream=True)
self.progress=ProgressDialog()
self.progress.label.setText(switch['downloading'][config["lang"]](self.songTitle))
self.progress.setWindowTitle(switch['downloading'][config["lang"]](self.songTitle))
self.progress.bar.setValue(0)
self.progress.exec()
def download(self):
# Validating input
songID = self.input.text()
if not songID:
self.notification = NotificationDialog(
switch['empinp'][config["lang"]])
self.notification.exec()
return
elif not songID.isdigit():
self.notification = NotificationDialog(
switch['typerr'][config["lang"]])
self.notification.exec()
return
page = parse(load('https://www.newgrounds.com/audio/listen/'
f'{songID}').text, 'html.parser')
if page.find(id='pageerror') is not None:
self.notification = NotificationDialog(
switch['404'][config["lang"]])
self.notification.exec()
return
self.songTitle = page.find('title').text
# Getting download link
link = 'http://audio.ngfiles.com/'
page = str(page)
i = page.find('audio.ngfiles.com')+len('audio.ngfiles.com/')
while not link.endswith('.mp3'):
if page[i] != '\\':
link += page[i]
i += 1
# Locating file
self.dist = (QFileDialog.
getSaveFileName(self, switch['savefile'][config["lang"]],
link.split('/')[-1],
'MP3 Audio File (*.mp3)')[0])
if not self.dist:
return
# Downloading
self.file = load(link, stream=True)
self.progress = ProgressDialog()
self.progress.label.setText(
switch['downloading'][config["lang"]](self.songTitle))
self.progress.setWindowTitle(
switch['downloading'][config["lang"]](self.songTitle))
self.progress.bar.setValue(0)
self.progress.exec()
def show_settings(self):
self.settings=SettingsDialog()
self.settings.exec()
def show_settings(self):
self.settings = SettingsDialog()
self.settings.exec()
def show_help(self):
if config["lang"]=='en': web.open('https://github.com/H1K0/NGAudioDownloader/blob/master/README.md#newgrounds-audio-downloader--',new=2)
else: web.open(f'https://github.com/H1K0/NGAudioDownloader/blob/master/README-{config["lang"].upper()}.md#newgrounds-audio-downloader--',new=2)
def show_help(self):
if config["lang"] == 'en':
web.open('https://github.com/H1K0/NGAudioDownloader/blob/master/'
'README.md#newgrounds-audio-downloader--', new=2)
else:
web.open('https://github.com/H1K0/NGAudioDownloader/blob/master/'
f'README-{config["lang"].upper()}.md#'
'newgrounds-audio-downloader--', new=2)
def keyPressEvent(self,event):
if event.key()==16777216: self.close()
elif event.key()==16777220: self.download()
def keyPressEvent(self, event):
if event.key() == 16777216:
self.close()
elif event.key() == 16777220:
self.download()
class ProgressDialog(QDialog):
def __init__(self):
super().__init__()
loadUi('GUI/ProgressDialog.ui',self)
chfont(self.label,switch['downloading'][f'font_{config["lang"]}'])
self.setWindowFlags(self.windowFlags()&~QtCore.Qt.WindowCloseButtonHint)
self.thread=DownloadThread()
self.thread.got_chunk.connect(lambda done:self.bar.setValue(done))
self.thread.finished.connect(self.thread.finish)
self.thread.start()
def __init__(self):
super().__init__()
loadUi('GUI/ProgressDialog.ui', self)
chfont(self.label, switch['downloading'][f'font_{config["lang"]}'])
self.setWindowFlags(self.windowFlags() & ~
QtCore.Qt.WindowCloseButtonHint)
self.thread = DownloadThread()
self.thread.got_chunk.connect(lambda done: self.bar.setValue(done))
self.thread.finished.connect(self.thread.finish)
self.thread.start()
class DownloadThread(QThread):
got_chunk=pyqtSignal(object)
got_chunk = pyqtSignal(object)
def __init__(self): super().__init__()
def __init__(self): super().__init__()
def run(self):
total=ngad.file.headers.get('content-length')
if total is None: total=-1
else: total=int(total)
downloaded=0
with open(ngad.dist,'wb') as out:
for data in ngad.file.iter_content(chunk_size=max(total//100,1024)):
downloaded+=len(data)
out.write(data)
self.got_chunk.emit(100*downloaded//total)
def run(self):
total = ngad.file.headers.get('content-length')
if total is None:
total = -1
else:
total = int(total)
downloaded = 0
with open(ngad.dist, 'wb') as out:
for data in (ngad.file.
iter_content(chunk_size=max(total//100, 1024))):
downloaded += len(data)
out.write(data)
self.got_chunk.emit(100*downloaded//total)
def finish(self):
global ngad
ngad.progress.hide()
ngad.notification=NotificationDialog(switch['success'][config["lang"]](ngad.songTitle))
ngad.notification.exec()
self.deleteLater()
def finish(self):
global ngad
ngad.progress.hide()
ngad.notification = NotificationDialog(
switch['success'][config["lang"]](ngad.songTitle))
ngad.notification.exec()
self.deleteLater()
class NotificationDialog(QDialog):
def __init__(self,msg):
super().__init__()
loadUi('GUI/NotificationDialog.ui',self)
self.label.setText(msg)
chfont(self.label,switch['ntf'][f'font_{config["lang"]}'])
self.setWindowFlags(self.windowFlags()&~QtCore.Qt.WindowCloseButtonHint)
ngad.input.clear()
self.btn.clicked.connect(self.accept)
def __init__(self, msg):
super().__init__()
loadUi('GUI/NotificationDialog.ui', self)
self.label.setText(msg)
chfont(self.label, switch['ntf'][f'font_{config["lang"]}'])
self.setWindowFlags(self.windowFlags() & ~
QtCore.Qt.WindowCloseButtonHint)
ngad.input.clear()
self.btn.clicked.connect(self.accept)
def accept(self):
self.close()
def accept(self):
self.close()
class SettingsDialog(QDialog):
def __init__(self):
super().__init__()
loadUi('GUI/SettingsDialog.ui',self)
self.setWindowTitle(switch['settings'][config["lang"]])
self.title.setText(switch['settings'][config["lang"]])
self.label_lang.setText(switch['lang'][config["lang"]])
chfont(self.label_lang,switch['lang'][f'font_{config["lang"]}'])
if config["lang"]=='en':
self.rbtn_en.setChecked(True)
elif config["lang"]=='ru':
self.rbtn_ru.setChecked(True)
elif config["lang"]=='jp':
self.rbtn_jp.setChecked(True)
self.newlang=config["lang"]
self.rbtn_en.toggled.connect(lambda:self.chlang('en'))
self.rbtn_ru.toggled.connect(lambda:self.chlang('ru'))
self.rbtn_jp.toggled.connect(lambda:self.chlang('jp'))
self.accepted.connect(self.updlang)
def __init__(self):
super().__init__()
loadUi('GUI/SettingsDialog.ui', self)
self.setWindowTitle(switch['settings'][config["lang"]])
self.title.setText(switch['settings'][config["lang"]])
self.label_lang.setText(switch['lang'][config["lang"]])
chfont(self.label_lang, switch['lang'][f'font_{config["lang"]}'])
if config["lang"] == 'en':
self.rbtn_en.setChecked(True)
elif config["lang"] == 'ru':
self.rbtn_ru.setChecked(True)
elif config["lang"] == 'jp':
self.rbtn_jp.setChecked(True)
self.newlang = config["lang"]
self.rbtn_en.toggled.connect(lambda: self.chlang('en'))
self.rbtn_ru.toggled.connect(lambda: self.chlang('ru'))
self.rbtn_jp.toggled.connect(lambda: self.chlang('jp'))
self.accepted.connect(self.updlang)
def chlang(self,newlang):
if newlang!=config["lang"]:
self.newlang=newlang
def chlang(self, newlang):
if newlang != config["lang"]:
self.newlang = newlang
def updlang(self):
config["lang"]=self.newlang
ngad.applylang()
def updlang(self):
config["lang"] = self.newlang
ngad.applylang()
def chfont(unit,font): unit.setStyleSheet(f'font-family:{font}')
def chfont(unit, font): unit.setStyleSheet(f'font-family:{font}')
if __name__ == '__main__':
from sys import argv
app=QApplication(argv)
ngad=GUI()
app = QApplication(argv)
ngad = GUI()
ngad.show()
sys.exit(app.exec_())
sys.exit(app.exec_())