Пример #1
0
 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.')