Skip to content
Snippets Groups Projects
Commit 19e50a77 authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

fix instagram sync - remove leftover settings, improve display, skip videos, log more info

parent 042338db
Branches
No related tags found
2 merge requests!804Release,!794Fix instagram sync - remove leftover settings, improve display, skip videos, log more info
Pipeline #13706 passed
import datetime
import logging
import mimetypes
import uuid
from django.conf import settings
from django.db import models
logger = logging.getLogger()
def get_current_datetime() -> datetime.datetime:
return datetime.datetime.now(tz=datetime.timezone.utc)
......@@ -86,15 +89,10 @@ class InstagramMixin(models.Model):
from .services import InstagramDownloadService
try:
service = InstagramDownloadService(
app_id=settings.INSTAGRAM_APP_ID,
app_secret=settings.INSTAGRAM_APP_SECRET,
)
service = InstagramDownloadService()
service.perform_update()
except Exception:
logger.error(
"Instagram post update failed", exc_info=True
)
logger.error("Instagram post update failed", exc_info=True)
super().save(*args, **kwargs)
......
......@@ -15,14 +15,6 @@ logger = logging.getLogger()
class InstagramDownloadService:
"""
TODO
"""
def __init__(self, app_id: int, app_secret: str):
self.app_id = app_id
self.app_secret = app_secret
def get_usernames(self) -> list[str]:
access_block = MainHomePage.objects.first().instagram_access
......@@ -55,8 +47,12 @@ class InstagramDownloadService:
profile = instaloader.Profile.from_username(loader.context, username)
for remote_post in profile.get_posts():
# Don't recreate existing posts
if remote_post.is_video:
logger.info(
"Instagram post ID %s is a video, skipping.", remote_post.shortcode
)
# Don't recreate existing posts
if InstagramPost.objects.filter(remote_id=remote_post.shortcode).exists():
logging.info(
"Skipping Instagram post ID %s, already exists",
......@@ -83,9 +79,11 @@ class InstagramDownloadService:
logger.info(
"Saved Instagram post ID %s",
remote_post.mediaid,
remote_post.shotcode,
)
post_position += 1
def perform_update(self) -> None:
for username in self.get_usernames():
self.parse_media_for_user(username)
......@@ -31,7 +31,7 @@ from wagtailmetadata.models import MetadataPageMixin
from calendar_utils.models import CalendarMixin
from elections2021.constants import REGION_CHOICES # pozor, import ze sousedního modulu
from instagram_utils.models import InstagramPost, InstagramMixin
from instagram_utils.models import InstagramMixin, InstagramPost
from shared.forms import SubscribeForm
from shared.models import ( # MenuMixin,
ArticleMixin,
......@@ -59,7 +59,7 @@ class MainHomePage(
ExtendedMetadataHomePageMixin,
MetadataPageMixin,
InstagramMixin,
Page
Page,
):
# header
......@@ -222,8 +222,8 @@ class MainHomePage(
author_username__in=instagram_username_list
).order_by("-timestamp")
context["instagram_post_list"] = instagram_post_list[:4]
context["show_next_instagram_post"] = len(instagram_post_list) > 4
context["instagram_post_list"] = instagram_post_list[:3]
context["show_next_instagram_post"] = len(instagram_post_list) > 3
context["regions"] = REGION_CHOICES
......@@ -272,7 +272,7 @@ class MainHomePage(
author_username__in=instagram_username_list
).order_by("-timestamp")
instagram_post_paginator = Paginator(instagram_post_list_queryset, 4)
instagram_post_paginator = Paginator(instagram_post_list_queryset, 3)
instagram_post_page = instagram_post_paginator.get_page(
request.GET.get("page", 1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment