matrix commited on
Commit
8727fc5
·
1 Parent(s): e0fee6e

fix: message form

Browse files
Files changed (1) hide show
  1. src/lib.rs +14 -7
src/lib.rs CHANGED
@@ -40,13 +40,15 @@ impl Context {
40
  }
41
  }
42
 
 
43
  #[derive(Serialize, Deserialize, Debug)]
 
44
  pub enum SingleEvent {
45
  #[serde(rename = "original")]
46
  Transcription {
47
  content: String,
48
  #[serde(rename = "isFinal")]
49
- is_final: bool
50
  },
51
  #[serde(rename = "translated")]
52
  Translation { content: String },
@@ -71,7 +73,7 @@ pub enum LiveLessonTextEvent {
71
  Transcription {
72
  content: String,
73
  #[serde(rename = "isFinal")]
74
- is_final: bool
75
  },
76
  Translation { content: String },
77
  LipSync { visemes: Vec<Viseme> },
@@ -105,7 +107,7 @@ async fn stream_speaker(
105
  let _ = socket
106
  .send(Message::Text(format!("invalid language code: {}", query.language)))
107
  .await;
108
- return
109
  };
110
  let lesson = lessons_manager
111
  .create_lesson(
@@ -254,8 +256,13 @@ async fn stream_listener(
254
  })
255
  }
256
 
 
 
 
 
257
  #[derive(Deserialize, Debug)]
258
  pub struct SingleQuery {
 
259
  id: LessonID,
260
  from: String,
261
  to: String,
@@ -267,7 +274,7 @@ pub struct SingleQuery {
267
  pub async fn stream_single(
268
  ctx: Data<&Context>,
269
  query: Query<SingleQuery>,
270
- ws: WebSocket
271
  ) -> impl IntoResponse {
272
  let lessons_manager = ctx.lessons_manager.clone();
273
  ws.on_upgrade(|mut socket| async move {
@@ -275,7 +282,7 @@ pub async fn stream_single(
275
  let _ = socket
276
  .send(Message::Text(format!("invalid language code: {}", query.from)))
277
  .await;
278
- return
279
  };
280
  let lesson = lessons_manager
281
  .create_lesson(
@@ -292,7 +299,7 @@ pub async fn stream_single(
292
  let _ = socket
293
  .send(Message::Text(format!("invalid voice id: {:?}", query.voice)))
294
  .await;
295
- return
296
  };
297
  let mut voice_lesson = lang_lesson.get_or_init(voice_id).await;
298
  let mut voice_rx = voice_lesson.voice_channel();
@@ -334,7 +341,7 @@ pub async fn stream_single(
334
 
335
  let Ok(json) = serde_json::to_string(&evt) else {
336
  tracing::warn!("failed to serialize json: {:?}", evt);
337
- continue
338
  };
339
  socket.send(Message::Text(json)).await?
340
  }
 
40
  }
41
  }
42
 
43
+
44
  #[derive(Serialize, Deserialize, Debug)]
45
+ #[serde(tag = "type")]
46
  pub enum SingleEvent {
47
  #[serde(rename = "original")]
48
  Transcription {
49
  content: String,
50
  #[serde(rename = "isFinal")]
51
+ is_final: bool,
52
  },
53
  #[serde(rename = "translated")]
54
  Translation { content: String },
 
73
  Transcription {
74
  content: String,
75
  #[serde(rename = "isFinal")]
76
+ is_final: bool,
77
  },
78
  Translation { content: String },
79
  LipSync { visemes: Vec<Viseme> },
 
107
  let _ = socket
108
  .send(Message::Text(format!("invalid language code: {}", query.language)))
109
  .await;
110
+ return;
111
  };
112
  let lesson = lessons_manager
113
  .create_lesson(
 
256
  })
257
  }
258
 
259
+ fn default_lesson_id() -> String {
260
+ String::from("1")
261
+ }
262
+
263
  #[derive(Deserialize, Debug)]
264
  pub struct SingleQuery {
265
+ #[serde(default = "default_lesson_id")]
266
  id: LessonID,
267
  from: String,
268
  to: String,
 
274
  pub async fn stream_single(
275
  ctx: Data<&Context>,
276
  query: Query<SingleQuery>,
277
+ ws: WebSocket,
278
  ) -> impl IntoResponse {
279
  let lessons_manager = ctx.lessons_manager.clone();
280
  ws.on_upgrade(|mut socket| async move {
 
282
  let _ = socket
283
  .send(Message::Text(format!("invalid language code: {}", query.from)))
284
  .await;
285
+ return;
286
  };
287
  let lesson = lessons_manager
288
  .create_lesson(
 
299
  let _ = socket
300
  .send(Message::Text(format!("invalid voice id: {:?}", query.voice)))
301
  .await;
302
+ return;
303
  };
304
  let mut voice_lesson = lang_lesson.get_or_init(voice_id).await;
305
  let mut voice_rx = voice_lesson.voice_channel();
 
341
 
342
  let Ok(json) = serde_json::to_string(&evt) else {
343
  tracing::warn!("failed to serialize json: {:?}", evt);
344
+ continue;
345
  };
346
  socket.send(Message::Text(json)).await?
347
  }