mirror of
https://github.com/chatmail/relay.git
synced 2026-05-10 16:04:37 +00:00
small streamlining
This commit is contained in:
@@ -14,28 +14,34 @@ from .database import Database
|
|||||||
LAST_LOGIN = "last-login"
|
LAST_LOGIN = "last-login"
|
||||||
|
|
||||||
|
|
||||||
|
def get_daytimestamp(timestamp) -> int:
|
||||||
|
return int(timestamp) // 86400 * 86400
|
||||||
|
|
||||||
|
|
||||||
def write_last_login_to_userdir(userdir, timestamp):
|
def write_last_login_to_userdir(userdir, timestamp):
|
||||||
target = userdir.joinpath(LAST_LOGIN)
|
target = userdir.joinpath(LAST_LOGIN)
|
||||||
timestamp = int(timestamp // 86400 * 86400)
|
timestamp = get_daytimestamp(timestamp)
|
||||||
try:
|
try:
|
||||||
st = target.stat()
|
st = target.stat()
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
# only happens on initial login
|
# only happens on initial login
|
||||||
userdir.mkdir(exist_ok=True)
|
userdir.mkdir(exist_ok=True)
|
||||||
target.write_text("")
|
target.touch()
|
||||||
os.utime(target, (timestamp, timestamp))
|
os.utime(target, (timestamp, timestamp))
|
||||||
else:
|
else:
|
||||||
if st.st_mtime < timestamp:
|
if st.st_mtime < timestamp:
|
||||||
os.utime(target, (timestamp, timestamp))
|
os.utime(target, (timestamp, timestamp))
|
||||||
|
|
||||||
|
|
||||||
def get_last_login_from_userdir(userdir):
|
def get_last_login_from_userdir(userdir) -> int:
|
||||||
target = userdir.joinpath(LAST_LOGIN)
|
target = userdir.joinpath(LAST_LOGIN)
|
||||||
try:
|
try:
|
||||||
return int(target.stat().st_mtime)
|
return int(target.stat().st_mtime)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
target.write_text("")
|
# during migration many directories will not have last-login file
|
||||||
timestamp = int(time.time() // 86400 * 86400)
|
# so we write it here to the current time
|
||||||
|
target.touch()
|
||||||
|
timestamp = get_daytimestamp(time.time())
|
||||||
os.utime(target, (timestamp, timestamp))
|
os.utime(target, (timestamp, timestamp))
|
||||||
return timestamp
|
return timestamp
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user