mirror of
https://github.com/lifegpc/msg-tool.git
synced 2026-07-08 01:31:53 +08:00
Add LLM trans support for m3t
This commit is contained in:
@@ -34,6 +34,7 @@ impl<'a> M3tParser<'a> {
|
|||||||
pub fn parse(&mut self) -> Result<Vec<Message>> {
|
pub fn parse(&mut self) -> Result<Vec<Message>> {
|
||||||
let mut messages = Vec::new();
|
let mut messages = Vec::new();
|
||||||
let mut name = None;
|
let mut name = None;
|
||||||
|
let mut llm = None;
|
||||||
while let Some(line) = self.next_line() {
|
while let Some(line) = self.next_line() {
|
||||||
if line.is_empty() {
|
if line.is_empty() {
|
||||||
continue;
|
continue;
|
||||||
@@ -43,9 +44,29 @@ impl<'a> M3tParser<'a> {
|
|||||||
if line.starts_with("NAME:") {
|
if line.starts_with("NAME:") {
|
||||||
name = Some(line[5..].trim().to_string());
|
name = Some(line[5..].trim().to_string());
|
||||||
}
|
}
|
||||||
|
} else if line.starts_with("△") {
|
||||||
|
let line = line[3..].trim();
|
||||||
|
llm = Some(line);
|
||||||
} else if line.starts_with("●") {
|
} else if line.starts_with("●") {
|
||||||
let message = line[3..].trim();
|
let message = line[3..].trim();
|
||||||
messages.push(Message::new(message.replace("\\n", "\n"), name.take()));
|
let message = if message
|
||||||
|
.trim_start_matches("「")
|
||||||
|
.trim_end_matches("」")
|
||||||
|
.is_empty()
|
||||||
|
{
|
||||||
|
llm.take()
|
||||||
|
.unwrap_or_else(|| {
|
||||||
|
if message.starts_with("「") {
|
||||||
|
"「」"
|
||||||
|
} else {
|
||||||
|
""
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.replace("\\n", "\n")
|
||||||
|
} else {
|
||||||
|
message.replace("\\n", "\n")
|
||||||
|
};
|
||||||
|
messages.push(Message::new(message, name.take()));
|
||||||
} else {
|
} else {
|
||||||
return Err(anyhow::anyhow!(
|
return Err(anyhow::anyhow!(
|
||||||
"Invalid line format at line {}: {}",
|
"Invalid line format at line {}: {}",
|
||||||
|
|||||||
Reference in New Issue
Block a user