Fix scheme creation.

This commit is contained in:
AB
2020-12-09 18:13:59 +03:00
parent 5396bbef8d
commit 09fbe455ef
2 changed files with 30 additions and 27 deletions

View File

@ -2,9 +2,9 @@ use crate::db;
use crate::errors::Error; use crate::errors::Error;
use html_escape::encode_text; use html_escape::encode_text;
use markov::Chain; use markov::Chain;
use rand::Rng;
use telegram_bot::prelude::*; use telegram_bot::prelude::*;
use telegram_bot::{Api, Message, ParseMode}; use telegram_bot::{Api, Message, ParseMode};
use rand::Rng;
pub(crate) async fn here(api: Api, message: Message) -> Result<(), Error> { pub(crate) async fn here(api: Api, message: Message) -> Result<(), Error> {
let members: Vec<telegram_bot::User> = db::get_members(message.chat.id()).unwrap(); let members: Vec<telegram_bot::User> = db::get_members(message.chat.id()).unwrap();
@ -73,8 +73,8 @@ pub(crate) async fn markov_all(api: Api, message: Message) -> Result<(), Error>
.send(message.text_reply(msg.trim()).parse_mode(ParseMode::Html)) .send(message.text_reply(msg.trim()).parse_mode(ParseMode::Html))
.await .await
{ {
Ok(_) => debug!("/top command sent to {}", message.chat.id()), Ok(_) => debug!("/markov_all command sent to {}", message.chat.id()),
Err(_) => warn!("/top command sent failed to {}", message.chat.id()), Err(_) => warn!("/markov_all command sent failed to {}", message.chat.id()),
} }
//api.send(message.chat.text("Text to message chat")).await?; //api.send(message.chat.text("Text to message chat")).await?;
//api.send(message.from.text("Private text")).await?; //api.send(message.from.text("Private text")).await?;

View File

@ -27,8 +27,7 @@ pub(crate) fn update_scheme() -> Result<()> {
//let x = conn.execute(SCHEME, params![])?; //let x = conn.execute(SCHEME, params![])?;
for table in SCHEME.split(';').into_iter() { for table in SCHEME.split(';').into_iter() {
let t = table.trim(); let t = table.trim();
if t != "" { info!("{:?}", t); if t != "" {
conn.execute(t, params![])?; conn.execute(t, params![])?;
} }
} }
@ -38,8 +37,9 @@ pub(crate) fn update_scheme() -> Result<()> {
pub(crate) fn get_user(id: telegram_bot::UserId) -> Result<telegram_bot::User, errors::Error> { pub(crate) fn get_user(id: telegram_bot::UserId) -> Result<telegram_bot::User, errors::Error> {
let conn = open()?; let conn = open()?;
let mut stmt = let mut stmt = conn.prepare_cached(
conn.prepare_cached("SELECT id, username, first_name, last_name, date FROM user WHERE id = :id")?; "SELECT id, username, first_name, last_name, date FROM user WHERE id = :id",
)?;
let mut rows = stmt.query_named(&[(":id", &id.to_string())])?; let mut rows = stmt.query_named(&[(":id", &id.to_string())])?;
let mut users = Vec::new(); let mut users = Vec::new();
@ -272,12 +272,13 @@ pub(crate) async fn add_file(
pub(crate) async fn get_file(file_id: String) -> Result<i64, errors::Error> { pub(crate) async fn get_file(file_id: String) -> Result<i64, errors::Error> {
let conn = open()?; let conn = open()?;
let file_rowid = match { conn.prepare_cached("SELECT rowid FROM file WHERE file_id = :file_id")? } let file_rowid =
.query_row(params![file_id], |row| row.get(0)) match { conn.prepare_cached("SELECT rowid FROM file WHERE file_id = :file_id")? }
{ .query_row(params![file_id], |row| row.get(0))
Ok(id) => Ok(id), {
Err(_) => Err(errors::Error::FileNotFound), Ok(id) => Ok(id),
}; Err(_) => Err(errors::Error::FileNotFound),
};
file_rowid file_rowid
} }
@ -288,13 +289,14 @@ async fn add_word(word: &String) -> Result<i64, errors::Error> {
_ => {} _ => {}
} }
let conn = open()?; let conn = open()?;
let word_rowid = match { conn.prepare_cached("INSERT OR IGNORE INTO word('word') VALUES (:word)")? } let word_rowid =
.insert(params![word]) match { conn.prepare_cached("INSERT OR IGNORE INTO word('word') VALUES (:word)")? }
{ .insert(params![word])
Ok(id) => id, {
Err(_) => { conn.prepare_cached("SELECT rowid FROM word WHERE word = (:word)")? } Ok(id) => id,
.query_row(params![word], |row| row.get(0))?, Err(_) => { conn.prepare_cached("SELECT rowid FROM word WHERE word = (:word)")? }
}; .query_row(params![word], |row| row.get(0))?,
};
Ok(word_rowid) Ok(word_rowid)
} }
@ -337,13 +339,14 @@ pub(crate) async fn add_sentence(message: &telegram_bot::Message) -> Result<(),
let conn = open()?; let conn = open()?;
// Save sentence // Save sentence
let msg_rowid = match { conn.prepare_cached("INSERT OR IGNORE INTO messages('text') VALUES (:text)")? } let msg_rowid =
.insert(params![text]) match { conn.prepare_cached("INSERT OR IGNORE INTO messages('text') VALUES (:text)")? }
{ .insert(params![text])
Ok(id) => id, {
Err(_) => { conn.prepare_cached("SELECT rowid FROM messages WHERE text = (:text)")? } Ok(id) => id,
.query_row(params![text], |row| row.get(0))?, Err(_) => { conn.prepare_cached("SELECT rowid FROM messages WHERE text = (:text)")? }
}; .query_row(params![text], |row| row.get(0))?,
};
// Save stemmed words // Save stemmed words
let words = utils::stemming(message).await?; let words = utils::stemming(message).await?;