BrickTracker/bricktracker/sql_counter.py

61 lines
2.3 KiB
Python
Raw Normal View History

from typing import Tuple
# Some table aliases to make it look cleaner (id: (name, icon))
ALIASES: dict[str, Tuple[str, str]] = {
'bricktracker_metadata_statuses': ('Bricktracker set status metadata', 'checkbox-line'), # noqa: E501
2025-01-27 18:39:35 +01:00
'bricktracker_minifigures': ('Bricktracker minifigures', 'group-line'),
2025-01-28 19:18:51 +01:00
'bricktracker_parts': ('Bricktracker parts', 'shapes-line'),
'bricktracker_set_checkboxes': ('Bricktracker set checkboxes (legacy)', 'checkbox-line'), # noqa: E501
2025-01-31 16:34:52 +01:00
'bricktracker_set_owners': ('Bricktracker set owners', 'checkbox-line'), # noqa: E501
'bricktracker_set_statuses': ('Bricktracker set statuses', 'user-line'), # noqa: E501
'bricktracker_set_storages': ('Bricktracker set storages', 'archive-2-line'), # noqa: E501
2025-01-31 18:08:53 +01:00
'bricktracker_set_tags': ('Bricktracker set tags', 'price-tag-2-line'), # noqa: E501
'bricktracker_sets': ('Bricktracker sets', 'hashtag'),
'bricktracker_wishes': ('Bricktracker wishes', 'gift-line'),
'inventory': ('Parts', 'shapes-line'),
2025-01-28 19:18:51 +01:00
'inventory_old': ('Parts (legacy)', 'shapes-line'),
'minifigures': ('Minifigures', 'group-line'),
2025-01-27 18:39:35 +01:00
'minifigures_old': ('Minifigures (legacy)', 'group-line'),
'missing': ('Missing', 'error-warning-line'),
2025-01-28 19:18:51 +01:00
'missing_old': ('Missing (legacy)', 'error-warning-line'),
2025-01-27 18:39:35 +01:00
'rebrickable_minifigures': ('Rebrickable minifigures', 'group-line'),
2025-01-28 19:18:51 +01:00
'rebrickable_parts': ('Rebrickable parts', 'shapes-line'),
'rebrickable_sets': ('Rebrickable sets', 'hashtag'),
'sets': ('Sets', 'hashtag'),
'sets_old': ('Sets (legacy)', 'hashtag'),
'wishlist': ('Wishlist', 'gift-line'),
'wishlist_old': ('Wishlist (legacy)', 'gift-line'),
}
class BrickCounter(object):
name: str
table: str
icon: str
count: int
legacy: bool
def __init__(
self,
table: str,
/,
*,
name: str | None = None,
icon: str = 'question-line'
):
self.table = table
# Check if there is an alias
if table in ALIASES:
self.name = ALIASES[table][0]
self.icon = ALIASES[table][1]
else:
if name is None:
self.name = table
else:
self.name = name
self.icon = icon
self.legacy = '(legacy)' in self.name