Move old scanner scripts to `worblehat/services`
This commit is contained in:
parent
4ac110f527
commit
e04d558b3a
|
@ -1,60 +0,0 @@
|
||||||
"""
|
|
||||||
This script is part of the initial database construction for Worblehat.
|
|
||||||
The idea is that the script will:
|
|
||||||
* Prompt the user for which bookcase and shelf we're scanning
|
|
||||||
* Scan ISBN's until the user says we're done
|
|
||||||
* Also take a note for each ISBN
|
|
||||||
* Dump a csv with the columns: ISBN, bookcase, shelf, note
|
|
||||||
"""
|
|
||||||
|
|
||||||
from isbnlib import is_isbn10, is_isbn13
|
|
||||||
|
|
||||||
def validate_isbn(isbn):
|
|
||||||
if len(isbn) == 10:
|
|
||||||
return is_isbn10(isbn)
|
|
||||||
elif len(isbn) == 13:
|
|
||||||
return is_isbn13(isbn)
|
|
||||||
elif len(isbn) == 1:
|
|
||||||
return isbn
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def write_csv(bookcase, shelf, isbns, notes, fname="isbns"):
|
|
||||||
f = open(fname + "_" + bookcase + "_" + shelf + ".csv", "w")
|
|
||||||
f.write("isbn, note, bookcase, shelf\n")
|
|
||||||
|
|
||||||
for isbn, note in zip(isbns, notes):
|
|
||||||
f.write(f"{isbn}, {note}, {bookcase}, {shelf}\n")
|
|
||||||
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
bookcase = input("Bookcase: ")
|
|
||||||
shelf = input("Shelf: ")
|
|
||||||
|
|
||||||
should_get_isbn = True
|
|
||||||
isbns = []
|
|
||||||
notes = []
|
|
||||||
i = 0
|
|
||||||
print("Input q as ISBN to quit.")
|
|
||||||
while should_get_isbn:
|
|
||||||
i += 1
|
|
||||||
has_valid_isbn = False
|
|
||||||
while not has_valid_isbn:
|
|
||||||
isbn = input(f"ISBN no. {i}: ")
|
|
||||||
has_valid_isbn = validate_isbn(isbn)
|
|
||||||
if not has_valid_isbn:
|
|
||||||
print("Invalid ISBN, trying again.")
|
|
||||||
|
|
||||||
note = input(f"Note for ISBN {isbn}: ")
|
|
||||||
|
|
||||||
if len(isbn) > 1:
|
|
||||||
isbns.append(isbn)
|
|
||||||
notes.append(note)
|
|
||||||
else:
|
|
||||||
should_get_isbn = False
|
|
||||||
|
|
||||||
print(isbns)
|
|
||||||
print(notes)
|
|
||||||
|
|
||||||
write_csv(bookcase, shelf, isbns, notes)
|
|
Loading…
Reference in New Issue