Browse Source

[commands] Calculate suffix length at each add_line

pull/2255/head
Matt (IPv4) Cowley 6 years ago
committed by Rapptz
parent
commit
391ff7a486
  1. 10
      discord/ext/commands/help.py

10
discord/ext/commands/help.py

@ -83,7 +83,7 @@ class Paginator:
def __init__(self, prefix='```', suffix='```', max_size=2000):
self.prefix = prefix
self.suffix = suffix
self.max_size = max_size - (0 if suffix is None else len(suffix))
self.max_size = max_size
self.clear()
def clear(self):
@ -100,6 +100,10 @@ class Paginator:
def _prefix_len(self):
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):
"""Adds a line to the current page.
@ -118,11 +122,11 @@ class Paginator:
RuntimeError
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:
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._count += len(line) + 1

Loading…
Cancel
Save