I18n string cleanup and refactoring

This commit is contained in:
Griatch 2021-05-26 21:55:05 +02:00
parent 59dd0b007a
commit 7ff8cbb341
62 changed files with 890 additions and 738 deletions

View file

@ -1,5 +1,5 @@
"""
Typeclass for Account objects
Typeclass for Account objects.
Note that this object is primarily intended to
store OOC information, not game info! This
@ -54,7 +54,8 @@ _CMDHANDLER = None
# Create throttles for too many account-creations and login attempts
CREATION_THROTTLE = Throttle(
name='creation', limit=settings.CREATION_THROTTLE_LIMIT, timeout=settings.CREATION_THROTTLE_TIMEOUT
name='creation', limit=settings.CREATION_THROTTLE_LIMIT,
timeout=settings.CREATION_THROTTLE_TIMEOUT
)
LOGIN_THROTTLE = Throttle(
name='login', limit=settings.LOGIN_THROTTLE_LIMIT, timeout=settings.LOGIN_THROTTLE_TIMEOUT
@ -292,11 +293,11 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
raise RuntimeError("Session not found")
if self.get_puppet(session) == obj:
# already puppeting this object
self.msg(_("You are already puppeting this object."))
self.msg("You are already puppeting this object.")
return
if not obj.access(self, "puppet"):
# no access
self.msg(_("You don't have permission to puppet '{key}'.").format(key=obj.key))
self.msg("You don't have permission to puppet '{obj.key}'.")
return
if obj.account:
# object already puppeted
@ -312,8 +313,8 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
else:
txt1 = f"Taking over |c{obj.name}|n from another of your sessions."
txt2 = f"|c{obj.name}|n|R is now acted from another of your sessions.|n"
self.msg(_(txt1), session=session)
self.msg(_(txt2), session=obj.sessions.all())
self.msg(txt1, session=session)
self.msg(txt2, session=obj.sessions.all())
self.unpuppet_object(obj.sessions.get())
elif obj.account.is_connected:
# controlled by another account
@ -543,7 +544,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
# Update throttle
if ip:
LOGIN_THROTTLE.update(ip, "Too many authentication failures.")
LOGIN_THROTTLE.update(ip, _("Too many authentication failures."))
# Try to call post-failure hook
session = kwargs.get("session", None)
@ -658,8 +659,9 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
password (str): Password to set.
Notes:
This is called by Django also when logging in; it should not be mixed up with validation, since that
would mean old passwords in the database (pre validation checks) could get invalidated.
This is called by Django also when logging in; it should not be mixed up with
validation, since that would mean old passwords in the database (pre validation checks)
could get invalidated.
"""
super(DefaultAccount, self).set_password(password)
@ -798,12 +800,10 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
)
logger.log_sec(f"Account Created: {account} (IP: {ip}).")
except Exception as e:
except Exception:
errors.append(
_(
"There was an error creating the Account. If this problem persists, contact an admin."
)
)
_("There was an error creating the Account. "
"If this problem persists, contact an admin."))
logger.log_trace()
return None, errors
@ -819,7 +819,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
# join the new account to the public channel
pchannel = ChannelDB.objects.get_channel(settings.DEFAULT_CHANNELS[0]["key"])
if not pchannel or not pchannel.connect(account):
string = f"New account '{account.key}' could not connect to public channel!"
string = "New account '{account.key}' could not connect to public channel!"
errors.append(string)
logger.log_err(string)
@ -1574,7 +1574,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
if hasattr(target, "return_appearance"):
return target.return_appearance(self)
else:
return _("{target} has no in-game appearance.").format(target=target)
return f"{target} has no in-game appearance."
else:
# list of targets - make list to disconnect from db
characters = list(tar for tar in target if tar) if target else []
@ -1617,19 +1617,18 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
if is_su or len(characters) < charmax:
if not characters:
result.append(
_(
"\n\n You don't have any characters yet. See |whelp @charcreate|n for creating one."
)
"\n\n You don't have any characters yet. See |whelp charcreate|n for "
"creating one."
)
else:
result.append("\n |w@charcreate <name> [=description]|n - create new character")
result.append("\n |wcharcreate <name> [=description]|n - create new character")
result.append(
"\n |w@chardelete <name>|n - delete a character (cannot be undone!)"
"\n |wchardelete <name>|n - delete a character (cannot be undone!)"
)
if characters:
string_s_ending = len(characters) > 1 and "s" or ""
result.append("\n |w@ic <character>|n - enter the game (|w@ooc|n to get back here)")
result.append("\n |wic <character>|n - enter the game (|wooc|n to get back here)")
if is_su:
result.append(
f"\n\nAvailable character{string_s_ending} ({len(characters)}/unlimited):"
@ -1651,11 +1650,12 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
sid = sess in sessions and sessions.index(sess) + 1
if sess and sid:
result.append(
f"\n - |G{char.key}|n [{', '.join(char.permissions.all())}] (played by you in session {sid})"
)
f"\n - |G{char.key}|n [{', '.join(char.permissions.all())}] "
f"(played by you in session {sid})")
else:
result.append(
f"\n - |R{char.key}|n [{', '.join(char.permissions.all())}] (played by someone else)"
f"\n - |R{char.key}|n [{', '.join(char.permissions.all())}] "
"(played by someone else)"
)
else:
# character is "free to puppet"
@ -1668,6 +1668,7 @@ class DefaultGuest(DefaultAccount):
"""
This class is used for guest logins. Unlike Accounts, Guests and
their characters are deleted after disconnection.
"""
@classmethod
@ -1675,6 +1676,7 @@ class DefaultGuest(DefaultAccount):
"""
Forwards request to cls.authenticate(); returns a DefaultGuest object
if one is available for use.
"""
return cls.authenticate(**kwargs)
@ -1742,7 +1744,7 @@ class DefaultGuest(DefaultAccount):
return account, errors
except Exception as e:
except Exception:
# We are in the middle between logged in and -not, so we have
# to handle tracebacks ourselves at this point. If we don't,
# we won't see any errors at all.

