diff --git a/layouter.py b/layouter.py index b719642..a8d0583 100644 --- a/layouter.py +++ b/layouter.py @@ -49,7 +49,7 @@ class DriveData: @dataclasses.dataclass class DriveDataJson: state: str - connection_type: str + contype: str fam: str name: str cap: int @@ -153,17 +153,19 @@ def format_to_printable(drive): cut_string(30, str(datetime.timedelta(seconds=drive.shred_duration)), "end"), ) - def draw_text(drawable, printable_data, font_regular, font_bold, font_bold_bigger): """Draws formatted text with Cycles and Errors on one row.""" - + y_start = 4 line_height = 26 label_x = TEXT_X_OFFSET value_offset = 115 right_field_spacing = 200 # Horizontal gap between Cycles and Errors x_capacity = 520 y_capacity = 142 - y_start = 4 + x_connection_type = 600 + y_connection_type = y_start + y_spacing_connection_type = 25 + # Serial Number drawable.text((label_x, y_start), "Serial:", fill=0, font=font_bold) @@ -250,6 +252,49 @@ def draw_text(drawable, printable_data, font_regular, font_bold, font_bold_bigge font=font_bold_bigger, ) + if (printable_data.connectiontype == "sata"): + drawable.text( + (x_connection_type, y_connection_type), + "⬤ SATA", + fill=0, + font=font_regular, + ) + + drawable.text( + (x_connection_type, y_connection_type+y_spacing_connection_type), + "◯ NVME", + fill=0, + font=font_regular, + ) + elif (printable_data.connectiontype == "nvme"): + drawable.text( + (x_connection_type, y_connection_type), + "◯ SATA", + fill=0, + font=font_regular, + ) + + drawable.text( + (x_connection_type, y_connection_type+y_spacing_connection_type), + "⬤ NVME", + fill=0, + font=font_regular, + ) + else: + drawable.text( + (x_connection_type, y_connection_type), + "◯ SATA", + fill=0, + font=font_regular, + ) + + drawable.text( + (x_connection_type, y_connection_type+y_spacing_connection_type), + "◯ NVME", + fill=0, + font=font_regular, + ) + def draw_qr_code(image, data): """ @@ -274,7 +319,6 @@ def draw_qr_code(image, data): region = (5, 5, 5 + QR_CODE_SIZE, 5 + QR_CODE_SIZE) image.paste(qr_img, box=region) - def draw_outline(drawable, margin, width, output_width, output_height): """ Draws a rectangular outline on the drawable canvas. @@ -303,14 +347,13 @@ def draw_outline(drawable, margin, width, output_width, output_height): for line in lines: drawable.line(line, fill=0, width=width) - def generate_image(drive, rehdd_info, output_file): """Generates an image containing drive data and a QR code.""" try: drive_json = DriveDataJson( state=drive.drive_state, - connection_type=drive.drive_connection_type, + contype=drive.drive_connection_type, fam=drive.modelfamily, name=drive.modelname, cap=drive.capacity, diff --git a/output.png b/output.png index 7f9d9dc..6d01057 100644 Binary files a/output.png and b/output.png differ