• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

EsupPortail / Esup-Pod / 8111850437

01 Mar 2024 01:06PM UTC coverage: 70.223% (-0.3%) from 70.49%
8111850437

Pull #1056

github

web-flow
Merge f0c4e36fa into e85569b85
Pull Request #1056: [DONE] Fix remote encoding and other stuff

46 of 158 new or added lines in 9 files covered. (29.11%)

19 existing lines in 8 files now uncovered.

9872 of 14058 relevant lines covered (70.22%)

0.7 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/pod/video_encode_transcript/encoding_tasks.py
1
"""Esup-Pod encoding tasks."""
2

3
# pip3 install celery==5.2.7
4
# pip3 install webvtt-py
5
# pip3 install redis==4.5.4
6
from celery import Celery
×
7
import logging
×
NEW
8
import requests
×
9

10
# call local settings directly
11
# no need to load pod application to send statement
12
try:
×
13
    from ..custom import settings_local
×
14
except ImportError:
×
15
    from .. import settings as settings_local
×
16

NEW
17
EMAIL_HOST = getattr(settings_local, 'EMAIL_HOST', "")
×
NEW
18
DEFAULT_FROM_EMAIL = getattr(settings_local, 'DEFAULT_FROM_EMAIL', "")
×
NEW
19
ADMINS = getattr(settings_local, 'ADMINS', ())
×
NEW
20
DEBUG = getattr(settings_local, 'DEBUG', True)
×
NEW
21
TEST_REMOTE_ENCODE = getattr(settings_local, "TEST_REMOTE_ENCODE", False)
×
22

NEW
23
admins_email = [ad[1] for ad in ADMINS]
×
24

UNCOV
25
logger = logging.getLogger(__name__)
×
NEW
26
if DEBUG:
×
NEW
27
    logger.setLevel(logging.DEBUG)
×
28

NEW
29
smtp_handler = logging.handlers.SMTPHandler(
×
30
    mailhost=EMAIL_HOST,
31
    fromaddr=DEFAULT_FROM_EMAIL,
32
    toaddrs=admins_email,
33
    subject='[POD ENCODING] Encoding Log Mail'
34
)
NEW
35
if not TEST_REMOTE_ENCODE:
×
NEW
36
    logger.addHandler(smtp_handler)
×
37

38
ENCODING_TRANSCODING_CELERY_BROKER_URL = getattr(
×
39
    settings_local, "ENCODING_TRANSCODING_CELERY_BROKER_URL", ""
40
)
NEW
41
POD_API_URL = getattr(
×
42
    settings_local, "POD_API_URL", ""
43
)
NEW
44
POD_API_TOKEN = getattr(
×
45
    settings_local, "POD_API_TOKEN", ""
46
)
47
encoding_app = Celery("encoding_tasks", broker=ENCODING_TRANSCODING_CELERY_BROKER_URL)
×
48
encoding_app.conf.task_routes = {
×
49
    "pod.video_encode_transcript.encoding_tasks.*": {"queue": "encoding"}
50
}
51

52

53
# celery -A pod.video_encode_transcript.encoding_tasks worker -l INFO -Q encoding
54
@encoding_app.task
×
NEW
55
def start_encoding_task(
×
56
    video_id, video_path, cut_start, cut_end, json_dressing, dressing_input
57
):
58
    """Start the encoding of the video."""
59
    print("Start the encoding of the video")
×
60
    from .Encoding_video import Encoding_video
×
61
    print(video_id, video_path, cut_start, cut_end)
×
NEW
62
    encoding_video = Encoding_video(
×
63
        video_id, video_path, cut_start, cut_end, json_dressing, dressing_input
64
    )
65
    encoding_video.start_encode()
×
66
    print("End of the encoding of the video")
×
NEW
67
    Headers = {"Authorization" : "Token %s" % POD_API_TOKEN}
×
NEW
68
    url = POD_API_URL.strip("/") + "/store_remote_encoded_video/?id=%s" % video_id
×
NEW
69
    data = {
×
70
        "start": encoding_video.start,
71
        "video_id": video_id,
72
        "video_path": video_path,
73
        "cut_start": cut_start,
74
        "cut_end": cut_end,
75
        "stop": encoding_video.stop,
76
        "json_dressing": json_dressing,
77
        "dressing_input": dressing_input
78
    }
NEW
79
    try:
×
NEW
80
        response = requests.post(url, json=data, headers=Headers)
×
NEW
81
        if response.status_code != 200:
×
NEW
82
            msg = "Calling store remote encoding error : {} {}".format(
×
83
                response.status_code,
84
                response.reason
85
            )
NEW
86
            logger.error(msg + "\n" + str(response.content))
×
87
        else:
NEW
88
            logger.info("Call importing encoded task ok")
×
NEW
89
    except (
×
90
        requests.exceptions.HTTPError,
91
        requests.exceptions.ConnectionError,
92
        requests.exceptions.InvalidURL,
93
        requests.exceptions.Timeout
94
    ) as exception:
NEW
95
        msg = "Exception: {}".format(type(exception).__name__)
×
NEW
96
        msg += "\nException message: {}".format(exception)
×
NEW
97
        logger.error(msg)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc