Convert remaining space indentings to tabs

This commit is contained in:
2020-05-21 16:55:33 +02:00
parent 04c96bcb53
commit 88de77b261
4 changed files with 126 additions and 117 deletions

View File

@@ -3,20 +3,20 @@ import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "videodinges.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "videodinges.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)

View File

@@ -20,10 +20,10 @@ class TranscodingType(NamedTuple):
return self.name
qualities = (
Quality(name='360p', width=640, height=360, priority=1),
Quality(name='480p', width=853, height=480, priority=2),
Quality(name='720p', width=1280, height=720, priority=2),
Quality(name='1080p', width=1920, height=1080, priority=1),
Quality(name='360p', width=640, height=360, priority=1),
Quality(name='480p', width=853, height=480, priority=2),
Quality(name='720p', width=1280, height=720, priority=2),
Quality(name='1080p', width=1920, height=1080, priority=1),
)
transcoding_types = (
@@ -45,51 +45,60 @@ class Upload(models.Model):
db_table = 'uploads'
class Video(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=256)
slug = models.CharField(max_length=256, unique=True)
description = models.TextField()
poster = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True, related_name='video_poster')
og_image = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True, related_name='video_og_image')
default_quality = models.CharField(choices=((quality.name, quality.name) for quality in qualities),
max_length=128, blank=True, null=True)
created_at = models.DateTimeField(default=datetime.now)
updated_at = models.DateTimeField(default=datetime.now)
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=256)
slug = models.CharField(max_length=256, unique=True)
description = models.TextField()
poster = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True, related_name='video_poster')
og_image = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True, related_name='video_og_image')
default_quality = models.CharField(
choices=((quality.name, quality.name) for quality in qualities),
max_length=128,
blank=True,
null=True
)
created_at = models.DateTimeField(default=datetime.now)
updated_at = models.DateTimeField(default=datetime.now)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
self.updated_at = datetime.now()
super().save(force_insert, force_update, using, update_fields)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
self.updated_at = datetime.now()
super().save(force_insert, force_update, using, update_fields)
def __str__(self):
return self.title
def __str__(self):
return self.title
class Meta:
indexes = [models.Index(fields=['slug']), models.Index(fields=['created_at'])]
db_table = 'videos'
class Meta:
indexes = [models.Index(fields=['slug']), models.Index(fields=['created_at'])]
db_table = 'videos'
class Transcoding(models.Model):
id = models.AutoField(primary_key=True)
video = models.ForeignKey(Video, on_delete=models.CASCADE, related_name='transcodings')
quality = models.CharField(choices=((quality.name, quality.name) for quality in qualities), max_length=128)
type = models.CharField(choices=((str(type_), str(type_)) for type_ in transcoding_types), max_length=128)
upload = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True)
url = models.CharField(max_length=256, null=True, blank=True, unique=True)
id = models.AutoField(primary_key=True)
video = models.ForeignKey(Video, on_delete=models.CASCADE, related_name='transcodings')
quality = models.CharField(choices=((quality.name, quality.name) for quality in qualities), max_length=128)
type = models.CharField(choices=((str(type_), str(type_)) for type_ in transcoding_types), max_length=128)
upload = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True)
url = models.CharField(max_length=256, null=True, blank=True, unique=True)
def __str__(self):
return self.quality
def __str__(self):
return self.quality
@property
def quality_obj(self):
return get_quality_by_name(self.quality)
@property
def quality_obj(self):
return get_quality_by_name(self.quality)
class Meta:
unique_together = ('video', 'quality', 'type')
constraints = [constraints.CheckConstraint(check=Q(upload__isnull=False) | Q(url__isnull=False),
name='upload_or_url_is_filled'),
constraints.CheckConstraint(check=~(Q(upload__isnull=False) & Q(url__isnull=False)),
name='upload_and_url_cannot_both_be_filled'),
]
db_table = 'transcodings'
class Meta:
unique_together = ('video', 'quality', 'type')
constraints = [
constraints.CheckConstraint(
check=Q(upload__isnull=False) | Q(url__isnull=False),
name='upload_or_url_is_filled'
),
constraints.CheckConstraint(
check=~(Q(upload__isnull=False) & Q(url__isnull=False)),
name='upload_and_url_cannot_both_be_filled'
),
]
db_table = 'transcodings'
def get_quality_by_name(name: str) -> Optional[Quality]:
for quality in qualities:

View File

@@ -31,47 +31,47 @@ ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'videodinges',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'videodinges',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'videodinges.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(BASE_DIR, 'videodinges', 'templates')],
'APP_DIRS': False,
'OPTIONS': {},
},
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(BASE_DIR, 'videodinges', 'templates')],
'APP_DIRS': False,
'OPTIONS': {},
},
]
WSGI_APPLICATION = 'videodinges.wsgi.application'
@@ -81,10 +81,10 @@ WSGI_APPLICATION = 'videodinges.wsgi.application'
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
@@ -92,18 +92,18 @@ DATABASES = {
# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]

View File

@@ -1,17 +1,17 @@
"""videodinges URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf import settings
from django.conf.urls.static import static
@@ -22,9 +22,9 @@ from django.urls import include
from . import views
_urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', views.index),
url(r'^(?P<slug>[\w-]+).html', views.video)
url(r'^admin/', admin.site.urls),
url(r'^$', views.index),
url(r'^(?P<slug>[\w-]+).html', views.video)
]
_urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)