11 releases
0.2.8 | May 28, 2022 |
---|---|
0.2.7 | May 28, 2022 |
0.2.6 | Mar 13, 2021 |
0.2.2 | Feb 27, 2021 |
0.1.0 | May 21, 2020 |
#1076 in Database interfaces
41 downloads per month
35KB
941 lines
GCHDB aka General chat history database
This crate provides chat record abstraction, used to store chat records extracted from different chat software, and integrated Chinese full-text index.
Usage
fn main() -> ChatRecordResult<()> {
// create an records database
let mut recoder = SqliteChatRecorder::new("record.db")?;
// create record, you can extract some record from other im's database
let record = Record {
chat_type: "testaasdavxz".into(),
owner_id: "asdasdasdaaaa".into(),
group_id: "asdasdasd".into(),
sender: "人民日报".into(),
content:
"张华考上了北京大学;李萍进了中等技术学校;我在百货公司当售货员:我们都有光明的前途"
.into(),
timestamp: chrono::Local::now().naive_utc().timestamp_millis(),
..Default::default()
};
// insert to database
assert_eq!(recoder.insert_or_update_record(&record)?, true);
// index the contents of the record
recoder.refresh_index()?;
// query record by sql
println!(
"{:?}",
recoder.get_record(Query {
chat_type: Some("testaasdavxz".into()),
sender: Some("%日报".into()),
..Default::default()
})?
);
// query record by indexer
println!(
"{:?}",
recoder.get_record(Query {
keyword: Some("技术学校".into()),
..Default::default()
})?
);
// remove record in database
assert_eq!(recoder.remove_record(record)?, true);
Ok(())
}
Contributing
Welcome pull request :)
License
AGPL3.0
Dependencies
~54MB
~782K SLoC