def show_all(self): item_index = None while item_index is None: channel = self.select_channel("List") if channel is not None: paginator = Paginator(channel.items) while True: # TODO: Replace with cli.py for i, item in enumerate(paginator.get_current_page()): print( f" {i+paginator.current_min}) {item.title} ({item.enclosure.url}) Downloaded={item.downloaded}" ) item_index = input(f"{channel.title}> ") if item_index == "n": self.paginator_next(paginator) elif item_index == "p": self.paginator_prev(paginator) elif item_index == "q": item_index = None break else: print("Invalid Command!") else: break
def select_item_indexes(self, channel, purpose): items = channel.items paginator = Paginator(items) # TODO: Can you do this without cont? cont = True while cont: # TODO: Replace with cli.py cont = False for i, item in enumerate(paginator.get_current_page()): print( f" {i+paginator.current_min}) {item.title} ({item.enclosure.url}) Downloaded={item.downloaded}" ) item_indexes = input(f"Which Items do you want {purpose}? ") if item_indexes == "n": self.paginator_next(paginator) elif item_indexes == "p": self.paginator_prev(paginator) elif item_indexes == "q": item_indexes = None break else: try: item_indexes = list(map(int, item_indexes.split(" "))) except ValueError: print("Invalid Input!") cont = True continue for i in item_indexes: if i > len(channel.items) or i < 0: print( f"Options must be between {0} and {len(channel.items)-1}" ) cont = True break if cont: continue return item_indexes
def select_channel(self, purpose): channels = list(self.manager.channels.values()) paginator = Paginator(channels) if len(channels) == 0: print("No Podcasts Available Yet!") return while True: for i, channel in enumerate(paginator.get_current_page()): print(f"{i+paginator.current_min}) {channel.title}") # TODO: Replace with cli.py channel_index = input( f"Which Channel do you want to {purpose} from? ") if channel_index == "n": self.paginator_next(paginator) elif channel_index == "p": self.paginator_prev(paginator) elif channel_index == "q": channel_index = None break else: try: channel_index = int(channel_index) except ValueError: print("Invalid Input!") continue if channel_index > len( self.manager.channels.keys()) or channel_index < 0: print( f"Option must be between {0} and {len(self.manager.channels.keys())}" ) continue return self.manager.channels[self.manager.title_to_url[ channels[channel_index].title]]