pandora_transcribe/tasks.py

45 lines
1.2 KiB
Python
Raw Normal View History

2025-01-24 19:43:09 +05:30
# -*- coding: utf-8 -*-
2025-01-24 20:54:25 +05:30
from datetime import datetime
2025-01-24 19:43:09 +05:30
import logging
from app.celery import app
from django.conf import settings
from item import utils
from item.models import Item
2025-01-24 20:35:50 +05:30
from taskqueue.models import Task
from user.models import User
2025-01-24 19:43:09 +05:30
2025-01-24 20:35:50 +05:30
from .transcribe import extract_subtitles
2025-01-24 19:43:09 +05:30
logger = logging.getLogger('pandora.' + __name__)
@app.task(queue='encoding')
def transcribe(**kwargs):
user = User.objects.get(username=kwargs["user"])
item = Item.objects.get(public_id=kwargs["item"])
2025-01-24 20:35:50 +05:30
subtitles = utils.get_by_key(settings.CONFIG['layers'], 'isSubtitles', True)['id']
2025-01-24 19:43:09 +05:30
gpu = getattr(settings, "TRANSCRIBE_GPU", False)
join_sentences = getattr(settings, "TRANSCRIBE_JOIN", False)
model = getattr(settings, "TRANSCRIBE_MODEL", "small")
translate = getattr(settings, "TRANSCRIBE_TRANSLATE", "")
2025-01-24 20:54:25 +05:30
task, created = Task.objects.get_or_create(item=item)
task.user = user
task.status = 'transcribing'
task.started = datetime.now()
task.save()
2025-01-24 20:35:50 +05:30
extract_subtitles(
2025-01-24 19:43:09 +05:30
item,
user,
subtitles,
translate,
gpu,
join_sentences=join_sentences,
model=model
)
2025-01-24 20:54:25 +05:30
task.ended = datetime.now()
task.status = 'finished'
task.save()