aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: ec3dcb3c79b130572e4e4cfcfd5e23928e89c94f (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
<!--
.. File: README.md
.. Author: bgstack15
.. SPDX-License-Identifier: GPL-3.0-only
.. Startdate: 2024-07-06-7 07:51
.. Title: README for library_info project
.. Project: library_info
.. Purpose: Document the project
.. History:
.. Usage: Read it.
.. Reference: See heading References
.. Improve:
.. Dependencies:
-->

# README for `library_info` project
This project is designed to make it easier for me to view the various items I have checked out from the libraries I visit. I have multiple accounts, and it is annoying to log in and out of multiple accounts. So I made my own status page.

# Usage

## Configuring
See [config.py.example](config.py.example).

## Example usage to generate a webpage
You could run this in cron. It wouldn't need to be run more than once a day.

    ./library_info_cli.py --output html > /var/www/html/library.html

## Serving with DataTables
To take advantage of [DataTables JS library](https://datatables.net/), you need to serve files in this directory layout:

    .
    * library.html
    | -- DataTables
         |-- datatables.min.css
         `-- datatables.min.js

# Extending `library_info`
You can write your own plugin for deriving checkout items from a library website. If your library provides a public API, I don't believe you. See [libraries/base.py](libraries/base.py) or existing plugins as an example. The name of the file is part of the class name used in `config.py`.

Two plugins exist for some ILSes I have already encountered:

* aspen
* polaris

# Design notes
Columns for items checked out:

* title
* format
* picture
* barcode
* due date
* possible renewal date
* how many times renewed already
* when checked out

### Reserved items

* position in line
* date placed
* format
* title
* picture
* pickup location
* status

plugin-based, so I can write a plugins/aspen.py with some standard format output.

# Improvements
I still need to implement these features.
bgstack15