示例#1
0
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
示例#2
0
    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()
示例#3
0
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)
示例#4
0
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
示例#5
0
 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
示例#6
0
 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