Compare commits

3 Commits

Author SHA1 Message Date
n07070
6888a69ee7 Close #11 : Make the signature optionnal, lint file 2026-05-17 12:58:05 +02:00
n07070
0f9135707a Add a configuration option for default signature 2026-05-17 12:54:23 +02:00
n07070
9bdd1b4569 Added a comment about linting in the README 2026-05-17 12:54:09 +02:00
3 changed files with 35 additions and 11 deletions

View File

@@ -67,6 +67,18 @@ Your contributions are very much welcome ! You can either request an account on
Please also say if you had a printer to test your code, and which printer you've been using.
### Linting
If you want to contribute code, please make sure to lint the project before commiting. This helps the code keep a general structure, and avoids some commons erros and mistakes.
To do so, you can run the following command :
```
black src/
```
Beware that this command *will* re-write files, so doing `git add <file>` and then `black src/` and then `git diff` to see what the linter has done is a good idea.
## Screenshots
![](src/static/images/homepage.png)

View File

@@ -1,5 +1,8 @@
# Configuration file the LittlePrynter
[defaults]
signature = "Anonymous"
# Printer settings
[printer]
vendor_id = 0x04b8

View File

@@ -44,7 +44,7 @@ from web import Web # Wrapper for the web routes and API
app = Flask(__name__)
socketio = SocketIO(app)
ALLOWED_EXTENSIONS = {"png", "jpg", "jpeg", "gif","webp"}
ALLOWED_EXTENSIONS = {"png", "jpg", "jpeg", "gif", "webp"}
# Load the configuration file
try:
@@ -82,6 +82,7 @@ except FileExistsError:
app.logger.debug("Directory %s already exists.", UPLOAD_FOLDER)
except PermissionError:
app.logger.error("Permission denied: Unable to create %s", UPLOAD_FOLDER)
exit(77)
# Output the config file
if os.getenv("LIPY_DEBUG") is True:
@@ -165,14 +166,20 @@ def api_print_sms():
app.logger.debug("Printing an sms")
try:
txt = request.form["txt"]
sign = request.form["signature"]
except werkzeug.exceptions.BadRequestKeyError as e:
app.logger.error(
"Whoops, no forms submitted or missing signature : %s ", str(e)
)
app.logger.error("Whoops, we are missing the txt input field. : %s ", str(e))
flash("Whoops, no forms submitted or missing signature : %s", str(e))
return redirect(url_for("index"))
try:
# comment: We try to get a signature
sign = request.form["signature"]
except werkzeug.exceptions.BadRequestKeyError as e:
app.logger.warning(
"No signature found for this print, using default signature.", str(e)
)
sign = configuration_file["defaults"]["signature"]
web.print_sms(txt, sign)
return redirect(url_for("index"))
@@ -184,11 +191,13 @@ def api_print_image():
app.logger.debug("Printing an image")
try:
# comment: We try to get a signature
sign = request.form["signature"]
except Exception as e:
app.logger.error("Whoops, no forms submitted or missing signature : %s", str(e))
flash("Whoops, no forms submitted or missing signature : %s ", str(e))
return redirect(url_for("index"))
except werkzeug.exceptions.BadRequestKeyError as e:
app.logger.warning(
"No signature found for this print, using default signature.", str(e)
)
sign = configuration_file["defaults"]["signature"]
if request.method == "POST":
# check if the post request has the file part
@@ -258,7 +267,7 @@ def ratelimit_handler(e):
"Rate limit reached, please slow down :) ( Currently at " + e.description + ")",
"error",
)
app.logger.debug("Rate limit reached %s " , str(e.description))
app.logger.debug("Rate limit reached %s ", str(e.description))
return redirect(url_for("index"))
@@ -274,7 +283,7 @@ def ping():
@socketio.on("ping")
def handle_message(data):
"""Handle sockets pings"""
app.logger.debug("Received : %s " , str(data))
app.logger.debug("Received : %s ", str(data))
socketio.emit("pong", "Pong !")