1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
use std::collections::HashMap;
use crate::{
sink::Sink,
source::{parser::Parser, Source},
};
/// Name -> Task
pub type Tasks = HashMap<String, Task>;
#[derive(Debug)]
pub struct Task {
pub disabled: bool,
pub refresh: u64,
pub tag: Option<String>,
pub source: Source,
pub parsers: Option<Vec<Parser>>,
pub sink: Sink,
}
// #[cfg(test)]
// mod tests {
// mod source_types {
// use teloxide::Bot;
// use super::super::Task;
// use crate::source::email::ViewMode;
// use crate::{
// sink::Sink,
// sink::Telegram,
// source::Rss,
// source::Source,
// source::{email::filters::Filters, Email},
// };
// #[test]
// fn one_type() {
// let _x = Task::new(
// false,
// 1,
// None,
// Sink::Telegram(Telegram::new(Bot::new("null"), 0)),
// vec![Source::Rss(Rss::new("null".to_owned()))],
// );
// }
// #[test]
// fn same_types() {
// let _x = Task::new(
// false,
// 1,
// None,
// Sink::Telegram(Telegram::new(Bot::new("null"), 0)),
// vec![
// Source::Rss(Rss::new("null".to_owned())),
// Source::Rss(Rss::new("null".to_owned())),
// Source::Rss(Rss::new("null".to_owned())),
// ],
// );
// }
// #[test]
// #[should_panic]
// fn different_types() {
// let _x = Task::new(
// false,
// 1,
// None,
// Sink::Telegram(Telegram::new(Bot::new("null"), 0)),
// vec![
// Source::Rss(Rss::new("null".to_owned())),
// Source::Rss(Rss::new("null".to_owned())),
// Source::Rss(Rss::new("null".to_owned())),
// Source::Rss(Rss::new("null".to_owned())),
// Source::Email(Email::with_password(
// "null".to_owned(),
// "null".to_owned(),
// "null".to_owned(),
// Filters {
// sender: None,
// subjects: None,
// exclude_subjects: None,
// },
// ViewMode::ReadOnly,
// None,
// )),
// ],
// );
// }
// }
// }