Patches to library for adding books.
.cf are ignored now too.
This commit is contained in:
parent
a5451d8e4a
commit
a609eb0798
|
@ -1,3 +1,4 @@
|
||||||
/build-stamp
|
/build-stamp
|
||||||
/build
|
/build
|
||||||
*.pyc
|
*.pyc
|
||||||
|
*.cf
|
|
@ -5,12 +5,24 @@ from ceo.urwid.widgets import *
|
||||||
from ceo.urwid.window import *
|
from ceo.urwid.window import *
|
||||||
from sqlobject.sqlbuilder import *
|
from sqlobject.sqlbuilder import *
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
from pymazon import PyMazon
|
||||||
|
|
||||||
from ceo import terms
|
from ceo import terms
|
||||||
|
|
||||||
import ceo.library as lib
|
import ceo.library as lib
|
||||||
|
|
||||||
|
CONFIG_FILE = "/etc/csc/library.cf"
|
||||||
|
|
||||||
|
cfg = {}
|
||||||
|
|
||||||
|
def configure():
|
||||||
|
"""
|
||||||
|
Load configuration
|
||||||
|
"""
|
||||||
|
cfg_fields = [ "aws_account_key" ]
|
||||||
|
temp_cfg = conf.read(CONFIG_FILE)
|
||||||
|
conf.check_string_fields(CONFIG_FILE, cfg_fields, temp_cfg)
|
||||||
|
cfg.update(temp_cfg)
|
||||||
|
|
||||||
def library(data):
|
def library(data):
|
||||||
"""
|
"""
|
||||||
|
@ -35,6 +47,12 @@ def search_books(data):
|
||||||
])
|
])
|
||||||
push_window(menu, "Book Search")
|
push_window(menu, "Book Search")
|
||||||
|
|
||||||
|
def add_book(data):
|
||||||
|
"""
|
||||||
|
Add book to library. Also stab Sapphyre.
|
||||||
|
"""
|
||||||
|
push_wizard("Add Book", [BookAddPage])
|
||||||
|
|
||||||
def overdue_books(data):
|
def overdue_books(data):
|
||||||
"""
|
"""
|
||||||
Display a list of all books that are overdue.
|
Display a list of all books that are overdue.
|
||||||
|
@ -83,6 +101,45 @@ def return_book(data):
|
||||||
"""
|
"""
|
||||||
push_wizard("Checkout", [CheckinPage, ConfirmPage])
|
push_wizard("Checkout", [CheckinPage, ConfirmPage])
|
||||||
|
|
||||||
|
class BookAddPage(WizardPanel):
|
||||||
|
"""
|
||||||
|
Thingy for going on screen to add books.
|
||||||
|
"""
|
||||||
|
def init_widgets(self):
|
||||||
|
"""
|
||||||
|
Make some widgets.
|
||||||
|
"""
|
||||||
|
self.isbn = SingleEdit("ISBN: ")
|
||||||
|
|
||||||
|
self.widgets = [
|
||||||
|
urwid.Text("Adding New Book"),
|
||||||
|
urwid.Divider(),
|
||||||
|
self.isbn
|
||||||
|
]
|
||||||
|
|
||||||
|
def check(self):
|
||||||
|
"""
|
||||||
|
Do black magic.
|
||||||
|
"""
|
||||||
|
isbn = self.isbn.get_edit_text()
|
||||||
|
|
||||||
|
try:
|
||||||
|
pymazon = PyMazon(cfg["aws_account_key"])
|
||||||
|
book = pymazon.lookup(isbn)
|
||||||
|
|
||||||
|
currents = lib.Book.select(lib.Book.q.isbn==isbn)
|
||||||
|
if len(currents) == 0:
|
||||||
|
lib.Book(isbn=isbn, title=book.title,
|
||||||
|
year=book.year, publisher=book.publisher)
|
||||||
|
else:
|
||||||
|
sys.stderr.write("Fuck you.\n")
|
||||||
|
set_status("Book already exists, fucker.")
|
||||||
|
|
||||||
|
except PyMazonError, e:
|
||||||
|
sys.stderr.write("Book not added: " + e.message + "\n")
|
||||||
|
set_status("Amazon thinks this is not a book. Take it up with them.")
|
||||||
|
|
||||||
|
|
||||||
class BookSearchPage(WizardPanel):
|
class BookSearchPage(WizardPanel):
|
||||||
"""
|
"""
|
||||||
The page used when searching for books.
|
The page used when searching for books.
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
# /etc/csc/library.cf: Library Config
|
||||||
|
|
||||||
|
library_db_path = /users/office/library.db
|
||||||
|
library_connect_string = "sqlite:///home/mgregson/csc/pyceo/test.db"
|
||||||
|
aws_account_key = "1TNCT5S0RNDV13CJJCG2"
|
Loading…
Reference in New Issue