Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -5,6 +5,7 @@ import pandas as pd
|
|
5 |
from bson import ObjectId
|
6 |
from dotenv import load_dotenv
|
7 |
import requests
|
|
|
8 |
|
9 |
load_dotenv()
|
10 |
|
@@ -214,7 +215,8 @@ def update_translator(platform, translator_name, source_languages, target_langua
|
|
214 |
return f"Updated translator details succesfully."
|
215 |
|
216 |
|
217 |
-
def get_videos_under_review(platform,
|
|
|
218 |
if platform == "dev":
|
219 |
api_url = "https://api.dev-env.deepsync.co/api/v1"
|
220 |
else:
|
@@ -284,13 +286,27 @@ def get_traslators_assign(platform, video):
|
|
284 |
|
285 |
translators = list(source_db.translators.find({"sourceAccent": {"$elemMatch": {"$eq": source_language}}, "targetAccent": {"$elemMatch": {"$eq": target_language}}}))
|
286 |
translators_list = []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
if len(translators):
|
288 |
desired_ids = [t["translator"] for t in translators]
|
289 |
companies_cursor = source_db.companies.find({'_id': {'$in': desired_ids}})
|
290 |
companies = {c["_id"]: c for c in companies_cursor}
|
291 |
for translator in translators:
|
292 |
company = companies[translator["translator"]]
|
293 |
-
translators_list.append(f"{company['name']} / {company['email']} / {str(translator['_id'])}")
|
294 |
|
295 |
button = gr.Button.update(interactive=False)
|
296 |
current_translator = None
|
@@ -310,7 +326,7 @@ def get_traslators_assign(platform, video):
|
|
310 |
|
311 |
|
312 |
def assign_translator(platform, translator, video):
|
313 |
-
translator_id = translator.
|
314 |
video_id = video.split("/", maxsplit=1)[0].strip()
|
315 |
role = "translator"
|
316 |
if platform == "dev":
|
@@ -329,7 +345,7 @@ def assign_translator(platform, translator, video):
|
|
329 |
|
330 |
|
331 |
def assign_qa(platform, qa, video):
|
332 |
-
translator_id = qa.
|
333 |
video_id = video.split("/", maxsplit=1)[0].strip()
|
334 |
role = "QA"
|
335 |
if platform == "dev":
|
@@ -378,7 +394,7 @@ with gr.Blocks() as demo:
|
|
378 |
with gr.Tab("Assign"):
|
379 |
gr.Markdown("Assign Translator / QA")
|
380 |
source_platform_assign = gr.Radio(["dev", "prod"], value="prod", label="Source Platform")
|
381 |
-
filter_videos_assign = gr.
|
382 |
video_details = gr.Textbox(label="Video Details")
|
383 |
refresh_assign = gr.Button("Load Videos")
|
384 |
under_review_videos_list = gr.Dropdown([], label="Video IDs")
|
|
|
5 |
from bson import ObjectId
|
6 |
from dotenv import load_dotenv
|
7 |
import requests
|
8 |
+
from collections import defaultdict
|
9 |
|
10 |
load_dotenv()
|
11 |
|
|
|
215 |
return f"Updated translator details succesfully."
|
216 |
|
217 |
|
218 |
+
def get_videos_under_review(platform, status_key):
|
219 |
+
status_keys = [status_key]
|
220 |
if platform == "dev":
|
221 |
api_url = "https://api.dev-env.deepsync.co/api/v1"
|
222 |
else:
|
|
|
286 |
|
287 |
translators = list(source_db.translators.find({"sourceAccent": {"$elemMatch": {"$eq": source_language}}, "targetAccent": {"$elemMatch": {"$eq": target_language}}}))
|
288 |
translators_list = []
|
289 |
+
|
290 |
+
pending_videos = []
|
291 |
+
for status in ["NOT_STARTED", "DUBBING_STARTED", "WAITING_QA"]:
|
292 |
+
API_URL = f"{api_url}/dashboard/dubbed/videos/review/requested/{status}"
|
293 |
+
response = requests.get(API_URL, headers=HEADERS)
|
294 |
+
if response.status_code == 200:
|
295 |
+
response_data = response.json()['data']
|
296 |
+
pending_videos.extend(response_data)
|
297 |
+
translator_pv_count = defaultdict(lambda: 0)
|
298 |
+
for pv in pending_videos:
|
299 |
+
if video.get("videoReviewInformation", {}).get("assignedTranslator") is not None:
|
300 |
+
trs = str(video.get("videoReviewInformation", {}).get("assignedTranslator"))
|
301 |
+
translator_pv_count[trs] += 1
|
302 |
+
|
303 |
if len(translators):
|
304 |
desired_ids = [t["translator"] for t in translators]
|
305 |
companies_cursor = source_db.companies.find({'_id': {'$in': desired_ids}})
|
306 |
companies = {c["_id"]: c for c in companies_cursor}
|
307 |
for translator in translators:
|
308 |
company = companies[translator["translator"]]
|
309 |
+
translators_list.append(f"{company['name']} / {company['email']} / {str(translator['_id'])} / Pending Videos: {translator_pv_count[str(translator['_id'])]}")
|
310 |
|
311 |
button = gr.Button.update(interactive=False)
|
312 |
current_translator = None
|
|
|
326 |
|
327 |
|
328 |
def assign_translator(platform, translator, video):
|
329 |
+
translator_id = translator.split("/")[2].strip()
|
330 |
video_id = video.split("/", maxsplit=1)[0].strip()
|
331 |
role = "translator"
|
332 |
if platform == "dev":
|
|
|
345 |
|
346 |
|
347 |
def assign_qa(platform, qa, video):
|
348 |
+
translator_id = qa.split("/")[2].strip()
|
349 |
video_id = video.split("/", maxsplit=1)[0].strip()
|
350 |
role = "QA"
|
351 |
if platform == "dev":
|
|
|
394 |
with gr.Tab("Assign"):
|
395 |
gr.Markdown("Assign Translator / QA")
|
396 |
source_platform_assign = gr.Radio(["dev", "prod"], value="prod", label="Source Platform")
|
397 |
+
filter_videos_assign = gr.Radio(['Not Assigned', 'Under Review', 'Dubbing Started', 'Waiting QA', 'Sent to Client', 'Approved', 'Rejected', 'Churned', 'Re-review Requested'], label="Filter videos. Do not select any of them for videos without request info.")
|
398 |
video_details = gr.Textbox(label="Video Details")
|
399 |
refresh_assign = gr.Button("Load Videos")
|
400 |
under_review_videos_list = gr.Dropdown([], label="Video IDs")
|