update files, bring to latest code

This commit is contained in:
WorldTeacher
2024-07-18 11:57:20 +02:00
parent 891eb3e90a
commit ae2e588780
14 changed files with 686 additions and 60 deletions

View File

@@ -1,3 +1,4 @@
__help__ = "This package contains the logic of the application."
from .database import Database
from .catalogue import Catalogue
from .catalogue import Catalogue
from .backup import Backup

View File

@@ -3,7 +3,7 @@ from bs4 import BeautifulSoup
from src import config
from src.schemas import Book
URL = "https://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?lookfor={}+&type=AllFields&limit=10&sort=py+desc%2C+title"
URL = 'https://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?lookfor="{}"+&type=AllFields&limit=10&sort=py+desc%2C+title'
BASE = "https://rds.ibs-bw.de"

View File

@@ -3,7 +3,7 @@ import os
from src import config
from pathlib import Path
from src.schemas import USERS, MEDIA, LOANS, User, Book
from src.utils.stringtodate import stringToDate
class Database:
def __init__(self, db_path: str = None):
@@ -143,6 +143,32 @@ class Database:
self.close_connection(conn)
return cursor.lastrowid
def getMediaSimilarSignatureByID(self, media_id) -> list[Book]:
query = f"SELECT * FROM media WHERE id = '{media_id}'"
conn = self.connect()
cursor = conn.cursor()
cursor.execute(query)
result = cursor.fetchone()
signature = result[1]
print(signature)
query = f"SELECT * FROM media WHERE signature LIKE '%{signature}%'"
cursor.execute(query)
result = cursor.fetchall()
self.close_connection(conn)
data = []
for res in result:
data.append(
Book(
signature=res[1],
isbn=res[2],
ppn=res[3],
title=res[4],
database_id=res[0],
)
)
return data
def getMedia(self, media_id):
query = f"SELECT * FROM media WHERE id = '{media_id}'"
conn = self.connect()
@@ -159,6 +185,25 @@ class Database:
)
return res
def getAllMedia(self, user_id):
# get all books that have the user id in the loans table
query = f"SELECT * FROM loans WHERE user_id = '{user_id}'"
conn = self.connect()
cursor = conn.cursor()
cursor.execute(query)
result = cursor.fetchall()
self.close_connection(conn)
books = []
for res in result:
book = self.getMedia(res[2])
book.loan_from = res[3]
book.loan_to = res[4]
book.returned = res[5]
book.returned_date = res[6]
books.append(book)
print(book)
return books
def checkMediaExists(self, media):
conn = self.connect()
cursor = conn.cursor()
@@ -182,8 +227,8 @@ class Database:
self.close_connection(conn)
return result
def returnMedia(self, media_id):
query = f"UPDATE loans SET returned = 1 WHERE media_id = '{media_id}'"
def returnMedia(self, media_id, returndate):
query = f"UPDATE loans SET returned = 1, returned_date = '{returndate}' WHERE media_id = '{media_id}' AND returned = 0"
conn = self.connect()
cursor = conn.cursor()
cursor.execute(query)
@@ -222,3 +267,12 @@ class Database:
self.close_connection(conn)
if result is not None:
return result[0]
def extendLoanDuration(self, signature, newDate):
book_id = self.checkMediaExists(Book(signature=signature))
query = f"UPDATE loans SET return_date = '{newDate}' WHERE media_id = '{book_id[0]}' AND returned = 0"
conn = self.connect()
cursor = conn.cursor()
cursor.execute(query)
conn.commit()
self.close_connection(conn)