xygt/autoclean.py

52 lines
1.3 KiB
Python
Raw Normal View History

#!/usr/bin/env python
"""
xygt.cc cleanup script
This script will run once hourly to remove expired files and URL's from the database as well as local storage.
"""
import datetime
import os
from pymongo import MongoClient
from config import Config
2024-01-05 15:18:55 +01:00
import time
class Config:
# MongoDB init stuff
client = MongoClient("mongodb://localhost:27017/")
db = client["xygt"]
files = db["file"]
url = db["url"]
users = db["users"]
fileDir = "./data"
def main():
2024-01-05 15:18:55 +01:00
while True:
print("Starting cleanup script...")
2024-01-05 15:18:55 +01:00
# Get current time in unix timestamp
now = datetime.datetime.now()
now = now.timestamp()
2024-01-05 15:18:55 +01:00
# Get all expired files
expiredFiles = Config.files.find({"expiry": {"$lt": now}})
expiredURLs = Config.url.find({"expiry": {"$lt": now}})
2024-01-05 15:18:55 +01:00
# Delete all expired files
for file in expiredFiles:
print(f"Deleting file {file['id']}")
Config.files.delete_one({"id": file["id"]})
os.remove(os.path.join(Config.fileDir, file["filename"]))
2024-01-05 15:18:55 +01:00
# Delete all expired URL's
2024-01-08 12:36:53 +01:00
for urls in expiredURLs:
print(f"Deleting URL {urls['id']}")
Config.url.delete_one({"id": urls["id"]})
2024-01-05 15:18:55 +01:00
print("Cleanup complete.")
time.sleep(60)
if __name__ == "__main__":
main()