def run(self): L.d("running") self.stopvar = False rex = re.compile(".*\[(\d{7})\]$") imdb_db = imdb.IMDb() db = get_user_db() tp = QThreadPool.globalInstance() writer = IndexWriter() count = 0 it = QDirIterator(self.media_path, QDirIterator.Subdirectories) while it.hasNext(): dir = it.next() try: directory = unicode(dir) match = rex.match(directory) if match: count += 1 imdb_id = match.group(1) movie = db.get_doc(imdb_id) if movie: L.d("%s already in db - skipping" % imdb_id) else: j = Job(imdb_db, imdb_id, self) j.obj.finished.connect(writer.index_movie, Qt.QueuedConnection) tp.start(j) except: pass print count self.exec_()
def load_icons(self): for format in QImageReader.supportedImageFormats(): self.supported_image_formats.add('.' + str(format)) it = QDirIterator(":", QDirIterator.Subdirectories) while it.hasNext(): path = it.next() fn, ext = os.path.splitext(path) if ext in self.supported_image_formats: image = QImage(path) self.icons.append(image) self.paths.append(path)
def open_folder(self): self.imagesList.clear() if not self.current_directory: self.current_directory = QFileDialog.getExistingDirectory( parent=self, caption=u'Add images from directory') folder = QDir(self.current_directory) folder.setNameFilters(['*.png']) folder.setFilter(QDir.Files or QDir.NoDotAndDotDot) dir_iterator = QDirIterator(folder, flags=QDirIterator.Subdirectories, filters=QDir.Files) images = [] while dir_iterator.hasNext(): images.append(folder.relativeFilePath(dir_iterator.next())) self.white_albatross.addImages(folder, images) self.imagesList.addItems(images)