summaryrefslogtreecommitdiffstats
path: root/src/plugins/factoids
diff options
context:
space:
mode:
authorJokler <jokler.contact@gmail.com>2018-04-07 18:19:24 +0200
committerJokler <jokler.contact@gmail.com>2018-04-07 18:19:24 +0200
commit5c45046794e3c93f875d69193bb12d6608d45a8c (patch)
treea446511384f7ba7eb0dba2c70970a955cbfe1403 /src/plugins/factoids
parent4624f7e153769fa97401f5e906c6d17cf1127083 (diff)
downloadfrippy-5c45046794e3c93f875d69193bb12d6608d45a8c.tar.gz
frippy-5c45046794e3c93f875d69193bb12d6608d45a8c.zip
Add usefulness rating function to url titles
Diffstat (limited to 'src/plugins/factoids')
-rw-r--r--src/plugins/factoids/database.rs10
-rw-r--r--src/plugins/factoids/mod.rs24
-rw-r--r--src/plugins/factoids/utils.rs7
3 files changed, 24 insertions, 17 deletions
diff --git a/src/plugins/factoids/database.rs b/src/plugins/factoids/database.rs
index 7788d7c..321931f 100644
--- a/src/plugins/factoids/database.rs
+++ b/src/plugins/factoids/database.rs
@@ -1,20 +1,20 @@
#[cfg(feature = "mysql")]
extern crate dotenv;
+use std::collections::HashMap;
#[cfg(feature = "mysql")]
use std::sync::Arc;
-use std::collections::HashMap;
#[cfg(feature = "mysql")]
+use diesel::mysql::MysqlConnection;
+#[cfg(feature = "mysql")]
use diesel::prelude::*;
#[cfg(feature = "mysql")]
-use diesel::mysql::MysqlConnection;
+use failure::ResultExt;
#[cfg(feature = "mysql")]
use r2d2::Pool;
#[cfg(feature = "mysql")]
use r2d2_diesel::ConnectionManager;
-#[cfg(feature = "mysql")]
-use failure::ResultExt;
use chrono::NaiveDateTime;
@@ -124,8 +124,8 @@ impl Database for Arc<Pool<ConnectionManager<MysqlConnection>>> {
}
fn delete_factoid(&mut self, name: &str, idx: i32) -> Result<(), FactoidsError> {
- use diesel;
use self::factoids::columns;
+ use diesel;
let conn = &*self.get().context(ErrorKind::NoConnection)?;
match diesel::delete(
diff --git a/src/plugins/factoids/mod.rs b/src/plugins/factoids/mod.rs
index 10e512a..ba3ee8a 100644
--- a/src/plugins/factoids/mod.rs
+++ b/src/plugins/factoids/mod.rs
@@ -1,13 +1,13 @@
extern crate rlua;
-use std::fmt;
-use std::str::FromStr;
use self::rlua::prelude::*;
-use irc::client::prelude::*;
use antidote::RwLock;
+use irc::client::prelude::*;
+use std::fmt;
+use std::str::FromStr;
-use time;
use chrono::NaiveDateTime;
+use time;
use plugin::*;
pub mod database;
@@ -15,11 +15,12 @@ use self::database::Database;
mod utils;
use self::utils::*;
+use utils::Url;
-use failure::ResultExt;
+use self::error::*;
use error::ErrorKind as FrippyErrorKind;
use error::FrippyError;
-use self::error::*;
+use failure::ResultExt;
static LUA_SANDBOX: &'static str = include_str!("sandbox.lua");
@@ -52,7 +53,8 @@ impl<T: Database> Factoids<T> {
created: NaiveDateTime::from_timestamp(tm.sec, 0u32),
};
- Ok(self.factoids.write()
+ Ok(self.factoids
+ .write()
.insert_factoid(&factoid)
.map(|()| "Successfully added!")?)
}
@@ -75,7 +77,10 @@ impl<T: Database> Factoids<T> {
let name = command.tokens.remove(0);
let url = &command.tokens[0];
- let content = ::utils::download(url, Some(1024)).context(ErrorKind::Download)?;
+ let content = Url::from(url.as_ref())
+ .max_kib(1024)
+ .request()
+ .context(ErrorKind::Download)?;
Ok(self.create_factoid(&name, &content, &command.source)?)
}
@@ -118,7 +123,8 @@ impl<T: Database> Factoids<T> {
}
};
- let factoid = self.factoids.read()
+ let factoid = self.factoids
+ .read()
.get_factoid(name, idx)
.context(ErrorKind::NotFound)?;
diff --git a/src/plugins/factoids/utils.rs b/src/plugins/factoids/utils.rs
index 70ac8a7..fd08da1 100644
--- a/src/plugins/factoids/utils.rs
+++ b/src/plugins/factoids/utils.rs
@@ -3,17 +3,18 @@ extern crate reqwest;
use std::thread;
use std::time::Duration;
-use utils;
use super::rlua::prelude::*;
+use utils::Url;
use self::LuaError::RuntimeError;
pub fn download(_: &Lua, url: String) -> Result<String, LuaError> {
- match utils::download(&url, Some(1024)) {
+ let url = Url::from(url).max_kib(1024);
+ match url.request() {
Ok(v) => Ok(v),
Err(e) => Err(RuntimeError(format!(
"Failed to download {} - {}",
- url,
+ url.as_str(),
e.to_string()
))),
}