From f188e25453fbfb3b0dc381edda5b2257e73bebfd Mon Sep 17 00:00:00 2001 From: pierre geeraert Date: Thu, 17 Sep 2026 22:33:06 +0100 Subject: [PATCH] add poster function --- django_code/apps/betaserie/utils.py | 20 ++++++++++++++++++- .../0009_alter_simpsonsdata_modified_at.py | 19 ++++++++++++++++++ django_code/apps/streaming/admin.py | 6 +++--- .../0015_streamingredirectdata_poster_url.py | 18 +++++++++++++++++ django_code/apps/streaming/models.py | 13 ++++++------ 5 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 django_code/apps/random_simpsons/migrations/0009_alter_simpsonsdata_modified_at.py create mode 100644 django_code/apps/streaming/migrations/0015_streamingredirectdata_poster_url.py diff --git a/django_code/apps/betaserie/utils.py b/django_code/apps/betaserie/utils.py index e4a6ad7..8043f80 100644 --- a/django_code/apps/betaserie/utils.py +++ b/django_code/apps/betaserie/utils.py @@ -59,7 +59,25 @@ class betaserieUtils(): show_id = response.json()['shows'][0]['id'] return show_id - + + def poster_serie(self,serie_name,verbose=False): + # + # Usage + # poster_url = beta.poster_serie("The simpsons") + # poster_url = beta.poster_serie("The simpsons",verbose=True) + # + url = "https://api.betaseries.com/shows/search?title="+serie_name + + response = requests.request("GET", url, headers=self.headers, data=self.payload) + if verbose: + print("Url request: "+str(url)) + print(response.text) + + poster_url = response.json()['shows'][0]['images']['show'] + + return poster_url + + def identify_episode(self,show_id,episode_number,verbose=False): # # Usage diff --git a/django_code/apps/random_simpsons/migrations/0009_alter_simpsonsdata_modified_at.py b/django_code/apps/random_simpsons/migrations/0009_alter_simpsonsdata_modified_at.py new file mode 100644 index 0000000..92d863f --- /dev/null +++ b/django_code/apps/random_simpsons/migrations/0009_alter_simpsonsdata_modified_at.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.30 on 2026-09-17 21:26 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('simpsons', '0008_alter_simpsonsdata_modified_at_alter_urldata_infix_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='simpsonsdata', + name='modified_at', + field=models.DateTimeField(default=datetime.datetime(1969, 12, 31, 23, 0, tzinfo=datetime.timezone.utc)), + ), + ] diff --git a/django_code/apps/streaming/admin.py b/django_code/apps/streaming/admin.py index e63a22e..f822d01 100644 --- a/django_code/apps/streaming/admin.py +++ b/django_code/apps/streaming/admin.py @@ -60,7 +60,7 @@ class streamingAdmin(UniversalModelAdmin): @admin.register(StreamingRedirectData) class StreamingRedirectAdmin(UniversalModelAdmin): - list_display = ['name','season','episode','randomViewing','clickable_links','addedDate','alias', 'image_tag'] + list_display = ['name','image_tag','season','episode','randomViewing','clickable_links','addedDate','alias'] #fields = ['name','season','episode','url_example','prefix','infix','suffix','alias','randomViewing','seasonInformation'] fieldsets = ( ( @@ -75,10 +75,10 @@ class StreamingRedirectAdmin(UniversalModelAdmin): ( 'Information', { "classes": ["collapse"], - 'fields': ('seasonInformation','alias','betaserieShowId','maximumNumberSeason') + 'fields': ('seasonInformation','alias','betaserieShowId','maximumNumberSeason','poster_url') }), ) link_field = 'url_display' def image_tag(self,obj): - return format_html(''.format("https://api.thumbalizr.com/static/images/error_api_key.png?url=http://google.com&width=125")) + return format_html(''.format(obj.poster_url)) diff --git a/django_code/apps/streaming/migrations/0015_streamingredirectdata_poster_url.py b/django_code/apps/streaming/migrations/0015_streamingredirectdata_poster_url.py new file mode 100644 index 0000000..ba34a96 --- /dev/null +++ b/django_code/apps/streaming/migrations/0015_streamingredirectdata_poster_url.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.30 on 2026-09-17 21:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('streaming', '0014_remove_streamingredirectdata_url_example_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='streamingredirectdata', + name='poster_url', + field=models.CharField(blank=True, help_text='poster URL', max_length=1000, null=True), + ), + ] diff --git a/django_code/apps/streaming/models.py b/django_code/apps/streaming/models.py index 0d36f13..1edddd1 100644 --- a/django_code/apps/streaming/models.py +++ b/django_code/apps/streaming/models.py @@ -31,28 +31,27 @@ class StreamingRedirectData(models.Model): betaserieShowId = models.IntegerField(null=True,blank=True) maximumNumberSeason = models.IntegerField(null=True,blank=True) randomViewing = models.BooleanField(default=False) + poster_url = models.CharField(max_length=1000, help_text="poster URL",blank=True, null=True) def sanitize(self, name): return name.replace(" ", "") def season_information(self, serie_name): betaserie = betaserieUtils() - print(serie_name) - print(betaserie.identify_serie(serie_name,True)) return betaserie.series_information(betaserie.identify_serie(serie_name))[0] def maximum_Number_Season(self, serie_name): betaserie = betaserieUtils() - print(serie_name) - print(betaserie.identify_serie(serie_name)) return betaserie.series_information(betaserie.identify_serie(serie_name))[1] def betaserie_show_id(self,serie_name): betaserie = betaserieUtils() - print(serie_name) - print(betaserie.identify_serie(serie_name)) return betaserie.identify_serie(serie_name) + def betaserie_poster_url(self,serie_name): + betaserie = betaserieUtils() + return betaserie.poster_serie(serie_name) + def url_display_set(self,alias): if ENVIRONMENT == "PRODUCTION": url = "https://streaming.geeraert.eu/" @@ -73,6 +72,8 @@ class StreamingRedirectData(models.Model): self.maximumNumberSeason = self.maximum_Number_Season(self.name) if not self.url_display: self.url_display = self.url_display_set(self.alias) + if not self.poster_url: + self.poster_url = self.betaserie_poster_url(self.name) super().save(*args, **kwargs) class Meta: