Skip to content

Commit 4fe6eb9

Browse files
committed
fix: use display scanner name in job summaries
- Universalized device name formatting in tools
1 parent 365f382 commit 4fe6eb9

4 files changed

Lines changed: 17 additions & 17 deletions

File tree

src/bot/routers/printing/print_settings/printer_setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
PrinterCallback,
1919
discard_job_settings_message,
2020
format_configure_message,
21-
format_printer_status,
21+
format_printer_name,
2222
)
2323
from src.bot.routers.tools import ensure_same_structural_message
2424
from src.config_schema import Printer
@@ -64,7 +64,7 @@ def printers_keyboard(statuses_and_printers: list[PrinterStatus | Printer]) -> I
6464
for status_or_printer in statuses_and_printers:
6565
if isinstance(status_or_printer, PrinterStatus):
6666
button = InlineKeyboardButton(
67-
text=format_printer_status(status_or_printer),
67+
text=format_printer_name(status_or_printer),
6868
callback_data=PrinterCallback(cups_name=status_or_printer.printer.cups_name).pack(),
6969
)
7070
elif isinstance(status_or_printer, Printer):

src/bot/routers/printing/printing_tools.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ def format_configure_message(
5151
)
5252
}\n"
5353

54-
caption += html.bold(f"🖨 {format_printer_status(status)}\n")
54+
caption += html.bold(f"🖨 {format_printer_name(status)}\n")
5555

5656
layout = {"1": "1x1", "2": "1x2", "4": "2x2", "6": "2x3", "9": "3x3", "16": "4x4"}.get(data["number_up"])
5757
sides = "One side" if data["sides"] == "one-sided" else "Both sides"
58-
display_printer = button_text_align_left(f"✏️ {status.printer.display_name if status else '—'}")
58+
display_printer = button_text_align_left(f"✏️ {format_printer_name(status, False)}")
5959
display_copies = button_text_align_left(f"✏️ {data['copies']}")
6060
display_page_ranges = button_text_align_left(f"✏️ {data['page_ranges'] if data['page_ranges'] else 'all'}")
6161
display_layout = button_text_align_left(f"✏️ {layout}")
@@ -92,10 +92,12 @@ def format_configure_message(
9292
return caption, markup
9393

9494

95-
def format_printer_status(status: PrinterStatus) -> str:
95+
def format_printer_name(status: PrinterStatus | None, decorated_with_status=True) -> str:
9696
if not status:
9797
return "—"
9898
show_text = f"{status.printer.display_name}"
99+
if not decorated_with_status:
100+
return show_text
99101
if status.offline:
100102
show_text += ", ☠️ Offline"
101103
elif status.toner_percentage is not None and status.paper_percentage is not None:

src/bot/routers/scanning/scan_settings/scanner_setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from src.bot.routers.printing.printing_tools import discard_job_settings_message
1111
from src.bot.routers.scanning.scan_settings.mode_setup import start_scan_mode_setup
1212
from src.bot.routers.scanning.scanning_states import ScanWork
13-
from src.bot.routers.scanning.scanning_tools import ScanConfigureCallback, ScannerCallback, format_scanner_status
13+
from src.bot.routers.scanning.scanning_tools import ScanConfigureCallback, ScannerCallback, format_scanner_name
1414
from src.bot.routers.tools import ensure_same_structural_message
1515
from src.config_schema import Scanner
1616
from src.modules.scanning.entity_models import ScannerStatus
@@ -48,7 +48,7 @@ def scanners_keyboard(statuses_and_scanners: list[ScannerStatus | Scanner]) -> I
4848
for status_or_scanner in statuses_and_scanners:
4949
if isinstance(status_or_scanner, ScannerStatus):
5050
button = InlineKeyboardButton(
51-
text=format_scanner_status(status_or_scanner),
51+
text=format_scanner_name(status_or_scanner),
5252
callback_data=ScannerCallback(name=status_or_scanner.scanner.name).pack(),
5353
)
5454
elif isinstance(status_or_scanner, Scanner):

src/bot/routers/scanning/scanning_tools.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ def format_configure_message(data: FSMData, scanner_status: ScannerStatus | None
3939
)
4040
text += "You will be able to scan multiple pages one-by-one.\n\n"
4141

42-
text += "📠 " + html.bold(format_scanner_status(scanner_status))
42+
text += "📠 " + html.bold(format_scanner_name(scanner_status))
4343

4444
display_mode = button_text_align_left(f"✏️ {f'{data["mode"].capitalize()} Scan' if data['mode'] else '—'}")
45-
display_scanner = button_text_align_left(f"✏️ {scanner_status.scanner.display_name if scanner_status else '—'}")
45+
display_scanner = button_text_align_left(f"✏️ {format_scanner_name(scanner_status, False)}")
4646
display_quality = button_text_align_left(f"✏️ {data['quality']} DPI")
4747
display_sides = button_text_align_left(f"✏️ {'One side' if data['scan_sides'] == 'false' else 'Both sides'}")
4848
display_crop = button_text_align_left(f"✏️ {'Disabled' if data['crop'] == 'false' else 'Enabled'}")
@@ -80,15 +80,13 @@ def format_configure_message(data: FSMData, scanner_status: ScannerStatus | None
8080
return text, markup
8181

8282

83-
def format_scanner_status(status: ScannerStatus) -> str:
83+
def format_scanner_name(status: ScannerStatus | None, decorated_with_status=True) -> str:
8484
if not status:
8585
return "—"
86-
else:
87-
show_text = f"{status.scanner.display_name}"
88-
if status.offline:
89-
return show_text + ", ☠️ offline"
90-
else:
91-
return show_text + ", ✔️ online"
86+
show_text = f"{status.scanner.display_name}"
87+
if not decorated_with_status:
88+
return show_text
89+
return show_text + f", {"☠️ offline" if status.offline else "✔️ online"}"
9290

9391

9492
def format_scanning_message(
@@ -110,7 +108,7 @@ def format_scanning_message(
110108

111109

112110
def scan_job_summary(data: FSMData, scanner_status: ScannerStatus | None) -> str:
113-
display_scanner = html.bold(html.quote(scanner_status.scanner.name if scanner_status else "—"))
111+
display_scanner = html.bold(html.quote(format_scanner_name(scanner_status, False)))
114112
display_quality = html.bold(html.quote(f"{data['quality']} DPI"))
115113
display_sides = html.bold("One side" if data["scan_sides"] == "false" else "Both sides")
116114
display_crop = html.bold("Disabled" if data["crop"] == "false" else "Enabled")

0 commit comments

Comments
 (0)