View file

@ -330,7 +330,7 @@ class IRCBot(Bot):
nicklist = ", ".join(sorted(kwargs["nicklist"], key=lambda n: n.lower()))
for obj in self._nicklist_callers:
obj.msg(
_("Nicks at {chstr}:\n {nicklist}").format(chstr=chstr, nicklist=nicklist)
"Nicks at {chstr}:\n {nicklist}".format(chstr=chstr, nicklist=nicklist)
)
self._nicklist_callers = []
return
@ -341,7 +341,7 @@ class IRCBot(Bot):
chstr = f"{self.db.irc_channel} ({self.db.irc_network}:{self.db.irc_port})"
for obj in self._ping_callers:
obj.msg(
_("IRC ping return from {chstr} took {time}s.").format(
"IRC ping return from {chstr} took {time}s.".format(
chstr=chstr, time=kwargs["timing"]
)
)
@ -397,6 +397,7 @@ class IRCBot(Bot):
#
# RSS
#
class RSSBot(Bot):

View file

@ -94,7 +94,8 @@ class AccountDB(TypedObject, AbstractUser):
"cmdset",
max_length=255,
null=True,
help_text="optional python path to a cmdset class. If creating a Character, this will default to settings.CMDSET_CHARACTER.",
help_text="optional python path to a cmdset class. If creating a Character, this will "
"default to settings.CMDSET_CHARACTER.",
)
# marks if this is a "virtual" bot account object
db_is_bot = models.BooleanField(

View file

@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
import sys
from mock import Mock, MagicMock, patch
from random import randint
from unittest import TestCase
@ -12,8 +11,6 @@ from evennia.utils.test_resources import EvenniaTest
from evennia.utils import create
from evennia.utils.utils import uses_database
from django.conf import settings
class TestAccountSessionHandler(TestCase):
"Check AccountSessionHandler class"