diff --git a/requirements.txt b/requirements.txt index 96b407a..8edc65f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,6 @@ Mastodon.py Pillow psycopg2-binary httpx -django-tastypie django-admin-list-filter-dropdown wikipedia-api bs4 diff --git a/source/main/api.py b/source/main/api.py deleted file mode 100644 index 82d394e..0000000 --- a/source/main/api.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env python3 - -from django.db.models import Q - -from tastypie import fields -from tastypie.authentication import Authentication -from tastypie.resources import ModelResource -from tastypie.throttle import BaseThrottle -from tastypie.constants import ALL, ALL_WITH_RELATIONS - -from main.models import Movie -from main.models import Person -from main.models import Country - -from django.conf import settings - - -class CustomAuthentication(Authentication): - def is_authenticated(self, request, **kwargs): - if not "ApiToken" in request.headers: - return False - - if request.headers["ApiToken"] != settings.API_TOKEN: - return False - - return True - - -class ResourceDirectors(ModelResource): - class Meta: - queryset = Person.objects.all().filter(is_director=True) - resource_name = "directors" - - -class ResourceCountries(ModelResource): - class Meta: - queryset = Country.objects.all() - resource_name = "countries" - - -class ResourceMovies(ModelResource): - directors = fields.ToManyField(ResourceDirectors, "directors", full=True) - countries = fields.ToManyField(ResourceCountries, "countries", full=True) - - class Meta: - queryset = Movie.objects.all().order_by("-id") - resource_name = "movies" - excludes = ["count", "duration", "published", "stars"] - throttle = BaseThrottle(throttle_at=50) - allowed_methods = ["get"] - authentication = CustomAuthentication() - limit = 10 - max_limit = 10 - filtering = { - "name": ALL, - "original_name": ALL, - } - - def dehydrate_directors(self, bundle): - names = ", ".join([d.obj.name for d in bundle.data["directors"]]) - return names - - def dehydrate_countries(self, bundle): - names = ", ".join([c.obj.name for c in bundle.data["countries"]]) - return names - - # ~ def build_filters(self, filters=None, **kwargs): - # ~ orm_filters = super().build_filters(filters or {}, **kwargs) - # ~ return orm_filters - - def apply_filters(self, request, applicable_filters): - objects = self.get_object_list(request) - query = applicable_filters["name__icontains"] - qset = Q(name__icontains=query) | Q(original_name__icontains=query) - objects = objects.filter(qset) - return objects diff --git a/source/main/models.py b/source/main/models.py index 62b0119..b7679b7 100644 --- a/source/main/models.py +++ b/source/main/models.py @@ -123,7 +123,7 @@ class MovieQuerySet(models.QuerySet): """ Regresa la selección de películas para el 'home'. - El 'home' es la página principal. + El 'home' es la página principal. """ genders = list(Gender.objects.values_list("id", flat=True)) sections = self.home_sections() @@ -167,7 +167,7 @@ class MovieQuerySet(models.QuerySet): movie["count_formatted"] = self.format_count(movie["count"]) movie["stars_icons"] = self.format_stars(movie["stars"]) movie["file_name"] = self.fix_path(movie["file_name"]) - movie["cartel"] = self.fix_path(movie["cartel"]) + movie["cartel"] = settings.MEDIA_URL + movie["cartel"] if wikipedia: movie["wiki"] = self.get_wiki(movie) @@ -178,6 +178,7 @@ class MovieQuerySet(models.QuerySet): La ruta es distinta según se esté en producción o en desarrollo ('DEBUG'). """ + # ~ print('EL', el) if settings.DEBUG: return settings.URL_DEBUG.format(el) else: @@ -287,7 +288,7 @@ class MovieQuerySet(models.QuerySet): def get_movie_selector(self, prefix): """ - Obtiene el selector para filtrar la consulta de una búsqueda. + Obtiene el selector para filtrar la consulta de una búsqueda. Esto permite restricciones en la búsqueda con esta sintaxis: * t:Un Título => Buscará las películas que tengan 'Un T…' en sus 'name' diff --git a/source/mauflix/settings.py b/source/mauflix/settings.py index ef9b083..4156916 100644 --- a/source/mauflix/settings.py +++ b/source/mauflix/settings.py @@ -21,6 +21,7 @@ from .conf import ( TOKEN_TELEGRAM, CHAT_ID, API_TOKEN, + URL_DEBUG, ) @@ -142,6 +143,5 @@ DISALLOWED_USER_AGENTS = ( SESSION_EXPIRE_AT_BROWSER_CLOSE = True SESSION_COOKIE_AGE = 3600 -URL_DEBUG = "http://124.124.24.24/mauflix/{}" URL_CDN = "https://mauflix.elmau.net/{}" URL_MASTODON = "https://mstdn.mx/" diff --git a/source/mauflix/urls.py b/source/mauflix/urls.py index da4429e..df9feba 100644 --- a/source/mauflix/urls.py +++ b/source/mauflix/urls.py @@ -4,15 +4,15 @@ from django.conf import settings from django.conf.urls.static import static from django.conf.urls import include -from tastypie.api import Api +# ~ from tastypie.api import Api from main import views from main.feeds import LatestMoviesFeed -from main.api import ResourceMovies +# ~ from main.api import ResourceMovies -v1_api = Api(api_name="v1") -v1_api.register(ResourceMovies()) +# ~ v1_api = Api(api_name="v1") +# ~ v1_api.register(ResourceMovies()) urlpatterns = [ diff --git a/source/templates/about.html b/source/templates/about.html index 48e1247..ee99707 100644 --- a/source/templates/about.html +++ b/source/templates/about.html @@ -2,6 +2,12 @@ {% block content %} -TODO: Acerca - +

Acerca de MauFlix

+

+

+MauFlix es una videoteca personal. La misma no persigue ningún tipo de lucro y solo cuenta con datos informativos de las películas no con enlaces de descarga. +

+
+

+

{% endblock %} diff --git a/source/templates/footer.html b/source/templates/footer.html index 00e2acd..daaba3e 100644 --- a/source/templates/footer.html +++ b/source/templates/footer.html @@ -1,9 +1,6 @@