[commands] Calculate suffix length at each add_line
This commit is contained in:
parent
0cca3ca5c6
commit
391ff7a486
@ -83,7 +83,7 @@ class Paginator:
|
|||||||
def __init__(self, prefix='```', suffix='```', max_size=2000):
|
def __init__(self, prefix='```', suffix='```', max_size=2000):
|
||||||
self.prefix = prefix
|
self.prefix = prefix
|
||||||
self.suffix = suffix
|
self.suffix = suffix
|
||||||
self.max_size = max_size - (0 if suffix is None else len(suffix))
|
self.max_size = max_size
|
||||||
self.clear()
|
self.clear()
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
@ -100,6 +100,10 @@ class Paginator:
|
|||||||
def _prefix_len(self):
|
def _prefix_len(self):
|
||||||
return len(self.prefix) if self.prefix else 0
|
return len(self.prefix) if self.prefix else 0
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _suffix_len(self):
|
||||||
|
return len(self.suffix) if self.suffix else 0
|
||||||
|
|
||||||
def add_line(self, line='', *, empty=False):
|
def add_line(self, line='', *, empty=False):
|
||||||
"""Adds a line to the current page.
|
"""Adds a line to the current page.
|
||||||
|
|
||||||
@ -118,11 +122,11 @@ class Paginator:
|
|||||||
RuntimeError
|
RuntimeError
|
||||||
The line was too big for the current :attr:`max_size`.
|
The line was too big for the current :attr:`max_size`.
|
||||||
"""
|
"""
|
||||||
max_page_size = self.max_size - self._prefix_len - 2
|
max_page_size = self.max_size - self._prefix_len - self._suffix_len - 2
|
||||||
if len(line) > max_page_size:
|
if len(line) > max_page_size:
|
||||||
raise RuntimeError('Line exceeds maximum page size %s' % (max_page_size))
|
raise RuntimeError('Line exceeds maximum page size %s' % (max_page_size))
|
||||||
|
|
||||||
if self._count + len(line) + 1 > self.max_size:
|
if self._count + len(line) + 1 > self.max_size - self._suffix_len:
|
||||||
self.close_page()
|
self.close_page()
|
||||||
|
|
||||||
self._count += len(line) + 1
|
self._count += len(line) + 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user