aboutsummaryrefslogtreecommitdiff
path: root/library_info_lib.py
blob: c67c44a144e53604129a99d9a240a7a5e37775cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 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
bgstack15