Files
certupdater/mongo.py
Egor Matveev 40907f9d07
All checks were successful
Deploy Dev / Build (pull_request) Successful in 1m16s
Deploy Dev / Push (pull_request) Successful in 21s
Deploy Dev / Deploy dev (pull_request) Successful in 10s
Deploy Prod / Build (pull_request) Successful in 5s
Deploy Prod / Push (pull_request) Successful in 10s
Deploy Prod / Deploy prod (pull_request) Successful in 11s
fix
2025-09-15 01:33:01 +03:00

41 lines
1.2 KiB
Python

import datetime
import pymongo
import os
MONGO_USER = os.getenv("MONGO_USER", "mongo")
MONGO_PASSWORD = os.getenv("MONGO_PASSWORD", "password")
class Mongo:
def __init__(self):
url = f"mongodb://{MONGO_USER}:{MONGO_PASSWORD}@mongo:27017/"
self.client: pymongo.MongoClient = pymongo.MongoClient(url)
self.database = self.client.get_database("certupdater")
self.hosts_collection.create_index([
("host", 1)
])
def __getitem__(self, item):
return self.database.get_collection(item)
@property
def hosts_collection(self):
return self["hosts"]
@property
def hosts(self):
hosts = {}
for host in self.hosts_collection.find({}):
hosts[host["host"]] = host
return hosts
def update_date(self, host: str):
now = datetime.datetime.now()
if self.hosts_collection.find_one({"host": host}):
self.hosts_collection.update_one({"host": host}, {"$set": {"update_time": now, "expire_time": now + datetime.timedelta(days=90)}})
else:
self.hosts_collection.insert_one({"host": host, "update_time": now, "expire_time": now + datetime.timedelta(days=90)})
mongo = Mongo()