Miszmisz commited on
Commit
8f97db7
·
1 Parent(s): 6c1bd28

add json_stripper function

Browse files
Files changed (1) hide show
  1. main.py +28 -1
main.py CHANGED
@@ -19,11 +19,37 @@ temp_dir = '/tmp/'
19
  s3_client = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, region_name=aws_region)
20
 
21
  class CutRequest(BaseModel):
22
- news_name: str
23
  quote_filename: str
24
  segments: list[tuple[float, float]]
 
25
  news_id: int
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  def download_file(news_name: str, quote_filename: str, new_filename: str = "source.mp3"):
28
  s3_directory = f'{aws_env}/{news_name}'
29
  s3_object_key = f'{s3_directory}/{quote_filename}'
@@ -50,6 +76,7 @@ def download_file(news_name: str, quote_filename: str, new_filename: str = "sour
50
 
51
  @app.post("/cut-audio")
52
  def cut_audio(request: CutRequest):
 
53
  download_file(request.news_name,request.quote_filename)
54
  for i, (start, end) in enumerate(request.segments):
55
  output_file = f"/tmp/cut_quote_{i}.mp3"
 
19
  s3_client = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, region_name=aws_region)
20
 
21
  class CutRequest(BaseModel):
 
22
  quote_filename: str
23
  segments: list[tuple[float, float]]
24
+ news_name: str
25
  news_id: int
26
 
27
+ async def json_stripper(strigified_json):
28
+ raw_body = await request.body()
29
+ try:
30
+ # Decode the raw body
31
+ body_str = raw_body.decode('utf-8')
32
+
33
+ # Remove any surrounding quotes if present
34
+ body_str = body_str.strip('"')
35
+
36
+ # Unescape the JSON string
37
+ body_str = body_str.replace('\\"', '"')
38
+
39
+ # Parse the JSON
40
+ body = json.loads(body_str)
41
+
42
+ cut_request = CutRequest(**body)
43
+
44
+ print(cut_request)
45
+ return {"message": "Request processed successfully"}
46
+ except json.JSONDecodeError as e:
47
+ print(f"JSON Decode Error: {e}")
48
+ raise HTTPException(status_code=400, detail=f"Invalid JSON: {str(e)}")
49
+ except Exception as e:
50
+ print(f"Error: {e}")
51
+ raise HTTPException(status_code=400, detail=str(e))
52
+
53
  def download_file(news_name: str, quote_filename: str, new_filename: str = "source.mp3"):
54
  s3_directory = f'{aws_env}/{news_name}'
55
  s3_object_key = f'{s3_directory}/{quote_filename}'
 
76
 
77
  @app.post("/cut-audio")
78
  def cut_audio(request: CutRequest):
79
+ request = json_stripper(request)
80
  download_file(request.news_name,request.quote_filename)
81
  for i, (start, end) in enumerate(request.segments):
82
  output_file = f"/tmp/cut_quote_{i}.mp3"