history: separate smol module
This commit is contained in:
parent
294c7796fa
commit
8830465fbf
|
@ -6,6 +6,7 @@ import os
|
|||
from bebop.colors import ColorPair, init_colors
|
||||
from bebop.command_line import (CommandLine, EscapeCommandInterrupt,
|
||||
TerminateCommandInterrupt)
|
||||
from bebop.history import History
|
||||
from bebop.mouse import ButtonState
|
||||
from bebop.navigation import join_url, parse_url, sanitize_url, set_parameter
|
||||
from bebop.page import Page
|
||||
|
@ -24,7 +25,7 @@ class Browser:
|
|||
self.command_line = None
|
||||
self.status_data = ("", 0)
|
||||
self.current_url = ""
|
||||
self.history = []
|
||||
self.history = History()
|
||||
|
||||
@property
|
||||
def h(self):
|
||||
|
@ -414,5 +415,5 @@ class Browser:
|
|||
|
||||
def go_back(self):
|
||||
"""Go back in history if possible."""
|
||||
if self.history:
|
||||
if self.history.has_links():
|
||||
self.open_gemini_url(self.history.pop(), history=False)
|
||||
|
|
17
bebop/history.py
Normal file
17
bebop/history.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
class History:
|
||||
|
||||
def __init__(self):
|
||||
self.urls = []
|
||||
|
||||
def has_links(self):
|
||||
"""Return True if there is at least one URL in the history."""
|
||||
return bool(self.urls)
|
||||
|
||||
def push(self, url):
|
||||
"""Add an URL to the history."""
|
||||
if not self.urls or self.urls[-1] != url:
|
||||
self.urls.append(url)
|
||||
|
||||
def pop(self):
|
||||
"""Return latest URL added to history and remove it."""
|
||||
return self.urls.pop()
|
Reference in a new issue