deepsync commited on
Commit
2a98ee5
·
1 Parent(s): 5b9ee94

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -5
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, status_keys):
 
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.rsplit("/", maxsplit=1)[1].strip()
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.rsplit("/", maxsplit=1)[1].strip()
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.CheckboxGroup(['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.")
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")