def makeRecommendationInfo(self): self.recommendations = self.__generateRecommendation() pictures = (self.RecommendationPicture1, self.RecommendationPicture2, self.RecommendationPicture3) titles = (self.RecommendationTitle1, self.RecommendationTitle2, self.RecommendationTitle3) posterFetcher = FilmInterface(False) for i in range(3): posterFetcher.selectFilm(self.recommendations[i]) result = posterFetcher.fetchResult() if len(result) == 0: raise RuntimeError( 'the recommendation algorithm has suggested a ghost film') name = getColumn(result[0], FILM_TABLE.chineseName) url = getColumn(result[0], FILM_TABLE.picture) titles[i].setText(name) pictures[i].clear() if url is not None: try: res = getURL(url, timeout=20) if res.status_code != 200: raise RequestException() image = QImage.fromData(res.content) pictures[i].setPixmap(QPixmap.fromImage(image)) except RequestException: pictures[i].setText('海报加载失败') else: pictures[i].setText('暂无海报')
def __showInformationImage(self, url=None): self.Picture.clear() if url is not None: try: res = getURL(url, timeout=20) if res.status_code != 200: raise RequestException() image = QImage.fromData(res.content) self.Picture.setPixmap(QPixmap.fromImage(image)) except RequestException: self.Picture.setText('海报加载失败') else: self.Picture.setText('暂无海报')
def __init__(self, filmID, parent=None, flags=Qt.WindowFlags()): super().__init__(parent=parent, flags=flags) self.setupUi(self) directorFetcher = FilmInterface(False) directorFetcher.selectFilmDirectingInfo(filmID) result = directorFetcher.fetchResult() self.tableWidget.setRowCount(len(result)) self.alts = {} for index, row in enumerate(result): avatar = getColumn(row, DIRECTOR_TABLE.avatar) name = getColumn(row, DIRECTOR_TABLE.name) role = getColumn(row, DIRECTING_TABLE.role) alt = getColumn(row, DIRECTOR_TABLE.alt) if avatar is not None: try: avatarResponse = getURL(avatar, timeout=20) if avatarResponse.status_code != 200: raise RequestException() avatarImage = QImage.fromData(avatarResponse.content) avatarItem = QTableWidgetItem( QIcon(QPixmap.fromImage(avatarImage)), '') except RequestException: avatarItem = QTableWidgetItem('海报加载失败') else: avatarItem = QTableWidgetItem('暂无海报') self.tableWidget.setItem(index, 0, avatarItem) self.tableWidget.setItem( index, 1, QTableWidgetItem('--' if name is None else name)) self.tableWidget.setItem( index, 2, QTableWidgetItem('--' if role is None else role)) if alt is None: self.tableWidget.setItem(index, 3, QTableWidgetItem('--')) else: self.tableWidget.setItem(index, 3, QTableWidgetItem(alt)) self.alts[index] = alt self.tableWidget.setIconSize(QSize(90, 127)) self.tableWidget.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.tableWidget.verticalHeader().setSectionResizeMode( QHeaderView.ResizeToContents)
def getSymbol(sym,yStart,yEnd): """ Retrieve financial symbol (SYM) over period of time (YSTART-YEND). Yahoo Finance stores values as Date[0], Open[1], High[2], Low[3], Close[4], Volume[5], Adj Close[6]. """ # Ensure input is sensible assert yStart==int(yStart) and yEnd==int(yEnd), "yStart, yEnd should be integers" assert 1990 < yStart < yEnd < 2016, "yStart, yEnd should be an interval of 1990-2016" # try: # Links for Yahoo Finance base = "http://ichart.finance.yahoo.com/table.csv?d=6&e=1&f=" link = base + str(yEnd) + "&g=d&a=7&b=19&c=" link += str(yStart) + "&ignore=.csv&s=" + sym.upper() # read content of link (raw text) t = getURL(link) # file name to save content nfile = nFile(sym,yStart,yEnd) # write to file with open(nfile,'w') as f: f.write(t.text) except: raise Exception("..invalid link.. did you enter a valid symbol?")