remove redis for website redircet
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s

This commit is contained in:
2026-07-28 10:49:01 +01:00
parent 7e9b474f10
commit 016ffbb1a9
9 changed files with 114 additions and 30 deletions
@@ -1,5 +1,5 @@
from django.contrib import admin from django.contrib import admin
from .models import redirectData from .models import historicalData,redirectData
from .utils import redirect_method from .utils import redirect_method
from import_export.admin import ImportExportModelAdmin from import_export.admin import ImportExportModelAdmin
@@ -19,7 +19,13 @@ def re_redirect(modeladmin, request, queryset):
output_generated output_generated
) )
@admin.register(historicalData)
class historicalAdmin(ImportExportModelAdmin):
list_display = [field.name for field in historicalData._meta.fields if field.name != 'id']
actions = [re_redirect]
@admin.register(redirectData) @admin.register(redirectData)
class redirectAdmin(ImportExportModelAdmin): class redirectAdmin(ImportExportModelAdmin):
list_display = [field.name for field in redirectData._meta.fields if field.name != 'id'] list_display = [field.name for field in redirectData._meta.fields if field.name != 'id']
actions = [re_redirect]
@@ -0,0 +1,17 @@
# Generated by Django 4.2.30 on 2026-07-28 09:11
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('redirect', '0003_redirectdata_key'),
]
operations = [
migrations.RenameModel(
old_name='redirectData',
new_name='historicalData',
),
]
@@ -0,0 +1,18 @@
# Generated by Django 4.2.30 on 2026-07-28 09:14
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('redirect', '0004_rename_redirectdata_historicaldata'),
]
operations = [
migrations.AlterField(
model_name='historicaldata',
name='seenDate',
field=models.DateField(blank=True, null=True, verbose_name='Seen'),
),
]
@@ -0,0 +1,17 @@
# Generated by Django 4.2.30 on 2026-07-28 09:15
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('redirect', '0005_alter_historicaldata_seendate'),
]
operations = [
migrations.AlterModelTable(
name='historicaldata',
table='historical',
),
]
@@ -0,0 +1,24 @@
# Generated by Django 4.2.30 on 2026-07-28 09:17
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('redirect', '0006_alter_historicaldata_table'),
]
operations = [
migrations.CreateModel(
name='redirectData',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.CharField(default='streaming', max_length=1000)),
('url', models.CharField(max_length=1000)),
],
options={
'db_table': 'redirect',
},
),
]
@@ -1,10 +1,16 @@
from django.db import models from django.db import models
class redirectData(models.Model): class historicalData(models.Model):
url = models.CharField(max_length=1000) url = models.CharField(max_length=1000)
key = models.CharField(max_length=1000,default="streaming") key = models.CharField(max_length=1000,default="streaming")
addedDate = models.DateField('Published', blank=True, null=True, auto_now_add=True) addedDate = models.DateField('Published', blank=True, null=True, auto_now_add=True)
seenDate = models.DateField('Published', blank=True, null=True) seenDate = models.DateField('Seen', blank=True, null=True)
class Meta:
db_table = 'historical'
class redirectData(models.Model):
key = models.CharField(max_length=1000,default="streaming")
url = models.CharField(max_length=1000)
class Meta: class Meta:
db_table = 'redirect' db_table = 'redirect'
@@ -1,16 +1,16 @@
import redis from .models import historicalData,redirectData
from .models import redirectData
r = redis.Redis(
host='django-redis-svc',
port=6379,
db=0 # The default Redis database index
)
def redirect_method(key,value): def redirect_method(key,value):
key = key.lower() key = key.lower()
r.set(key, value)
redirectData.objects.create(url=value,key=key) #Add to the redirect database to be used as a redirection point
# using update_or_create so there is no duplicate of one index/key
redirectData.objects.update_or_create(key=key,defaults={'url': value})
#Add to the historical database
historicalData.objects.create(url=value, key=key)
text_generated = "successfully set "+value+" to "+key text_generated = "successfully set "+value+" to "+key
return text_generated return text_generated
+12 -16
View File
@@ -2,22 +2,15 @@ from django.shortcuts import render
from django.http import HttpResponse from django.http import HttpResponse
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.apps import AppConfig from django.apps import AppConfig
from .models import redirectData from .models import historicalData,redirectData
from .utils import redirect_method from .utils import redirect_method
import redis
def hello(request): def hello(request):
return HttpResponse('<h1>Hello Django!</h1>') return HttpResponse('<h1>Hello Django!</h1>')
r = redis.Redis(
host='django-redis-svc',
port=6379,
db=0 # The default Redis database index
)
def hello(request): def hello(request):
return HttpResponse('<h1>Hello redirect!</h1>') return HttpResponse('<h1>Hello redirect!</h1>')
@@ -27,7 +20,8 @@ def redirect(request):
def clearkey_process(request): def clearkey_process(request):
key = request.GET.get('key') key = request.GET.get('key')
r.delete(key) #commenting this for now , need to see if the function is usefull
#r.delete(key)
return 0 return 0
def redirect_process(request): def redirect_process(request):
@@ -39,22 +33,24 @@ def redirect_process(request):
return HttpResponse(text_generated, content_type="text/plain") return HttpResponse(text_generated, content_type="text/plain")
def display_key(request,key): def display_key(request,key):
value = r.get(key) value = redirectData.objects.filter(key=key).values('url')[0]['url']
value_extracted = str(value.decode()) value_extracted = str(value.decode())
text_generated = key+" is set to "+value_extracted text_generated = key+" is set to "+value_extracted
return HttpResponse(text_generated, content_type="text/plain") return HttpResponse(text_generated, content_type="text/plain")
def redirect_to_key(request,key): def redirect_to_key(request,key):
value = r.get(key) redirect_object = redirectData.objects.filter(key=key)
value = str(redirect_object.values('url')[0]['url'])
if value == None: if value == None:
icon_url = r.get('icon') #get the icon url, if it doesn't exist , create it with a default icon
if icon_url == None: icon_url = redirectData.objects.get_or_create(key="icon",defaults={'url':"https://cdn-icons-png.flaticon.com/512/6402/6402576.png"})[0].url
icon_url = "https://cdn-icons-png.flaticon.com/512/6402/6402576.png"
print(key+" is not setup, displaying default page") print(key+" is not setup, displaying default page")
return render(request, 'website_redirection/blank_page.html', {'title': key,'icon_url':icon_url}) return render(request, 'website_redirection/blank_page.html', {'title': key,'icon_url':icon_url})
else: else:
value_extracted = str(value.decode('utf-8')) value_extracted = str(value)
print(key+" is setup to : "+value_extracted) print(key+" is setup to : "+value_extracted)
print(value_extracted) print(value_extracted)
return HttpResponseRedirect(value_extracted) return HttpResponseRedirect(value_extracted)
+1 -1
View File
@@ -42,7 +42,7 @@ urlpatterns = [
path('redirect/set/', website_redirectionapp.redirect), path('redirect/set/', website_redirectionapp.redirect),
path('redirect/get/<str:key>', website_redirectionapp.display_key), path('redirect/get/<str:key>', website_redirectionapp.display_key),
path('redirect/go/<str:key>', website_redirectionapp.redirect_to_key), path('redirect/go/<str:key>', website_redirectionapp.redirect_to_key),
path('redirect/redirect-form/', website_redirectionapp.redirect_process, name='submit_form'), path('redirect-form/', website_redirectionapp.redirect_process, name='submit_form'),
path('redirect/clearkey/', website_redirectionapp.clearkey_process, name='submit_form'), path('redirect/clearkey/', website_redirectionapp.clearkey_process, name='submit_form'),
################### onenote ################### ################### onenote ###################