A tool to read animebox backup files and export the data in alternate formats.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
4.7 KiB

  1. pub mod anime_boxes {
  2. use chrono::DateTime;
  3. use serde::{Deserialize, Serialize};
  4. #[derive(Serialize, Deserialize, Debug)]
  5. #[serde(deny_unknown_fields)]
  6. pub struct Backup {
  7. #[serde(rename(serialize = "backupTime", deserialize = "backupTime"))]
  8. pub backup_time: DateTime<chrono::Utc>,
  9. #[serde(rename(serialize = "backupVersion", deserialize = "backupVersion"))]
  10. pub backup_version: String,
  11. #[serde(rename(serialize = "bannedTags", deserialize = "bannedTags"))]
  12. pub banned_tags: Vec<String>,
  13. #[serde(rename(serialize = "creatorName", deserialize = "creatorName"))]
  14. pub creator_name: String,
  15. #[serde(rename(serialize = "creatorVersion", deserialize = "creatorVersion"))]
  16. pub creator_version: String,
  17. pub favorites: Vec<Favorite>,
  18. #[serde(rename(serialize = "searchHistory", deserialize = "searchHistory"))]
  19. pub search_history: Vec<Search>,
  20. pub servers: Vec<Server>,
  21. }
  22. #[derive(Serialize, Deserialize, Debug)]
  23. #[serde(deny_unknown_fields)]
  24. pub struct Favorite {
  25. #[serde(rename(serialize = "dateAdded", deserialize = "dateAdded"))]
  26. pub date_added: DateTime<chrono::Utc>,
  27. #[serde(rename(serialize = "disableStorage", deserialize = "disableStorage"))]
  28. pub disable_storage: bool,
  29. #[serde(rename(
  30. serialize = "enforceOriginalImage",
  31. deserialize = "enforceOriginalImage"
  32. ))]
  33. pub enforce_original_image: bool,
  34. pub file: RemoteResource,
  35. pub has_children: bool,
  36. pub has_comments: bool,
  37. pub has_notes: bool,
  38. #[serde(rename(serialize = "imageIsVisible", deserialize = "imageIsVisible"))]
  39. pub image_is_visible: bool,
  40. #[serde(rename(serialize = "isFavorite", deserialize = "isFavorite"))]
  41. pub is_favorite: bool,
  42. #[serde(rename(serialize = "isVisible", deserialize = "isVisible"))]
  43. pub is_visible: bool,
  44. pub jpeg: RemoteResource,
  45. pub md5: String,
  46. pub parent_id: String,
  47. #[serde(rename(serialize = "ppostId", deserialize = "ppostId"))]
  48. pub ppost_id: String,
  49. #[serde(rename(serialize = "ppostUrl", deserialize = "ppostUrl"))]
  50. pub ppost_url: String,
  51. pub preview: RemoteResource,
  52. pub rating: String,
  53. pub sample: RemoteResource,
  54. pub score: i16,
  55. pub source: String,
  56. pub tag_artist: String,
  57. pub tag_character: String,
  58. pub tag_copyright: String,
  59. pub tag_general: String,
  60. pub tags: String,
  61. }
  62. #[derive(Serialize, Deserialize, Debug)]
  63. #[serde(deny_unknown_fields)]
  64. pub struct RemoteResource {
  65. #[serde(rename(serialize = "contentType", deserialize = "contentType"))]
  66. pub content_type: i8,
  67. pub ext: String,
  68. pub height: i16,
  69. pub url: String,
  70. pub width: i16,
  71. }
  72. #[derive(Serialize, Deserialize, Debug)]
  73. #[serde(deny_unknown_fields)]
  74. pub struct Search {
  75. #[serde(rename(serialize = "itemId", deserialize = "itemId"))]
  76. pub item_id: i32,
  77. #[serde(rename(serialize = "searchDate", deserialize = "searchDate"))]
  78. pub search_date: DateTime<chrono::Utc>,
  79. #[serde(rename(serialize = "searchText", deserialize = "searchText"))]
  80. pub search_text: String,
  81. pub starred: bool,
  82. }
  83. #[derive(Serialize, Deserialize, Debug)]
  84. #[serde(deny_unknown_fields)]
  85. pub struct Server {
  86. #[serde(rename(serialize = "apikey", deserialize = "apikey"))]
  87. pub api_key: String,
  88. #[serde(rename(serialize = "isDefault", deserialize = "isDefault"))]
  89. pub is_default: bool,
  90. #[serde(rename(serialize = "isSelected", deserialize = "isSelected"))]
  91. pub is_selected: bool,
  92. pub password: String,
  93. #[serde(rename(serialize = "passwordKey", deserialize = "passwordKey"))]
  94. pub password_key: String,
  95. #[serde(rename(serialize = "ratingFilterEnabled", deserialize = "ratingFilterEnabled"))]
  96. pub rating_filter_enabled: bool,
  97. #[serde(rename(serialize = "realURL", deserialize = "realURL"))]
  98. pub real_url: String,
  99. #[serde(rename(serialize = "serverId", deserialize = "serverId"))]
  100. pub server_id: i16,
  101. #[serde(rename(serialize = "serverName", deserialize = "serverName"))]
  102. pub server_name: String,
  103. #[serde(rename(serialize = "type", deserialize = "type"))]
  104. pub server_type: i16,
  105. pub url: String,
  106. #[serde(rename(
  107. serialize = "useNativeAutocomplete",
  108. deserialize = "useNativeAutocomplete"
  109. ))]
  110. pub use_native_autocomplete: bool,
  111. #[serde(rename(serialize = "userName", deserialize = "userName"))]
  112. pub user_name: String,
  113. }
  114. }