Advertisement
Guest User

My IMDB Generator

a guest
Aug 24th, 2019
1,680
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.39 KB | None | 0 0
  1. import sys
  2. import json
  3. import urllib.request
  4. from PyQt5 import QtCore, QtGui, QtWidgets
  5.  
  6.  
  7. class Ui_Dialog(object):
  8. def setupUi(self, Dialog):
  9. Dialog.setObjectName("Dialog")
  10. Dialog.resize(600, 330)
  11. self.inputBox = QtWidgets.QLineEdit(Dialog)
  12. self.inputBox.setGeometry(QtCore.QRect(20, 40, 320, 20))
  13. font = QtGui.QFont()
  14. font.setFamily("Calibri")
  15. font.setPointSize(12)
  16. self.inputBox.setFont(font)
  17. self.inputBox.setObjectName("inputBox")
  18. self.guide = QtWidgets.QLabel(Dialog)
  19. self.guide.setGeometry(QtCore.QRect(20, 20, 320, 20))
  20. font = QtGui.QFont()
  21. font.setFamily("Calibri")
  22. font.setPointSize(12)
  23. font.setKerning(True)
  24. self.guide.setFont(font)
  25. self.guide.setObjectName("guide")
  26. self.outputBox = QtWidgets.QPlainTextEdit(Dialog)
  27. self.outputBox.setEnabled(True)
  28. self.outputBox.setGeometry(QtCore.QRect(20, 80, 560, 700))
  29. sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
  30. sizePolicy.setHorizontalStretch(0)
  31. sizePolicy.setVerticalStretch(0)
  32. sizePolicy.setHeightForWidth(self.outputBox.sizePolicy().hasHeightForWidth())
  33. self.outputBox.setSizePolicy(sizePolicy)
  34. font = QtGui.QFont()
  35. font.setFamily("Calibri")
  36. font.setPointSize(12)
  37. self.outputBox.setFont(font)
  38. self.outputBox.setPlainText("")
  39. self.outputBox.setObjectName("outputBox")
  40. self.inputBtn = QtWidgets.QPushButton(Dialog)
  41. self.inputBtn.setGeometry(QtCore.QRect(360, 20, 100, 40))
  42. font = QtGui.QFont()
  43. font.setFamily("Calibri")
  44. font.setPointSize(15)
  45. font.setBold(True)
  46. font.setWeight(75)
  47. self.inputBtn.setFont(font)
  48. self.inputBtn.setObjectName("inputBtn")
  49. self.info = QtWidgets.QLabel(Dialog)
  50. self.info.setGeometry(QtCore.QRect(20, 80, 560, 230))
  51. font = QtGui.QFont()
  52. font.setFamily("Calibri")
  53. font.setPointSize(12)
  54. self.info.setFont(font)
  55. self.info.setObjectName("info")
  56. self.searchBtn = QtWidgets.QPushButton(Dialog)
  57. self.searchBtn.setGeometry(QtCore.QRect(480, 20, 100, 40))
  58. font = QtGui.QFont()
  59. font.setFamily("Calibri")
  60. font.setPointSize(15)
  61. font.setBold(True)
  62. font.setWeight(75)
  63. self.searchBtn.setFont(font)
  64. self.searchBtn.setObjectName("searchBtn")
  65. self.gridLayoutWidget = QtWidgets.QWidget(Dialog)
  66. self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 80, 560, 500))
  67. self.gridLayoutWidget.setObjectName("gridLayoutWidget")
  68. self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
  69. self.gridLayout.setContentsMargins(0, 0, 0, 0)
  70. self.gridLayout.setObjectName("gridLayout")
  71. self.title1 = QtWidgets.QLabel(self.gridLayoutWidget)
  72. self.title1.setObjectName("title1")
  73. self.gridLayout.addWidget(self.title1, 0, 0, 1, 1)
  74. self.title2 = QtWidgets.QLabel(self.gridLayoutWidget)
  75. self.title2.setObjectName("title2")
  76. self.gridLayout.addWidget(self.title2, 1, 0, 1, 1)
  77. self.title3 = QtWidgets.QLabel(self.gridLayoutWidget)
  78. self.title3.setObjectName("title3")
  79. self.gridLayout.addWidget(self.title3, 2, 0, 1, 1)
  80. self.title4 = QtWidgets.QLabel(self.gridLayoutWidget)
  81. self.title4.setObjectName("title4")
  82. self.gridLayout.addWidget(self.title4, 3, 0, 1, 1)
  83. self.title5 = QtWidgets.QLabel(self.gridLayoutWidget)
  84. self.title5.setObjectName("title5")
  85. self.gridLayout.addWidget(self.title5, 4, 0, 1, 1)
  86. self.title6 = QtWidgets.QLabel(self.gridLayoutWidget)
  87. self.title6.setObjectName("title6")
  88. self.gridLayout.addWidget(self.title6, 5, 0, 1, 1)
  89. self.title7 = QtWidgets.QLabel(self.gridLayoutWidget)
  90. self.title7.setObjectName("title7")
  91. self.gridLayout.addWidget(self.title7, 6, 0, 1, 1)
  92. self.title8 = QtWidgets.QLabel(self.gridLayoutWidget)
  93. self.title8.setObjectName("title8")
  94. self.gridLayout.addWidget(self.title8, 7, 0, 1, 1)
  95. self.title9 = QtWidgets.QLabel(self.gridLayoutWidget)
  96. self.title9.setObjectName("title9")
  97. self.gridLayout.addWidget(self.title9, 8, 0, 1, 1)
  98. self.title10 = QtWidgets.QLabel(self.gridLayoutWidget)
  99. self.title10.setObjectName("title10")
  100. self.gridLayout.addWidget(self.title10, 9, 0, 1, 1)
  101. self.sel1 = QtWidgets.QPushButton(self.gridLayoutWidget)
  102. self.sel1.setObjectName("sel1")
  103. self.gridLayout.addWidget(self.sel1, 0, 1, 1, 1)
  104. self.sel2 = QtWidgets.QPushButton(self.gridLayoutWidget)
  105. self.sel2.setObjectName("sel2")
  106. self.gridLayout.addWidget(self.sel2, 1, 1, 1, 1)
  107. self.sel3 = QtWidgets.QPushButton(self.gridLayoutWidget)
  108. self.sel3.setObjectName("sel3")
  109. self.gridLayout.addWidget(self.sel3, 2, 1, 1, 1)
  110. self.sel4 = QtWidgets.QPushButton(self.gridLayoutWidget)
  111. self.sel4.setObjectName("sel4")
  112. self.gridLayout.addWidget(self.sel4, 3, 1, 1, 1)
  113. self.sel5 = QtWidgets.QPushButton(self.gridLayoutWidget)
  114. self.sel5.setObjectName("sel5")
  115. self.gridLayout.addWidget(self.sel5, 4, 1, 1, 1)
  116. self.sel6 = QtWidgets.QPushButton(self.gridLayoutWidget)
  117. self.sel6.setObjectName("sel6")
  118. self.gridLayout.addWidget(self.sel6, 5, 1, 1, 1)
  119. self.sel7 = QtWidgets.QPushButton(self.gridLayoutWidget)
  120. self.sel7.setObjectName("sel7")
  121. self.gridLayout.addWidget(self.sel7, 6, 1, 1, 1)
  122. self.sel8 = QtWidgets.QPushButton(self.gridLayoutWidget)
  123. self.sel8.setObjectName("sel8")
  124. self.gridLayout.addWidget(self.sel8, 7, 1, 1, 1)
  125. self.sel9 = QtWidgets.QPushButton(self.gridLayoutWidget)
  126. self.sel9.setObjectName("sel9")
  127. self.gridLayout.addWidget(self.sel9, 8, 1, 1, 1)
  128. self.sel10 = QtWidgets.QPushButton(self.gridLayoutWidget)
  129. self.sel10.setObjectName("sel10")
  130. self.gridLayout.addWidget(self.sel10, 9, 1, 1, 1)
  131. self.gridLayout.setColumnStretch(0, 8)
  132. self.outputBox.raise_()
  133. self.inputBox.raise_()
  134. self.guide.raise_()
  135. self.inputBtn.raise_()
  136. self.info.raise_()
  137. self.searchBtn.raise_()
  138. self.gridLayoutWidget.raise_()
  139.  
  140. self.retranslateUi(Dialog)
  141. QtCore.QMetaObject.connectSlotsByName(Dialog)
  142. self.title1.hide()
  143. self.title2.hide()
  144. self.title3.hide()
  145. self.title4.hide()
  146. self.title5.hide()
  147. self.title6.hide()
  148. self.title7.hide()
  149. self.title8.hide()
  150. self.title9.hide()
  151. self.title10.hide()
  152. self.sel1.hide()
  153. self.sel2.hide()
  154. self.sel3.hide()
  155. self.sel4.hide()
  156. self.sel5.hide()
  157. self.sel6.hide()
  158. self.sel7.hide()
  159. self.sel8.hide()
  160. self.sel9.hide()
  161. self.sel10.hide()
  162. self.outputBox.hide()
  163. self.inputBtn.pressed.connect(self._generate)
  164. self.searchBtn.pressed.connect(self._search)
  165.  
  166. def retranslateUi(self, Dialog):
  167. _translate = QtCore.QCoreApplication.translate
  168. Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
  169. self.guide.setText(_translate("Dialog", "Enter IMDB Link or Code (Starting with tt):"))
  170. self.inputBtn.setText(_translate("Dialog", "Generate"))
  171. 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 />&nbsp;Originated from Jason</div><div>&nbsp;This is coded in Python 3.7 I added GUI and edited few tags.</div><div>&nbsp;All you have to do is paste the IMDB link/code or search</div><div>&nbsp;If you put the wrong code this program will crash... (I\'m currently working on this)<br/></div><div>&nbsp;As you click &quot;Generate&quot; Button, you can copy the BBCode from here.</div><div>&nbsp;This is my first GUI program so there would be some kinda errors, and I\'ll be updating</div><div>it regularly.</div><div>&nbsp;Thanks for using my program.</div></body></html>"))
  172. self.searchBtn.setText(_translate("Dialog", "Search"))
  173. self.title1.setText(_translate("Dialog", "TextLabel"))
  174. self.title2.setText(_translate("Dialog", "TextLabel"))
  175. self.title3.setText(_translate("Dialog", "TextLabel"))
  176. self.title4.setText(_translate("Dialog", "TextLabel"))
  177. self.title5.setText(_translate("Dialog", "TextLabel"))
  178. self.title6.setText(_translate("Dialog", "TextLabel"))
  179. self.title7.setText(_translate("Dialog", "TextLabel"))
  180. self.title8.setText(_translate("Dialog", "TextLabel"))
  181. self.title9.setText(_translate("Dialog", "TextLabel"))
  182. self.title10.setText(_translate("Dialog", "TextLabel"))
  183. self.sel1.setText(_translate("Dialog", "Select"))
  184. self.sel2.setText(_translate("Dialog", "Select"))
  185. self.sel3.setText(_translate("Dialog", "Select"))
  186. self.sel4.setText(_translate("Dialog", "Select"))
  187. self.sel5.setText(_translate("Dialog", "Select"))
  188. self.sel6.setText(_translate("Dialog", "Select"))
  189. self.sel7.setText(_translate("Dialog", "Select"))
  190. self.sel8.setText(_translate("Dialog", "Select"))
  191. self.sel9.setText(_translate("Dialog", "Select"))
  192. self.sel10.setText(_translate("Dialog", "Select"))
  193.  
  194. def _generate(self):
  195. if self.inputBox.text() != '':
  196. if 'tt' in self.inputBox.text():
  197. if 'imdb.com' in self.inputBox.text():
  198. key = self.inputBox.text().split('title/')[1].split('/')[0]
  199.  
  200. elif self.inputBox.text().startswith('tt'):
  201. key = self.inputBox.text()
  202.  
  203. else:
  204. return
  205.  
  206. out_template='''[b][size=130]{} ({} {})[/size][/b]
  207.  
  208. [img]https://image.tmdb.org/t/p/original{}[/img]
  209.  
  210. [color=#FF8000][b]Director[/b][/color]: {}
  211. [color=#FF8000][b]Stars[/b][/color]: {}
  212.  
  213. [color=#FF8000][b]Runtime[/b][/color]: {} (taken from IMDb)
  214. [color=#FF8000][b]Genre[/b][/color]: {}
  215.  
  216. [color=#FF8000][b]Country[/b][/color]: {}
  217. [color=#FF8000][b]Released[/b][/color]: {}
  218.  
  219. [color=#FF8000][b]Rating[/b][/color]: {} (may differ)
  220. [color=#FF8000][b]Votes[/b][/color]: {} (may differ)
  221.  
  222. [color=#FF8000][b]Release Date[/b][/color]: {} (taken from IMDb)
  223. [color=#FF8000][b]Viewer Rating (TV/MPAA)[/b][/color]: {} (taken from IMDb)
  224.  
  225. [color=#FF8000][b]Summary[/b][/color]: [i]{}[/i]
  226.  
  227. [color=#FF8000][b]Links[/b][/color]: [b][url=https://www.imdb.com/title/{}/]IMDb {}[/url][/b]
  228. [/hide]'''
  229. data = json.load(urllib.request.urlopen('http://www.omdbapi.com/?apikey=2ee068f3&i='+key))
  230. Dialog.resize(600, 800)
  231. self.info.hide()
  232. self.outputBox.show()
  233. 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))
  234.  
  235. def _search(self):
  236. if self.inputBox.text() != '':
  237. srchRes = json.load(urllib.request.urlopen('http://www.omdbapi.com/?apikey=2ee068f3&s='+self.inputBox.text().replace(" ", "%20")))
  238. if srchRes['Response'] == 'True':
  239. self.info.hide()
  240. self.title1.show()
  241. self.title1.setText(srchRes['Search'][0]['Title'] + ' (' + srchRes['Search'][0]['Type'].capitalize() + ' ' + srchRes['Search'][0]['Year'] + ')')
  242. self.sel1.show()
  243. if int(srchRes['totalResults']) > 1:
  244. self.title2.show()
  245. self.title2.setText(srchRes['Search'][1]['Title'] + ' (' + srchRes['Search'][1]['Type'].capitalize() + ' ' + srchRes['Search'][1]['Year'] + ')')
  246. self.sel2.show()
  247. else:
  248. self.title2.hide()
  249. self.sel2.hide()
  250. self.title3.hide()
  251. self.sel3.hide()
  252. self.title4.hide()
  253. self.sel4.hide()
  254. self.title5.hide()
  255. self.sel5.hide()
  256. self.title6.hide()
  257. self.sel6.hide()
  258. self.title7.hide()
  259. self.sel7.hide()
  260. self.title8.hide()
  261. self.sel8.hide()
  262. self.title9.hide()
  263. self.sel9.hide()
  264. self.title10.hide()
  265. self.sel10.hide()
  266. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 50))
  267. Dialog.resize(600, 150)
  268. return
  269. if int(srchRes['totalResults']) > 2:
  270. self.title3.show()
  271. self.title3.setText(srchRes['Search'][2]['Title'] + ' (' + srchRes['Search'][2]['Type'].capitalize() + ' ' + srchRes['Search'][2]['Year'] + ')')
  272. self.sel3.show()
  273. else:
  274. self.title3.hide()
  275. self.sel3.hide()
  276. self.title4.hide()
  277. self.sel4.hide()
  278. self.title5.hide()
  279. self.sel5.hide()
  280. self.title6.hide()
  281. self.sel6.hide()
  282. self.title7.hide()
  283. self.sel7.hide()
  284. self.title8.hide()
  285. self.sel8.hide()
  286. self.title9.hide()
  287. self.sel9.hide()
  288. self.title10.hide()
  289. self.sel10.hide()
  290. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 100))
  291. Dialog.resize(600, 200)
  292. return
  293. if int(srchRes['totalResults']) > 3:
  294. self.title4.show()
  295. self.title4.setText(srchRes['Search'][3]['Title'] + ' (' + srchRes['Search'][3]['Type'].capitalize() + ' ' + srchRes['Search'][3]['Year'] + ')')
  296. self.sel4.show()
  297. else:
  298. self.title4.hide()
  299. self.sel4.hide()
  300. self.title5.hide()
  301. self.sel5.hide()
  302. self.title6.hide()
  303. self.sel6.hide()
  304. self.title7.hide()
  305. self.sel7.hide()
  306. self.title8.hide()
  307. self.sel8.hide()
  308. self.title9.hide()
  309. self.sel9.hide()
  310. self.title10.hide()
  311. self.sel10.hide()
  312. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 150))
  313. Dialog.resize(600, 250)
  314. return
  315. if int(srchRes['totalResults']) > 4:
  316. self.title5.show()
  317. self.title5.setText(srchRes['Search'][4]['Title'] + ' (' + srchRes['Search'][4]['Type'].capitalize() + ' ' + srchRes['Search'][4]['Year'] + ')')
  318. self.sel5.show()
  319. else:
  320. self.title5.hide()
  321. self.sel5.hide()
  322. self.title6.hide()
  323. self.sel6.hide()
  324. self.title7.hide()
  325. self.sel7.hide()
  326. self.title8.hide()
  327. self.sel8.hide()
  328. self.title9.hide()
  329. self.sel9.hide()
  330. self.title10.hide()
  331. self.sel10.hide()
  332. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 200))
  333. Dialog.resize(600, 300)
  334. return
  335. if int(srchRes['totalResults']) > 5:
  336. self.title6.show()
  337. self.title6.setText(srchRes['Search'][5]['Title'] + ' (' + srchRes['Search'][5]['Type'].capitalize() + ' ' + srchRes['Search'][5]['Year'] + ')')
  338. self.sel6.show()
  339. else:
  340. self.title6.hide()
  341. self.sel6.hide()
  342. self.title7.hide()
  343. self.sel7.hide()
  344. self.title8.hide()
  345. self.sel8.hide()
  346. self.title9.hide()
  347. self.sel9.hide()
  348. self.title10.hide()
  349. self.sel10.hide()
  350. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 250))
  351. Dialog.resize(600, 350)
  352. return
  353. if int(srchRes['totalResults']) > 6:
  354. self.title7.show()
  355. self.title7.setText(srchRes['Search'][6]['Title'] + ' (' + srchRes['Search'][6]['Type'].capitalize() + ' ' + srchRes['Search'][6]['Year'] + ')')
  356. self.sel7.show()
  357. else:
  358. self.title7.hide()
  359. self.sel7.hide()
  360. self.title8.hide()
  361. self.sel8.hide()
  362. self.title9.hide()
  363. self.sel9.hide()
  364. self.title10.hide()
  365. self.sel10.hide()
  366. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 300))
  367. Dialog.resize(600, 400)
  368. return
  369. if int(srchRes['totalResults']) > 7:
  370. self.title8.show()
  371. self.title8.setText(srchRes['Search'][7]['Title'] + ' (' + srchRes['Search'][7]['Type'].capitalize() + ' ' + srchRes['Search'][7]['Year'] + ')')
  372. self.sel8.show()
  373. else:
  374. self.title8.hide()
  375. self.sel8.hide()
  376. self.title9.hide()
  377. self.sel9.hide()
  378. self.title10.hide()
  379. self.sel10.hide()
  380. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 350))
  381. Dialog.resize(600, 450)
  382. return
  383. if int(srchRes['totalResults']) > 8:
  384. self.title9.show()
  385. self.title9.setText(srchRes['Search'][8]['Title'] + ' (' + srchRes['Search'][8]['Type'].capitalize() + ' ' + srchRes['Search'][8]['Year'] + ')')
  386. self.sel9.show()
  387. else:
  388. self.title9.hide()
  389. self.sel9.hide()
  390. self.title10.hide()
  391. self.sel10.hide()
  392. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 400))
  393. Dialog.resize(600, 500)
  394. return
  395. if int(srchRes['totalResults']) > 9:
  396. self.title10.show()
  397. self.title10.setText(srchRes['Search'][9]['Title'] + ' (' + srchRes['Search'][9]['Type'].capitalize() + ' ' + srchRes['Search'][9]['Year'] + ')')
  398. self.sel10.show()
  399. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 500))
  400. Dialog.resize(600, 600)
  401. else:
  402. self.title10.hide()
  403. self.sel10.hide()
  404. self.gridLayout.setGeometry(QtCore.QRect(20, 80, 560, 450))
  405. Dialog.resize(600, 550)
  406. return
  407. else:
  408. self.title1.hide()
  409. self.sel1.hide()
  410. self.title2.hide()
  411. self.sel2.hide()
  412. self.title3.hide()
  413. self.sel3.hide()
  414. self.title4.hide()
  415. self.sel4.hide()
  416. self.title5.hide()
  417. self.sel5.hide()
  418. self.title6.hide()
  419. self.sel6.hide()
  420. self.title7.hide()
  421. self.sel7.hide()
  422. self.title8.hide()
  423. self.sel8.hide()
  424. self.title9.hide()
  425. self.sel9.hide()
  426. self.title10.hide()
  427. self.sel10.hide()
  428. Dialog.resize(600, 100)
  429. else:
  430. self.title1.hide()
  431. self.sel1.hide()
  432. self.title2.hide()
  433. self.sel2.hide()
  434. self.title3.hide()
  435. self.sel3.hide()
  436. self.title4.hide()
  437. self.sel4.hide()
  438. self.title5.hide()
  439. self.sel5.hide()
  440. self.title6.hide()
  441. self.sel6.hide()
  442. self.title7.hide()
  443. self.sel7.hide()
  444. self.title8.hide()
  445. self.sel8.hide()
  446. self.title9.hide()
  447. self.sel9.hide()
  448. self.title10.hide()
  449. self.sel10.hide()
  450. Dialog.resize(600, 100)
  451.  
  452.  
  453. if __name__ == "__main__":
  454. import sys
  455. app = QtWidgets.QApplication(sys.argv)
  456. Dialog = QtWidgets.QDialog()
  457. ui = Ui_Dialog()
  458. ui.setupUi(Dialog)
  459. Dialog.show()
  460. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement