Fix various things

- Fix some typos in Message and SessionView
- Database operations can now access self
- Fix mention (missing comma) and rename mention_reduce to normalize
This commit is contained in:
Joscha 2018-08-03 18:13:32 +00:00
parent 5c254f4e70
commit 1fee49d0e4
2 changed files with 16 additions and 13 deletions

View file

@ -10,7 +10,7 @@ __all__ = ["Database", "operation"]
def operation(func): def operation(func):
async def wrapper(self, *args, **kwargs): async def wrapper(self, *args, **kwargs):
async with self as db: async with self as db:
return await asyncify(func, db, *args, **kwargs) return await asyncify(func, self, db, *args, **kwargs)
return wrapper return wrapper
class Database: class Database:

View file

@ -1,12 +1,14 @@
import asyncio import asyncio
import logging import logging
import re
import time import time
import functools import functools
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
__all__ = [ __all__ = [
"parallel", "asyncify", "parallel", "asyncify",
"mention", "mention_reduced", "similar", "mention", "normalize", "similar",
"format_time", "format_time_delta", "format_time", "format_time_delta",
"Session", "Listing", "Message", "Session", "Listing", "Message",
] ]
@ -19,14 +21,15 @@ async def asyncify(func, *args, **kwargs):
func_with_args = functools.partial(func, *args, **kwargs) func_with_args = functools.partial(func, *args, **kwargs)
return await asyncio.get_event_loop().run_in_executor(None, func_with_args) return await asyncio.get_event_loop().run_in_executor(None, func_with_args)
def mention(nick): def mention(nick, ping=True):
return "".join(c for c in nick if c not in ".!?;&<'\"" and not c.isspace()) nick = re.sub(r"""[,.!?;&<'"\s]""", "", nick)
return "@" + nick if ping else nick
def mention_reduced(nick): def normalize(nick):
return mention(nick).lower() return mention(nick, ping=False).lower()
def similar(nick1, nick2): def similar(nick1, nick2):
return mention_reduced(nick1) == mention_reduced(nick2) return normalize(nick1) == normalize(nick2)
def format_time(timestamp): def format_time(timestamp):
return time.strftime( return time.strftime(
@ -65,7 +68,7 @@ def format_time_delta(delta):
class Session: class Session:
def __init__(self, user_id, nick, server_id, server_era, session_id, is_staff=None, def __init__(self, user_id, nick, server_id, server_era, session_id, is_staff=None,
is_manager=None, client_address=None, real_address=None): is_manager=None, client_address=None, real_client_address=None):
self.user_id = user_id self.user_id = user_id
self.nick = nick self.nick = nick
self.server_id = server_id self.server_id = server_id
@ -74,7 +77,7 @@ class Session:
self.is_staff = is_staff self.is_staff = is_staff
self.is_manager = is_manager self.is_manager = is_manager
self.client_address = client_address self.client_address = client_address
self.real_address = real_address self.real_client_address = real_client_address
@property @property
def uid(self): def uid(self):
@ -103,7 +106,7 @@ class Session:
d.get("is_staff", None), d.get("is_staff", None),
d.get("is_manager", None), d.get("is_manager", None),
d.get("client_address", None), d.get("client_address", None),
d.get("real_address", None) d.get("real_client_address", None)
) )
@property @property
@ -172,14 +175,14 @@ class Listing:
class Message(): class Message():
def __init__(self, message_id, time, sender, content, parent=None, previous_edit_id=None, def __init__(self, message_id, time, sender, content, parent=None, previous_edit_id=None,
encryption_key=None, edited=None, deleted=None, truncated=None): encryption_key_id=None, edited=None, deleted=None, truncated=None):
self.message_id = message_id self.message_id = message_id
self.time = time self.time = time
self.sender = sender self.sender = sender
self.content = content self.content = content
self.parent = parent self.parent = parent
self.previous_edit_id = previous_edit_id self.previous_edit_id = previous_edit_id
self.encryption_key = encryption_key self.encryption_key_id = encryption_key_id
self.edited = edited self.edited = edited
self.deleted = deleted self.deleted = deleted
self.truncated = truncated self.truncated = truncated
@ -201,7 +204,7 @@ class Message():
d.get("content"), d.get("content"),
d.get("parent", None), d.get("parent", None),
d.get("previous_edit_id", None), d.get("previous_edit_id", None),
d.get("encryption_key", None), d.get("encryption_key_id", None),
d.get("edited", None), d.get("edited", None),
d.get("deleted", None), d.get("deleted", None),
d.get("truncated", None) d.get("truncated", None)