Added ellipsis truncation to system list descriptions
This commit is contained in:
parent
0aea658af9
commit
0266db5589
@ -136,13 +136,13 @@ async def system_timezone(ctx: CommandContext):
|
|||||||
|
|
||||||
if not timezone_name:
|
if not timezone_name:
|
||||||
raise CommandError("Time zone for city '{}' not found. This should never happen.".format(data[0]["display_name"]))
|
raise CommandError("Time zone for city '{}' not found. This should never happen.".format(data[0]["display_name"]))
|
||||||
|
|
||||||
# This should hopefully result in a valid time zone name
|
# This should hopefully result in a valid time zone name
|
||||||
# (if not, something went wrong)
|
# (if not, something went wrong)
|
||||||
tz = await system.set_time_zone(ctx.conn, timezone_name)
|
tz = await system.set_time_zone(ctx.conn, timezone_name)
|
||||||
offset = tz.utcoffset(datetime.utcnow())
|
offset = tz.utcoffset(datetime.utcnow())
|
||||||
offset_str = "UTC{:+02d}:{:02d}".format(int(offset.total_seconds() // 3600), int(offset.total_seconds() // 60 % 60))
|
offset_str = "UTC{:+02d}:{:02d}".format(int(offset.total_seconds() // 3600), int(offset.total_seconds() // 60 % 60))
|
||||||
|
|
||||||
await ctx.reply_ok("System time zone set to {} ({}, {}).\n*Data from OpenStreetMap, queried using Nominatim.*".format(tz.tzname(datetime.utcnow()), offset_str, tz.zone))
|
await ctx.reply_ok("System time zone set to {} ({}, {}).\n*Data from OpenStreetMap, queried using Nominatim.*".format(tz.tzname(datetime.utcnow()), offset_str, tz.zone))
|
||||||
|
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ async def account_link(ctx: CommandContext):
|
|||||||
|
|
||||||
async def account_unlink(ctx: CommandContext):
|
async def account_unlink(ctx: CommandContext):
|
||||||
system = await ctx.ensure_system()
|
system = await ctx.ensure_system()
|
||||||
|
|
||||||
msg = await ctx.reply("Are you sure you want to unlink this account from your system?")
|
msg = await ctx.reply("Are you sure you want to unlink this account from your system?")
|
||||||
if not await ctx.confirm_react(ctx.message.author, msg):
|
if not await ctx.confirm_react(ctx.message.author, msg):
|
||||||
raise CommandError("Account unlink cancelled.")
|
raise CommandError("Account unlink cancelled.")
|
||||||
@ -363,9 +363,9 @@ async def system_frontpercent(ctx: CommandContext, system: System):
|
|||||||
|
|
||||||
async def system_list(ctx: CommandContext, system: System):
|
async def system_list(ctx: CommandContext, system: System):
|
||||||
all_members = sorted(await system.get_members(ctx.conn), key=lambda m: m.name.lower())
|
all_members = sorted(await system.get_members(ctx.conn), key=lambda m: m.name.lower())
|
||||||
page_size = 5
|
page_size = 8
|
||||||
if len(all_members) <= page_size:
|
if len(all_members) <= page_size:
|
||||||
# If we have less than 10 members, don't bother paginating
|
# If we have less than 8 members, don't bother paginating
|
||||||
await ctx.reply(embed=embeds.member_list(system, all_members, 0, page_size))
|
await ctx.reply(embed=embeds.member_list(system, all_members, 0, page_size))
|
||||||
else:
|
else:
|
||||||
current_page = 0
|
current_page = 0
|
||||||
@ -388,15 +388,15 @@ async def system_list(ctx: CommandContext, system: System):
|
|||||||
try:
|
try:
|
||||||
reaction, _ = await ctx.client.wait_for("reaction_add", timeout=5*60, check=check)
|
reaction, _ = await ctx.client.wait_for("reaction_add", timeout=5*60, check=check)
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
return
|
return
|
||||||
|
|
||||||
if reaction.emoji == "\u2B05":
|
if reaction.emoji == "\u2B05":
|
||||||
current_page = (current_page - 1) % page_count
|
current_page = (current_page - 1) % page_count
|
||||||
elif reaction.emoji == "\u27A1":
|
elif reaction.emoji == "\u27A1":
|
||||||
current_page = (current_page + 1) % page_count
|
current_page = (current_page + 1) % page_count
|
||||||
|
|
||||||
# If we can, remove the original reaction from the member
|
# If we can, remove the original reaction from the member
|
||||||
# Don't bother checking permission if we're in DMs (wouldn't work anyway)
|
# Don't bother checking permission if we're in DMs (wouldn't work anyway)
|
||||||
if ctx.message.guild:
|
if ctx.message.guild:
|
||||||
if ctx.message.channel.permissions_for(ctx.message.guild.get_member(ctx.client.user.id)).manage_messages:
|
if ctx.message.channel.permissions_for(ctx.message.guild.get_member(ctx.client.user.id)).manage_messages:
|
||||||
await reaction.remove(ctx.message.author)
|
await reaction.remove(ctx.message.author)
|
||||||
|
@ -25,6 +25,12 @@ def truncate_description(s: str) -> str:
|
|||||||
return s[:2048]
|
return s[:2048]
|
||||||
|
|
||||||
|
|
||||||
|
def truncate_description_list(s: str) -> str:
|
||||||
|
if len(s) > 512:
|
||||||
|
return s[:512-45] + "..."
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
def truncate_title(s: str) -> str:
|
def truncate_title(s: str) -> str:
|
||||||
return s[:256]
|
return s[:256]
|
||||||
|
|
||||||
@ -238,8 +244,10 @@ def member_list(system: System, all_members: List[Member], current_page: int, pa
|
|||||||
member_description += "**Birthday:** {}\n".format(member.birthday_string())
|
member_description += "**Birthday:** {}\n".format(member.birthday_string())
|
||||||
if member.pronouns:
|
if member.pronouns:
|
||||||
member_description += "**Pronouns:** {}\n".format(member.pronouns)
|
member_description += "**Pronouns:** {}\n".format(member.pronouns)
|
||||||
if member.description:
|
if len(member.description) > 512:
|
||||||
|
member_description += "\n" + truncate_description_list(member.description) + "\n" + "Type `pk;member {}` for full description.".format(member.hid)
|
||||||
|
else:
|
||||||
member_description += "\n" + member.description
|
member_description += "\n" + member.description
|
||||||
|
|
||||||
embed.add_field(name=member.name, value=truncate_field_body(member_description) or "\u200B", inline=False)
|
embed.add_field(name=member.name, value=truncate_field_body(member_description) or "\u200B", inline=False)
|
||||||
return embed
|
return embed
|
||||||
|
Loading…
Reference in New Issue
Block a user