Merge pull request 'optimize' (#1) from optimize into master
Reviewed-on: MassiveAtoms/Calibre-Server#1
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							@@ -11,13 +11,48 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
 | 
				
			|||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					import json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					with open( BASE_DIR + "/settings.json", "r") as userfile:
 | 
				
			||||||
 | 
					    usersettings = json.load(userfile)
 | 
				
			||||||
 | 
					    CALIBRE_DIR = os.path.abspath(usersettings["CALIBRE_DIR"])
 | 
				
			||||||
 | 
					    SECRET_KEY = usersettings["SECRET_KEY"]
 | 
				
			||||||
 | 
					    ALLOWED_HOSTS = usersettings["ALLOWED_HOSTS"]
 | 
				
			||||||
 | 
					    INTERNAL_IPS = usersettings["INTERNAL_IPS"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# CALIBRE_DIR = os.path.abspath(
 | 
				
			||||||
 | 
					#     "C:\\Users\\MassiveAtoms\\Documents\\Calibre Library")
 | 
				
			||||||
 | 
					# SECRET_KEY = 'u(8^+rb%rz5hsx4v^^y(ul7g(4n7a8!db@s*9(m5cs*2_ppy8+'
 | 
				
			||||||
 | 
					# ALLOWED_HOSTS = ['127.0.0.1', ]
 | 
				
			||||||
 | 
					# INTERNAL_IPS = ['127.0.0.1', ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
					# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
				
			||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
					
 | 
				
			||||||
CALIBRE_DIR = os.path.abspath(
 | 
					
 | 
				
			||||||
    "C:\\Users\\MassiveAtoms\\Documents\\Calibre Library")
 | 
					
 | 
				
			||||||
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
 | 
					EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# optimisation stuff ###############################################3
 | 
				
			||||||
 | 
					#                                                                    #
 | 
				
			||||||
 | 
					CONN_MAX_AGE = 60 * 5 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CACHES = {
 | 
				
			||||||
 | 
					    'default': {
 | 
				
			||||||
 | 
					        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
 | 
				
			||||||
 | 
					        'LOCATION': 'unique-snowflake',
 | 
				
			||||||
 | 
					        "TIMEOUT" : 60 * 5,
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##                                                                    ##
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					##                    STATIC FILES                                    ##
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Static files (CSS, JavaScript, Images)
 | 
					# Static files (CSS, JavaScript, Images)
 | 
				
			||||||
# https://docs.djangoproject.com/en/3.0/howto/static-files/
 | 
					# https://docs.djangoproject.com/en/3.0/howto/static-files/
 | 
				
			||||||
@@ -28,23 +63,9 @@ STATICFILES_DIRS = [
 | 
				
			|||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STATIC_URL = '/static/'
 | 
					STATIC_URL = '/static/'
 | 
				
			||||||
 | 
					##                                                                    ##
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
# Quick-start development settings - unsuitable for production
 | 
					##                    DERUG                                           ##
 | 
				
			||||||
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# SECURITY WARNING: keep the secret key used in production secret!
 | 
					 | 
				
			||||||
SECRET_KEY = 'u(8^+rb%rz5hsx4v^^y(ul7g(4n7a8!db@s*9(m5cs*2_ppy8+'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ALLOWED_HOSTS = ['127.0.0.1', ]
 | 
					 | 
				
			||||||
INTERNAL_IPS = [
 | 
					 | 
				
			||||||
    # ...
 | 
					 | 
				
			||||||
    '127.0.0.1',
 | 
					 | 
				
			||||||
    # ...
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
# Don't change things beyond this
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# SECURITY WARNING: don't run with debug turned on in production!
 | 
					# SECURITY WARNING: don't run with debug turned on in production!
 | 
				
			||||||
DEBUG = True
 | 
					DEBUG = True
 | 
				
			||||||
@@ -62,9 +83,9 @@ DEBUG_TOOLBAR_PANELS = [
 | 
				
			|||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##                                                                    ##
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					##                    DERUG                                           ##
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOGIN_REDIRECT_URL = '/books'
 | 
					LOGIN_REDIRECT_URL = '/books'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -83,6 +104,7 @@ INSTALLED_APPS = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
MIDDLEWARE = [
 | 
					MIDDLEWARE = [
 | 
				
			||||||
    'debug_toolbar.middleware.DebugToolbarMiddleware', # DEBUG purposes
 | 
					    'debug_toolbar.middleware.DebugToolbarMiddleware', # DEBUG purposes
 | 
				
			||||||
 | 
					    'django.middleware.cache.UpdateCacheMiddleware', # cache
 | 
				
			||||||
    'django.middleware.security.SecurityMiddleware',
 | 
					    'django.middleware.security.SecurityMiddleware',
 | 
				
			||||||
    'django.contrib.sessions.middleware.SessionMiddleware',
 | 
					    'django.contrib.sessions.middleware.SessionMiddleware',
 | 
				
			||||||
    'django.middleware.common.CommonMiddleware',
 | 
					    'django.middleware.common.CommonMiddleware',
 | 
				
			||||||
@@ -90,6 +112,7 @@ MIDDLEWARE = [
 | 
				
			|||||||
    'django.contrib.auth.middleware.AuthenticationMiddleware',
 | 
					    'django.contrib.auth.middleware.AuthenticationMiddleware',
 | 
				
			||||||
    'django.contrib.messages.middleware.MessageMiddleware',
 | 
					    'django.contrib.messages.middleware.MessageMiddleware',
 | 
				
			||||||
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 | 
					    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 | 
				
			||||||
 | 
					    'django.middleware.cache.FetchFromCacheMiddleware', # cache
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ROOT_URLCONF = 'CalibreWebCompanion.urls'
 | 
					ROOT_URLCONF = 'CalibreWebCompanion.urls'
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -383,25 +383,3 @@ class BookTagLink(models.Model):
 | 
				
			|||||||
#     class Meta:
 | 
					#     class Meta:
 | 
				
			||||||
#         managed = False
 | 
					#         managed = False
 | 
				
			||||||
#         db_table = 'feeds'
 | 
					#         db_table = 'feeds'
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# class LastReadPositions(models.Model):
 | 
					 | 
				
			||||||
#     book = models.IntegerField()
 | 
					 | 
				
			||||||
#     format = models.TextField()
 | 
					 | 
				
			||||||
#     user = models.TextField()
 | 
					 | 
				
			||||||
#     device = models.TextField()
 | 
					 | 
				
			||||||
#     cfi = models.TextField()
 | 
					 | 
				
			||||||
#     epoch = models.FloatField()
 | 
					 | 
				
			||||||
#     pos_frac = models.FloatField()
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#     class Meta:
 | 
					 | 
				
			||||||
#         managed = False
 | 
					 | 
				
			||||||
#         db_table = 'last_read_positions'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# class MetadataDirtied(models.Model):
 | 
					 | 
				
			||||||
#     book = models.IntegerField()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#     class Meta:
 | 
					 | 
				
			||||||
#         managed = False
 | 
					 | 
				
			||||||
#         db_table = 'metadata_dirtied'
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,6 +48,7 @@
 | 
				
			|||||||
    .tags {
 | 
					    .tags {
 | 
				
			||||||
      width: 25%;
 | 
					      width: 25%;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .added {
 | 
					    .added {
 | 
				
			||||||
      width: 10%;
 | 
					      width: 10%;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -55,12 +56,13 @@
 | 
				
			|||||||
    .published {
 | 
					    .published {
 | 
				
			||||||
      width: 10%;
 | 
					      width: 10%;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  </style>
 | 
					  </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <div class="navbar-fixed">
 | 
					  <div class="navbar-fixed">
 | 
				
			||||||
    <nav>
 | 
					    <nav>
 | 
				
			||||||
      <div class="nav-wrapper row green darken-1">
 | 
					      <div class="nav-wrapper row green darken-1">
 | 
				
			||||||
@@ -70,7 +72,9 @@
 | 
				
			|||||||
          <li class="active"><a href="{{user.get_absolute_url}}"> {{ user.get_username }}</a></li>
 | 
					          <li class="active"><a href="{{user.get_absolute_url}}"> {{ user.get_username }}</a></li>
 | 
				
			||||||
          <li><a href="{% url 'logout'%}?next={{request.path}}">Logout</a></li>
 | 
					          <li><a href="{% url 'logout'%}?next={{request.path}}">Logout</a></li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
 | 
					        {% load cache %}
 | 
				
			||||||
 | 
					        {% cache 500 sidebar request.user.username %}
 | 
				
			||||||
 | 
					        <!--Maybe i'm retarded but this is not caching versions per user-->
 | 
				
			||||||
        <ul class="left">
 | 
					        <ul class="left">
 | 
				
			||||||
          <li><a href="{% url 'books' %}">Books</a></li>
 | 
					          <li><a href="{% url 'books' %}">Books</a></li>
 | 
				
			||||||
          <li><a class="dropdown-trigger" href={% url 'authors' %} data-target="dropdown-authors">Authors<i
 | 
					          <li><a class="dropdown-trigger" href={% url 'authors' %} data-target="dropdown-authors">Authors<i
 | 
				
			||||||
@@ -126,7 +130,7 @@
 | 
				
			|||||||
          <li><a href="{{pub.get_absolute_url}}">{{pub}} <p class="count">{{pub.num_books}}</p> </a> </li>
 | 
					          <li><a href="{{pub.get_absolute_url}}">{{pub}} <p class="count">{{pub.num_books}}</p> </a> </li>
 | 
				
			||||||
          {% endfor %}
 | 
					          {% endfor %}
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
 | 
					        {% endcache %}
 | 
				
			||||||
        {% else %}
 | 
					        {% else %}
 | 
				
			||||||
        <li><a href="{% url 'sign-up'%}?next={{request.path}}">Sign up</a></li>
 | 
					        <li><a href="{% url 'sign-up'%}?next={{request.path}}">Sign up</a></li>
 | 
				
			||||||
        <li><a href="{% url 'login'%}?next={{request.path}}">Login</a></li>
 | 
					        <li><a href="{% url 'login'%}?next={{request.path}}">Login</a></li>
 | 
				
			||||||
@@ -134,7 +138,6 @@
 | 
				
			|||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    </nav>
 | 
					    </nav>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <script>
 | 
					  <script>
 | 
				
			||||||
@@ -145,7 +148,6 @@
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  </script>
 | 
					  </script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  {% if user.is_authenticated %}
 | 
					  {% if user.is_authenticated %}
 | 
				
			||||||
  {% block content %} {% endblock %}
 | 
					  {% block content %} {% endblock %}
 | 
				
			||||||
  {% else %}
 | 
					  {% else %}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,8 @@
 | 
				
			|||||||
<div class="col s12 m7">
 | 
					<div class="col s12 m7">
 | 
				
			||||||
  <div class="card z-depth-0 horizontal">
 | 
					  <div class="card z-depth-0 horizontal">
 | 
				
			||||||
    <div class="card-image">
 | 
					    <div class="card-image">
 | 
				
			||||||
      <a style="padding-top:15%" href="{{download}}"><img src=" {% static "" %}{{imgpath}}" alt="download" srcset=""></a>
 | 
					      <a style="padding-top:15%" href=" {% static "" %}{{download}}"><img src=" {% static "" %}{{imgpath}}"
 | 
				
			||||||
 | 
					          alt="download" srcset=""></a>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="card-stacked">
 | 
					    <div class="card-stacked">
 | 
				
			||||||
      <div class="card-content">
 | 
					      <div class="card-content">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
from django.urls import path
 | 
					from django.urls import path
 | 
				
			||||||
from . import views
 | 
					from . import views
 | 
				
			||||||
 | 
					from django.views.decorators.cache import cache_page
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
urlpatterns = [
 | 
					urlpatterns = [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,7 @@ from django.contrib.auth import login
 | 
				
			|||||||
from django.contrib.auth.decorators import login_required
 | 
					from django.contrib.auth.decorators import login_required
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@login_required
 | 
					@login_required
 | 
				
			||||||
def index(request):
 | 
					def index(request):
 | 
				
			||||||
    return render(request, 'accounts/index.html')
 | 
					    return render(request, 'accounts/index.html')
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user