Prepare for Rust 2018 edition
This commit is contained in:
parent
98f105fda0
commit
fd4128c364
@ -28,10 +28,10 @@ use diesel::r2d2::ConnectionManager;
|
|||||||
use std::io;
|
use std::io;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
|
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
use xdg_dirs;
|
use crate::xdg_dirs;
|
||||||
|
|
||||||
type Pool = r2d2::Pool<ConnectionManager<SqliteConnection>>;
|
type Pool = r2d2::Pool<ConnectionManager<SqliteConnection>>;
|
||||||
|
|
||||||
|
|||||||
@ -26,12 +26,12 @@ use diesel;
|
|||||||
use diesel::dsl::exists;
|
use diesel::dsl::exists;
|
||||||
use diesel::select;
|
use diesel::select;
|
||||||
|
|
||||||
use database::connection;
|
use crate::database::connection;
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::*;
|
use crate::models::*;
|
||||||
|
|
||||||
pub fn get_sources() -> Result<Vec<Source>, DataError> {
|
pub fn get_sources() -> Result<Vec<Source>, DataError> {
|
||||||
use schema::source::dsl::*;
|
use crate::schema::source::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ pub fn get_sources() -> Result<Vec<Source>, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_podcasts() -> Result<Vec<Show>, DataError> {
|
pub fn get_podcasts() -> Result<Vec<Show>, DataError> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ pub fn get_podcasts() -> Result<Vec<Show>, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_podcasts_filter(filter_ids: &[i32]) -> Result<Vec<Show>, DataError> {
|
pub fn get_podcasts_filter(filter_ids: &[i32]) -> Result<Vec<Show>, DataError> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ pub fn get_podcasts_filter(filter_ids: &[i32]) -> Result<Vec<Show>, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_episodes() -> Result<Vec<Episode>, DataError> {
|
pub fn get_episodes() -> Result<Vec<Episode>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ pub fn get_episodes() -> Result<Vec<Episode>, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get_downloaded_episodes() -> Result<Vec<EpisodeCleanerModel>, DataError> {
|
pub(crate) fn get_downloaded_episodes() -> Result<Vec<EpisodeCleanerModel>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ pub(crate) fn get_downloaded_episodes() -> Result<Vec<EpisodeCleanerModel>, Data
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
pub(crate) fn get_played_cleaner_episodes() -> Result<Vec<EpisodeCleanerModel>, DataError> {
|
pub(crate) fn get_played_cleaner_episodes() -> Result<Vec<EpisodeCleanerModel>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ pub(crate) fn get_played_cleaner_episodes() -> Result<Vec<EpisodeCleanerModel>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_episode_from_rowid(ep_id: i32) -> Result<Episode, DataError> {
|
pub fn get_episode_from_rowid(ep_id: i32) -> Result<Episode, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ pub fn get_episode_from_rowid(ep_id: i32) -> Result<Episode, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_episode_widget_from_rowid(ep_id: i32) -> Result<EpisodeWidgetModel, DataError> {
|
pub fn get_episode_widget_from_rowid(ep_id: i32) -> Result<EpisodeWidgetModel, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ pub fn get_episode_widget_from_rowid(ep_id: i32) -> Result<EpisodeWidgetModel, D
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_episode_local_uri_from_id(ep_id: i32) -> Result<Option<String>, DataError> {
|
pub fn get_episode_local_uri_from_id(ep_id: i32) -> Result<Option<String>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ pub fn get_episodes_widgets_filter_limit(
|
|||||||
filter_ids: &[i32],
|
filter_ids: &[i32],
|
||||||
limit: u32,
|
limit: u32,
|
||||||
) -> Result<Vec<EpisodeWidgetModel>, DataError> {
|
) -> Result<Vec<EpisodeWidgetModel>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
let columns = (
|
let columns = (
|
||||||
@ -168,7 +168,7 @@ pub fn get_episodes_widgets_filter_limit(
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_podcast_from_id(pid: i32) -> Result<Show, DataError> {
|
pub fn get_podcast_from_id(pid: i32) -> Result<Show, DataError> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -179,7 +179,7 @@ pub fn get_podcast_from_id(pid: i32) -> Result<Show, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_podcast_cover_from_id(pid: i32) -> Result<ShowCoverModel, DataError> {
|
pub fn get_podcast_cover_from_id(pid: i32) -> Result<ShowCoverModel, DataError> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -191,7 +191,7 @@ pub fn get_podcast_cover_from_id(pid: i32) -> Result<ShowCoverModel, DataError>
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_pd_episodes(parent: &Show) -> Result<Vec<Episode>, DataError> {
|
pub fn get_pd_episodes(parent: &Show) -> Result<Vec<Episode>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ pub fn get_pd_episodes_count(parent: &Show) -> Result<i64, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_pd_episodeswidgets(parent: &Show) -> Result<Vec<EpisodeWidgetModel>, DataError> {
|
pub fn get_pd_episodeswidgets(parent: &Show) -> Result<Vec<EpisodeWidgetModel>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
let columns = (
|
let columns = (
|
||||||
@ -228,7 +228,7 @@ pub fn get_pd_episodeswidgets(parent: &Show) -> Result<Vec<EpisodeWidgetModel>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_pd_unplayed_episodes(parent: &Show) -> Result<Vec<Episode>, DataError> {
|
pub fn get_pd_unplayed_episodes(parent: &Show) -> Result<Vec<Episode>, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ pub fn get_pd_unplayed_episodes(parent: &Show) -> Result<Vec<Episode>, DataError
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
pub fn get_source_from_uri(uri_: &str) -> Result<Source, DataError> {
|
pub fn get_source_from_uri(uri_: &str) -> Result<Source, DataError> {
|
||||||
use schema::source::dsl::*;
|
use crate::schema::source::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ pub fn get_source_from_uri(uri_: &str) -> Result<Source, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_source_from_id(id_: i32) -> Result<Source, DataError> {
|
pub fn get_source_from_id(id_: i32) -> Result<Source, DataError> {
|
||||||
use schema::source::dsl::*;
|
use crate::schema::source::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -275,7 +275,7 @@ pub fn get_source_from_id(id_: i32) -> Result<Source, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_podcast_from_source_id(sid: i32) -> Result<Show, DataError> {
|
pub fn get_podcast_from_source_id(sid: i32) -> Result<Show, DataError> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ pub fn get_podcast_from_source_id(sid: i32) -> Result<Show, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_episode_from_pk(title_: &str, pid: i32) -> Result<Episode, DataError> {
|
pub fn get_episode_from_pk(title_: &str, pid: i32) -> Result<Episode, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -301,7 +301,7 @@ pub(crate) fn get_episode_minimal_from_pk(
|
|||||||
title_: &str,
|
title_: &str,
|
||||||
pid: i32,
|
pid: i32,
|
||||||
) -> Result<EpisodeMinimal, DataError> {
|
) -> Result<EpisodeMinimal, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -318,7 +318,7 @@ pub(crate) fn get_episode_cleaner_from_pk(
|
|||||||
title_: &str,
|
title_: &str,
|
||||||
pid: i32,
|
pid: i32,
|
||||||
) -> Result<EpisodeCleanerModel, DataError> {
|
) -> Result<EpisodeCleanerModel, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -344,25 +344,25 @@ pub(crate) fn remove_feed(pd: &Show) -> Result<(), DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn delete_source(con: &SqliteConnection, source_id: i32) -> QueryResult<usize> {
|
fn delete_source(con: &SqliteConnection, source_id: i32) -> QueryResult<usize> {
|
||||||
use schema::source::dsl::*;
|
use crate::schema::source::dsl::*;
|
||||||
|
|
||||||
diesel::delete(source.filter(id.eq(source_id))).execute(con)
|
diesel::delete(source.filter(id.eq(source_id))).execute(con)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn delete_podcast(con: &SqliteConnection, show_id: i32) -> QueryResult<usize> {
|
fn delete_podcast(con: &SqliteConnection, show_id: i32) -> QueryResult<usize> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
|
|
||||||
diesel::delete(shows.filter(id.eq(show_id))).execute(con)
|
diesel::delete(shows.filter(id.eq(show_id))).execute(con)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn delete_podcast_episodes(con: &SqliteConnection, parent_id: i32) -> QueryResult<usize> {
|
fn delete_podcast_episodes(con: &SqliteConnection, parent_id: i32) -> QueryResult<usize> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
|
|
||||||
diesel::delete(episodes.filter(show_id.eq(parent_id))).execute(con)
|
diesel::delete(episodes.filter(show_id.eq(parent_id))).execute(con)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn source_exists(url: &str) -> Result<bool, DataError> {
|
pub fn source_exists(url: &str) -> Result<bool, DataError> {
|
||||||
use schema::source::dsl::*;
|
use crate::schema::source::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
@ -373,7 +373,7 @@ pub fn source_exists(url: &str) -> Result<bool, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn podcast_exists(source_id_: i32) -> Result<bool, DataError> {
|
pub(crate) fn podcast_exists(source_id_: i32) -> Result<bool, DataError> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
@ -385,7 +385,7 @@ pub(crate) fn podcast_exists(source_id_: i32) -> Result<bool, DataError> {
|
|||||||
|
|
||||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||||
pub(crate) fn episode_exists(title_: &str, show_id_: i32) -> Result<bool, DataError> {
|
pub(crate) fn episode_exists(title_: &str, show_id_: i32) -> Result<bool, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
@ -399,7 +399,7 @@ pub(crate) fn episode_exists(title_: &str, show_id_: i32) -> Result<bool, DataEr
|
|||||||
///
|
///
|
||||||
/// Return true if `episodes` table is populated.
|
/// Return true if `episodes` table is populated.
|
||||||
pub fn is_episodes_populated(filter_show_ids: &[i32]) -> Result<bool, DataError> {
|
pub fn is_episodes_populated(filter_show_ids: &[i32]) -> Result<bool, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
@ -413,7 +413,7 @@ pub fn is_episodes_populated(filter_show_ids: &[i32]) -> Result<bool, DataError>
|
|||||||
///
|
///
|
||||||
/// Return true if `shows` table is populated.
|
/// Return true if `shows` table is populated.
|
||||||
pub fn is_podcasts_populated(filter_ids: &[i32]) -> Result<bool, DataError> {
|
pub fn is_podcasts_populated(filter_ids: &[i32]) -> Result<bool, DataError> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
@ -427,7 +427,7 @@ pub fn is_podcasts_populated(filter_ids: &[i32]) -> Result<bool, DataError> {
|
|||||||
///
|
///
|
||||||
/// Return true if `source` table is populated.
|
/// Return true if `source` table is populated.
|
||||||
pub fn is_source_populated(filter_ids: &[i32]) -> Result<bool, DataError> {
|
pub fn is_source_populated(filter_ids: &[i32]) -> Result<bool, DataError> {
|
||||||
use schema::source::dsl::*;
|
use crate::schema::source::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
@ -438,7 +438,7 @@ pub fn is_source_populated(filter_ids: &[i32]) -> Result<bool, DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn index_new_episodes(eps: &[NewEpisode]) -> Result<(), DataError> {
|
pub(crate) fn index_new_episodes(eps: &[NewEpisode]) -> Result<(), DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -450,7 +450,7 @@ pub(crate) fn index_new_episodes(eps: &[NewEpisode]) -> Result<(), DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_none_to_played_now(parent: &Show) -> Result<usize, DataError> {
|
pub fn update_none_to_played_now(parent: &Show) -> Result<usize, DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -466,9 +466,9 @@ pub fn update_none_to_played_now(parent: &Show) -> Result<usize, DataError> {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use database::*;
|
use crate::database::*;
|
||||||
use failure::Error;
|
use failure::Error;
|
||||||
use pipeline;
|
use crate::pipeline;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_update_none_to_played_now() -> Result<(), Error> {
|
fn test_update_none_to_played_now() -> Result<(), Error> {
|
||||||
|
|||||||
@ -29,7 +29,7 @@ use xml;
|
|||||||
|
|
||||||
use std::io;
|
use std::io;
|
||||||
|
|
||||||
use models::Source;
|
use crate::models::Source;
|
||||||
|
|
||||||
#[fail(
|
#[fail(
|
||||||
display = "Request to {} returned {}. Context: {}",
|
display = "Request to {} returned {}. Context: {}",
|
||||||
|
|||||||
@ -26,10 +26,10 @@ use futures::prelude::*;
|
|||||||
use futures::stream;
|
use futures::stream;
|
||||||
use rss;
|
use rss;
|
||||||
|
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::{Index, IndexState, Update};
|
use crate::models::{Index, IndexState, Update};
|
||||||
use models::{NewEpisode, NewEpisodeMinimal, NewShow, Show};
|
use crate::models::{NewEpisode, NewEpisodeMinimal, NewShow, Show};
|
||||||
|
|
||||||
/// Wrapper struct that hold a `Source` id and the `rss::Channel`
|
/// Wrapper struct that hold a `Source` id and the `rss::Channel`
|
||||||
/// that corresponds to the `Source.uri` field.
|
/// that corresponds to the `Source.uri` field.
|
||||||
@ -145,10 +145,10 @@ mod tests {
|
|||||||
use rss::Channel;
|
use rss::Channel;
|
||||||
use tokio::{self, prelude::*};
|
use tokio::{self, prelude::*};
|
||||||
|
|
||||||
use database::truncate_db;
|
use crate::database::truncate_db;
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
use utils::get_feed;
|
use crate::utils::get_feed;
|
||||||
use Source;
|
use crate::Source;
|
||||||
|
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::io::BufReader;
|
use std::io::BufReader;
|
||||||
|
|||||||
@ -121,9 +121,9 @@ pub mod pipeline;
|
|||||||
mod schema;
|
mod schema;
|
||||||
pub mod utils;
|
pub mod utils;
|
||||||
|
|
||||||
pub use feed::{Feed, FeedBuilder};
|
pub use crate::feed::{Feed, FeedBuilder};
|
||||||
pub use models::Save;
|
pub use crate::models::Save;
|
||||||
pub use models::{Episode, EpisodeWidgetModel, Show, ShowCoverModel, Source};
|
pub use crate::models::{Episode, EpisodeWidgetModel, Show, ShowCoverModel, Source};
|
||||||
|
|
||||||
// Set the user agent, See #53 for more
|
// Set the user agent, See #53 for more
|
||||||
// Keep this in sync with Tor-browser releases
|
// Keep this in sync with Tor-browser releases
|
||||||
|
|||||||
@ -22,10 +22,10 @@ use diesel;
|
|||||||
use diesel::prelude::*;
|
use diesel::prelude::*;
|
||||||
use diesel::SaveChangesDsl;
|
use diesel::SaveChangesDsl;
|
||||||
|
|
||||||
use database::connection;
|
use crate::database::connection;
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::{Save, Show};
|
use crate::models::{Save, Show};
|
||||||
use schema::episodes;
|
use crate::schema::episodes;
|
||||||
|
|
||||||
#[derive(Queryable, Identifiable, AsChangeset, Associations, PartialEq)]
|
#[derive(Queryable, Identifiable, AsChangeset, Associations, PartialEq)]
|
||||||
#[table_name = "episodes"]
|
#[table_name = "episodes"]
|
||||||
@ -172,7 +172,7 @@ impl Save<usize> for EpisodeWidgetModel {
|
|||||||
/// Helper method to easily save/"sync" current state of self to the
|
/// Helper method to easily save/"sync" current state of self to the
|
||||||
/// Database.
|
/// Database.
|
||||||
fn save(&self) -> Result<usize, Self::Error> {
|
fn save(&self) -> Result<usize, Self::Error> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let tempdb = db.get()?;
|
let tempdb = db.get()?;
|
||||||
@ -285,7 +285,7 @@ impl Save<usize> for EpisodeCleanerModel {
|
|||||||
/// Helper method to easily save/"sync" current state of self to the
|
/// Helper method to easily save/"sync" current state of self to the
|
||||||
/// Database.
|
/// Database.
|
||||||
fn save(&self) -> Result<usize, Self::Error> {
|
fn save(&self) -> Result<usize, Self::Error> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
|
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let tempdb = db.get()?;
|
let tempdb = db.get()?;
|
||||||
|
|||||||
@ -58,7 +58,7 @@ pub trait Insert<T> {
|
|||||||
pub trait Update<T> {
|
pub trait Update<T> {
|
||||||
type Error;
|
type Error;
|
||||||
|
|
||||||
fn update(&self, i32) -> Result<T, Self::Error>;
|
fn update(&self, _: i32) -> Result<T, Self::Error>;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This might need to change in the future
|
// This might need to change in the future
|
||||||
|
|||||||
@ -23,13 +23,13 @@ use diesel::prelude::*;
|
|||||||
use rfc822_sanitizer::parse_from_rfc2822_with_fallback as parse_rfc822;
|
use rfc822_sanitizer::parse_from_rfc2822_with_fallback as parse_rfc822;
|
||||||
use rss;
|
use rss;
|
||||||
|
|
||||||
use database::connection;
|
use crate::database::connection;
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::{Episode, EpisodeMinimal, Index, Insert, Update};
|
use crate::models::{Episode, EpisodeMinimal, Index, Insert, Update};
|
||||||
use parser;
|
use crate::parser;
|
||||||
use schema::episodes;
|
use crate::schema::episodes;
|
||||||
use utils::url_cleaner;
|
use crate::utils::url_cleaner;
|
||||||
|
|
||||||
#[derive(Insertable, AsChangeset)]
|
#[derive(Insertable, AsChangeset)]
|
||||||
#[table_name = "episodes"]
|
#[table_name = "episodes"]
|
||||||
@ -66,7 +66,7 @@ impl Insert<()> for NewEpisode {
|
|||||||
type Error = DataError;
|
type Error = DataError;
|
||||||
|
|
||||||
fn insert(&self) -> Result<(), DataError> {
|
fn insert(&self) -> Result<(), DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ impl Update<()> for NewEpisode {
|
|||||||
type Error = DataError;
|
type Error = DataError;
|
||||||
|
|
||||||
fn update(&self, episode_id: i32) -> Result<(), DataError> {
|
fn update(&self, episode_id: i32) -> Result<(), DataError> {
|
||||||
use schema::episodes::dsl::*;
|
use crate::schema::episodes::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -330,11 +330,11 @@ impl NewEpisodeMinimal {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use database::truncate_db;
|
use crate::database::truncate_db;
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
use failure::Error;
|
use failure::Error;
|
||||||
use models::new_episode::{NewEpisodeMinimal, NewEpisodeMinimalBuilder};
|
use crate::models::new_episode::{NewEpisodeMinimal, NewEpisodeMinimalBuilder};
|
||||||
use models::*;
|
use crate::models::*;
|
||||||
|
|
||||||
use rss::Channel;
|
use rss::Channel;
|
||||||
|
|
||||||
|
|||||||
@ -22,14 +22,14 @@ use diesel;
|
|||||||
use diesel::prelude::*;
|
use diesel::prelude::*;
|
||||||
use rss;
|
use rss;
|
||||||
|
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::Show;
|
use crate::models::Show;
|
||||||
use models::{Index, Insert, Update};
|
use crate::models::{Index, Insert, Update};
|
||||||
use schema::shows;
|
use crate::schema::shows;
|
||||||
|
|
||||||
use database::connection;
|
use crate::database::connection;
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
use utils::url_cleaner;
|
use crate::utils::url_cleaner;
|
||||||
|
|
||||||
#[derive(Insertable, AsChangeset)]
|
#[derive(Insertable, AsChangeset)]
|
||||||
#[table_name = "shows"]
|
#[table_name = "shows"]
|
||||||
@ -49,7 +49,7 @@ impl Insert<()> for NewShow {
|
|||||||
type Error = DataError;
|
type Error = DataError;
|
||||||
|
|
||||||
fn insert(&self) -> Result<(), Self::Error> {
|
fn insert(&self) -> Result<(), Self::Error> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ impl Update<()> for NewShow {
|
|||||||
type Error = DataError;
|
type Error = DataError;
|
||||||
|
|
||||||
fn update(&self, show_id: i32) -> Result<(), Self::Error> {
|
fn update(&self, show_id: i32) -> Result<(), Self::Error> {
|
||||||
use schema::shows::dsl::*;
|
use crate::schema::shows::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
@ -179,8 +179,8 @@ mod tests {
|
|||||||
use failure::Error;
|
use failure::Error;
|
||||||
use rss::Channel;
|
use rss::Channel;
|
||||||
|
|
||||||
use database::truncate_db;
|
use crate::database::truncate_db;
|
||||||
use models::NewShowBuilder;
|
use crate::models::NewShowBuilder;
|
||||||
|
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::BufReader;
|
use std::io::BufReader;
|
||||||
|
|||||||
@ -21,12 +21,12 @@ use diesel;
|
|||||||
use diesel::prelude::*;
|
use diesel::prelude::*;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use database::connection;
|
use crate::database::connection;
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
// use models::{Insert, Update};
|
// use models::{Insert, Update};
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::Source;
|
use crate::models::Source;
|
||||||
use schema::source;
|
use crate::schema::source;
|
||||||
|
|
||||||
#[derive(Insertable)]
|
#[derive(Insertable)]
|
||||||
#[table_name = "source"]
|
#[table_name = "source"]
|
||||||
@ -50,7 +50,7 @@ impl NewSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn insert_or_ignore(&self) -> Result<(), DataError> {
|
pub(crate) fn insert_or_ignore(&self) -> Result<(), DataError> {
|
||||||
use schema::source::dsl::*;
|
use crate::schema::source::dsl::*;
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
|
|||||||
@ -17,8 +17,8 @@
|
|||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
use models::Source;
|
use crate::models::Source;
|
||||||
use schema::shows;
|
use crate::schema::shows;
|
||||||
|
|
||||||
#[derive(Queryable, Identifiable, AsChangeset, Associations, PartialEq)]
|
#[derive(Queryable, Identifiable, AsChangeset, Associations, PartialEq)]
|
||||||
#[belongs_to(Source, foreign_key = "source_id")]
|
#[belongs_to(Source, foreign_key = "source_id")]
|
||||||
|
|||||||
@ -35,12 +35,12 @@ use http::{Request, Response, StatusCode, Uri};
|
|||||||
use futures::future::{loop_fn, Future, Loop};
|
use futures::future::{loop_fn, Future, Loop};
|
||||||
use futures::prelude::*;
|
use futures::prelude::*;
|
||||||
|
|
||||||
use database::connection;
|
use crate::database::connection;
|
||||||
use errors::*;
|
use crate::errors::*;
|
||||||
use feed::{Feed, FeedBuilder};
|
use crate::feed::{Feed, FeedBuilder};
|
||||||
use models::{NewSource, Save};
|
use crate::models::{NewSource, Save};
|
||||||
use schema::source;
|
use crate::schema::source;
|
||||||
use USER_AGENT;
|
use crate::USER_AGENT;
|
||||||
|
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
@ -316,8 +316,8 @@ mod tests {
|
|||||||
use num_cpus;
|
use num_cpus;
|
||||||
use tokio;
|
use tokio;
|
||||||
|
|
||||||
use database::truncate_db;
|
use crate::database::truncate_db;
|
||||||
use utils::get_feed;
|
use crate::utils::get_feed;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_into_feed() -> Result<(), Error> {
|
fn test_into_feed() -> Result<(), Error> {
|
||||||
|
|||||||
@ -21,8 +21,8 @@
|
|||||||
|
|
||||||
// #![allow(unused)]
|
// #![allow(unused)]
|
||||||
|
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::Source;
|
use crate::models::Source;
|
||||||
use xml::reader;
|
use xml::reader;
|
||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
|||||||
@ -29,8 +29,8 @@ use hyper_tls::HttpsConnector;
|
|||||||
|
|
||||||
use num_cpus;
|
use num_cpus;
|
||||||
|
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use Source;
|
use crate::Source;
|
||||||
|
|
||||||
use std::iter::FromIterator;
|
use std::iter::FromIterator;
|
||||||
|
|
||||||
@ -87,10 +87,10 @@ where
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use database::truncate_db;
|
use crate::database::truncate_db;
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
use failure::Error;
|
use failure::Error;
|
||||||
use Source;
|
use crate::Source;
|
||||||
|
|
||||||
// (path, url) tuples.
|
// (path, url) tuples.
|
||||||
const URLS: &[&str] = &[
|
const URLS: &[&str] = &[
|
||||||
|
|||||||
@ -24,10 +24,10 @@ use rayon::prelude::*;
|
|||||||
|
|
||||||
use url::{Position, Url};
|
use url::{Position, Url};
|
||||||
|
|
||||||
use dbqueries;
|
use crate::dbqueries;
|
||||||
use errors::DataError;
|
use crate::errors::DataError;
|
||||||
use models::{EpisodeCleanerModel, Save, Show};
|
use crate::models::{EpisodeCleanerModel, Save, Show};
|
||||||
use xdg_dirs::DL_DIR;
|
use crate::xdg_dirs::DL_DIR;
|
||||||
|
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
@ -153,13 +153,13 @@ pub fn delete_show(pd: &Show) -> Result<(), DataError> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use Feed;
|
use crate::Feed;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
/// Helper function that open a local file, parse the rss::Channel and gives back a Feed object.
|
/// Helper function that open a local file, parse the rss::Channel and gives back a Feed object.
|
||||||
/// Alternative Feed constructor to be used for tests.
|
/// Alternative Feed constructor to be used for tests.
|
||||||
pub fn get_feed(file_path: &str, id: i32) -> Feed {
|
pub fn get_feed(file_path: &str, id: i32) -> Feed {
|
||||||
use feed::FeedBuilder;
|
use crate::feed::FeedBuilder;
|
||||||
use rss::Channel;
|
use rss::Channel;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::io::BufReader;
|
use std::io::BufReader;
|
||||||
@ -184,8 +184,8 @@ mod tests {
|
|||||||
use chrono::Duration;
|
use chrono::Duration;
|
||||||
use failure::Error;
|
use failure::Error;
|
||||||
|
|
||||||
use database::truncate_db;
|
use crate::database::truncate_db;
|
||||||
use models::NewEpisodeBuilder;
|
use crate::models::NewEpisodeBuilder;
|
||||||
|
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|||||||
@ -34,7 +34,7 @@ use podcasts_data::xdg_dirs::PODCASTS_CACHE;
|
|||||||
use podcasts_data::{EpisodeWidgetModel, Save, ShowCoverModel};
|
use podcasts_data::{EpisodeWidgetModel, Save, ShowCoverModel};
|
||||||
|
|
||||||
// use failure::Error;
|
// use failure::Error;
|
||||||
use errors::DownloadError;
|
use crate::errors::DownloadError;
|
||||||
|
|
||||||
// TODO: Replace path that are of type &str with std::path.
|
// TODO: Replace path that are of type &str with std::path.
|
||||||
// TODO: Have a convention/document absolute/relative paths, if they should end
|
// TODO: Have a convention/document absolute/relative paths, if they should end
|
||||||
|
|||||||
@ -31,22 +31,22 @@ use crossbeam_channel::{unbounded, Receiver, Sender};
|
|||||||
use fragile::Fragile;
|
use fragile::Fragile;
|
||||||
use podcasts_data::Show;
|
use podcasts_data::Show;
|
||||||
|
|
||||||
use headerbar::Header;
|
use crate::headerbar::Header;
|
||||||
use prefs::Prefs;
|
use crate::prefs::Prefs;
|
||||||
use settings::{self, WindowGeometry};
|
use crate::settings::{self, WindowGeometry};
|
||||||
use stacks::{Content, PopulatedState};
|
use crate::stacks::{Content, PopulatedState};
|
||||||
use utils;
|
use crate::utils;
|
||||||
use widgets::about_dialog;
|
use crate::widgets::about_dialog;
|
||||||
use widgets::appnotif::{InAppNotification, SpinnerState, State};
|
use crate::widgets::appnotif::{InAppNotification, SpinnerState, State};
|
||||||
use widgets::player;
|
use crate::widgets::player;
|
||||||
use widgets::show_menu::{mark_all_notif, remove_show_notif, ShowMenu};
|
use crate::widgets::show_menu::{mark_all_notif, remove_show_notif, ShowMenu};
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
pub(crate) const APP_ID: &str = env!("APP_ID");
|
pub(crate) const APP_ID: &str = env!("APP_ID");
|
||||||
pub(crate) const VERSION: &str = env!("VERSION");
|
pub(crate) const VERSION: &str = env!("VERSION");
|
||||||
|
|||||||
@ -28,13 +28,13 @@ use url::Url;
|
|||||||
|
|
||||||
use podcasts_data::{dbqueries, Source};
|
use podcasts_data::{dbqueries, Source};
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use stacks::Content;
|
use crate::stacks::Content;
|
||||||
use utils::{itunes_to_rss, refresh};
|
use crate::utils::{itunes_to_rss, refresh};
|
||||||
|
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
// TODO: Make a proper state machine for the headerbar states
|
// TODO: Make a proper state machine for the headerbar states
|
||||||
|
|||||||
@ -126,7 +126,7 @@ mod utils;
|
|||||||
|
|
||||||
mod i18n;
|
mod i18n;
|
||||||
|
|
||||||
use app::App;
|
use crate::app::App;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
fn init_gtk_tests() -> Result<(), failure::Error> {
|
fn init_gtk_tests() -> Result<(), failure::Error> {
|
||||||
@ -167,8 +167,8 @@ fn main() {
|
|||||||
// cargo seems to create new threads and gtk refuses to initialize again.
|
// cargo seems to create new threads and gtk refuses to initialize again.
|
||||||
// So we run every gtk related test here.
|
// So we run every gtk related test here.
|
||||||
fn test_stuff() -> Result<(), failure::Error> {
|
fn test_stuff() -> Result<(), failure::Error> {
|
||||||
use headerbar::Header;
|
use crate::headerbar::Header;
|
||||||
use widgets::*;
|
use crate::widgets::*;
|
||||||
|
|
||||||
init_gtk_tests()?;
|
init_gtk_tests()?;
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ use gio::{Settings, SettingsExt};
|
|||||||
use gtk;
|
use gtk;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
||||||
use i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub(crate) struct Prefs {
|
pub(crate) struct Prefs {
|
||||||
|
|||||||
@ -23,13 +23,13 @@ use gtk::prelude::*;
|
|||||||
use crossbeam_channel::Sender;
|
use crossbeam_channel::Sender;
|
||||||
use failure::Error;
|
use failure::Error;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use stacks::{HomeStack, ShowStack};
|
use crate::stacks::{HomeStack, ShowStack};
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
pub(crate) enum State {
|
pub(crate) enum State {
|
||||||
|
|||||||
@ -24,9 +24,9 @@ use gtk::StackTransitionType;
|
|||||||
use crossbeam_channel::Sender;
|
use crossbeam_channel::Sender;
|
||||||
use failure::Error;
|
use failure::Error;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use stacks::State;
|
use crate::stacks::State;
|
||||||
use widgets::{EmptyView, HomeView};
|
use crate::widgets::{EmptyView, HomeView};
|
||||||
|
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|||||||
@ -27,8 +27,8 @@ use failure::Error;
|
|||||||
use podcasts_data::dbqueries;
|
use podcasts_data::dbqueries;
|
||||||
use podcasts_data::Show;
|
use podcasts_data::Show;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use widgets::{ShowWidget, ShowsView};
|
use crate::widgets::{ShowWidget, ShowsView};
|
||||||
|
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|||||||
@ -24,11 +24,11 @@ use crossbeam_channel::Sender;
|
|||||||
use failure::Error;
|
use failure::Error;
|
||||||
use podcasts_data::dbqueries::is_episodes_populated;
|
use podcasts_data::dbqueries::is_episodes_populated;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use stacks::content::State;
|
use crate::stacks::content::State;
|
||||||
use stacks::PopulatedStack;
|
use crate::stacks::PopulatedStack;
|
||||||
use utils::get_ignored_shows;
|
use crate::utils::get_ignored_shows;
|
||||||
use widgets::EmptyView;
|
use crate::widgets::EmptyView;
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
|
|||||||
@ -47,9 +47,9 @@ use podcasts_downloader::downloader;
|
|||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
use std::sync::{Arc, Mutex, RwLock};
|
use std::sync::{Arc, Mutex, RwLock};
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
|
|
||||||
use i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
/// Lazy evaluates and loads widgets to the parent `container` widget.
|
/// Lazy evaluates and loads widgets to the parent `container` widget.
|
||||||
///
|
///
|
||||||
|
|||||||
@ -17,11 +17,11 @@
|
|||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
use app::{APP_ID, VERSION};
|
use crate::app::{APP_ID, VERSION};
|
||||||
use gtk;
|
use gtk;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
||||||
use i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
// Totally copied it from fractal.
|
// Totally copied it from fractal.
|
||||||
// https://gitlab.gnome.org/danigm/fractal/blob/503e311e22b9d7540089d735b92af8e8f93560c5/fractal-gtk/src/app.rs#L1883-1912
|
// https://gitlab.gnome.org/danigm/fractal/blob/503e311e22b9d7540089d735b92af8e8f93560c5/fractal-gtk/src/app.rs#L1883-1912
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
use gtk::{self, prelude::*, Adjustment, Orientation, PolicyType};
|
use gtk::{self, prelude::*, Adjustment, Orientation, PolicyType};
|
||||||
use utils::smooth_scroll_to;
|
use crate::utils::smooth_scroll_to;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub(crate) struct BaseView {
|
pub(crate) struct BaseView {
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
use app::APP_ID;
|
use crate::app::APP_ID;
|
||||||
use gtk::{self, prelude::*};
|
use gtk::{self, prelude::*};
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
|
|
||||||
|
|||||||
@ -34,14 +34,14 @@ use podcasts_data::utils::get_download_folder;
|
|||||||
use podcasts_data::EpisodeWidgetModel;
|
use podcasts_data::EpisodeWidgetModel;
|
||||||
use podcasts_downloader::downloader::DownloadProgress;
|
use podcasts_downloader::downloader::DownloadProgress;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use manager;
|
use crate::manager;
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::rc::{Rc, Weak};
|
use std::rc::{Rc, Weak};
|
||||||
use std::sync::{Arc, Mutex, TryLockError};
|
use std::sync::{Arc, Mutex, TryLockError};
|
||||||
|
|
||||||
use i18n::i18n_f;
|
use crate::i18n::i18n_f;
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref SIZE_OPTS: Arc<size_opts::FileSizeOpts> = {
|
static ref SIZE_OPTS: Arc<size_opts::FileSizeOpts> = {
|
||||||
|
|||||||
@ -27,9 +27,9 @@ use libhandy::{Column, ColumnExt};
|
|||||||
use podcasts_data::dbqueries;
|
use podcasts_data::dbqueries;
|
||||||
use podcasts_data::EpisodeWidgetModel;
|
use podcasts_data::EpisodeWidgetModel;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use utils::{self, lazy_load_full};
|
use crate::utils::{self, lazy_load_full};
|
||||||
use widgets::{BaseView, EpisodeWidget};
|
use crate::widgets::{BaseView, EpisodeWidget};
|
||||||
|
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|||||||
@ -17,9 +17,9 @@
|
|||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
use gst::prelude::*;
|
use crate::gst::prelude::*;
|
||||||
use gst::ClockTime;
|
use crate::gst::ClockTime;
|
||||||
use gst_player;
|
use crate::gst_player;
|
||||||
|
|
||||||
use gtk;
|
use gtk;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
@ -35,8 +35,8 @@ use fragile::Fragile;
|
|||||||
use podcasts_data::{dbqueries, USER_AGENT};
|
use podcasts_data::{dbqueries, USER_AGENT};
|
||||||
use podcasts_data::{EpisodeWidgetModel, ShowCoverModel};
|
use podcasts_data::{EpisodeWidgetModel, ShowCoverModel};
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use utils::set_image_from_path;
|
use crate::utils::set_image_from_path;
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
@ -44,7 +44,7 @@ use std::path::Path;
|
|||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
|
|
||||||
use i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
use mpris_player::{Metadata, MprisPlayer, OrgMprisMediaPlayer2Player, PlaybackStatus};
|
use mpris_player::{Metadata, MprisPlayer, OrgMprisMediaPlayer2Player, PlaybackStatus};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@ -62,7 +62,7 @@ trait PlayerExt {
|
|||||||
fn seek(&self, offset: ClockTime, direction: SeekDirection);
|
fn seek(&self, offset: ClockTime, direction: SeekDirection);
|
||||||
fn fast_forward(&self);
|
fn fast_forward(&self);
|
||||||
fn rewind(&self);
|
fn rewind(&self);
|
||||||
fn set_playback_rate(&self, f64);
|
fn set_playback_rate(&self, _: f64);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
|||||||
@ -30,9 +30,9 @@ use rayon;
|
|||||||
use podcasts_data::dbqueries;
|
use podcasts_data::dbqueries;
|
||||||
use podcasts_data::Show;
|
use podcasts_data::Show;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use utils::{self, lazy_load};
|
use crate::utils::{self, lazy_load};
|
||||||
use widgets::{BaseView, EmptyShow, EpisodeWidget, ShowMenu};
|
use crate::widgets::{BaseView, EmptyShow, EpisodeWidget, ShowMenu};
|
||||||
|
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|||||||
@ -30,13 +30,13 @@ use podcasts_data::dbqueries;
|
|||||||
use podcasts_data::utils::delete_show;
|
use podcasts_data::utils::delete_show;
|
||||||
use podcasts_data::Show;
|
use podcasts_data::Show;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use utils;
|
use crate::utils;
|
||||||
use widgets::appnotif::InAppNotification;
|
use crate::widgets::appnotif::InAppNotification;
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use i18n::{i18n, i18n_f};
|
use crate::i18n::{i18n, i18n_f};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub(crate) struct ShowMenu {
|
pub(crate) struct ShowMenu {
|
||||||
|
|||||||
@ -25,9 +25,9 @@ use failure::Error;
|
|||||||
use podcasts_data::dbqueries;
|
use podcasts_data::dbqueries;
|
||||||
use podcasts_data::Show;
|
use podcasts_data::Show;
|
||||||
|
|
||||||
use app::Action;
|
use crate::app::Action;
|
||||||
use utils::{get_ignored_shows, lazy_load, set_image_from_path};
|
use crate::utils::{get_ignored_shows, lazy_load, set_image_from_path};
|
||||||
use widgets::BaseView;
|
use crate::widgets::BaseView;
|
||||||
|
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user