Skip to content

Commit

Permalink
Fix name displayed (#38)
Browse files Browse the repository at this point in the history
  • Loading branch information
R055A committed May 10, 2023
1 parent 6c5a859 commit c848647
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions src/generate_images.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,21 +69,30 @@ async def generate_overview(self) -> None:
OVERVIEW_FILE_NAME), "r") as f:
output = f.read()

# svg name display: user's given name first, otherwise username in any best fit variation as depicted below
name = await self.__stats.name
# if name too long for svg dimensions
if len(name + ("'" if name[-1].lower() == "s" else "'s")) > MAX_NAME_LEN:
names = name.split(' ')
# if too long name contains just one word or forename initials with full surname still too long
if len(names) == 1 or len(names[0][0] + '. ' + names[-1] +
("'" if names[-1][-1].lower() == "s" else "'s")) > MAX_NAME_LEN:
# if username also too long for svg dimensions
if self.__stats.environment_vars.username + \
("'" if self.__stats.environment_vars.username[-1].lower() == "s" else "'s") > MAX_NAME_LEN:
# display forename to max possible len if name a single word, or forename initials with full surname
name = names[0][:MAX_NAME_LEN - 4] + "..'s" \
if len(names) == 1 else ''.join([name[0] + '. ' for i, name in enumerate(names[:-1])
if i <= (MAX_NAME_LEN - 4) / 3]) + names[-1][0] + ".'s"
else:
# display the username instead of user's name if forename initials with full surname still too long
name = self.__stats.environment_vars.username + \
("'" if self.__stats.environment_vars.username[-1].lower() == "s" else "'s")
else:
name = ' '.join([name[0] + '.' for name in names])
name = name.strip()[:min(len(name), MAX_NAME_LEN - 2)] + "'s"
else:
# display the forename initials with full surname if full name too long but not surname with initials
name = names[0][0] + '. ' + names[-1] + ("'" if names[-1][-1].lower() == "s" else "'s")
else:
# display the user's full forename and surname if when combined are not too long for the svg dimensions
name += "'" if name[-1].lower() == "s" else "'s"
output = sub("{{ name }}",
name,
Expand Down

0 comments on commit c848647

Please sign in to comment.