Move old scanner scripts to `worblehat/services`

This commit is contained in:
Oystein Kristoffer Tveit 2023-05-04 16:20:15 +02:00
parent 4ac110f527
commit e04d558b3a
Signed by: oysteikt
GPG Key ID: 9F2F7D8250F35146
3 changed files with 9 additions and 69 deletions

View File

@ -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)