def getEntries(self): """ Получаем содержимое фида с Хабра """ if not self.login(): return self._feed = self._reader.getFeed(self._feedName) self._feed.clearItems() self._feed.loadItems(excludeRead=True) cnt = 0 while len(self._feed.getItems()) > 0: before = len(self._feed.getItems()) self._feed.loadMoreItems(excludeRead=True) cnt += 1 if len(self._feed.getItems()) - before == 0: break if settings.autoSwitchCategories(): self._switchToBoring() self.processEntries()
def markFirstCountItemsAsRead(self, count, protectionMessage): """ Отмечаем первые count записей в текущей категории, как прочитанные. Перед этим показываем 'защитное сообщение' protectionMessage """ if not self.login(): return if not self.userReallyWantsToMarkAsRead(protectionMessage): return progress = self.progressDialog(count) progress.show() for row in range(count): item = self._currentCategory().child(row) progress.setValue(row) id = item.data(0, Qt.UserRole) if item.checkState(0) == Qt.Checked: self._feed.getItem(id).interesting = True continue try: self._feed.getItem(id).markRead() except HTTPException as e: # Вообще, здесь нужно попытаться получить токен или auth заново text = 'При попытке отметить записи, как прочитанные возникла ошибка: ' + str(e) QMessageBox.warning(self, 'Ошибка', text) break if progress.wasCanceled(): break qApp.processEvents() progress.setValue(count) self._ui.twEntries.setCurrentItem(None) self.updateDb() shouldReturnToDates = (settings.autoSwitchCategories() and self._cbCategories.currentIndex() == 3) if shouldReturnToDates: self._switchToDates() self.splitItemsIntoCategories() self._updateWindowTitle()