Files
kodimovplus/resources/lib/cache.py
T
2023-01-22 16:20:27 +01:00

51 lines
1.4 KiB
Python

# encoding: utf-8
#
# SPDX-License-Identifier: LGPL-2.1-or-later
from __future__ import unicode_literals, absolute_import, division
import io
import os
import time
import glob
import sys
class Cache(object):
config_directory = ''
def __init__(self, config_directory):
self.config_directory = config_directory
def load_file(self, filename):
filename = self.config_directory + filename
if not os.path.exists(filename): return None
with io.open(filename, 'r', encoding='utf-8') as handle:
return handle.read()
def save_file(self, filename, data):
if sys.version_info[0] < 3:
if not isinstance(data, unicode):
data = unicode(data, 'utf-8')
with io.open(self.config_directory + filename, 'w', encoding='utf-8', newline='') as handle:
handle.write(data)
def load(self, filename, cache_minutes = 24*60):
filename = self.config_directory + filename
if os.path.exists(filename) and (time.time() - os.path.getmtime(filename) < cache_minutes*60):
with io.open(filename, 'r', encoding='utf-8') as handle:
return handle.read()
return None
def remove_file(self, filename):
filename = self.config_directory + filename
if os.path.exists(filename):
os.remove(filename)
def clear_config(self):
types = ('*.conf', '*.json')
files = []
for ext in types:
files.extend(glob.glob(self.config_directory + ext))
for filename in files:
os.remove(filename)