loading translations from extension

This commit is contained in:
Vinicius Moreira
2019-07-29 18:51:39 -03:00
parent dff34ebb5f
commit 5918f0c3ad
17 changed files with 29 additions and 703 deletions

View File

@@ -1,64 +0,0 @@
from datetime import datetime, timedelta
from threading import Lock
class Cache:
def __init__(self, expiration_time: int):
self.expiration_time = expiration_time
self._cache = {}
self.lock = Lock()
def is_enabled(self):
return self.expiration_time < 0 or self.expiration_time > 0
def add(self, key: str, val: object):
if key and self.is_enabled():
self.lock.acquire()
self._add(key, val)
self.lock.release()
def _add(self, key: str, val: object):
if key:
self._cache[key] = {'val': val, 'expires_at': datetime.utcnow() + timedelta(seconds=self.expiration_time) if self.expiration_time > 0 else None}
def add_non_existing(self, key: str, val: object):
if key and self. is_enabled():
self.lock.acquire()
cur_val = self.get(key)
if cur_val is None:
self._add(key, val)
self.lock.release()
def get(self, key: str):
if key and self.is_enabled():
val = self._cache.get(key)
if val:
expiration = val.get('expires_at')
if expiration and expiration <= datetime.utcnow():
self.lock.acquire()
del self._cache[key]
self.lock.release()
return None
return val['val']
def delete(self, key):
if key and self.is_enabled():
if key in self._cache:
self.lock.acquire()
del self._cache[key]
self.lock.release()
def keys(self):
return set(self._cache.keys()) if self.is_enabled() else set()
def clean_expired(self):
if self.is_enabled():
for key in self.keys():
self.get(key)

View File

@@ -2,7 +2,7 @@ import time
from threading import Thread
from typing import List
from fpakman.util.cache import Cache
from fpakman_api.util.cache import Cache
import gc

View File

@@ -7,7 +7,7 @@ import re
HTML_RE = re.compile(r'<[^>]+>')
def get_locale_keys(key: str = None):
def get_locale_keys(key: str = None, locale_dir: str = resource.get_path('locale')):
locale_path = None
@@ -19,8 +19,6 @@ def get_locale_keys(key: str = None):
if current_locale:
current_locale = current_locale[0]
locale_dir = resource.get_path('locale')
for locale_file in glob.glob(locale_dir + '/*'):
name = locale_file.split('/')[-1]