def populate(self): db_conn = create_db_connection() mangas_rows = db_conn.execute('SELECT * FROM mangas ORDER BY last_read DESC').fetchall() if len(mangas_rows) == 0: if self.window.overlay.is_ancestor(self.window): self.window.remove(self.window.overlay) # Display first start message self.window.add(self.window.first_start_grid) return if self.window.first_start_grid.is_ancestor(self.window): self.window.remove(self.window.first_start_grid) if not self.window.overlay.is_ancestor(self.window): self.window.add(self.window.overlay) # Clear library flowbox for child in self.flowbox.get_children(): child.destroy() # Populate flowbox with mangas for row in mangas_rows: self.add_manga(Manga.get(row['id'])) db_conn.close()
def show_page(self, name): if name == 'search': if self.page == 'servers': self.custom_title_search_page_searchentry.set_placeholder_text(_('Search in {0}…').format(self.server.name)) self.clear_search() self.search() else: self.custom_title_search_page_searchentry.grab_focus_without_selecting() elif name == 'manga': self.custom_title_manga_page_label.set_text(self.manga_data['name']) # Check if selected manga is already in library db_conn = create_db_connection() row = db_conn.execute( 'SELECT * FROM mangas WHERE slug = ? AND server_id = ?', (self.manga_data['slug'], self.manga_data['server_id']) ).fetchone() db_conn.close() if row: self.manga = Manga.get(row['id'], self.server) self.read_button.show() self.add_button.hide() else: self.add_button.show() self.read_button.hide() self.custom_title_stack.set_visible_child_name(name) self.stack.set_visible_child_name(name) self.page = name
def update_library(self): self.update_library_flag = True db_conn = create_db_connection() rows = db_conn.execute('SELECT * FROM mangas ORDER BY last_read DESC').fetchall() db_conn.close() for row in rows: self.add(Manga.get(row['id'])) self.start()
def run(): total_recent_chapters = 0 while self.queue: if self.stop_flag is True: break manga = Manga.get(self.queue.pop(0)) if manga is None: continue try: status, recent_chapters_ids, nb_deleted_chapters = manga.update_full() if status is True: total_recent_chapters += len(recent_chapters_ids) GLib.idle_add(complete, manga, recent_chapters_ids, nb_deleted_chapters) else: GLib.idle_add(error, manga) except Exception as e: user_error_message = log_error_traceback(e) GLib.idle_add(error, manga, user_error_message) self.running = False # End notification if self.update_library_flag: self.update_library_flag = False message = _('Library update completed') else: message = _('Update completed') if total_recent_chapters > 0: message = '{0}\n{1}'.format( message, n_('{0} new chapter found', '{0} new chapters found', total_recent_chapters).format( total_recent_chapters ) ) else: message = '{0}\n{1}'.format(message, _('No new chapter found')) self.window.show_notification(message)
def run(): manga = Manga.new(self.manga_data, self.server) GLib.idle_add(complete, manga)