# Form implementation generated from reading ui file 'results.ui' # # Created by: PyQt6 UI code generator 6.3.1 # # WARNING: Any manual changes made to this file will be lost when pyuic6 is # run again. Do not edit this file unless you know what you are doing. from PyQt6 import QtCore, QtGui, QtWidgets from PyQt6.QtWidgets import QTableWidgetItem, QLabel from PyQt6.QtGui import QPixmap, QFont from os.path import exists from imdb import Cinemagoer import requests import shutil class Ui_MainWindow(object): # Variables movie_results = [] def setupUi(self, MyResultWindow): MyResultWindow.setObjectName("MainWindow") MyResultWindow.resize(800, 616) self.centralwidget = QtWidgets.QWidget(MyResultWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton_select = QtWidgets.QPushButton(self.centralwidget) self.pushButton_select.setGeometry(QtCore.QRect(490, 530, 75, 23)) self.pushButton_select.setObjectName("pushButton_select") self.photo = QtWidgets.QLabel(self.centralwidget) self.photo.setGeometry(QtCore.QRect(520, 100, 256, 192)) self.photo.setText("") self.photo.setScaledContents(True) self.photo.setObjectName("photo") self.tableView_movies = QtWidgets.QTableWidget(self.centralwidget) self.tableView_movies.setGeometry(QtCore.QRect(10, 10, 331, 581)) self.tableView_movies.setObjectName("tableView_movies") self.label_imdbnr = QtWidgets.QLabel(self.centralwidget) self.label_imdbnr.setGeometry(QtCore.QRect(710, 20, 71, 16)) self.label_imdbnr.setObjectName("label_imdbnr") self.label_rate = QtWidgets.QLabel(self.centralwidget) self.label_rate.setGeometry(QtCore.QRect(360, 120, 71, 16)) self.label_rate.setObjectName("label_rate") self.label_genre = QtWidgets.QLabel(self.centralwidget) self.label_genre.setGeometry(QtCore.QRect(360, 70, 47, 13)) self.label_genre.setObjectName("label_genre") self.label_votese = QtWidgets.QLabel(self.centralwidget) self.label_votese.setGeometry(QtCore.QRect(360, 170, 71, 16)) self.label_votese.setObjectName("label_votes") self.lineEdit_votes = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_votes.setGeometry(QtCore.QRect(380, 190, 113, 20)) self.lineEdit_votes.setObjectName("lineEdit_votes") self.lineEdit_rate = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_rate.setGeometry(QtCore.QRect(380, 140, 113, 20)) self.lineEdit_rate.setReadOnly(True) self.lineEdit_rate.setObjectName("lineEdit_rate") self.lineEdit_imdbnr = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_imdbnr.setGeometry(QtCore.QRect(710, 40, 61, 20)) self.lineEdit_imdbnr.setReadOnly(True) self.lineEdit_imdbnr.setObjectName("lineEdit_imdbnr") self.lineEdit_genre = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_genre.setGeometry(QtCore.QRect(380, 90, 113, 20)) self.lineEdit_genre.setObjectName("lineEdit_genre") self.label_produzenten = QtWidgets.QLabel(self.centralwidget) self.label_produzenten.setGeometry(QtCore.QRect(360, 220, 71, 16)) self.label_produzenten.setObjectName("label_produzenten") self.label_titel = QtWidgets.QLabel(self.centralwidget) self.label_titel.setGeometry(QtCore.QRect(360, 20, 47, 13)) self.label_titel.setObjectName("label_titel") self.label_year = QtWidgets.QLabel(self.centralwidget) self.label_year.setGeometry(QtCore.QRect(530, 20, 47, 13)) self.label_year.setObjectName("label_year") self.label_cover = QtWidgets.QLabel(self.centralwidget) self.label_cover.setGeometry(QtCore.QRect(620, 70, 71, 16)) self.label_cover.setObjectName("label_cover") self.lineEdit_titel = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_titel.setGeometry(QtCore.QRect(380, 40, 113, 20)) self.lineEdit_titel.setObjectName("lineEdit_titel") self.lineEdit_countrie = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_countrie.setGeometry(QtCore.QRect(380, 240, 113, 20)) self.lineEdit_countrie.setObjectName("lineEdit_countrie") self.lineEdit_year = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_year.setGeometry(QtCore.QRect(520, 40, 61, 20)) self.lineEdit_year.setText("") self.lineEdit_year.setObjectName("lineEdit_year") self.lineEdit_research = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_research.setGeometry(QtCore.QRect(400, 490, 161, 20)) self.lineEdit_research.setObjectName("lineEdit_research") self.pushButton_research = QtWidgets.QPushButton(self.centralwidget) self.pushButton_research.setGeometry(QtCore.QRect(570, 490, 75, 23)) self.pushButton_research.setObjectName("pushButton_research") self.label_research = QtWidgets.QLabel(self.centralwidget) self.label_research.setGeometry(QtCore.QRect(400, 470, 100, 16)) self.label_research.setObjectName("label_research") ''' self.listView_description = QtWidgets.QListView(self.centralwidget) self.listView_description.setGeometry(QtCore.QRect(370, 320, 401, 141)) self.listView_description.setObjectName("listView_description") ''' self.listView_description = QtWidgets.QTextEdit(self.centralwidget) self.listView_description.setGeometry(QtCore.QRect(370, 320, 401, 141)) self.listView_description.setObjectName("listView_description") self.label_Description = QtWidgets.QLabel(self.centralwidget) self.label_Description.setGeometry(QtCore.QRect(380, 300, 71, 16)) self.label_Description.setObjectName("label_Description") MyResultWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MyResultWindow) QtCore.QMetaObject.connectSlotsByName(MyResultWindow) self.tableView_movies.cellClicked.connect(self.selectMovie) # self.tableView_movies.doubleClicked.connect(self.selectMovie) self.pushButton_research.clicked.connect(self.research) def research(self): if self.lineEdit_research.text() != "": self.lineEdit_titel.setText(self.lineEdit_research.text()) self.lineEdit_research.setText("") self.searchMovies() ## Searching Movies /First try def searchMovies(self, showMovie = 0, showList = True): """ if self.lineEdit_research.text() != "": print("kein research") movieTitle = self.lineEdit_titel.text() else: print("titel") movieTitle = self.lineEdit_titel.text() """ print(f":{self.lineEdit_titel.text()}") imdb = Cinemagoer() if showList: # New List self.movie_results = imdb.search_movie(self.lineEdit_titel.text()) if len(self.movie_results) > 0: # if Movie exist movie = imdb.get_movie(str(self.movie_results[showMovie].getID())) ## Set Metadata self.lineEdit_genre.setText(movie['genres'][0]) self.lineEdit_imdbnr.setText(str(self.movie_results[showMovie].getID())) self.lineEdit_year.setText(str(movie['year'])) self.lineEdit_rate.setText(str(movie['rating'])) self.lineEdit_votes.setText(str(movie['votes'])) self.lineEdit_countrie.setText(movie['countries'][0]) ''' ## Set Description model = QtGui.QStandardItemModel() for film in movie['plot']: item = QtGui.QStandardItem(film) model.appendRow(item) ''' desc = "" for filmDesc in movie['plot']: desc += filmDesc #self.listView_description.setText(str(movie['plot'])) self.listView_description.setText(desc) ## Fill Table if showList: self.tableView_movies.setRowCount(len(self.movie_results)) self.tableView_movies.setColumnCount(3) self.tableView_movies.setHorizontalHeaderLabels( ['ID', 'Year', 'Title'] ) for index in range(len(self.movie_results)): self.tableView_movies.setItem(index,0, QTableWidgetItem(self.movie_results[index].getID())) self.tableView_movies.setItem(index,1, QTableWidgetItem(str(self.movie_results[index]['year']))) self.tableView_movies.setItem(index,2, QTableWidgetItem(self.movie_results[index]['title'])) ## Set Pictures if exists(f"cover/{self.movie_results[showMovie].getID()}.jpg"): self.photo.setPixmap(QPixmap(f"cover/{self.movie_results[showMovie].getID()}.jpg")) else: image_url = movie['cover url'] filename = f"cover/{self.movie_results[showMovie].getID()}." + image_url.split(".")[-1] req = requests.get(image_url, stream=True) req.raw.decode_content = True # Open a local file with wb ( write binary ) permission. with open(filename, 'wb') as picture: shutil.copyfileobj(req.raw, picture) if exists(f"cover/{self.movie_results[showMovie].getID()}.jpg"): self.photo.setPixmap(QPixmap(f"cover/{self.movie_results[showMovie].getID()}.jpg")) else: self.label_titel.hide() self.label_research.setText("Movie not exist") self.label_research.setFont(QFont('Arial', 14)) self.label_research.setGeometry(QtCore.QRect(350, 490, 200, 50)) self.label_research.setStyleSheet("font-weight: bold; color: red; pixelSize: 34") self.lineEdit_year.hide() self.lineEdit_votes.hide() self.lineEdit_countrie.hide() self.lineEdit_imdbnr.hide() self.lineEdit_research.hide() self.lineEdit_rate.hide() self.lineEdit_genre.hide() self.photo.hide() self.tableView_movies.hide() self.pushButton_research.hide() self.label_cover.hide() self.label_votese.hide() self.label_year.hide() self.label_rate.hide() self.label_genre.hide() self.label_Description.hide() self.label_imdbnr.hide() self.label_produzenten.hide() self.lineEdit_titel.hide() self.listView_description.hide() self.pushButton_select.hide() def selectMovie(self, row, column): self.lineEdit_titel.setText(str(self.movie_results[row])) self.searchMovies(row, False) def retranslateUi(self, MyResultWindow): _translate = QtCore.QCoreApplication.translate MyResultWindow.setWindowTitle(_translate("MainWindow", "Movie Result")) self.pushButton_select.setText(_translate("MainWindow", "Select")) self.label_imdbnr.setText(_translate("MainWindow", "IMDB Number")) self.label_rate.setText(_translate("MainWindow", "IMDB Rate")) self.label_genre.setText(_translate("MainWindow", "Genre")) self.label_votese.setText(_translate("MainWindow", "votes")) self.lineEdit_votes.setToolTip(_translate("MainWindow", "votes")) self.lineEdit_rate.setToolTip(_translate("MainWindow", "IMDB Rate")) self.lineEdit_imdbnr.setToolTip(_translate("MainWindow", "Not Enabling")) self.lineEdit_genre.setToolTip(_translate("MainWindow", "Genre")) self.label_produzenten.setText(_translate("MainWindow", "countrie")) self.label_titel.setText(_translate("MainWindow", "Titel")) self.label_year.setText(_translate("MainWindow", "Year")) self.label_cover.setText(_translate("MainWindow", "Cover")) self.lineEdit_titel.setToolTip(_translate("MainWindow", "Titelname")) self.lineEdit_countrie.setToolTip(_translate("MainWindow", "countrie")) self.lineEdit_year.setToolTip(_translate("MainWindow", "Year")) self.lineEdit_research.setToolTip(_translate("MainWindow", "Keyword for researching")) self.lineEdit_research.setPlaceholderText(_translate("MainWindow", "Keyword for researching")) self.pushButton_research.setText(_translate("MainWindow", "Research")) self.label_research.setText(_translate("MainWindow", "Research")) self.label_Description.setText(_translate("MainWindow", "Description"))