small streamlining

This commit is contained in:
holger krekel
2024-07-10 11:28:33 +02:00
parent 4dbb19db46
commit dd770f7e10

View File

@@ -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