feat(worker): load callback details from config (#1994)

This commit is contained in:
Jonas L 2022-07-26 14:18:41 +02:00 committed by GitHub
parent 2d334d3ede
commit d93731807c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 9 deletions

View File

@ -180,13 +180,9 @@ class Application_Service_PodcastEpisodeService extends Application_Service_Thir
*/
private function _download($id, $url, $title, $album_override, $track_title = null)
{
$CC_CONFIG = Config::getConfig();
$stationUrl = Config::getPublicUrl();
$data = [
'id' => $id,
'url' => $url,
'callback_url' => $stationUrl . 'rest/media',
'api_key' => $CC_CONFIG['apiKey'][0],
'podcast_name' => $title,
'album_override' => $album_override,
'track_title' => $track_title,

View File

@ -1,10 +1,11 @@
from os import getenv
from kombu import Exchange, Queue
from libretime_shared.config import BaseConfig, RabbitMQConfig
from libretime_shared.config import BaseConfig, GeneralConfig, RabbitMQConfig
class Config(BaseConfig):
general: GeneralConfig
rabbitmq: RabbitMQConfig = RabbitMQConfig()

View File

@ -12,21 +12,25 @@ import requests
from celery import Celery
from celery.utils.log import get_task_logger
from .config import config
worker = Celery()
logger = get_task_logger(__name__)
@worker.task(name="podcast-download", acks_late=True)
def podcast_download(
id, url, callback_url, api_key, podcast_name, album_override, track_title
id,
url,
podcast_name,
album_override,
track_title,
):
"""
Download a podcast episode
:param id: episode unique ID
:param url: download url for the episode
:param callback_url: callback URL to send the downloaded file to
:param api_key: API key for callback authentication
:param podcast_name: Name of podcast to be added to id3 metadata for smartblock
:param album_override: Passing whether to override the album id3 even if it exists
:param track_title: Passing the title of the episode from feed to override the metadata
@ -66,10 +70,13 @@ def podcast_download(
logger.info(
"filetypeinfo is {}".format(filetypeinfo.encode("ascii", "ignore"))
)
callback_url = f"{config.general.public_url}/rest/media"
callback_api_key = config.general.api_key
re = requests.post(
callback_url,
files={"file": (filename, open(audiofile.name, "rb"))},
auth=requests.auth.HTTPBasicAuth(api_key, ""),
auth=requests.auth.HTTPBasicAuth(callback_api_key, ""),
)
re.raise_for_status()
try: