add prowlarr script in tash until I create a prowlarr project with celery
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

This commit is contained in:
2026-01-08 23:31:22 +00:00
parent 47314620be
commit e2d3868a9e
+41 -1
View File
@@ -4,7 +4,7 @@ from django.shortcuts import render
from django.shortcuts import redirect from django.shortcuts import redirect
from django.core.files import File from django.core.files import File
from kubernetes import client, config from kubernetes import client, config
from celery import shared_task from celery import shared_task,group
from lxml import html from lxml import html
import requests import requests
@@ -18,8 +18,15 @@ import yaml
from urllib import request as urlrequest from urllib import request as urlrequest
from urllib import parse as urlparse from urllib import parse as urlparse
BASE_URL="https://prowlarr.tryton.geeraert.eu"
API_KEY="c5655e0b915d46dbb68d80f40a2daae4"
APP_PROFILE_ID = 1 # The ID you want to inject
headers = {
"accept": "application/json",
"X-Api-Key": API_KEY
}
proxy_url = 'http://gluetun-svc.gluetun.svc:8888' proxy_url = 'http://gluetun-svc.gluetun.svc:8888'
@@ -272,4 +279,37 @@ def handle_survey_form(request):
@shared_task(bind=True, max_retries=3, rate_limit='10/s')
def process_indexer_task(self, indexer, app_profile_id):
"""Processes a single indexer POST request."""
indexer['appProfileId'] = app_profile_id
headers = {"accept": "application/json", "X-Api-Key": API_KEY}
try:
response = requests.post(f"{BASE_URL}/api/v1/indexer", headers=headers, json=indexer)
response.raise_for_status()
return f"Successfully added {indexer.get('name')}"
except requests.exceptions.RequestException as exc:
# Retry individual failure without affecting other 599 tasks
raise self.retry(exc=exc, countdown=60)
@shared_task
def run_bulk_indexer_import(app_profile_id=1):
"""Orchestrates the bulk import of all available indexers."""
headers = {"accept": "application/json", "X-Api-Key": API_KEY}
response = requests.get(f"{BASE_URL}/api/v1/indexer/schema", headers=headers)
if response.status_code == 200:
available_indexers = response.json()
# Create a group of individual tasks
job = group(
process_indexer_task.s(indexer, app_profile_id)
for indexer in available_indexers
)
job.apply_async()