added autoremover
parent
779e95883a
commit
552b438d00
|
@ -6,3 +6,4 @@ DISCORD_WEBHOOK=https://webhookaddress
|
||||||
MAIN_DOMAIN=http://baseOfDomainForbackupsPropagationViaWebhook
|
MAIN_DOMAIN=http://baseOfDomainForbackupsPropagationViaWebhook
|
||||||
DISCORD_BACKUPNAME=ServerName
|
DISCORD_BACKUPNAME=ServerName
|
||||||
DISCORD_ENABLED=1
|
DISCORD_ENABLED=1
|
||||||
|
BACKUPS_KEEP_DAYS=4
|
|
@ -11,6 +11,7 @@ class Config(BaseSettings):
|
||||||
main_domain: str
|
main_domain: str
|
||||||
discord_enabled: int
|
discord_enabled: int
|
||||||
discord_backupname: str
|
discord_backupname: str
|
||||||
|
backups_keep_days: int
|
||||||
|
|
||||||
cfg = Config()
|
cfg = Config()
|
||||||
|
|
||||||
|
|
18
src/main.py
18
src/main.py
|
@ -1,21 +1,19 @@
|
||||||
from conf import get_config
|
from conf import get_config
|
||||||
import pterodactylReader, fileDownloader, datetime, discordPoster
|
import pterodactylReader, fileDownloader, datetime, discordPoster, time, oldRemover
|
||||||
|
|
||||||
|
|
||||||
conf = get_config()
|
conf = get_config()
|
||||||
api_client = pterodactylReader.init_client(config=conf)
|
api_client = pterodactylReader.init_client(config=conf)
|
||||||
|
today_date = datetime.datetime.now()
|
||||||
|
|
||||||
backups_dict = pterodactylReader.get_backups_list(api_client=api_client, server_id=conf.server_id)
|
backups_dict = pterodactylReader.get_backups_list(api_client=api_client, server_id=conf.server_id)
|
||||||
backup_uuid = pterodactylReader.get_last_backup_id(backups_dict)
|
backup_uuid = pterodactylReader.get_last_backup_id(backups_dict)
|
||||||
backup_url = pterodactylReader.get_backup_url(api_client=api_client, server_id=conf.server_id, backup_id=backup_uuid)
|
backup_url = pterodactylReader.get_backup_url(api_client=api_client, server_id=conf.server_id, backup_id=backup_uuid)
|
||||||
print(backups_dict)
|
time.sleep(5)
|
||||||
print("------------------")
|
backup_local_path = fileDownloader.create_dirs_and_download(backup_url=backup_url, date=today_date, base_path=conf.save_dir)
|
||||||
print(backup_uuid)
|
|
||||||
print("------------------")
|
|
||||||
print(backup_url)
|
|
||||||
print("------------------")
|
|
||||||
backup_local_path = fileDownloader.create_dirs_and_download(backup_url=backup_url, date=datetime.datetime.now(), base_path=conf.save_dir)
|
|
||||||
|
|
||||||
if conf.discord_enabled == 1:
|
if conf.discord_enabled == 1:
|
||||||
discordPoster.send_url_to_discord(webhook_url=conf.discord_webhook, backup_url=f"{conf.main_domain}{backup_local_path}", datetim=datetime.datetime.now(), backup_name=conf.discord_backupname)
|
discordPoster.send_url_to_discord(webhook_url=conf.discord_webhook, backup_url=f"{conf.main_domain}{backup_local_path}", datetim=today_date, backup_name=conf.discord_backupname)
|
||||||
|
|
||||||
|
if conf.backups_keep_days != 0:
|
||||||
|
oldRemover.remove_old_files(today_date=today_date, keep_days=conf.backups_keep_days, root_path=conf.save_dir)
|
|
@ -0,0 +1,33 @@
|
||||||
|
import os, datetime
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
def folder_path_year_creator(date: datetime.datetime, default_path: str) -> str:
|
||||||
|
return f"{default_path}/{date.year}"
|
||||||
|
|
||||||
|
def folder_path_month_creator(date: datetime.datetime, default_path: str) -> str:
|
||||||
|
return f"{folder_path_year_creator(date=date, default_path=default_path)}/{date.month}"
|
||||||
|
|
||||||
|
def file_path_creator(date: datetime.datetime, default_path: str) -> str:
|
||||||
|
return f"{folder_path_month_creator(date=date, default_path=default_path)}/{date.day}.tar.gz"
|
||||||
|
|
||||||
|
|
||||||
|
def remove_old_files(today_date: datetime.datetime, keep_days: int, root_path: str):
|
||||||
|
older_date = today_date - datetime.timedelta(days=keep_days)
|
||||||
|
last_date = today_date - datetime.timedelta(days=keep_days)
|
||||||
|
|
||||||
|
while older_date > (older_date - datetime.timedelta(days=10)):
|
||||||
|
older_date = older_date - datetime.timedelta(days=1)
|
||||||
|
|
||||||
|
if last_date.year > older_date.year and Path(folder_path_year_creator(date=older_date, default_path=root_path)).exists():
|
||||||
|
Path(folder_path_year_creator(date=older_date, default_path=root_path)).rmdir()
|
||||||
|
return
|
||||||
|
elif last_date.month > older_date.month and Path(folder_path_month_creator(date=older_date, default_path=root_path())).exists():
|
||||||
|
Path(folder_path_month_creator(date=older_date, default_path=root_path)).rmdir()
|
||||||
|
return
|
||||||
|
elif os.path.exists(file_path_creator(date=older_date, default_path=root_path)):
|
||||||
|
os.remove(file_path_creator(date=older_date, default_path=root_path))
|
||||||
|
|
||||||
|
last_date = older_date
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue