Skip to content

Commit

Permalink
[fix] Improvements to text formatting (#231)
Browse files Browse the repository at this point in the history
- Allow for user providing single-space name/emoji in config to override defaults
- Remove percentage next to disk usage to save space
  • Loading branch information
nwithan8 authored Sep 19, 2024
1 parent 50a1456 commit d38f39e
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 16 deletions.
17 changes: 5 additions & 12 deletions modules/settings/config_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@ def __init__(self, data: dict):
def get_value(self, key: str, default: Any = None) -> Any:
value = self.data.get(key, default)

if value is None or value == "":
return default

return value
return utils.set_default_if_none_or_empty(value=value, default=default)

def get_subsection_data(self, key: str, optional: bool = False) -> dict:
try:
Expand All @@ -42,14 +39,10 @@ def __init__(self, channel_name: str, emoji: Emoji, data):

def to_model(self) -> settings_models.VoiceChannel:
enable: bool = utils.extract_boolean(self.get_value(key="Enable", default=False))
name: str = self.get_value(key="CustomName", default="")
if not name:
# Fall back to the default channel name if a custom name is not provided
name: str = self.channel_name
emoji: str = self.get_value(key="CustomEmoji", default="")
if not emoji:
# Fall back to the default emoji if a custom emoji is not provided
emoji: str = self.emoji.value # type: ignore
# Fall back to the default channel name if a custom name is not provided
name: str = self.get_value(key="CustomName", default=self.channel_name)
# Fall back to the default emoji if a custom emoji is not provided
emoji: str = self.get_value(key="CustomEmoji", default=self.emoji.value)
channel_id: int = self.get_value(key="VoiceChannelID", default="0")

return settings_models.VoiceChannel(
Expand Down
8 changes: 6 additions & 2 deletions modules/settings/models/voice_channel.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,24 @@ class VoiceChannel(BaseConfig):
@property
def prefix(self) -> str:
emoji = strip_phantom_space(string=self.emoji)
return f"{emoji} {self.name}"
prefix = f"{emoji} {self.name}"
return prefix.strip() # Remove any spaces provided to override default name/emoji

@property
def channel_id_set(self) -> bool:
return self.channel_id != 0

def build_channel_name(self, value) -> str:
prefix = self.prefix
if not prefix:
return value
return f"{self.prefix}: {value}"

def as_dict(self) -> dict:
return {
"name": self.name,
"enable": self.enable,
"emoji": self.emoji.strip(),
"emoji": self.emoji,
"channel_id": self.channel_id
}

Expand Down
3 changes: 1 addition & 2 deletions modules/system_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,5 @@ def disk_usage_display(path: str) -> str:

space_used = utils.human_size(used, decimal_places=1, no_zeros=True)
total_space = utils.human_size(total, decimal_places=1, no_zeros=True)
percentage_used = utils.format_decimal(used / total * 100, decimal_places=2, no_zeros=True)

return f"{space_used}/{total_space} ({percentage_used}%)"
return f"{space_used}/{total_space}"
10 changes: 10 additions & 0 deletions modules/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,16 @@ def strip_phantom_space(string: str) -> str:
return string.replace('️', "").replace("\u200b", "").strip()


def is_none_or_empty(value) -> bool:
return value is None or value == ""


def set_default_if_none_or_empty(value, default) -> Any:
if is_none_or_empty(value):
return default
return value


def seconds_to_minutes(seconds: int) -> int:
return seconds // 60

Expand Down

0 comments on commit d38f39e

Please sign in to comment.