Skip to content

Provides a record abstraction for storing chat records extracted by different chat software, and provides full-text search feature

License

Notifications You must be signed in to change notification settings

darkskygit/GCHDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Provides a record abstraction for storing chat records extracted by different chat software, and provides full-text search feature

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published