rs_plugin_lookup_interfaces/
lib.rs1use std::collections::HashMap;
2
3use plugin_request_interfaces::RsRequest;
4use rs_plugin_common_interfaces::PluginCredential;
5use serde::{Deserialize, Serialize};
6use strum_macros::EnumString;
7
8#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, strum_macros::Display,EnumString, Default)]
9#[serde(rename_all = "camelCase")]
10#[strum(serialize_all = "camelCase")]
11pub enum RsLookupResult {
12 Requests(Vec<RsRequest>),
13 NotFound,
14 #[default]
15 NotApplicable
16}
17
18#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
19#[serde(rename_all = "camelCase")]
20pub struct RsLookupEpisode {
21 pub serie: String,
22 pub imdb: Option<String>,
23 pub slug: Option<String>,
24 pub tmdb: Option<u64>,
25 pub trakt: Option<u64>,
26 pub tvdb: Option<u64>,
27 pub otherids: Option<String>,
28
29 pub season: u32,
30 pub number: Option<u32>
31}
32
33#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
34#[serde(rename_all = "camelCase")]
35pub struct RsLookupMovie {
36 pub name: String,
37 pub imdb: Option<String>,
38 pub slug: Option<String>,
39 pub tmdb: Option<u64>,
40 pub trakt: Option<u64>,
41 pub otherids: Option<String>,
42}
43
44#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
45#[serde(rename_all = "camelCase")]
46pub struct RsLookupWrapper {
47 pub query: RsLookupQuery,
48 pub credential: Option<PluginCredential>,
49 pub params: Option<HashMap<String, String>>
50
51}
52
53
54#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, strum_macros::Display,EnumString)]
55#[serde(rename_all = "camelCase")]
56#[strum(serialize_all = "camelCase")]
57pub enum RsLookupQuery {
58 Episode(RsLookupEpisode),
59 Movie(RsLookupMovie),
60}
61
62#[cfg(test)]
63mod tests {
64 use super::*;
65
66 #[test]
67 fn it_works() {
68
69 }
70}