diff --git a/Cargo.lock b/Cargo.lock
index fd49b3d0..92443b57 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -373,14 +373,6 @@ dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
-[[package]]
-name = "colored"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
[[package]]
name = "combine"
version = "3.6.7"
@@ -1775,7 +1767,6 @@ dependencies = [
"askama_escape 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"atom_syndication 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "colored 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"diesel 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"dotenv 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1795,7 +1786,6 @@ dependencies = [
"rocket_contrib 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rocket_csrf 0.1.0 (git+https://github.com/fdb-hiroshima/rocket_csrf?rev=4a72ea2ec716cb0b26188fb00bccf2ef7d1e031c)",
"rocket_i18n 0.4.0 (git+https://github.com/Plume-org/rocket_i18n?rev=e922afa7c366038b3433278c03b1456b346074f2)",
- "rpassword 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rsass 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)",
"ructe 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
"runtime-fmt 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1813,7 +1803,6 @@ name = "plume-api"
version = "0.3.0"
dependencies = [
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1839,13 +1828,11 @@ dependencies = [
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)",
"pulldown-cmark 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"rocket 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1862,7 +1849,7 @@ dependencies = [
[[package]]
name = "plume-macro"
-version = "0.1.0"
+version = "0.3.0"
dependencies = [
"proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1888,13 +1875,12 @@ dependencies = [
"openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)",
"plume-api 0.3.0",
"plume-common 0.3.0",
- "plume-macro 0.1.0",
+ "plume-macro 0.3.0",
"reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"rocket 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rocket_i18n 0.4.0 (git+https://github.com/Plume-org/rocket_i18n?rev=e922afa7c366038b3433278c03b1456b346074f2)",
"scheduled-thread-pool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
"tantivy 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2499,6 +2485,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
name = "serde"
version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+]
[[package]]
name = "serde_derive"
@@ -3303,7 +3292,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-"checksum colored 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6e9a455e156a4271e12fd0246238c380b1e223e3736663c7a18ed8b6362028a9"
"checksum combine 3.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "d2623b3542b48f4427e15ddd4995186decb594ebbd70271463886584b4a114b9"
"checksum conv 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"
"checksum cookie 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1465f8134efa296b4c19db34d909637cb2bf0f7aaf21299e23e18fa29ac557cf"
diff --git a/Cargo.toml b/Cargo.toml
index 326a9f5d..6be201a6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,12 +3,12 @@ authors = ["Plume contributors"]
name = "plume"
version = "0.3.0"
repository = "https://github.com/Plume-org/Plume"
+edition = "2018"
[dependencies]
activitypub = "0.1.3"
askama_escape = "0.1"
atom_syndication = "0.6"
-colored = "1.7"
dotenv = "0.13"
gettext = { git = "https://github.com/Plume-org/gettext/", rev = "294c54d74c699fbc66502b480a37cc66c1daa7f3" }
gettext-macros = { git = "https://github.com/Plume-org/gettext-macros/", rev = "a7c605f7edd6bfbfbfe7778026bfefd88d82db10" }
@@ -21,7 +21,6 @@ num_cpus = "1.0"
rocket = "0.4.0"
rocket_contrib = { version = "0.4.0", features = ["json"] }
rocket_i18n = { git = "https://github.com/Plume-org/rocket_i18n", rev = "e922afa7c366038b3433278c03b1456b346074f2" }
-rpassword = "2.0"
runtime-fmt = "0.3.0"
scheduled-thread-pool = "0.2.0"
serde = "1.0"
diff --git a/plume-api/Cargo.toml b/plume-api/Cargo.toml
index 60058a2c..edcc3a49 100644
--- a/plume-api/Cargo.toml
+++ b/plume-api/Cargo.toml
@@ -2,7 +2,7 @@
name = "plume-api"
version = "0.3.0"
authors = ["Plume contributors"]
+edition = "2018"
[dependencies]
-serde = "1.0"
-serde_derive = "1.0"
+serde = { version = "1.0", features = ["derive"] }
diff --git a/plume-api/src/apps.rs b/plume-api/src/apps.rs
index 9e0610d2..c4e70526 100644
--- a/plume-api/src/apps.rs
+++ b/plume-api/src/apps.rs
@@ -1,3 +1,5 @@
+use serde::{Deserialize, Serialize};
+
#[derive(Clone, Serialize, Deserialize)]
pub struct NewAppData {
pub name: String,
diff --git a/plume-api/src/lib.rs b/plume-api/src/lib.rs
index 158b4261..1e1d1680 100644
--- a/plume-api/src/lib.rs
+++ b/plume-api/src/lib.rs
@@ -1,6 +1,2 @@
-extern crate serde;
-#[macro_use]
-extern crate serde_derive;
-
pub mod apps;
pub mod posts;
diff --git a/plume-api/src/posts.rs b/plume-api/src/posts.rs
index 57b7cf29..f744121f 100644
--- a/plume-api/src/posts.rs
+++ b/plume-api/src/posts.rs
@@ -1,3 +1,5 @@
+use serde::{Deserialize, Serialize};
+
#[derive(Clone, Default, Serialize, Deserialize)]
pub struct NewPostData {
pub title: String,
diff --git a/plume-cli/Cargo.toml b/plume-cli/Cargo.toml
index b9e3dff7..8f85ade7 100644
--- a/plume-cli/Cargo.toml
+++ b/plume-cli/Cargo.toml
@@ -2,6 +2,7 @@
name = "plume-cli"
version = "0.3.0"
authors = ["Plume contributors"]
+edition = "2018"
[[bin]]
name = "plm"
diff --git a/plume-cli/src/main.rs b/plume-cli/src/main.rs
index 4a872247..3b925f75 100644
--- a/plume-cli/src/main.rs
+++ b/plume-cli/src/main.rs
@@ -1,9 +1,3 @@
-extern crate clap;
-extern crate diesel;
-extern crate dotenv;
-extern crate plume_models;
-extern crate rpassword;
-
use clap::App;
use diesel::Connection;
use plume_models::{Connection as Conn, CONFIG};
diff --git a/plume-cli/src/users.rs b/plume-cli/src/users.rs
index 38a4972b..8428b0c1 100644
--- a/plume-cli/src/users.rs
+++ b/plume-cli/src/users.rs
@@ -1,7 +1,6 @@
use clap::{App, Arg, ArgMatches, SubCommand};
use plume_models::{instance::Instance, users::*, Connection};
-use rpassword;
use std::io::{self, Write};
pub fn command<'a, 'b>() -> App<'a, 'b> {
diff --git a/plume-common/Cargo.toml b/plume-common/Cargo.toml
index 191ed418..38cd9579 100644
--- a/plume-common/Cargo.toml
+++ b/plume-common/Cargo.toml
@@ -2,6 +2,7 @@
name = "plume-common"
version = "0.3.0"
authors = ["Plume contributors"]
+edition = "2018"
[dependencies]
activitypub = "0.1.1"
@@ -11,12 +12,10 @@ array_tool = "1.0"
base64 = "0.10"
heck = "0.3.0"
hex = "0.3"
-hyper = "0.12.20"
openssl = "0.10.15"
rocket = "0.4.0"
reqwest = "0.9"
-serde = "1.0"
-serde_derive = "1.0"
+serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
[dependencies.chrono]
diff --git a/plume-common/src/activity_pub/mod.rs b/plume-common/src/activity_pub/mod.rs
index c08bf06a..f127c220 100644
--- a/plume-common/src/activity_pub/mod.rs
+++ b/plume-common/src/activity_pub/mod.rs
@@ -1,4 +1,5 @@
use activitypub::{Activity, Link, Object};
+use activitystreams_derive::{Properties, UnitString};
use array_tool::vec::Uniq;
use reqwest::ClientBuilder;
use rocket::{
@@ -7,7 +8,8 @@ use rocket::{
response::{Responder, Response},
Outcome,
};
-use serde_json;
+use serde::{Deserialize, Serialize};
+use serde_json::json;
use self::sign::Signable;
@@ -63,7 +65,7 @@ impl ActivityStream {
}
impl<'r, O: Object> Responder<'r> for ActivityStream {
- fn respond_to(self, request: &Request) -> Result, Status> {
+ fn respond_to(self, request: &Request<'_>) -> Result, Status> {
let mut json = serde_json::to_value(&self.0).map_err(|_| Status::InternalServerError)?;
json["@context"] = context();
serde_json::to_string(&json).respond_to(request).map(|r| {
diff --git a/plume-common/src/activity_pub/request.rs b/plume-common/src/activity_pub/request.rs
index 4a456193..29201180 100644
--- a/plume-common/src/activity_pub/request.rs
+++ b/plume-common/src/activity_pub/request.rs
@@ -1,12 +1,11 @@
-use base64;
use chrono::{offset::Utc, DateTime};
use openssl::hash::{Hasher, MessageDigest};
use reqwest::header::{HeaderMap, HeaderValue, ACCEPT, CONTENT_TYPE, DATE, USER_AGENT};
use std::ops::Deref;
use std::time::SystemTime;
-use activity_pub::sign::Signer;
-use activity_pub::{ap_accept_header, AP_CONTENT_TYPE};
+use crate::activity_pub::sign::Signer;
+use crate::activity_pub::{ap_accept_header, AP_CONTENT_TYPE};
const PLUME_USER_AGENT: &str = concat!("Plume/", env!("CARGO_PKG_VERSION"));
diff --git a/plume-common/src/activity_pub/sign.rs b/plume-common/src/activity_pub/sign.rs
index 83834b9a..917e64ef 100644
--- a/plume-common/src/activity_pub/sign.rs
+++ b/plume-common/src/activity_pub/sign.rs
@@ -1,10 +1,8 @@
use super::request;
-use base64;
use chrono::{naive::NaiveDateTime, DateTime, Duration, Utc};
-use hex;
use openssl::{pkey::PKey, rsa::Rsa, sha::sha256};
use rocket::http::HeaderMap;
-use serde_json;
+use serde_json::json;
/// Returns (public key, private key)
pub fn gen_keypair() -> (Vec, Vec) {
@@ -131,7 +129,7 @@ impl SignatureValidity {
pub fn verify_http_headers(
sender: &S,
- all_headers: &HeaderMap,
+ all_headers: &HeaderMap<'_>,
data: &request::Digest,
) -> SignatureValidity {
let sig_header = all_headers.get_one("Signature");
diff --git a/plume-common/src/lib.rs b/plume-common/src/lib.rs
index 68889bd4..8ba1ce04 100644
--- a/plume-common/src/lib.rs
+++ b/plume-common/src/lib.rs
@@ -1,23 +1,4 @@
-#![feature(custom_attribute, associated_type_defaults)]
-
-extern crate activitypub;
-#[macro_use]
-extern crate activitystreams_derive;
-extern crate activitystreams_traits;
-extern crate array_tool;
-extern crate base64;
-extern crate chrono;
-extern crate heck;
-extern crate hex;
-extern crate openssl;
-extern crate pulldown_cmark;
-extern crate reqwest;
-extern crate rocket;
-extern crate serde;
-#[macro_use]
-extern crate serde_derive;
-#[macro_use]
-extern crate serde_json;
+#![feature(associated_type_defaults)]
pub mod activity_pub;
pub mod utils;
diff --git a/plume-common/src/utils.rs b/plume-common/src/utils.rs
index 0abb8adc..d43e156e 100644
--- a/plume-common/src/utils.rs
+++ b/plume-common/src/utils.rs
@@ -46,7 +46,7 @@ enum State {
Ready,
}
-fn to_inline(tag: Tag) -> Tag {
+fn to_inline(tag: Tag<'_>) -> Tag<'_> {
match tag {
Tag::Header(_) | Tag::Table(_) | Tag::TableHead | Tag::TableRow | Tag::TableCell => {
Tag::Paragraph
@@ -97,7 +97,7 @@ fn inline_tags<'a>(
}
}
-pub type MediaProcessor<'a> = Box<'a + Fn(i32) -> Option<(String, Option)>>;
+pub type MediaProcessor<'a> = Box Option<(String, Option)>>;
fn process_image<'a, 'b>(
evt: Event<'a>,
@@ -160,7 +160,7 @@ pub fn md_to_html<'a>(
) -> (String, HashSet, HashSet) {
let parser = Parser::new_ext(md, Options::all());
- let (parser, mentions, hashtags): (Vec, Vec, Vec) = parser
+ let (parser, mentions, hashtags): (Vec>, Vec, Vec) = parser
// Flatten text because pulldown_cmark break #hashtag in two individual text elements
.scan(None, flatten_text)
.flat_map(IntoIterator::into_iter)
diff --git a/plume-front/Cargo.toml b/plume-front/Cargo.toml
index 7e93c018..211b7825 100644
--- a/plume-front/Cargo.toml
+++ b/plume-front/Cargo.toml
@@ -2,10 +2,11 @@
name = "plume-front"
version = "0.3.0"
authors = ["Plume contributors"]
+edition = "2018"
[dependencies]
stdweb = "0.4"
gettext = { git = "https://github.com/Plume-org/gettext/", rev = "294c54d74c699fbc66502b480a37cc66c1daa7f3" }
gettext-macros = { git = "https://github.com/Plume-org/gettext-macros/", rev = "a7c605f7edd6bfbfbfe7778026bfefd88d82db10" }
gettext-utils = { git = "https://github.com/Plume-org/gettext-macros/", rev = "a7c605f7edd6bfbfbfe7778026bfefd88d82db10" }
-lazy_static = "1.3"
\ No newline at end of file
+lazy_static = "1.3"
diff --git a/plume-front/src/editor.rs b/plume-front/src/editor.rs
index 36095a26..de59e58f 100644
--- a/plume-front/src/editor.rs
+++ b/plume-front/src/editor.rs
@@ -1,8 +1,9 @@
+use crate::CATALOG;
+use gettext_macros::i18n;
use stdweb::{
unstable::{TryFrom, TryInto},
web::{event::*, html_element::*, *},
};
-use CATALOG;
macro_rules! mv {
( $( $var:ident ),* => $exp:expr ) => {
diff --git a/plume-front/src/main.rs b/plume-front/src/main.rs
index a34e2ac1..f261fc0b 100644
--- a/plume-front/src/main.rs
+++ b/plume-front/src/main.rs
@@ -1,14 +1,11 @@
#![recursion_limit = "128"]
#![feature(decl_macro, proc_macro_hygiene, try_trait)]
-extern crate gettext;
-#[macro_use]
-extern crate gettext_macros;
-#[macro_use]
-extern crate lazy_static;
#[macro_use]
extern crate stdweb;
+use gettext_macros::{compile_i18n, include_i18n, init_i18n};
+use lazy_static::lazy_static;
use stdweb::web::{event::*, *};
init_i18n!(
diff --git a/plume-macro/Cargo.toml b/plume-macro/Cargo.toml
index b224db12..dec86369 100644
--- a/plume-macro/Cargo.toml
+++ b/plume-macro/Cargo.toml
@@ -1,10 +1,8 @@
[package]
+authors = ["Plume contributors"]
name = "plume-macro"
-version = "0.1.0"
-authors = ["Trinity Pointard "]
+version = "0.3.0"
edition = "2018"
-description = "Plume procedural macros"
-license = "AGPLv3"
[lib]
proc-macro = true
diff --git a/plume-macro/src/lib.rs b/plume-macro/src/lib.rs
index a1966f44..cc731905 100644
--- a/plume-macro/src/lib.rs
+++ b/plume-macro/src/lib.rs
@@ -1,8 +1,6 @@
#![recursion_limit = "128"]
extern crate proc_macro;
-#[macro_use]
-extern crate quote;
-extern crate syn;
+use quote::quote;
use proc_macro::TokenStream;
use proc_macro2::TokenStream as TokenStream2;
@@ -71,12 +69,6 @@ pub fn import_migrations(input: TokenStream) -> TokenStream {
.map(file_to_migration)
.collect::>();
- /*
- enum Action {
- Sql(&'static str),
- Function(&'static Fn(&Connection, &Path) -> Result<()>)
- }*/
-
quote!(
ImportedMigrations(
&[#(ComplexMigration{name: #migrations_name, up: #migrations_up, down: #migrations_down}),*]
diff --git a/plume-models/Cargo.toml b/plume-models/Cargo.toml
index 00fc8c8f..613c8a82 100644
--- a/plume-models/Cargo.toml
+++ b/plume-models/Cargo.toml
@@ -2,6 +2,7 @@
name = "plume-models"
version = "0.3.0"
authors = ["Plume contributors"]
+edition = "2018"
[dependencies]
activitypub = "0.1.1"
@@ -18,8 +19,7 @@ rocket = "0.4.0"
rocket_i18n = { git = "https://github.com/Plume-org/rocket_i18n", rev = "e922afa7c366038b3433278c03b1456b346074f2" }
reqwest = "0.9"
scheduled-thread-pool = "0.2.0"
-serde = "1.0"
-serde_derive = "1.0"
+serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tantivy = "0.9.1"
url = "1.7"
diff --git a/plume-models/src/admin.rs b/plume-models/src/admin.rs
index 5acdea86..e39abf54 100644
--- a/plume-models/src/admin.rs
+++ b/plume-models/src/admin.rs
@@ -4,7 +4,7 @@ use rocket::{
Outcome,
};
-use users::User;
+use crate::users::User;
/// Wrapper around User to use as a request guard on pages reserved to admins.
pub struct Admin(pub User);
diff --git a/plume-models/src/api_tokens.rs b/plume-models/src/api_tokens.rs
index cc876fbc..9d10efa9 100644
--- a/plume-models/src/api_tokens.rs
+++ b/plume-models/src/api_tokens.rs
@@ -6,9 +6,9 @@ use rocket::{
Outcome,
};
-use db_conn::DbConn;
-use schema::api_tokens;
-use {Error, Result};
+use crate::db_conn::DbConn;
+use crate::schema::api_tokens;
+use crate::{Error, Result};
#[derive(Clone, Queryable)]
pub struct ApiToken {
diff --git a/plume-models/src/apps.rs b/plume-models/src/apps.rs
index 4b24a88e..9e418140 100644
--- a/plume-models/src/apps.rs
+++ b/plume-models/src/apps.rs
@@ -1,8 +1,9 @@
use chrono::NaiveDateTime;
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
+use serde::Serialize;
-use schema::apps;
-use {Error, Result};
+use crate::schema::apps;
+use crate::{Error, Result};
#[derive(Clone, Queryable, Serialize)]
pub struct App {
diff --git a/plume-models/src/blog_authors.rs b/plume-models/src/blog_authors.rs
index 20b99b13..479edd98 100644
--- a/plume-models/src/blog_authors.rs
+++ b/plume-models/src/blog_authors.rs
@@ -1,7 +1,7 @@
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use schema::blog_authors;
-use {Error, Result};
+use crate::schema::blog_authors;
+use crate::{Error, Result};
#[derive(Clone, Queryable, Identifiable)]
pub struct BlogAuthor {
diff --git a/plume-models/src/blogs.rs b/plume-models/src/blogs.rs
index 0fd0e2c7..eb75867e 100644
--- a/plume-models/src/blogs.rs
+++ b/plume-models/src/blogs.rs
@@ -11,18 +11,18 @@ use serde_json;
use url::Url;
use webfinger::*;
-use instance::*;
-use medias::Media;
+use crate::instance::*;
+use crate::medias::Media;
+use crate::posts::Post;
+use crate::safe_string::SafeString;
+use crate::schema::blogs;
+use crate::search::Searcher;
+use crate::users::User;
+use crate::{Connection, Error, PlumeRocket, Result};
use plume_common::activity_pub::{
inbox::{AsActor, FromId},
sign, ActivityStream, ApSignature, Id, IntoId, PublicKey, Source,
};
-use posts::Post;
-use safe_string::SafeString;
-use schema::blogs;
-use search::Searcher;
-use users::User;
-use {Connection, Error, PlumeRocket, Result};
pub type CustomGroup = CustomObject;
@@ -99,8 +99,8 @@ impl Blog {
}
pub fn list_authors(&self, conn: &Connection) -> Result> {
- use schema::blog_authors;
- use schema::users;
+ use crate::schema::blog_authors;
+ use crate::schema::users;
let authors_ids = blog_authors::table
.filter(blog_authors::blog_id.eq(self.id))
.select(blog_authors::author_id);
@@ -111,7 +111,7 @@ impl Blog {
}
pub fn count_authors(&self, conn: &Connection) -> Result {
- use schema::blog_authors;
+ use crate::schema::blog_authors;
blog_authors::table
.filter(blog_authors::blog_id.eq(self.id))
.count()
@@ -120,7 +120,7 @@ impl Blog {
}
pub fn find_for_author(conn: &Connection, author: &User) -> Result> {
- use schema::blog_authors;
+ use crate::schema::blog_authors;
let author_ids = blog_authors::table
.filter(blog_authors::author_id.eq(author.id))
.select(blog_authors::blog_id);
@@ -456,14 +456,14 @@ impl NewBlog {
#[cfg(test)]
pub(crate) mod tests {
use super::*;
- use blog_authors::*;
+ use crate::blog_authors::*;
+ use crate::instance::tests as instance_tests;
+ use crate::medias::NewMedia;
+ use crate::search::tests::get_searcher;
+ use crate::tests::{db, rockets};
+ use crate::users::tests as usersTests;
+ use crate::Connection as Conn;
use diesel::Connection;
- use instance::tests as instance_tests;
- use medias::NewMedia;
- use search::tests::get_searcher;
- use tests::{db, rockets};
- use users::tests as usersTests;
- use Connection as Conn;
pub(crate) fn fill_database(conn: &Conn) -> (Vec, Vec) {
instance_tests::fill_database(conn);
diff --git a/plume-models/src/comment_seers.rs b/plume-models/src/comment_seers.rs
index d26d622d..9a37f3a9 100644
--- a/plume-models/src/comment_seers.rs
+++ b/plume-models/src/comment_seers.rs
@@ -1,9 +1,9 @@
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use comments::Comment;
-use schema::comment_seers;
-use users::User;
-use {Connection, Error, Result};
+use crate::comments::Comment;
+use crate::schema::comment_seers;
+use crate::users::User;
+use crate::{Connection, Error, Result};
#[derive(Queryable, Clone)]
pub struct CommentSeers {
diff --git a/plume-models/src/comments.rs b/plume-models/src/comments.rs
index 50ad9555..5f1c50f7 100644
--- a/plume-models/src/comments.rs
+++ b/plume-models/src/comments.rs
@@ -9,21 +9,21 @@ use serde_json;
use std::collections::HashSet;
-use comment_seers::{CommentSeers, NewCommentSeers};
-use instance::Instance;
-use medias::Media;
-use mentions::Mention;
-use notifications::*;
+use crate::comment_seers::{CommentSeers, NewCommentSeers};
+use crate::instance::Instance;
+use crate::medias::Media;
+use crate::mentions::Mention;
+use crate::notifications::*;
+use crate::posts::Post;
+use crate::safe_string::SafeString;
+use crate::schema::comments;
+use crate::users::User;
+use crate::{Connection, Error, PlumeRocket, Result};
use plume_common::activity_pub::{
inbox::{AsObject, FromId},
Id, IntoId, PUBLIC_VISIBILITY,
};
use plume_common::utils;
-use posts::Post;
-use safe_string::SafeString;
-use schema::comments;
-use users::User;
-use {Connection, Error, PlumeRocket, Result};
#[derive(Queryable, Identifiable, Clone, AsChangeset)]
pub struct Comment {
@@ -77,7 +77,7 @@ impl Comment {
}
pub fn count_local(conn: &Connection) -> Result {
- use schema::users;
+ use crate::schema::users;
let local_authors = users::table
.filter(users::instance_id.eq(Instance::get_local(conn)?.id))
.select(users::id);
diff --git a/plume-models/src/config.rs b/plume-models/src/config.rs
index 493fdcd9..ffa3fe0c 100644
--- a/plume-models/src/config.rs
+++ b/plume-models/src/config.rs
@@ -1,5 +1,7 @@
+use lazy_static::lazy_static;
use rocket::config::Limits;
use rocket::Config as RocketConfig;
+use serde::Serialize;
use std::env::{self, var};
#[cfg(not(test))]
diff --git a/plume-models/src/db_conn.rs b/plume-models/src/db_conn.rs
index dbb7ade1..b40b13e4 100644
--- a/plume-models/src/db_conn.rs
+++ b/plume-models/src/db_conn.rs
@@ -10,7 +10,7 @@ use rocket::{
};
use std::ops::Deref;
-use Connection;
+use crate::Connection;
pub type DbPool = Pool>;
@@ -26,7 +26,7 @@ impl<'a, 'r> FromRequest<'a, 'r> for DbConn {
type Error = ();
fn from_request(request: &'a Request<'r>) -> request::Outcome {
- let pool = request.guard::>()?;
+ let pool = request.guard::>()?;
match pool.get() {
Ok(conn) => Outcome::Success(DbConn(conn)),
Err(_) => Outcome::Failure((Status::ServiceUnavailable, ())),
diff --git a/plume-models/src/follows.rs b/plume-models/src/follows.rs
index 47d1d1e7..d115a121 100644
--- a/plume-models/src/follows.rs
+++ b/plume-models/src/follows.rs
@@ -1,16 +1,16 @@
use activitypub::activity::{Accept, Follow as FollowAct, Undo};
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl, SaveChangesDsl};
-use notifications::*;
+use crate::notifications::*;
+use crate::schema::follows;
+use crate::users::User;
+use crate::{ap_url, Connection, Error, PlumeRocket, Result, CONFIG};
use plume_common::activity_pub::{
broadcast,
inbox::{AsActor, AsObject, FromId},
sign::Signer,
Id, IntoId, PUBLIC_VISIBILITY,
};
-use schema::follows;
-use users::User;
-use {ap_url, Connection, Error, PlumeRocket, Result, CONFIG};
#[derive(Clone, Queryable, Identifiable, Associations, AsChangeset)]
#[belongs_to(User, foreign_key = "following_id")]
@@ -213,9 +213,9 @@ impl IntoId for Follow {
#[cfg(test)]
mod tests {
use super::*;
+ use crate::tests::db;
+ use crate::users::tests as user_tests;
use diesel::Connection;
- use tests::db;
- use users::tests as user_tests;
#[test]
fn test_id() {
diff --git a/plume-models/src/inbox.rs b/plume-models/src/inbox.rs
index 56758ed0..6b79887f 100644
--- a/plume-models/src/inbox.rs
+++ b/plume-models/src/inbox.rs
@@ -71,6 +71,7 @@ pub(crate) mod tests {
use crate::tests::rockets;
use crate::PlumeRocket;
use diesel::Connection;
+ use serde_json::json;
pub fn fill_database(
rockets: &PlumeRocket,
diff --git a/plume-models/src/instance.rs b/plume-models/src/instance.rs
index d7c527e5..59af44af 100644
--- a/plume-models/src/instance.rs
+++ b/plume-models/src/instance.rs
@@ -2,13 +2,13 @@ use chrono::NaiveDateTime;
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
use std::iter::Iterator;
-use ap_url;
-use medias::Media;
+use crate::ap_url;
+use crate::medias::Media;
+use crate::safe_string::SafeString;
+use crate::schema::{instances, users};
+use crate::users::User;
+use crate::{Connection, Error, Result};
use plume_common::utils::md_to_html;
-use safe_string::SafeString;
-use schema::{instances, users};
-use users::User;
-use {Connection, Error, Result};
#[derive(Clone, Identifiable, Queryable)]
pub struct Instance {
@@ -166,9 +166,9 @@ impl Instance {
#[cfg(test)]
pub(crate) mod tests {
use super::*;
+ use crate::tests::db;
+ use crate::Connection as Conn;
use diesel::Connection;
- use tests::db;
- use Connection as Conn;
pub(crate) fn fill_database(conn: &Conn) -> Vec<(NewInstance, Instance)> {
vec![
diff --git a/plume-models/src/lib.rs b/plume-models/src/lib.rs
index fd46f619..890e046d 100644
--- a/plume-models/src/lib.rs
+++ b/plume-models/src/lib.rs
@@ -1,40 +1,7 @@
-#![feature(try_trait)]
-#![feature(never_type)]
-#![feature(custom_attribute)]
-#![feature(proc_macro_hygiene)]
+#![feature(never_type, proc_macro_hygiene, try_trait)]
-extern crate activitypub;
-extern crate ammonia;
-extern crate askama_escape;
-extern crate bcrypt;
-extern crate chrono;
#[macro_use]
extern crate diesel;
-extern crate guid_create;
-extern crate heck;
-extern crate itertools;
-#[macro_use]
-extern crate lazy_static;
-extern crate migrations_internals;
-extern crate openssl;
-extern crate plume_api;
-extern crate plume_common;
-#[macro_use]
-extern crate plume_macro;
-extern crate reqwest;
-extern crate rocket;
-extern crate rocket_i18n;
-extern crate scheduled_thread_pool;
-extern crate serde;
-#[macro_use]
-extern crate serde_derive;
-#[macro_use]
-extern crate serde_json;
-#[macro_use]
-extern crate tantivy;
-extern crate url;
-extern crate webfinger;
-extern crate whatlang;
use plume_common::activity_pub::inbox::InboxError;
@@ -289,7 +256,7 @@ macro_rules! last {
}
mod config;
-pub use config::CONFIG;
+pub use crate::config::CONFIG;
pub fn ap_url(url: &str) -> String {
format!("https://{}", url)
@@ -298,18 +265,19 @@ pub fn ap_url(url: &str) -> String {
#[cfg(test)]
#[macro_use]
mod tests {
- use db_conn;
+ use crate::db_conn;
+ use crate::migrations::IMPORTED_MIGRATIONS;
+ use crate::search;
+ use crate::Connection as Conn;
+ use crate::CONFIG;
use diesel::r2d2::ConnectionManager;
#[cfg(feature = "sqlite")]
use diesel::{dsl::sql_query, RunQueryDsl};
- use migrations::IMPORTED_MIGRATIONS;
+ use lazy_static::lazy_static;
use plume_common::utils::random_hex;
use scheduled_thread_pool::ScheduledThreadPool;
- use search;
use std::env::temp_dir;
use std::sync::Arc;
- use Connection as Conn;
- use CONFIG;
#[macro_export]
macro_rules! part_eq {
@@ -376,4 +344,4 @@ pub mod schema;
pub mod search;
pub mod tags;
pub mod users;
-pub use plume_rocket::PlumeRocket;
+pub use crate::plume_rocket::PlumeRocket;
diff --git a/plume-models/src/likes.rs b/plume-models/src/likes.rs
index 18678cc0..3fc615ed 100644
--- a/plume-models/src/likes.rs
+++ b/plume-models/src/likes.rs
@@ -2,15 +2,15 @@ use activitypub::activity;
use chrono::NaiveDateTime;
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use notifications::*;
+use crate::notifications::*;
+use crate::posts::Post;
+use crate::schema::likes;
+use crate::users::User;
+use crate::{Connection, Error, PlumeRocket, Result};
use plume_common::activity_pub::{
inbox::{AsObject, FromId},
Id, IntoId, PUBLIC_VISIBILITY,
};
-use posts::Post;
-use schema::likes;
-use users::User;
-use {Connection, Error, PlumeRocket, Result};
#[derive(Clone, Queryable, Identifiable)]
pub struct Like {
diff --git a/plume-models/src/medias.rs b/plume-models/src/medias.rs
index d8be73ab..5c67b205 100644
--- a/plume-models/src/medias.rs
+++ b/plume-models/src/medias.rs
@@ -10,11 +10,11 @@ use plume_common::{
utils::MediaProcessor,
};
-use instance::Instance;
-use safe_string::SafeString;
-use schema::medias;
-use users::User;
-use {ap_url, Connection, Error, PlumeRocket, Result};
+use crate::instance::Instance;
+use crate::safe_string::SafeString;
+use crate::schema::medias;
+use crate::users::User;
+use crate::{ap_url, Connection, Error, PlumeRocket, Result};
#[derive(Clone, Identifiable, Queryable)]
pub struct Media {
@@ -248,13 +248,13 @@ impl Media {
#[cfg(test)]
pub(crate) mod tests {
use super::*;
+ use crate::tests::db;
+ use crate::users::tests as usersTests;
+ use crate::Connection as Conn;
use diesel::Connection;
use std::env::{current_dir, set_current_dir};
use std::fs;
use std::path::Path;
- use tests::db;
- use users::tests as usersTests;
- use Connection as Conn;
pub(crate) fn fill_database(conn: &Conn) -> (Vec, Vec) {
let mut wd = current_dir().unwrap().to_path_buf();
diff --git a/plume-models/src/mentions.rs b/plume-models/src/mentions.rs
index 520d8225..e4ff39e6 100644
--- a/plume-models/src/mentions.rs
+++ b/plume-models/src/mentions.rs
@@ -1,13 +1,13 @@
use activitypub::link;
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use comments::Comment;
-use notifications::*;
-use posts::Post;
-use schema::mentions;
-use users::User;
-use PlumeRocket;
-use {Connection, Error, Result};
+use crate::comments::Comment;
+use crate::notifications::*;
+use crate::posts::Post;
+use crate::schema::mentions;
+use crate::users::User;
+use crate::PlumeRocket;
+use crate::{Connection, Error, Result};
#[derive(Clone, Queryable, Identifiable)]
pub struct Mention {
diff --git a/plume-models/src/migrations.rs b/plume-models/src/migrations.rs
index 1d5a47f5..359ca552 100644
--- a/plume-models/src/migrations.rs
+++ b/plume-models/src/migrations.rs
@@ -1,16 +1,17 @@
-use Connection;
-use Error;
-use Result;
+use crate::Connection;
+use crate::Error;
+use crate::Result;
use diesel::connection::{Connection as Conn, SimpleConnection};
use migrations_internals::{setup_database, MigrationConnection};
+use plume_macro::import_migrations;
use std::path::Path;
#[allow(dead_code)] //variants might not be constructed if not required by current migrations
enum Action {
Sql(&'static str),
- Function(&'static Fn(&Connection, &Path) -> Result<()>),
+ Function(&'static dyn Fn(&Connection, &Path) -> Result<()>),
}
impl Action {
diff --git a/plume-models/src/notifications.rs b/plume-models/src/notifications.rs
index 3e10859d..eb7c24d6 100644
--- a/plume-models/src/notifications.rs
+++ b/plume-models/src/notifications.rs
@@ -1,15 +1,15 @@
use chrono::NaiveDateTime;
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use comments::Comment;
-use follows::Follow;
-use likes::Like;
-use mentions::Mention;
-use posts::Post;
-use reshares::Reshare;
-use schema::notifications;
-use users::User;
-use {Connection, Error, Result};
+use crate::comments::Comment;
+use crate::follows::Follow;
+use crate::likes::Like;
+use crate::mentions::Mention;
+use crate::posts::Post;
+use crate::reshares::Reshare;
+use crate::schema::notifications;
+use crate::users::User;
+use crate::{Connection, Error, Result};
pub mod notification_kind {
pub const COMMENT: &str = "COMMENT";
diff --git a/plume-models/src/plume_rocket.rs b/plume-models/src/plume_rocket.rs
index dbc10bcc..a443930a 100644
--- a/plume-models/src/plume_rocket.rs
+++ b/plume-models/src/plume_rocket.rs
@@ -29,9 +29,9 @@ mod module {
let conn = request.guard::()?;
let intl = request.guard::()?;
let user = request.guard::().succeeded();
- let worker = request.guard::>>()?;
- let searcher = request.guard::>>()?;
- let flash_msg = request.guard::().succeeded();
+ let worker = request.guard::>>()?;
+ let searcher = request.guard::>>()?;
+ let flash_msg = request.guard::>().succeeded();
Outcome::Success(PlumeRocket {
conn,
intl,
@@ -70,8 +70,8 @@ mod module {
fn from_request(request: &'a Request<'r>) -> request::Outcome {
let conn = request.guard::()?;
let user = request.guard::().succeeded();
- let worker = request.guard::>>()?;
- let searcher = request.guard::>>()?;
+ let worker = request.guard::>>()?;
+ let searcher = request.guard::>>()?;
Outcome::Success(PlumeRocket {
conn,
user,
diff --git a/plume-models/src/post_authors.rs b/plume-models/src/post_authors.rs
index b8db5549..7217390a 100644
--- a/plume-models/src/post_authors.rs
+++ b/plume-models/src/post_authors.rs
@@ -1,9 +1,9 @@
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use posts::Post;
-use schema::post_authors;
-use users::User;
-use {Error, Result};
+use crate::posts::Post;
+use crate::schema::post_authors;
+use crate::users::User;
+use crate::{Error, Result};
#[derive(Clone, Queryable, Identifiable, Associations)]
#[belongs_to(Post)]
diff --git a/plume-models/src/posts.rs b/plume-models/src/posts.rs
index 356f584d..7e2cb1c5 100644
--- a/plume-models/src/posts.rs
+++ b/plume-models/src/posts.rs
@@ -7,13 +7,20 @@ use activitypub::{
use chrono::{NaiveDateTime, TimeZone, Utc};
use diesel::{self, BelongingToDsl, ExpressionMethods, QueryDsl, RunQueryDsl, SaveChangesDsl};
use heck::{CamelCase, KebabCase};
-use serde_json;
+use serde_json::json;
use std::collections::HashSet;
-use blogs::Blog;
-use instance::Instance;
-use medias::Media;
-use mentions::Mention;
+use crate::blogs::Blog;
+use crate::instance::Instance;
+use crate::medias::Media;
+use crate::mentions::Mention;
+use crate::post_authors::*;
+use crate::safe_string::SafeString;
+use crate::schema::posts;
+use crate::search::Searcher;
+use crate::tags::*;
+use crate::users::User;
+use crate::{ap_url, Connection, Error, PlumeRocket, Result, CONFIG};
use plume_common::{
activity_pub::{
inbox::{AsObject, FromId},
@@ -21,13 +28,6 @@ use plume_common::{
},
utils::md_to_html,
};
-use post_authors::*;
-use safe_string::SafeString;
-use schema::posts;
-use search::Searcher;
-use tags::*;
-use users::User;
-use {ap_url, Connection, Error, PlumeRocket, Result, CONFIG};
pub type LicensedArticle = CustomObject;
@@ -110,7 +110,7 @@ impl Post {
tag: String,
(min, max): (i32, i32),
) -> Result> {
- use schema::tags;
+ use crate::schema::tags;
let ids = tags::table.filter(tags::tag.eq(tag)).select(tags::post_id);
posts::table
@@ -124,7 +124,7 @@ impl Post {
}
pub fn count_for_tag(conn: &Connection, tag: String) -> Result {
- use schema::tags;
+ use crate::schema::tags;
let ids = tags::table.filter(tags::tag.eq(tag)).select(tags::post_id);
posts::table
.filter(posts::id.eq_any(ids))
@@ -138,8 +138,8 @@ impl Post {
}
pub fn count_local(conn: &Connection) -> Result {
- use schema::post_authors;
- use schema::users;
+ use crate::schema::post_authors;
+ use crate::schema::users;
let local_authors = users::table
.filter(users::instance_id.eq(Instance::get_local(conn)?.id))
.select(users::id);
@@ -196,7 +196,7 @@ impl Post {
author: &User,
limit: i64,
) -> Result> {
- use schema::post_authors;
+ use crate::schema::post_authors;
let posts = PostAuthor::belonging_to(author).select(post_authors::post_id);
posts::table
@@ -263,7 +263,7 @@ impl Post {
instance_id: i32,
(min, max): (i32, i32),
) -> Result> {
- use schema::blogs;
+ use crate::schema::blogs;
let blog_ids = blogs::table
.filter(blogs::instance_id.eq(instance_id))
@@ -285,7 +285,7 @@ impl Post {
followed: Vec,
(min, max): (i32, i32),
) -> Result> {
- use schema::post_authors;
+ use crate::schema::post_authors;
let post_ids = post_authors::table
.filter(post_authors::author_id.eq_any(followed))
.select(post_authors::post_id);
@@ -301,7 +301,7 @@ impl Post {
}
pub fn drafts_by_author(conn: &Connection, author: &User) -> Result> {
- use schema::post_authors;
+ use crate::schema::post_authors;
let posts = PostAuthor::belonging_to(author).select(post_authors::post_id);
posts::table
@@ -313,8 +313,8 @@ impl Post {
}
pub fn get_authors(&self, conn: &Connection) -> Result> {
- use schema::post_authors;
- use schema::users;
+ use crate::schema::post_authors;
+ use crate::schema::users;
let author_list = PostAuthor::belonging_to(self).select(post_authors::author_id);
users::table
.filter(users::id.eq_any(author_list))
@@ -323,7 +323,7 @@ impl Post {
}
pub fn is_author(&self, conn: &Connection, author_id: i32) -> Result {
- use schema::post_authors;
+ use crate::schema::post_authors;
Ok(PostAuthor::belonging_to(self)
.filter(post_authors::author_id.eq(author_id))
.count()
@@ -332,7 +332,7 @@ impl Post {
}
pub fn get_blog(&self, conn: &Connection) -> Result {
- use schema::blogs;
+ use crate::schema::blogs;
blogs::table
.filter(blogs::id.eq(self.blog_id))
.limit(1)
@@ -343,7 +343,7 @@ impl Post {
}
pub fn count_likes(&self, conn: &Connection) -> Result {
- use schema::likes;
+ use crate::schema::likes;
likes::table
.filter(likes::post_id.eq(self.id))
.count()
@@ -352,7 +352,7 @@ impl Post {
}
pub fn count_reshares(&self, conn: &Connection) -> Result {
- use schema::reshares;
+ use crate::schema::reshares;
reshares::table
.filter(reshares::post_id.eq(self.id))
.count()
diff --git a/plume-models/src/reshares.rs b/plume-models/src/reshares.rs
index bf8e5158..695c7e31 100644
--- a/plume-models/src/reshares.rs
+++ b/plume-models/src/reshares.rs
@@ -2,15 +2,15 @@ use activitypub::activity::{Announce, Undo};
use chrono::NaiveDateTime;
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use notifications::*;
+use crate::notifications::*;
+use crate::posts::Post;
+use crate::schema::reshares;
+use crate::users::User;
+use crate::{Connection, Error, PlumeRocket, Result};
use plume_common::activity_pub::{
inbox::{AsObject, FromId},
Id, IntoId, PUBLIC_VISIBILITY,
};
-use posts::Post;
-use schema::reshares;
-use users::User;
-use {Connection, Error, PlumeRocket, Result};
#[derive(Clone, Queryable, Identifiable)]
pub struct Reshare {
diff --git a/plume-models/src/safe_string.rs b/plume-models/src/safe_string.rs
index 7aca88d9..a281f372 100644
--- a/plume-models/src/safe_string.rs
+++ b/plume-models/src/safe_string.rs
@@ -6,6 +6,7 @@ use diesel::{
sql_types::Text,
types::ToSql,
};
+use lazy_static::lazy_static;
use serde::{self, de::Visitor, Deserialize, Deserializer, Serialize, Serializer};
use std::{
borrow::{Borrow, Cow},
@@ -48,7 +49,7 @@ lazy_static! {
};
}
-fn url_add_prefix(url: &str) -> Option> {
+fn url_add_prefix(url: &str) -> Option> {
if url.starts_with('#') && !url.starts_with("#postcontent-") {
//if start with an #
let mut new_url = "#postcontent-".to_owned(); //change to valid id
@@ -105,7 +106,7 @@ struct SafeStringVisitor;
impl<'de> Visitor<'de> for SafeStringVisitor {
type Value = SafeString;
- fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+ fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str("a string")
}
@@ -147,7 +148,7 @@ where
DB: diesel::backend::Backend,
str: ToSql,
{
- fn to_sql(&self, out: &mut Output) -> serialize::Result {
+ fn to_sql(&self, out: &mut Output<'_, W, DB>) -> serialize::Result {
str::to_sql(&self.value, out)
}
}
@@ -159,7 +160,7 @@ impl Borrow for SafeString {
}
impl Display for SafeString {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.value)
}
}
diff --git a/plume-models/src/search/mod.rs b/plume-models/src/search/mod.rs
index 02485534..d20ccaa6 100644
--- a/plume-models/src/search/mod.rs
+++ b/plume-models/src/search/mod.rs
@@ -11,12 +11,12 @@ pub(crate) mod tests {
use std::env::temp_dir;
use std::str::FromStr;
- use blogs::tests::fill_database;
+ use crate::blogs::tests::fill_database;
+ use crate::post_authors::*;
+ use crate::posts::{NewPost, Post};
+ use crate::safe_string::SafeString;
+ use crate::tests::db;
use plume_common::utils::random_hex;
- use post_authors::*;
- use posts::{NewPost, Post};
- use safe_string::SafeString;
- use tests::db;
pub(crate) fn get_searcher() -> Searcher {
let dir = temp_dir().join("plume-test");
diff --git a/plume-models/src/search/query.rs b/plume-models/src/search/query.rs
index 9e1e997e..1e053d4a 100644
--- a/plume-models/src/search/query.rs
+++ b/plume-models/src/search/query.rs
@@ -1,5 +1,5 @@
+use crate::search::searcher::Searcher;
use chrono::{naive::NaiveDate, offset::Utc, Datelike};
-use search::searcher::Searcher;
use std::{cmp, ops::Bound};
use tantivy::{query::*, schema::*, Term};
@@ -153,7 +153,7 @@ impl PlumeQuery {
/// Convert this Query to a Tantivy Query
pub fn into_query(self) -> BooleanQuery {
- let mut result: Vec<(Occur, Box)> = Vec::new();
+ let mut result: Vec<(Occur, Box)> = Vec::new();
gen_to_query!(self, result; normal: title, subtitle, content, tag;
oneoff: instance, author, blog, lang, license);
@@ -279,7 +279,7 @@ impl PlumeQuery {
}
// map a token and it's field to a query
- fn token_to_query(token: &str, field_name: &str) -> Box {
+ fn token_to_query(token: &str, field_name: &str) -> Box {
let token = token.to_lowercase();
let token = token.as_str();
let field = Searcher::schema().get_field(field_name).unwrap();
diff --git a/plume-models/src/search/searcher.rs b/plume-models/src/search/searcher.rs
index 87ee6d7c..24ebae1c 100644
--- a/plume-models/src/search/searcher.rs
+++ b/plume-models/src/search/searcher.rs
@@ -1,22 +1,22 @@
-use instance::Instance;
-use posts::Post;
-use schema::posts;
-use tags::Tag;
-use Connection;
+use crate::instance::Instance;
+use crate::posts::Post;
+use crate::schema::posts;
+use crate::tags::Tag;
+use crate::Connection;
use chrono::Datelike;
use diesel::{ExpressionMethods, QueryDsl, RunQueryDsl};
use itertools::Itertools;
use std::{cmp, fs::create_dir_all, path::Path, sync::Mutex};
use tantivy::{
- collector::TopDocs, directory::MmapDirectory, schema::*, tokenizer::*, Index, IndexReader,
+ collector::TopDocs, directory::MmapDirectory, doc, schema::*, tokenizer::*, Index, IndexReader,
IndexWriter, ReloadPolicy, Term,
};
use whatlang::{detect as detect_lang, Lang};
use super::tokenizer;
-use search::query::PlumeQuery;
-use Result;
+use crate::search::query::PlumeQuery;
+use crate::Result;
#[derive(Debug)]
pub enum SearcherError {
@@ -72,7 +72,7 @@ impl Searcher {
schema_builder.build()
}
- pub fn create(path: &AsRef) -> Result {
+ pub fn create(path: &dyn AsRef) -> Result {
let whitespace_tokenizer = tokenizer::WhitespaceTokenizer.filter(LowerCaser);
let content_tokenizer = SimpleTokenizer
@@ -111,7 +111,7 @@ impl Searcher {
})
}
- pub fn open(path: &AsRef) -> Result {
+ pub fn open(path: &dyn AsRef) -> Result {
let whitespace_tokenizer = tokenizer::WhitespaceTokenizer.filter(LowerCaser);
let content_tokenizer = SimpleTokenizer
diff --git a/plume-models/src/tags.rs b/plume-models/src/tags.rs
index 5711853c..e59c2da8 100644
--- a/plume-models/src/tags.rs
+++ b/plume-models/src/tags.rs
@@ -1,9 +1,9 @@
use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl};
-use instance::Instance;
+use crate::instance::Instance;
+use crate::schema::tags;
+use crate::{ap_url, Connection, Error, Result};
use plume_common::activity_pub::Hashtag;
-use schema::tags;
-use {ap_url, Connection, Error, Result};
#[derive(Clone, Identifiable, Queryable)]
pub struct Tag {
diff --git a/plume-models/src/users.rs b/plume-models/src/users.rs
index 75305de4..89f09267 100644
--- a/plume-models/src/users.rs
+++ b/plume-models/src/users.rs
@@ -37,17 +37,17 @@ use std::{
use url::Url;
use webfinger::*;
-use blogs::Blog;
-use db_conn::DbConn;
-use follows::Follow;
-use instance::*;
-use medias::Media;
-use post_authors::PostAuthor;
-use posts::Post;
-use safe_string::SafeString;
-use schema::users;
-use search::Searcher;
-use {ap_url, Connection, Error, PlumeRocket, Result};
+use crate::blogs::Blog;
+use crate::db_conn::DbConn;
+use crate::follows::Follow;
+use crate::instance::*;
+use crate::medias::Media;
+use crate::post_authors::PostAuthor;
+use crate::posts::Post;
+use crate::safe_string::SafeString;
+use crate::schema::users;
+use crate::search::Searcher;
+use crate::{ap_url, Connection, Error, PlumeRocket, Result};
pub type CustomPerson = CustomObject;
@@ -146,7 +146,7 @@ impl User {
}
pub fn delete(&self, conn: &Connection, searcher: &Searcher) -> Result<()> {
- use schema::post_authors;
+ use crate::schema::post_authors;
for blog in Blog::find_for_author(conn, self)?
.iter()
@@ -421,8 +421,8 @@ impl User {
}
fn get_activities(&self, conn: &Connection) -> Result> {
- use schema::post_authors;
- use schema::posts;
+ use crate::schema::post_authors;
+ use crate::schema::posts;
let posts_by_self = PostAuthor::belonging_to(self).select(post_authors::post_id);
let posts = posts::table
.filter(posts::published.eq(true))
@@ -439,7 +439,7 @@ impl User {
}
pub fn get_followers(&self, conn: &Connection) -> Result> {
- use schema::follows;
+ use crate::schema::follows;
let follows = Follow::belonging_to(self).select(follows::follower_id);
users::table
.filter(users::id.eq_any(follows))
@@ -448,7 +448,7 @@ impl User {
}
pub fn count_followers(&self, conn: &Connection) -> Result {
- use schema::follows;
+ use crate::schema::follows;
let follows = Follow::belonging_to(self).select(follows::follower_id);
users::table
.filter(users::id.eq_any(follows))
@@ -462,7 +462,7 @@ impl User {
conn: &Connection,
(min, max): (i32, i32),
) -> Result> {
- use schema::follows;
+ use crate::schema::follows;
let follows = Follow::belonging_to(self).select(follows::follower_id);
users::table
.filter(users::id.eq_any(follows))
@@ -473,7 +473,7 @@ impl User {
}
pub fn get_followed(&self, conn: &Connection) -> Result> {
- use schema::follows::dsl::*;
+ use crate::schema::follows::dsl::*;
let f = follows.filter(follower_id.eq(self.id)).select(following_id);
users::table
.filter(users::id.eq_any(f))
@@ -482,7 +482,7 @@ impl User {
}
pub fn count_followed(&self, conn: &Connection) -> Result {
- use schema::follows;
+ use crate::schema::follows;
follows::table
.filter(follows::follower_id.eq(self.id))
.count()
@@ -495,7 +495,7 @@ impl User {
conn: &Connection,
(min, max): (i32, i32),
) -> Result> {
- use schema::follows;
+ use crate::schema::follows;
let follows = follows::table
.filter(follows::follower_id.eq(self.id))
.select(follows::following_id)
@@ -508,7 +508,7 @@ impl User {
}
pub fn is_followed_by(&self, conn: &Connection, other_id: i32) -> Result {
- use schema::follows;
+ use crate::schema::follows;
follows::table
.filter(follows::follower_id.eq(other_id))
.filter(follows::following_id.eq(self.id))
@@ -519,7 +519,7 @@ impl User {
}
pub fn is_following(&self, conn: &Connection, other_id: i32) -> Result {
- use schema::follows;
+ use crate::schema::follows;
follows::table
.filter(follows::follower_id.eq(self.id))
.filter(follows::following_id.eq(other_id))
@@ -530,7 +530,7 @@ impl User {
}
pub fn has_liked(&self, conn: &Connection, post: &Post) -> Result {
- use schema::likes;
+ use crate::schema::likes;
likes::table
.filter(likes::post_id.eq(post.id))
.filter(likes::user_id.eq(self.id))
@@ -541,7 +541,7 @@ impl User {
}
pub fn has_reshared(&self, conn: &Connection, post: &Post) -> Result {
- use schema::reshares;
+ use crate::schema::reshares;
reshares::table
.filter(reshares::post_id.eq(post.id))
.filter(reshares::user_id.eq(self.id))
@@ -552,7 +552,7 @@ impl User {
}
pub fn is_author_in(&self, conn: &Connection, blog: &Blog) -> Result {
- use schema::blog_authors;
+ use crate::schema::blog_authors;
blog_authors::table
.filter(blog_authors::author_id.eq(self.id))
.filter(blog_authors::blog_id.eq(blog.id))
@@ -947,11 +947,11 @@ impl NewUser {
#[cfg(test)]
pub(crate) mod tests {
use super::*;
+ use crate::instance::{tests as instance_tests, Instance};
+ use crate::search::tests::get_searcher;
+ use crate::tests::{db, rockets};
+ use crate::Connection as Conn;
use diesel::Connection;
- use instance::{tests as instance_tests, Instance};
- use search::tests::get_searcher;
- use tests::{db, rockets};
- use Connection as Conn;
pub(crate) fn fill_database(conn: &Conn) -> Vec {
instance_tests::fill_database(conn);
diff --git a/plume-models/tests/lib.rs b/plume-models/tests/lib.rs
index 467be39a..3b563b03 100644
--- a/plume-models/tests/lib.rs
+++ b/plume-models/tests/lib.rs
@@ -1,7 +1,3 @@
-extern crate diesel;
-extern crate plume_common;
-extern crate plume_models;
-
use diesel::Connection;
use plume_common::utils::random_hex;
use plume_models::migrations::IMPORTED_MIGRATIONS;
diff --git a/src/api/mod.rs b/src/api/mod.rs
index c320e081..9a438b87 100644
--- a/src/api/mod.rs
+++ b/src/api/mod.rs
@@ -4,7 +4,7 @@ use rocket::{
response::{self, Responder},
};
use rocket_contrib::json::Json;
-use serde_json;
+use serde_json::json;
use plume_common::utils::random_hex;
use plume_models::{api_tokens::*, apps::App, users::User, Error, PlumeRocket};
@@ -27,7 +27,7 @@ impl From for ApiError {
}
impl<'r> Responder<'r> for ApiError {
- fn respond_to(self, req: &Request) -> response::Result<'r> {
+ fn respond_to(self, req: &Request<'_>) -> response::Result<'r> {
match self.0 {
Error::NotFound => Json(json!({
"error": "Not found"
diff --git a/src/inbox.rs b/src/inbox.rs
index 451b1db4..71270f53 100644
--- a/src/inbox.rs
+++ b/src/inbox.rs
@@ -14,7 +14,7 @@ use std::io::Read;
pub fn handle_incoming(
rockets: PlumeRocket,
data: SignedJson,
- headers: Headers,
+ headers: Headers<'_>,
) -> Result> {
let conn = &*rockets.conn;
let act = data.1.into_inner();
@@ -74,7 +74,7 @@ impl<'a, T: Deserialize<'a>> FromData<'a> for SignedJson {
type Borrowed = str;
fn transform(
- r: &Request,
+ r: &Request<'_>,
d: Data,
) -> Transform> {
let size_limit = r.limits().get("json").unwrap_or(JSON_LIMIT);
@@ -86,7 +86,7 @@ impl<'a, T: Deserialize<'a>> FromData<'a> for SignedJson {
}
fn from_data(
- _: &Request,
+ _: &Request<'_>,
o: Transformed<'a, Self>,
) -> rocket::data::Outcome {
let string = o.borrowed()?;
diff --git a/src/main.rs b/src/main.rs
index f3cd6550..05520851 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,42 +1,12 @@
#![allow(clippy::too_many_arguments)]
#![feature(decl_macro, proc_macro_hygiene, try_trait)]
-extern crate activitypub;
-extern crate askama_escape;
-extern crate atom_syndication;
-extern crate chrono;
-extern crate colored;
-extern crate ctrlc;
-extern crate diesel;
-extern crate dotenv;
#[macro_use]
extern crate gettext_macros;
-extern crate gettext_utils;
-extern crate guid_create;
-extern crate heck;
-extern crate lettre;
-extern crate lettre_email;
-extern crate multipart;
-extern crate num_cpus;
-extern crate plume_api;
-extern crate plume_common;
-extern crate plume_models;
#[macro_use]
extern crate rocket;
-extern crate rocket_contrib;
-extern crate rocket_csrf;
-extern crate rocket_i18n;
-#[macro_use]
-extern crate runtime_fmt;
-extern crate scheduled_thread_pool;
-extern crate serde;
-#[macro_use]
-extern crate serde_json;
-extern crate serde_qs;
-extern crate validator;
#[macro_use]
extern crate validator_derive;
-extern crate webfinger;
use diesel::r2d2::ConnectionManager;
use plume_models::{
diff --git a/src/routes/blogs.rs b/src/routes/blogs.rs
index ae935dc7..25490d65 100644
--- a/src/routes/blogs.rs
+++ b/src/routes/blogs.rs
@@ -10,14 +10,14 @@ use rocket_i18n::I18n;
use std::{borrow::Cow, collections::HashMap};
use validator::{Validate, ValidationError, ValidationErrors};
+use crate::routes::{errors::ErrorPage, Page};
+use crate::template_utils::{IntoContext, Ructe};
use plume_common::activity_pub::{ActivityStream, ApRequest};
use plume_common::utils;
use plume_models::{
blog_authors::*, blogs::*, instance::Instance, medias::*, posts::Post, safe_string::SafeString,
users::User, Connection, PlumeRocket,
};
-use routes::{errors::ErrorPage, Page};
-use template_utils::{IntoContext, Ructe};
#[get("/~/?", rank = 2)]
pub fn details(name: String, page: Option, rockets: PlumeRocket) -> Result {
diff --git a/src/routes/comments.rs b/src/routes/comments.rs
index a99ac189..4aa8c1f7 100644
--- a/src/routes/comments.rs
+++ b/src/routes/comments.rs
@@ -1,13 +1,15 @@
+use crate::template_utils::Ructe;
use activitypub::object::Note;
use rocket::{
request::LenientForm,
response::{Flash, Redirect},
};
-use template_utils::Ructe;
use validator::Validate;
use std::time::Duration;
+use crate::routes::errors::ErrorPage;
+use crate::template_utils::IntoContext;
use plume_common::{
activity_pub::{broadcast, ActivityStream, ApRequest},
utils,
@@ -16,8 +18,6 @@ use plume_models::{
blogs::Blog, comments::*, inbox::inbox, instance::Instance, medias::Media, mentions::Mention,
posts::Post, safe_string::SafeString, tags::Tag, users::User, Error, PlumeRocket,
};
-use routes::errors::ErrorPage;
-use template_utils::IntoContext;
#[derive(Default, FromForm, Debug, Validate)]
pub struct NewCommentForm {
diff --git a/src/routes/errors.rs b/src/routes/errors.rs
index 1320a068..53baeef0 100644
--- a/src/routes/errors.rs
+++ b/src/routes/errors.rs
@@ -1,9 +1,9 @@
+use crate::template_utils::{IntoContext, Ructe};
use plume_models::{Error, PlumeRocket};
use rocket::{
response::{self, Responder},
Request,
};
-use template_utils::{IntoContext, Ructe};
#[derive(Debug)]
pub struct ErrorPage(Error);
@@ -15,7 +15,7 @@ impl From for ErrorPage {
}
impl<'r> Responder<'r> for ErrorPage {
- fn respond_to(self, req: &Request) -> response::Result<'r> {
+ fn respond_to(self, req: &Request<'_>) -> response::Result<'r> {
let rockets = req.guard::().unwrap();
match self.0 {
@@ -29,19 +29,19 @@ impl<'r> Responder<'r> for ErrorPage {
}
#[catch(404)]
-pub fn not_found(req: &Request) -> Ructe {
+pub fn not_found(req: &Request<'_>) -> Ructe {
let rockets = req.guard::().unwrap();
render!(errors::not_found(&rockets.to_context()))
}
#[catch(422)]
-pub fn unprocessable_entity(req: &Request) -> Ructe {
+pub fn unprocessable_entity(req: &Request<'_>) -> Ructe {
let rockets = req.guard::().unwrap();
render!(errors::unprocessable_entity(&rockets.to_context()))
}
#[catch(500)]
-pub fn server_error(req: &Request) -> Ructe {
+pub fn server_error(req: &Request<'_>) -> Ructe {
let rockets = req.guard::().unwrap();
render!(errors::server_error(&rockets.to_context()))
}
diff --git a/src/routes/instance.rs b/src/routes/instance.rs
index 26b057c0..7095b3cf 100644
--- a/src/routes/instance.rs
+++ b/src/routes/instance.rs
@@ -4,17 +4,17 @@ use rocket::{
};
use rocket_contrib::json::Json;
use rocket_i18n::I18n;
-use serde_json;
+use serde_json::json;
use validator::{Validate, ValidationErrors};
-use inbox;
+use crate::inbox;
+use crate::routes::{errors::ErrorPage, rocket_uri_macro_static_files, Page};
+use crate::template_utils::{IntoContext, Ructe};
use plume_common::activity_pub::{broadcast, inbox::FromId};
use plume_models::{
admin::Admin, comments::Comment, db_conn::DbConn, headers::Headers, instance::*, posts::Post,
safe_string::SafeString, users::User, Error, PlumeRocket, CONFIG,
};
-use routes::{errors::ErrorPage, rocket_uri_macro_static_files, Page};
-use template_utils::{IntoContext, Ructe};
#[get("/")]
pub fn index(rockets: PlumeRocket) -> Result {
@@ -226,7 +226,7 @@ pub fn ban(_admin: Admin, id: i32, rockets: PlumeRocket) -> Result,
- headers: Headers,
+ headers: Headers<'_>,
) -> Result> {
inbox::handle_incoming(rockets, data, headers)
}
diff --git a/src/routes/likes.rs b/src/routes/likes.rs
index bf1b7747..0ef8ead3 100644
--- a/src/routes/likes.rs
+++ b/src/routes/likes.rs
@@ -1,12 +1,12 @@
use rocket::response::{Flash, Redirect};
use rocket_i18n::I18n;
+use crate::routes::errors::ErrorPage;
use plume_common::activity_pub::broadcast;
use plume_common::utils;
use plume_models::{
blogs::Blog, inbox::inbox, likes, posts::Post, users::User, Error, PlumeRocket,
};
-use routes::errors::ErrorPage;
#[post("/~///like")]
pub fn create(
diff --git a/src/routes/medias.rs b/src/routes/medias.rs
index e93ffc02..a764ff3c 100644
--- a/src/routes/medias.rs
+++ b/src/routes/medias.rs
@@ -1,3 +1,5 @@
+use crate::routes::{errors::ErrorPage, Page};
+use crate::template_utils::{IntoContext, Ructe};
use guid_create::GUID;
use multipart::server::{
save::{SaveResult, SavedData},
@@ -10,9 +12,7 @@ use rocket::{
Data,
};
use rocket_i18n::I18n;
-use routes::{errors::ErrorPage, Page};
use std::fs;
-use template_utils::{IntoContext, Ructe};
#[get("/medias?")]
pub fn list(user: User, page: Option, rockets: PlumeRocket) -> Result {
diff --git a/src/routes/notifications.rs b/src/routes/notifications.rs
index 41ba5918..cec540d7 100644
--- a/src/routes/notifications.rs
+++ b/src/routes/notifications.rs
@@ -1,10 +1,10 @@
use rocket::response::{Flash, Redirect};
use rocket_i18n::I18n;
+use crate::routes::{errors::ErrorPage, Page};
+use crate::template_utils::{IntoContext, Ructe};
use plume_common::utils;
use plume_models::{notifications::Notification, users::User, PlumeRocket};
-use routes::{errors::ErrorPage, Page};
-use template_utils::{IntoContext, Ructe};
#[get("/notifications?")]
pub fn notifications(
diff --git a/src/routes/posts.rs b/src/routes/posts.rs
index 47f55553..5d3b09ed 100644
--- a/src/routes/posts.rs
+++ b/src/routes/posts.rs
@@ -3,6 +3,7 @@ use heck::{CamelCase, KebabCase};
use rocket::request::LenientForm;
use rocket::response::{Flash, Redirect};
use rocket_i18n::I18n;
+use runtime_fmt::{rt_format, rt_format_args};
use std::{
borrow::Cow,
collections::{HashMap, HashSet},
@@ -10,6 +11,8 @@ use std::{
};
use validator::{Validate, ValidationError, ValidationErrors};
+use crate::routes::{comments::NewCommentForm, errors::ErrorPage, ContentLen, RemoteForm};
+use crate::template_utils::{IntoContext, Ructe};
use plume_common::activity_pub::{broadcast, ActivityStream, ApRequest};
use plume_common::utils;
use plume_models::{
@@ -26,8 +29,6 @@ use plume_models::{
users::User,
Error, PlumeRocket,
};
-use routes::{comments::NewCommentForm, errors::ErrorPage, ContentLen, RemoteForm};
-use template_utils::{IntoContext, Ructe};
#[get("/~//?", rank = 4)]
pub fn details(
diff --git a/src/routes/reshares.rs b/src/routes/reshares.rs
index fc45227b..d1be4a6a 100644
--- a/src/routes/reshares.rs
+++ b/src/routes/reshares.rs
@@ -1,12 +1,12 @@
use rocket::response::{Flash, Redirect};
use rocket_i18n::I18n;
+use crate::routes::errors::ErrorPage;
use plume_common::activity_pub::broadcast;
use plume_common::utils;
use plume_models::{
blogs::Blog, inbox::inbox, posts::Post, reshares::*, users::User, Error, PlumeRocket,
};
-use routes::errors::ErrorPage;
#[post("/~///reshare")]
pub fn create(
diff --git a/src/routes/search.rs b/src/routes/search.rs
index b605d103..0341bf8f 100644
--- a/src/routes/search.rs
+++ b/src/routes/search.rs
@@ -1,10 +1,10 @@
use chrono::offset::Utc;
use rocket::request::Form;
+use crate::routes::Page;
+use crate::template_utils::{IntoContext, Ructe};
use plume_models::{search::Query, PlumeRocket};
-use routes::Page;
use std::str::FromStr;
-use template_utils::{IntoContext, Ructe};
#[derive(Default, FromForm)]
pub struct SearchQuery {
diff --git a/src/routes/session.rs b/src/routes/session.rs
index 5a299f3e..6804d0c8 100644
--- a/src/routes/session.rs
+++ b/src/routes/session.rs
@@ -14,13 +14,13 @@ use std::{
};
use validator::{Validate, ValidationError, ValidationErrors};
-use mail::{build_mail, Mailer};
+use crate::mail::{build_mail, Mailer};
+use crate::routes::errors::ErrorPage;
+use crate::template_utils::{IntoContext, Ructe};
use plume_models::{
users::{User, AUTH_COOKIE},
Error, PlumeRocket, CONFIG,
};
-use routes::errors::ErrorPage;
-use template_utils::{IntoContext, Ructe};
#[get("/login?")]
pub fn new(m: Option, rockets: PlumeRocket) -> Ructe {
@@ -43,7 +43,7 @@ pub struct LoginForm {
#[post("/login", data = "