Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import json
- import urllib.request
- from PyQt5 import QtCore, QtGui, QtWidgets
- class Ui_Dialog(object):
- def setupUi(self, Dialog):
- Dialog.setObjectName("Dialog")
- Dialog.resize(600, 330)
- self.inputBox = QtWidgets.QLineEdit(Dialog)
- self.inputBox.setGeometry(QtCore.QRect(20, 40, 320, 20))
- font = QtGui.QFont()
- font.setFamily("Calibri")
- font.setPointSize(12)
- self.inputBox.setFont(font)
- self.inputBox.setObjectName("inputBox")
- self.guide = QtWidgets.QLabel(Dialog)
- self.guide.setGeometry(QtCore.QRect(20, 20, 320, 20))
- font = QtGui.QFont()
- font.setFamily("Calibri")
- font.setPointSize(12)
- font.setKerning(True)
- self.guide.setFont(font)
- self.guide.setObjectName("guide")
- self.outputBox = QtWidgets.QPlainTextEdit(Dialog)
- self.outputBox.setEnabled(True)
- self.outputBox.setGeometry(QtCore.QRect(20, 80, 560, 700))
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.outputBox.sizePolicy().hasHeightForWidth())
- self.outputBox.setSizePolicy(sizePolicy)
- font = QtGui.QFont()
- font.setFamily("Calibri")
- font.setPointSize(12)
- self.outputBox.setFont(font)
- self.outputBox.setPlainText("")
- self.outputBox.setObjectName("outputBox")
- self.inputBtn = QtWidgets.QPushButton(Dialog)
- self.inputBtn.setGeometry(QtCore.QRect(360, 20, 100, 40))
- font = QtGui.QFont()
- font.setFamily("Calibri")
- font.setPointSize(15)
- font.setBold(True)
- font.setWeight(75)
- self.inputBtn.setFont(font)
- self.inputBtn.setObjectName("inputBtn")
- self.info = QtWidgets.QLabel(Dialog)
- self.info.setGeometry(QtCore.QRect(20, 80, 560, 230))
- font = QtGui.QFont()
- font.setFamily("Calibri")
- font.setPointSize(12)
- self.info.setFont(font)
- self.info.setObjectName("info")
- self.searchBtn = QtWidgets.QPushButton(Dialog)
- self.searchBtn.setGeometry(QtCore.QRect(480, 20, 100, 40))
- font = QtGui.QFont()
- font.setFamily("Calibri")
- font.setPointSize(15)
- font.setBold(True)
- font.setWeight(75)
- self.searchBtn.setFont(font)
- self.searchBtn.setObjectName("searchBtn")
- self.gridLayoutWidget = QtWidgets.QWidget(Dialog)
- self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 80, 560, 500))
- self.gridLayoutWidget.setObjectName("gridLayoutWidget")
- self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setObjectName("gridLayout")
- self.title1 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title1.setObjectName("title1")
- self.gridLayout.addWidget(self.title1, 0, 0, 1, 1)
- self.title2 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title2.setObjectName("title2")
- self.gridLayout.addWidget(self.title2, 1, 0, 1, 1)
- self.title3 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title3.setObjectName("title3")
- self.gridLayout.addWidget(self.title3, 2, 0, 1, 1)
- self.title4 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title4.setObjectName("title4")
- self.gridLayout.addWidget(self.title4, 3, 0, 1, 1)
- self.title5 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title5.setObjectName("title5")
- self.gridLayout.addWidget(self.title5, 4, 0, 1, 1)
- self.title6 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title6.setObjectName("title6")
- self.gridLayout.addWidget(self.title6, 5, 0, 1, 1)
- self.title7 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title7.setObjectName("title7")
- self.gridLayout.addWidget(self.title7, 6, 0, 1, 1)
- self.title8 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title8.setObjectName("title8")
- self.gridLayout.addWidget(self.title8, 7, 0, 1, 1)
- self.title9 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title9.setObjectName("title9")
- self.gridLayout.addWidget(self.title9, 8, 0, 1, 1)
- self.title10 = QtWidgets.QLabel(self.gridLayoutWidget)
- self.title10.setObjectName("title10")
- self.gridLayout.addWidget(self.title10, 9, 0, 1, 1)
- self.sel1 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel1.setObjectName("sel1")
- self.gridLayout.addWidget(self.sel1, 0, 1, 1, 1)
- self.sel2 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel2.setObjectName("sel2")
- self.gridLayout.addWidget(self.sel2, 1, 1, 1, 1)
- self.sel3 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel3.setObjectName("sel3")
- self.gridLayout.addWidget(self.sel3, 2, 1, 1, 1)
- self.sel4 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel4.setObjectName("sel4")
- self.gridLayout.addWidget(self.sel4, 3, 1, 1, 1)
- self.sel5 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel5.setObjectName("sel5")
- self.gridLayout.addWidget(self.sel5, 4, 1, 1, 1)
- self.sel6 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel6.setObjectName("sel6")
- self.gridLayout.addWidget(self.sel6, 5, 1, 1, 1)
- self.sel7 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel7.setObjectName("sel7")
- self.gridLayout.addWidget(self.sel7, 6, 1, 1, 1)
- self.sel8 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel8.setObjectName("sel8")
- self.gridLayout.addWidget(self.sel8, 7, 1, 1, 1)
- self.sel9 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel9.setObjectName("sel9")
- self.gridLayout.addWidget(self.sel9, 8, 1, 1, 1)
- self.sel10 = QtWidgets.QPushButton(self.gridLayoutWidget)
- self.sel10.setObjectName("sel10")
- self.gridLayout.addWidget(self.sel10, 9, 1, 1, 1)
- self.gridLayout.setColumnStretch(0, 8)
- self.outputBox.raise_()
- self.inputBox.raise_()
- self.guide.raise_()
- self.inputBtn.raise_()
- self.info.raise_()
- self.searchBtn.raise_()
- self.gridLayoutWidget.raise_()
- self.retranslateUi(Dialog)
- QtCore.QMetaObject.connectSlotsByName(Dialog)
- self.title1.hide()
- self.title2.hide()
- self.title3.hide()
- self.title4.hide()
- self.title5.hide()
- self.title6.hide()
- self.title7.hide()
- self.title8.hide()
- self.title9.hide()
- self.title10.hide()
- self.sel1.hide()
- self.sel2.hide()
- self.sel3.hide()
- self.sel4.hide()
- self.sel5.hide()
- self.sel6.hide()
- self.sel7.hide()
- self.sel8.hide()
- self.sel9.hide()
- self.sel10.hide()
- self.outputBox.hide()
- self.inputBtn.pressed.connect(self._generate)
- self.searchBtn.pressed.connect(self._search)
- def retranslateUi(self, Dialog):
- _translate = QtCore.QCoreApplication.translate
- Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
- self.guide.setText(_translate("Dialog", "Enter IMDB Link or Code (Starting with tt):"))
- self.inputBtn.setText(_translate("Dialog", "Generate"))
- self.info.setText(_translate("Dialog", "<html><head/><body><div align=\"center\">========== IMDB Generator v1.0.1 ==========</div><div align=\"right\">by PatrickKR</div><div><br /> Originated from Jason</div><div> This is coded in Python 3.7 I added GUI and edited few tags.</div><div> All you have to do is paste the IMDB link/code or search</div><div> If you put the wrong code this program will crash... (I\'m currently working on this)<br/></div><div> As you click "Generate" Button, you can copy the BBCode from here.</div><div> This is my first GUI program so there would be some kinda errors, and I\'ll be updating</div><div>it regularly.</div><div> Thanks for using my program.</div></body></html>"))
- self.searchBtn.setText(_translate("Dialog", "Search"))
- self.title1.setText(_translate("Dialog", "TextLabel"))
- self.title2.setText(_translate("Dialog", "TextLabel"))
- self.title3.setText(_translate("Dialog", "TextLabel"))
- self.title4.setText(_translate("Dialog", "TextLabel"))
- self.title5.setText(_translate("Dialog", "TextLabel"))
- self.title6.setText(_translate("Dialog", "TextLabel"))
- self.title7.setText(_translate("Dialog", "TextLabel"))
- self.title8.setText(_translate("Dialog", "TextLabel"))
- self.title9.setText(_translate("Dialog", "TextLabel"))
- self.title10.setText(_translate("Dialog", "TextLabel"))
- self.sel1.setText(_translate("Dialog", "Select"))
- self.sel2.setText(_translate("Dialog", "Select"))
- self.sel3.setText(_translate("Dialog", "Select"))
- self.sel4.setText(_translate("Dialog", "Select"))
- self.sel5.setText(_translate("Dialog", "Select"))
- self.sel6.setText(_translate("Dialog", "Select"))
- self.sel7.setText(_translate("Dialog", "Select"))
- self.sel8.setText(_translate("Dialog", "Select"))
- self.sel9.setText(_translate("Dialog", "Select"))
- self.sel10.setText(_translate("Dialog", "Select"))
- def _generate(self):
- if self.inputBox.text() != '':
- if 'tt' in self.inputBox.text():
- if 'imdb.com' in self.inputBox.text():
- key = self.inputBox.text().split('title/')[1].split('/')[0]
- elif self.inputBox.text().startswith('tt'):
- key = self.inputBox.text()
- else:
- return
- out_template='''[b][size=130]{} ({} {})[/size][/b]
- [img]https://image.tmdb.org/t/p/original{}[/img]
- [color=#FF8000][b]Director[/b][/color]: {}
- [color=#FF8000][b]Stars[/b][/color]: {}
- [color=#FF8000][b]Runtime[/b][/color]: {} (taken from IMDb)
- [color=#FF8000][b]Genre[/b][/color]: {}
- [color=#FF8000][b]Country[/b][/color]: {}
- [color=#FF8000][b]Released[/b][/color]: {}
- [color=#FF8000][b]Rating[/b][/color]: {} (may differ)
- [color=#FF8000][b]Votes[/b][/color]: {} (may differ)
- [color=#FF8000][b]Release Date[/b][/color]: {} (taken from IMDb)
- [color=#FF8000][b]Viewer Rating (TV/MPAA)[/b][/color]: {} (taken from IMDb)
- [color=#FF8000][b]Summary[/b][/color]: [i]{}[/i]
- [color=#FF8000][b]Links[/b][/color]: [b][url=https://www.imdb.com/title/{}/]IMDb {}[/url][/b]
- [/hide]'''
- data = json.load(urllib.request.urlopen('http://www.omdbapi.com/?apikey=2ee068f3&i='+key))
- Dialog.resize(600, 800)
- self.info.hide()
- self.outputBox.show()
- self.outputBox.setPlainText(out_template.format(data['Title'],data['Type'].capitalize(),data['Year'],json.load(urllib.request.urlopen('https://api.themoviedb.org/3/movie/'+key+'/images?api_key=15d2ea6d0dc1d476efbca3eba2b9bbfb&language=en'))['posters'][0]['file_path'],data['Director'],data['Actors'],data['Runtime'],data['Genre'],data['Country'],data['Released'],data['imdbRating'],data['imdbVotes'],data['Released'],data['Rated'],data['Plot'],key,key))
- def _search(self):
- if self.inputBox.text() != '':
- srchRes = json.load(urllib.request.urlopen('http://www.omdbapi.com/?apikey=2ee068f3&s='+self.inputBox.text().replace(" ", "%20")))
- if srchRes['Response'] == 'True':
- self.info.hide()
- self.title1.show()
- self.title1.setText(srchRes['Search'][0]['Title'] + ' (' + srchRes['Search'][0]['Type'].capitalize() + ' ' + srchRes['Search'][0]['Year'] + ')')
- self.sel1.show()
- if int(srchRes['totalResults']) > 1:
- self.title2.show()
- self.title2.setText(srchRes['Search'][1]['Title'] + ' (' + srchRes['Search'][1]['Type'].capitalize() + ' ' + srchRes['Search'][1]['Year'] + ')')
- self.sel2.show()
- else:
- self.title2.hide()
- self.sel2.hide()
- self.title3.hide()
- self.sel3.hide()
- self.title4.hide()
- self.sel4.hide()
- self.title5.hide()
- self.sel5.hide()
- self.title6.hide()
- self.sel6.hide()
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 50))
- Dialog.resize(600, 150)
- return
- if int(srchRes['totalResults']) > 2:
- self.title3.show()
- self.title3.setText(srchRes['Search'][2]['Title'] + ' (' + srchRes['Search'][2]['Type'].capitalize() + ' ' + srchRes['Search'][2]['Year'] + ')')
- self.sel3.show()
- else:
- self.title3.hide()
- self.sel3.hide()
- self.title4.hide()
- self.sel4.hide()
- self.title5.hide()
- self.sel5.hide()
- self.title6.hide()
- self.sel6.hide()
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 100))
- Dialog.resize(600, 200)
- return
- if int(srchRes['totalResults']) > 3:
- self.title4.show()
- self.title4.setText(srchRes['Search'][3]['Title'] + ' (' + srchRes['Search'][3]['Type'].capitalize() + ' ' + srchRes['Search'][3]['Year'] + ')')
- self.sel4.show()
- else:
- self.title4.hide()
- self.sel4.hide()
- self.title5.hide()
- self.sel5.hide()
- self.title6.hide()
- self.sel6.hide()
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 150))
- Dialog.resize(600, 250)
- return
- if int(srchRes['totalResults']) > 4:
- self.title5.show()
- self.title5.setText(srchRes['Search'][4]['Title'] + ' (' + srchRes['Search'][4]['Type'].capitalize() + ' ' + srchRes['Search'][4]['Year'] + ')')
- self.sel5.show()
- else:
- self.title5.hide()
- self.sel5.hide()
- self.title6.hide()
- self.sel6.hide()
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 200))
- Dialog.resize(600, 300)
- return
- if int(srchRes['totalResults']) > 5:
- self.title6.show()
- self.title6.setText(srchRes['Search'][5]['Title'] + ' (' + srchRes['Search'][5]['Type'].capitalize() + ' ' + srchRes['Search'][5]['Year'] + ')')
- self.sel6.show()
- else:
- self.title6.hide()
- self.sel6.hide()
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 250))
- Dialog.resize(600, 350)
- return
- if int(srchRes['totalResults']) > 6:
- self.title7.show()
- self.title7.setText(srchRes['Search'][6]['Title'] + ' (' + srchRes['Search'][6]['Type'].capitalize() + ' ' + srchRes['Search'][6]['Year'] + ')')
- self.sel7.show()
- else:
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 300))
- Dialog.resize(600, 400)
- return
- if int(srchRes['totalResults']) > 7:
- self.title8.show()
- self.title8.setText(srchRes['Search'][7]['Title'] + ' (' + srchRes['Search'][7]['Type'].capitalize() + ' ' + srchRes['Search'][7]['Year'] + ')')
- self.sel8.show()
- else:
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 350))
- Dialog.resize(600, 450)
- return
- if int(srchRes['totalResults']) > 8:
- self.title9.show()
- self.title9.setText(srchRes['Search'][8]['Title'] + ' (' + srchRes['Search'][8]['Type'].capitalize() + ' ' + srchRes['Search'][8]['Year'] + ')')
- self.sel9.show()
- else:
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 400))
- Dialog.resize(600, 500)
- return
- if int(srchRes['totalResults']) > 9:
- self.title10.show()
- self.title10.setText(srchRes['Search'][9]['Title'] + ' (' + srchRes['Search'][9]['Type'].capitalize() + ' ' + srchRes['Search'][9]['Year'] + ')')
- self.sel10.show()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 500))
- Dialog.resize(600, 600)
- else:
- self.title10.hide()
- self.sel10.hide()
- self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 450))
- Dialog.resize(600, 550)
- return
- else:
- self.title1.hide()
- self.sel1.hide()
- self.title2.hide()
- self.sel2.hide()
- self.title3.hide()
- self.sel3.hide()
- self.title4.hide()
- self.sel4.hide()
- self.title5.hide()
- self.sel5.hide()
- self.title6.hide()
- self.sel6.hide()
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- Dialog.resize(600, 100)
- else:
- self.title1.hide()
- self.sel1.hide()
- self.title2.hide()
- self.sel2.hide()
- self.title3.hide()
- self.sel3.hide()
- self.title4.hide()
- self.sel4.hide()
- self.title5.hide()
- self.sel5.hide()
- self.title6.hide()
- self.sel6.hide()
- self.title7.hide()
- self.sel7.hide()
- self.title8.hide()
- self.sel8.hide()
- self.title9.hide()
- self.sel9.hide()
- self.title10.hide()
- self.sel10.hide()
- Dialog.resize(600, 100)
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- Dialog = QtWidgets.QDialog()
- ui = Ui_Dialog()
- ui.setupUi(Dialog)
- Dialog.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement