1
0
Fork 0
mirror of https://github.com/myned/modufur.git synced 2025-03-13 09:06:25 +00:00
modufur/src/utils/formatter.py
2018-11-15 18:58:21 -05:00

74 lines
1.5 KiB
Python

import copy
from discord.ext.commands import Paginator
def tostring(i, *, order=None, newline=False):
o = ''
if i:
for v in i:
o += v + (' ' if newline is False else ' \n')
o = o[:-1]
elif order:
o += order
else:
o = ' '
return o
def tostring_commas(i):
if i:
o = ','
for v in i:
o += v + ','
return o[:-1]
return ''
async def paginate(
ctx,
i,
start='',
prefix='',
kprefix='`',
ksuffix='`\n',
eprefix='```\n',
ejoin=' ',
esuffix='\n```',
suffix='',
end=''):
paginator = Paginator(prefix=prefix, suffix=suffix)
messages = []
i = copy.deepcopy(i)
if start:
paginator.add_line(start)
if type(i) in (tuple, list, set):
if not i:
i = (' ')
paginator.add_line(eprefix + f'{ejoin}'.join(i) + esuffix)
elif type(i) is dict:
if not i:
i = {'': ' '}
for k, e in sorted(i.items()):
paginator.add_line(kprefix if k else '' + k + ksuffix if k else '' + eprefix + f'{ejoin}'.join(e) + esuffix)
if end:
paginator.add_line(end)
for page in paginator.pages:
messages.append(await ctx.send(page))
return messages
def dictelem_tostring(i):
o = ''
if i:
for dic, elem in i.items():
o += '**__' + dic + '__**\n'
for k, v in elem.items():
o += '***' + k + ':*** `' + tostring(v) + '`\n'
return o