Skip to content

Commit 46d1acd

Browse files
committed
new global exit handler (hotfix)
1 parent ca282ae commit 46d1acd

File tree

3 files changed

+29
-16
lines changed

3 files changed

+29
-16
lines changed

clippy/main.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from handlers.cache_handler import commit_cache, parse_cache, stash_cache
2828
from handlers.print_handler import print_progress, human_readable_size
2929
from handlers.creds_handler import load_username, load_password
30+
from handlers.exit_handler import ExitHandler
3031

3132
"""
3233
NOVA Clippy
@@ -66,7 +67,7 @@
6667
def version_callback(value: bool):
6768
if value:
6869
print(f"Clippy version {__version__}")
69-
raise typer.Exit()
70+
raise ExitHandler(0)
7071

7172
@app.command()
7273
def single(
@@ -134,7 +135,7 @@ def single(
134135

135136
check_for_save_credentials()
136137

137-
raise typer.Exit()
138+
raise ExitHandler(0)
138139

139140
@app.callback(invoke_without_command=True)
140141
@app.command(help="Sincroniza os ficheiros de todas as cadeiras de um ano lectivo. [default]")
@@ -178,10 +179,10 @@ def batch(ctx: typer.Context,
178179
years = parse_years(userID)
179180
if year != 0 and year not in years.values:
180181
log.error("O utilizador não tem cadeiras inscritas no ano solicitado.")
181-
raise typer.Exit()
182+
raise ExitHandler(0)
182183
elif len(years)<1:
183184
log.error("Não foram encontrados anos lectivos nos quais o utilizador está inscrito.")
184-
raise typer.Exit()
185+
raise ExitHandler(0)
185186
elif len(years)==1:
186187
year = list(years.values())[0] # get index 0
187188
log.info(f"Encontrado apenas um ano lectivo ({year}).")
@@ -235,7 +236,7 @@ def batch(ctx: typer.Context,
235236

236237
check_for_save_credentials()
237238

238-
raise typer.Exit()
239+
raise ExitHandler(0)
239240

240241
def start_routine(debug) -> int:
241242
"""Sets up the program environment and logs in.
@@ -456,11 +457,5 @@ def check_for_updates():
456457
app()
457458
except Exception as e:
458459
if isinstance(e, typer.Exit):
459-
if getattr(sys, 'frozen', False):
460-
log.debug("A correr a partir de EXE!")
461-
input("Pressiona ENTER para terminar o programa.")
462-
else:
463-
log.debug("A correr a partir de script, a terminar o programa automaticamente...")
464-
raise typer.Exit()
465-
else:
466-
log.exception("Ocorreu um erro.\n{e}")
460+
log.exception("Ocorreu um erro.\n{e}")
461+
raise ExitHandler(1)

handlers/exit_handler.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import logging as log
2+
import typer
3+
import sys
4+
5+
class ExitHandler(Exception):
6+
"""
7+
Raised when the retrieved HTML page is empty.
8+
9+
Attributes:
10+
message (str): A custom error message (optional).
11+
"""
12+
def __init__(self, code: int):
13+
if getattr(sys, 'frozen', False):
14+
log.debug("A correr a partir de EXE!")
15+
input("Pressiona ENTER para terminar o programa.")
16+
else:
17+
log.debug("A correr a partir de script, a terminar o programa automaticamente...")
18+
raise typer.Exit(code)

modules/EmptyHTMLException.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import logging as log
22
from handlers.creds_handler import reset_login
3-
import typer
3+
from handlers.exit_handler import ExitHandler
44

55
class EmptyHTMLException(Exception):
66
"""
@@ -9,7 +9,7 @@ class EmptyHTMLException(Exception):
99
Attributes:
1010
message (str): A custom error message (optional).
1111
"""
12-
def __init__(self, message="A página obtida está vazia. A(s) cadeira(s) solicitada(s) não existe(m) ou servidor pode estar com problemas técnicos. Verifique se os parâmetros introduzidos estão correctos e tente novamente mais tarde."):
12+
def __init__(self, message="A página obtida está vazia. A(s) cadeira(s) solicitada(s) não existe(m) ou o servidor pode estar com problemas técnicos. Verifique se os parâmetros introduzidos estão correctos e tente novamente mais tarde."):
1313
reset_login()
1414
log.error(message)
15-
raise typer.Exit(1)
15+
raise ExitHandler(0)

0 commit comments

Comments
 (0)