Files
admins 702d080a1e New Addon
Google BK
2023-04-23 18:17:03 +07:00

40 lines
2.4 KiB
Python

from datetime import datetime
from ..logger import getLogger
logger = getLogger(__name__)
BACKUP_NAME_KEYS = {
"{type}": lambda backup_type, now_local, host_info: backup_type,
"{year}": lambda backup_type, now_local, host_info: now_local.strftime("%Y"),
"{year_short}": lambda backup_type, now_local, host_info: now_local.strftime("%y"),
"{weekday}": lambda backup_type, now_local, host_info: now_local.strftime("%A"),
"{weekday_short}": lambda backup_type, now_local, host_info: now_local.strftime("%a"),
"{month}": lambda backup_type, now_local, host_info: now_local.strftime("%m"),
"{month_long}": lambda backup_type, now_local, host_info: now_local.strftime("%B"),
"{month_short}": lambda backup_type, now_local, host_info: now_local.strftime("%b"),
"{ms}": lambda backup_type, now_local, host_info: now_local.strftime("%f"),
"{day}": lambda backup_type, now_local, host_info: now_local.strftime("%d"),
"{hr24}": lambda backup_type, now_local, host_info: now_local.strftime("%H"),
"{hr12}": lambda backup_type, now_local, host_info: now_local.strftime("%I"),
"{min}": lambda backup_type, now_local, host_info: now_local.strftime("%M"),
"{sec}": lambda backup_type, now_local, host_info: now_local.strftime("%S"),
"{ampm}": lambda backup_type, now_local, host_info: now_local.strftime("%p"),
"{version_ha}": lambda backup_type, now_local, host_info: str(host_info.get('homeassistant', 'Unknown')),
"{version_hassos}": lambda backup_type, now_local, host_info: str(host_info.get('hassos', 'Unknown')),
"{version_super}": lambda backup_type, now_local, host_info: str(host_info.get('supervisor', 'Unknown')),
"{date}": lambda backup_type, now_local, host_info: now_local.strftime("%x"),
"{time}": lambda backup_type, now_local, host_info: now_local.strftime("%X"),
"{datetime}": lambda backup_type, now_local, host_info: now_local.strftime("%c"),
"{isotime}": lambda backup_type, now_local, host_info: now_local.isoformat(),
"{hostname}": lambda backup_type, now_local, host_info: str(host_info.get('hostname', 'Unknown')),
}
class BackupName():
def resolve(self, backup_type: str, template: str, now_local: datetime, host_info) -> str:
for key in BACKUP_NAME_KEYS:
template = template.replace(key, BACKUP_NAME_KEYS[key](
backup_type, now_local, host_info))
return template