forked from groche97/mini_admin_bot
restarting project
This commit is contained in:
61
src/ban_stiker/database.rs
Normal file
61
src/ban_stiker/database.rs
Normal file
@@ -0,0 +1,61 @@
|
||||
use sqlite::{State, Error};
|
||||
use crate::database;
|
||||
|
||||
pub struct Database {
|
||||
ins_connection: &'static database::DB_CONNECTION,//Mutex<Box<sqlite::Connection>>,
|
||||
}
|
||||
|
||||
pub const T_STIKER: i64 = 1;
|
||||
pub const T_GIF: i64 = 2;
|
||||
pub const T_PHOTO: i64 = 3;
|
||||
|
||||
impl<'a> Database {
|
||||
pub fn get_database()->Self{
|
||||
let ret = Self{
|
||||
ins_connection: &database::DB_CONNECTION,
|
||||
};
|
||||
ret.create_table();
|
||||
ret
|
||||
}
|
||||
|
||||
fn create_table(&self) -> bool {
|
||||
match self.ins_connection.lock().unwrap()
|
||||
.execute(
|
||||
"
|
||||
CREATE TABLE IF NOT EXISTS bmedia ( id_group TEXT, id_stiker TEXT, media_type INTEGER, id INTEGER PRIMARY KEY AUTOINCREMENT);
|
||||
",
|
||||
)
|
||||
{
|
||||
Ok(_a) => return true,
|
||||
Err(e) => {log::error!("error stiker {}",e);return false},
|
||||
}
|
||||
}
|
||||
|
||||
pub fn media_is_banned(&self, stiker_id: &str, media_type: i64) -> bool {
|
||||
let builder = self.ins_connection.lock().unwrap();
|
||||
let mut statement = builder
|
||||
.prepare("SELECT id_stiker FROM bmedia WHERE id_stiker = ? and media_type=?")
|
||||
.unwrap();
|
||||
statement.bind(1, stiker_id).unwrap();
|
||||
statement.bind(2, media_type).unwrap();
|
||||
statement.next().unwrap();
|
||||
match statement.read::<String>(0) {
|
||||
Ok(_s) => true,
|
||||
Err(_e) => false,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn add_media(&self, stiker_id: &str, group_id: &str, media_type: i64)->bool{
|
||||
let builder = self.ins_connection.lock().unwrap();
|
||||
let mut statement = builder
|
||||
.prepare("INSERT INTO bmedia (id_stiker, id_group, media_type) VALUES (?,?,?)")
|
||||
.unwrap();
|
||||
statement.bind(1, stiker_id).unwrap();
|
||||
statement.bind(2, group_id).unwrap();
|
||||
statement.bind(3, media_type).unwrap();
|
||||
match statement.next(){
|
||||
Ok(s)=>true,
|
||||
Err(e)=>false,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user