# File: library_info_lib.py # Author: bgstack15 # Startdate: 2024-07-06-7 08:04 # SPDX-License-Identifier: GPL-3.0-only # Title: Library for library_info # Project: library_info # Purpose: program library that pulls info from book library websites # History: # Usage: # Reference: # Improve: # add library card expiration date # add reserved item status # Dependencies: import sys, os import libraries from config import config def get_all_configitems(full_images = True, verbose = False): # get all checked out items checkouts = [] reservations = [] card_expiration_dates = [] for i in config: #print(f"Found config entry {i}") instance = i["class"](i) checkouts += instance.get_checkouts(verbose = verbose) reservations += instance.get_reservations(verbose=verbose) card_expiration_dates.append( { "patron": instance.alias, "expires": instance.card_expires } ) if not full_images: checkouts = trim_full_images(checkouts) reservations = trim_full_images(reservations) return checkouts, reservations, card_expiration_dates def get_single_configitem(alias = None, full_images = True, verbose = False): checkouts = [] reservations = [] card_expiration_dates = [] this_config = [i for i in config if i["alias"] == alias] if not this_config: raise Exception(f"Alias not found: {alias}") # so now we know we have this_config: for i in this_config: instance = i["class"](i) checkouts += instance.get_checkouts(verbose=verbose) reservations += instance.get_reservations(verbose=verbose) card_expiration_dates.append( { "patron": instance.alias, "expires": instance.card_expires } ) if not full_images: checkouts = trim_full_images(checkouts) reservations = trim_full_images(reservations) return checkouts, reservations, card_expiration_dates def trim_full_images(checkouts = []): output = [] for i in checkouts: try: i.pop("img") except: pass output.append(i) return output