mirror of
https://github.com/ajurna/cbwebreader.git
synced 2025-12-06 06:17:17 +00:00
removed redundant directory scan.
This commit is contained in:
@@ -27,7 +27,7 @@ class Setting(models.Model):
|
|||||||
|
|
||||||
class Directory(models.Model):
|
class Directory(models.Model):
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100)
|
||||||
parent = models.ForeignKey('Directory', null=True, blank=True)
|
parent = models.ForeignKey('Directory', null=True, blank=True, on_delete=models.CASCADE)
|
||||||
selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True)
|
selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@@ -73,7 +73,7 @@ class Directory(models.Model):
|
|||||||
class ComicBook(models.Model):
|
class ComicBook(models.Model):
|
||||||
file_name = models.CharField(max_length=100, unique=False)
|
file_name = models.CharField(max_length=100, unique=False)
|
||||||
date_added = models.DateTimeField(auto_now_add=True)
|
date_added = models.DateTimeField(auto_now_add=True)
|
||||||
directory = models.ForeignKey(Directory, blank=True, null=True)
|
directory = models.ForeignKey(Directory, blank=True, null=True, on_delete=models.CASCADE)
|
||||||
selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True)
|
selector = models.UUIDField(unique=True, default=uuid.uuid4, db_index=True)
|
||||||
version = models.IntegerField(default=1)
|
version = models.IntegerField(default=1)
|
||||||
|
|
||||||
@@ -309,7 +309,7 @@ class ComicBook(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
class ComicPage(models.Model):
|
class ComicPage(models.Model):
|
||||||
Comic = models.ForeignKey(ComicBook)
|
Comic = models.ForeignKey(ComicBook, on_delete=models.CASCADE)
|
||||||
index = models.IntegerField()
|
index = models.IntegerField()
|
||||||
page_file_name = models.CharField(max_length=100, unique=False)
|
page_file_name = models.CharField(max_length=100, unique=False)
|
||||||
content_type = models.CharField(max_length=30)
|
content_type = models.CharField(max_length=30)
|
||||||
@@ -317,7 +317,7 @@ class ComicPage(models.Model):
|
|||||||
|
|
||||||
class ComicStatus(models.Model):
|
class ComicStatus(models.Model):
|
||||||
user = models.ForeignKey(User, unique=False, null=False)
|
user = models.ForeignKey(User, unique=False, null=False)
|
||||||
comic = models.ForeignKey(ComicBook, unique=False, null=False)
|
comic = models.ForeignKey(ComicBook, unique=False, null=False, on_delete=models.CASCADE)
|
||||||
last_read_page = models.IntegerField(default=0)
|
last_read_page = models.IntegerField(default=0)
|
||||||
unread = models.BooleanField(default=True)
|
unread = models.BooleanField(default=True)
|
||||||
finished = models.BooleanField(default=False)
|
finished = models.BooleanField(default=False)
|
||||||
|
|||||||
@@ -182,26 +182,3 @@ def get_ordered_dir_list(folder):
|
|||||||
else:
|
else:
|
||||||
files.append(item)
|
files.append(item)
|
||||||
return sorted(directories) + sorted(files)
|
return sorted(directories) + sorted(files)
|
||||||
|
|
||||||
|
|
||||||
def scan_directory(directory=False):
|
|
||||||
"""
|
|
||||||
TODO: Increase efficiency of this. reduce amount of queries.
|
|
||||||
:type directory: Directory
|
|
||||||
"""
|
|
||||||
base_dir = Setting.objects.get(name='BASE_DIR').value
|
|
||||||
# filter(os.path.isdir, os.listdir(os.getcwd()))
|
|
||||||
if directory:
|
|
||||||
full_path = path.join(base_dir, directory.path)
|
|
||||||
else:
|
|
||||||
full_path = base_dir
|
|
||||||
dir_list = listdir(full_path)
|
|
||||||
directorys = [d for d in dir_list if path.isdir(path.join(full_path, d))]
|
|
||||||
for direct in directorys:
|
|
||||||
if directory:
|
|
||||||
d, created = Directory.objects.get_or_create(name=direct,
|
|
||||||
parent=directory)
|
|
||||||
else:
|
|
||||||
d, created = Directory.objects.get_or_create(name=direct)
|
|
||||||
if created:
|
|
||||||
d.save()
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from django.views.decorators.http import require_POST
|
|||||||
from .forms import SettingsForm, AccountForm, EditUserForm, AddUserForm, InitialSetupForm
|
from .forms import SettingsForm, AccountForm, EditUserForm, AddUserForm, InitialSetupForm
|
||||||
from .models import Setting, ComicBook, ComicStatus, Directory, ComicPage
|
from .models import Setting, ComicBook, ComicStatus, Directory, ComicPage
|
||||||
from .util import generate_breadcrumbs_from_path, generate_breadcrumbs_from_menu, \
|
from .util import generate_breadcrumbs_from_path, generate_breadcrumbs_from_menu, \
|
||||||
generate_title_from_path, Menu, generate_directory, scan_directory
|
generate_title_from_path, Menu, generate_directory
|
||||||
|
|
||||||
|
|
||||||
@ensure_csrf_cookie
|
@ensure_csrf_cookie
|
||||||
@@ -34,8 +34,6 @@ def comic_list(request, directory_selector=False):
|
|||||||
else:
|
else:
|
||||||
directory = False
|
directory = False
|
||||||
|
|
||||||
scan_directory(directory)
|
|
||||||
|
|
||||||
if directory:
|
if directory:
|
||||||
title = generate_title_from_path(directory.path)
|
title = generate_title_from_path(directory.path)
|
||||||
breadcrumbs = generate_breadcrumbs_from_path(directory)
|
breadcrumbs = generate_breadcrumbs_from_path(directory)
|
||||||
@@ -80,7 +78,6 @@ def comic_list_json(request, directory_selector=False):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def account_page(request):
|
def account_page(request):
|
||||||
success_message = []
|
success_message = []
|
||||||
|
|||||||
Reference in New Issue
Block a user