def scroll_prompt(tracker, data, max_images): show = True terminal_page = 0 images = [] if tracker is lscat.TrackDownloadsUsers: max_scrolls = utils.max_terminal_scrolls(data, False) else: max_scrolls = utils.max_terminal_scrolls(data, True) with TERM.cbreak(): while True: if show: lscat.api.hide_all(images) myslice = utils.slice_images(max_images, terminal_page) images = lscat.handle_scroll(tracker, data, myslice) ans = TERM.inkey() utils.quit_on_q(ans) if ans.name == 'KEY_DOWN' and terminal_page + 1 < max_scrolls: terminal_page += 1 show = True elif ans.name == 'KEY_UP' and terminal_page > 0: terminal_page -= 1 show = True else: print('Out of bounds!') show = False
def scroll_down(self): if self.terminal_page + 1 >= utils.max_terminal_scrolls( self._data, self._is_gallery_mode): printer.print_bottom('This is the bottom of the terminal page!') return False self.terminal_page += 1 self._show_page()
def test_max_terminal_scrolls_user(monkeypatch): monkeypatch.setattr('koneko.config.nrows_config', lambda: 5) monkeypatch.setattr('koneko.utils.os.listdir', lambda *a: [0] * 10) assert utils.max_terminal_scrolls(Mock(), False) == 10 // (4 * 5)
def test_max_terminal_scrolls_gallery(monkeypatch): monkeypatch.setattr('koneko.config.ncols_config', lambda: 6) monkeypatch.setattr('koneko.config.nrows_config', lambda: 5) monkeypatch.setattr('koneko.utils.os.listdir', lambda *a: [0] * 10) assert utils.max_terminal_scrolls(Mock(), True) == 10 // (6 * 5) + 1
def for_user(cls, data): result = cls(data, lscat.TrackDownloadsUsers) result.max_images = utils.max_images_user() result.max_scrolls = utils.max_terminal_scrolls(data, False) return result
def for_gallery(cls, data): result = cls(data, lscat.TrackDownloads) result.max_images = utils.max_images() result.max_scrolls = utils.max_terminal_scrolls(data, True) return result