def articles_menu(self): '''Display the article search menu.''' term = '' while term == '': term = self.yellow_input('Enter a term') print(self.Style.RESET_ALL) articles = News.search_term(term, self.source_ids) if len(articles) > 0: print(f'{str(len(articles))} results!') action = None while action != 0: options = '[1] View results\n'\ '[2] Choose article\n'\ '[0] Go back\n' action = self.create_menu('RESULTS', options) if action == 1: [ print(f"[{str(i + 1)}] {article['title']}") for i, article in articles.items() ] elif action == 2: article = self.yellow_input('Enter the article #') print(self.Style.RESET_ALL) try: article = int(article) article = articles[article - 1] except: self.error(self.INVALID) continue self.show_details(article) while action != 0: if self.user_id != -1: options = '[1] Save article\n'\ '[0] Go back\n' else: options = '[0] Go back\n' action = self.create_menu('ARTICLE', options) if action == 1: if self.user_id != -1: res = pickle.dumps(article) DB.add_article(self.user_id, res) self.success('Article saved!') break else: self.error(self.INVALID) elif action == 0: action = None break else: self.error(self.INVALID) elif action == 0: break else: self.error(self.INVALID) else: self.error('No results.')