Compare commits
2 Commits
b34aad1b11
...
0529d3fba0
Author | SHA1 | Date |
---|---|---|
Stranck | 0529d3fba0 | |
Stranck | 1efc0ac030 |
4
api.py
4
api.py
|
@ -113,6 +113,10 @@ async def token_test(request):
|
||||||
|
|
||||||
return response.json({'ok': True, 'message': 'This token is valid :)'})
|
return response.json({'ok': True, 'message': 'This token is valid :)'})
|
||||||
|
|
||||||
|
@bp.get("/ping")
|
||||||
|
async def ping(request):
|
||||||
|
return response.text("pong")
|
||||||
|
|
||||||
@bp.get("/welcome")
|
@bp.get("/welcome")
|
||||||
async def welcome_app(request):
|
async def welcome_app(request):
|
||||||
|
|
||||||
|
|
|
@ -15,30 +15,44 @@ def killSmptClient():
|
||||||
global sslLock
|
global sslLock
|
||||||
global sslTimer
|
global sslTimer
|
||||||
global smptSender
|
global smptSender
|
||||||
|
logger.info(f"[SMPT] killSmptClient: Lock status: {self.updating.locked()}")
|
||||||
sslTimer.cancel()
|
sslTimer.cancel()
|
||||||
sslLock.acquire()
|
sslLock.acquire()
|
||||||
|
exp = None
|
||||||
if(smptSender is not None):
|
if(smptSender is not None):
|
||||||
logger.debug('[SMPT] Closing smpt client')
|
logger.debug('[SMPT] Closing smpt client')
|
||||||
|
try:
|
||||||
smptSender.quit() # it calls close() inside
|
smptSender.quit() # it calls close() inside
|
||||||
|
except Exception as e:
|
||||||
|
exp = e
|
||||||
smptSender = None
|
smptSender = None
|
||||||
sslLock.release()
|
sslLock.release()
|
||||||
|
if(exp != None):
|
||||||
|
raise exp
|
||||||
|
|
||||||
async def openSmptClient():
|
async def openSmptClient():
|
||||||
global sslLock
|
global sslLock
|
||||||
global sslTimer
|
global sslTimer
|
||||||
global sslContext
|
global sslContext
|
||||||
global smptSender
|
global smptSender
|
||||||
|
logger.info(f"[SMPT] openSmptClient: Lock status: {self.updating.locked()}")
|
||||||
sslTimer.cancel()
|
sslTimer.cancel()
|
||||||
sslLock.acquire()
|
sslLock.acquire()
|
||||||
|
exp = None
|
||||||
|
try:
|
||||||
if(smptSender is None):
|
if(smptSender is None):
|
||||||
logger.debug('[SMPT] Opening smpt client')
|
logger.debug('[SMPT] Opening smpt client')
|
||||||
client : smtplib.SMTP = smtplib.SMTP(SMTP_HOST, SMTP_PORT)
|
client : smtplib.SMTP = smtplib.SMTP(SMTP_HOST, SMTP_PORT)
|
||||||
client.starttls(context=sslContext)
|
client.starttls(context=sslContext)
|
||||||
client.login(SMTP_USER, SMTP_PASSWORD)
|
client.login(SMTP_USER, SMTP_PASSWORD)
|
||||||
smptSender = client
|
smptSender = client
|
||||||
|
except Exception as e:
|
||||||
|
exp = e
|
||||||
sslLock.release()
|
sslLock.release()
|
||||||
sslTimer = createTimer()
|
sslTimer = createTimer()
|
||||||
sslTimer.start()
|
sslTimer.start()
|
||||||
|
if(exp != None):
|
||||||
|
raise exp
|
||||||
|
|
||||||
def createTimer():
|
def createTimer():
|
||||||
return Timer(SMPT_CLIENT_CLOSE_TIMEOUT, killSmptClient)
|
return Timer(SMPT_CLIENT_CLOSE_TIMEOUT, killSmptClient)
|
||||||
|
@ -51,9 +65,16 @@ async def sendEmail(message : MIMEMultipart):
|
||||||
message['From'] = f'{EMAIL_SENDER_NAME} <{EMAIL_SENDER_MAIL}>'
|
message['From'] = f'{EMAIL_SENDER_NAME} <{EMAIL_SENDER_MAIL}>'
|
||||||
await openSmptClient()
|
await openSmptClient()
|
||||||
logger.debug(f"[SMPT] Sending mail {message['From']} -> {message['to']} '{message['Subject']}'")
|
logger.debug(f"[SMPT] Sending mail {message['From']} -> {message['to']} '{message['Subject']}'")
|
||||||
|
logger.info(f"[SMPT] sendEmail: Lock status: {self.updating.locked()}")
|
||||||
|
exp = None
|
||||||
sslLock.acquire()
|
sslLock.acquire()
|
||||||
|
try:
|
||||||
smptSender.sendmail(message['From'], message['to'], message.as_string())
|
smptSender.sendmail(message['From'], message['to'], message.as_string())
|
||||||
|
except Exception as e:
|
||||||
|
exp = e
|
||||||
sslLock.release()
|
sslLock.release()
|
||||||
|
if(exp != None):
|
||||||
|
raise exp
|
||||||
|
|
||||||
def render_email_template(title = "", body = ""):
|
def render_email_template(title = "", body = ""):
|
||||||
tpl = Environment(loader=FileSystemLoader("tpl"), autoescape=False).get_template('email/comunication.html')
|
tpl = Environment(loader=FileSystemLoader("tpl"), autoescape=False).get_template('email/comunication.html')
|
||||||
|
|
17
ext.py
17
ext.py
|
@ -367,9 +367,24 @@ class OrderManager:
|
||||||
del cache[code]
|
del cache[code]
|
||||||
orderList.remove(code)
|
orderList.remove(code)
|
||||||
|
|
||||||
|
|
||||||
async def fill_cache(self, check_itemsQuestions=False) -> bool:
|
async def fill_cache(self, check_itemsQuestions=False) -> bool:
|
||||||
# Check cache lock
|
# Check cache lock
|
||||||
|
logger.info(f"[CACHE] Lock status: {self.updating.locked()}")
|
||||||
self.updating.acquire()
|
self.updating.acquire()
|
||||||
|
ret = False
|
||||||
|
exp = None
|
||||||
|
try:
|
||||||
|
ret = await self.fill_cache_INTERNAL(check_itemsQuestions=check_itemsQuestions)
|
||||||
|
except Exception as e:
|
||||||
|
exp = e
|
||||||
|
self.updating.release()
|
||||||
|
logger.info(f"[CACHE] Ret status: {ret}. Exp: {exp}")
|
||||||
|
if(exp != None):
|
||||||
|
raise exp
|
||||||
|
return ret
|
||||||
|
|
||||||
|
async def fill_cache_INTERNAL(self, check_itemsQuestions=False) -> bool:
|
||||||
start_time = time()
|
start_time = time()
|
||||||
logger.info("[CACHE] Filling cache...")
|
logger.info("[CACHE] Filling cache...")
|
||||||
# Index item's ids
|
# Index item's ids
|
||||||
|
@ -412,8 +427,6 @@ class OrderManager:
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.error(f"[CACHE] Error while refreshing cache.\n{traceback.format_exc()}")
|
logger.error(f"[CACHE] Error while refreshing cache.\n{traceback.format_exc()}")
|
||||||
success = False
|
success = False
|
||||||
finally:
|
|
||||||
self.updating.release()
|
|
||||||
|
|
||||||
# Apply new cache if there were no errors
|
# Apply new cache if there were no errors
|
||||||
if(success):
|
if(success):
|
||||||
|
|
Loading…
Reference in New Issue