mirror of
https://github.com/th3r00t/pyShelf.git
synced 2026-04-28 01:59:35 -04:00
ui gets v# from config
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
#!/usr/bin/python
|
||||
import sqlite3
|
||||
|
||||
import psycopg2
|
||||
from psycopg2 import Error
|
||||
|
||||
from .config import Config
|
||||
|
||||
# db_pointer = Config().catalogue_db
|
||||
@@ -102,3 +100,29 @@ class Storage:
|
||||
"""
|
||||
self.db.close()
|
||||
return True
|
||||
|
||||
def make_collections(self):
|
||||
_q = "SELECT id,file_name FROM books"
|
||||
self.cursor.execute(_q)
|
||||
_set = self.cursor.fetchall()
|
||||
for book in _set:
|
||||
path = self.config.book_path+'/'
|
||||
_collections = []
|
||||
_pathing = book[1].split(path)[1].split('/')
|
||||
_pathing.pop(0);_pathing.pop(-1)
|
||||
for _p in _pathing:
|
||||
_s = _p.replace("'","")
|
||||
_q_x = """
|
||||
SELECT id FROM collections where collection='%s' AND book_id_id=%s
|
||||
"""%(_s,book[0])
|
||||
try:
|
||||
self.cursor.execute(_q_x)
|
||||
if len(self.cursor.fetchall()) < 1:
|
||||
self.cursor.execute(
|
||||
"""INSERT INTO collections (collection, book_id_id) VALUES ('%s',%s)"""%(_s,book[0])
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
_collections.append(_p)
|
||||
self.db.commit()
|
||||
self.close()
|
||||
|
||||
23
src/backend/pyShelf_MakeCollections.py
Executable file
23
src/backend/pyShelf_MakeCollections.py
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/python
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
from .lib.config import Config
|
||||
from .lib.library import Catalogue
|
||||
from .lib.pyShelf import InitFiles
|
||||
from .lib.storage import Storage
|
||||
|
||||
sys.path.append(os.path.abspath("."))
|
||||
|
||||
|
||||
def MakeCollections(root):
|
||||
_t1 = time.time()
|
||||
config = Config(root) # Get configuration settings
|
||||
# InitFiles(config.file_array) # Initialize file system
|
||||
_storage = Storage(config)
|
||||
_storage.make_collections()
|
||||
_t2 = time.time()
|
||||
scan_time = round(_t2 - _t1)
|
||||
print("Collections Made.")
|
||||
print("Time %s seconds" % scan_time)
|
||||
@@ -19,7 +19,6 @@ def execute_scan(root):
|
||||
_t1 = time.time()
|
||||
config = Config(root) # Get configuration settings
|
||||
InitFiles(config.file_array) # Initialize file system
|
||||
|
||||
Storage(config).check_ownership()
|
||||
catalogue = Catalogue(config) # Open the Catalogue
|
||||
catalogue.import_books()
|
||||
|
||||
25
src/interface/migrations/0004_collections.py
Normal file
25
src/interface/migrations/0004_collections.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 3.0.2 on 2020-02-04 20:22
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('interface', '0003_auto_20200101_0447'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Collections',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('collection', models.CharField(max_length=255)),
|
||||
('book_id', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='interface.Books')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'collections',
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -30,6 +30,15 @@ class Books(models.Model):
|
||||
progress = models.IntegerField(null=True)
|
||||
file_name = models.CharField(max_length=255, null=False)
|
||||
|
||||
class Collections(models.Model):
|
||||
|
||||
class Meta:
|
||||
db_table = "collections"
|
||||
def __str__(self):
|
||||
return self.collection
|
||||
collection = models.CharField(max_length=255)
|
||||
book_id = models.ForeignKey(Books, on_delete=models.PROTECT)
|
||||
|
||||
def get_absolute_url(self):
|
||||
"""Returns the url to access a particular instance of MyModelName."""
|
||||
return reverse("model-detail-view", args=[str(self.id)])
|
||||
|
||||
2
src/interface/templates/index.html
vendored
2
src/interface/templates/index.html
vendored
@@ -18,7 +18,7 @@
|
||||
<div id="app">
|
||||
<div class="app_header" >
|
||||
<div class="app_hdr">
|
||||
<h1 class="app_hdr shadow">pyShelf 0.4.1</h1>
|
||||
<h1 class="app_hdr shadow">pyShelf {{Version}}</h1>
|
||||
</div>
|
||||
<div class="app_slogan">
|
||||
<h3 class="app_slogan shadow">"An elegant tool... for a more civilized age."</h3>
|
||||
|
||||
2
src/interface/templates/search.html
vendored
2
src/interface/templates/search.html
vendored
@@ -18,7 +18,7 @@
|
||||
<div id="app">
|
||||
<div class="app_header" >
|
||||
<div class="app_hdr">
|
||||
<h1 class="app_hdr shadow">pyShelf 0.4.1</h1>
|
||||
<h1 class="app_hdr shadow">pyShelf {{Version}}</h1>
|
||||
</div>
|
||||
<div class="app_slogan">
|
||||
<h3 class="app_slogan shadow">"An elegant tool... for a more civilized age."</h3>
|
||||
|
||||
@@ -6,17 +6,22 @@ from django.db import models
|
||||
from django.http import JsonResponse
|
||||
from django.shortcuts import HttpResponse, render #render_to_response
|
||||
from django.utils.text import slugify
|
||||
|
||||
from pathlib import Path
|
||||
from .models import Books
|
||||
from backend.lib.config import Config
|
||||
|
||||
|
||||
config = Config(Path('../'))
|
||||
def index(request):
|
||||
"""
|
||||
Return template index
|
||||
"""
|
||||
_set = 1
|
||||
return render(
|
||||
request, "index.html", {"Books": book_set(20, _set), "Set": str(_set)}
|
||||
request, "index.html", {
|
||||
"Books": book_set(20, _set),
|
||||
"Set": str(_set),
|
||||
"Version": config.VERSION
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -29,7 +34,11 @@ def next_page(request, bookset):
|
||||
except Exception:
|
||||
_set = 1
|
||||
return render(
|
||||
request, "index.html", {"Books": book_set(None, _set), "Set": str(_set)}
|
||||
request, "index.html", {
|
||||
"Books": book_set(None, _set),
|
||||
"Set": str(_set),
|
||||
"Version": config.VERSION
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -46,7 +55,11 @@ def prev_page(request, bookset):
|
||||
except Exception:
|
||||
_set = 1
|
||||
return render(
|
||||
request, "index.html", {"Books": book_set(None, _set), "Set": str(_set)}
|
||||
request, "index.html", {
|
||||
"Books": book_set(None, _set),
|
||||
"Set": str(_set),
|
||||
"Version": config.VERSION
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -56,7 +69,10 @@ def search(request, query=None, _set=1, _limit=None):
|
||||
"""
|
||||
_set = int(_set)
|
||||
if query is None:
|
||||
return render(request, "index.html", {"Books": None})
|
||||
return render(request, "index.html", {
|
||||
"Books": None,
|
||||
"Version": config.VERSION
|
||||
})
|
||||
if _limit is None:
|
||||
_limit = 20 ## TODO set to user defaults
|
||||
if _set < 1:
|
||||
@@ -69,7 +85,13 @@ def search(request, query=None, _set=1, _limit=None):
|
||||
return render(
|
||||
request,
|
||||
"search.html",
|
||||
{"Books": _r, "Query": query, "Set": _set, "len_results": search_len},
|
||||
{
|
||||
"Books": _r,
|
||||
"Query": query,
|
||||
"Set": _set,
|
||||
"len_results": search_len,
|
||||
"Version": config.VERSION
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user