#archive #messenger #read #conversation #live #file #msn

lib-messenger-archive

一个用于读取MSN / Windows Live Messenger对话存档的库

1个不稳定版本

0.1.0 2024年4月29日

#278 in 压缩

MIT许可证

33KB
665

Lib-messenger-archive

该库读取指定路径的文件,并尝试将其解释为有效的MSN Messenger / Windows Live Messenger对话存档。

如果是有效的存档,则返回一个迭代器以读取存档中包含的各种消息。

也支持由《Messenger Plus!插件生成的存档。

使用示例

上面的简单示例只打印了文本内容,未格式化

    use lib_messenger_archive::{Parser, Data};
    
    let file = "test/alice1234.xml";
    let mut parser = Parser::new(file).expect("unable to read the archive");
    println!("Messages in archive \"{}\":\n---", file);
    while let Some(message) = parser.next() {
        if let Ok(msg) = message {
            let msg_txts: Vec<&str> = msg.data
                .iter()
                .filter_map(|d| match d {
                    Data::Text(txt) => Some(txt.content.as_str()),
                    _ => None,
                })
                .collect();
            println!("{}: {}", msg.sender_friendly_name, msg_txts.join(""));
        }
    }
    let details = parser.details().unwrap();
    println!("---\nThose messages were exchanged with: {}", details.recipient_id);

依赖项

~1.5MB
~27K SLoC