├── .gitignore
├── README.md
├── lunasea-cloud-functions
├── .firebaserc
├── .gitignore
├── README.md
├── firebase.json
└── functions
│ ├── .eslintignore
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .prettierignore
│ ├── .prettierrc.json
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ ├── controllers
│ │ ├── delete_user.ts
│ │ └── index.ts
│ ├── index.ts
│ └── services
│ │ ├── firestore
│ │ ├── delete_user.ts
│ │ └── index.ts
│ │ ├── index.ts
│ │ └── storage
│ │ ├── delete_user.ts
│ │ └── index.ts
│ ├── tsconfig.dev.json
│ └── tsconfig.json
├── lunasea-docs
├── .gitbook
│ └── assets
│ │ ├── background.png
│ │ ├── firebase_crashlytics_example (1).png
│ │ ├── firebase_crashlytics_example.png
│ │ ├── img_1184.jpg
│ │ ├── lidarr_notification_example (1).png
│ │ ├── lidarr_notification_example.png
│ │ ├── overseerr_notification_example.png
│ │ ├── overseerr_notification_sample_v2 (1).png
│ │ ├── overseerr_notification_sample_v2.png
│ │ ├── radarr_notification_example (1).png
│ │ ├── radarr_notification_example.png
│ │ ├── sonarr_notification_example (1).png
│ │ └── sonarr_notification_example.png
├── README.md
├── SUMMARY.md
├── getting-started
│ ├── build-channels.md
│ ├── donations.md
│ ├── frequently-asked-questions.md
│ └── platform-restrictions.md
├── lunasea
│ ├── cloud-account.md
│ ├── local-backup-and-restore.md
│ ├── logs.md
│ ├── notifications
│ │ ├── README.md
│ │ ├── custom-notifications.md
│ │ ├── lidarr.md
│ │ ├── overseerr.md
│ │ ├── radarr.md
│ │ ├── sonarr.md
│ │ └── tautulli.md
│ └── profiles.md
├── modules
│ ├── lidarr.md
│ ├── newznab-search.md
│ ├── nzbget.md
│ ├── overseerr.md
│ ├── radarr.md
│ ├── sabnzbd.md
│ ├── sonarr.md
│ ├── tautulli.md
│ └── wake-on-lan.md
└── releases
│ ├── android.md
│ ├── ios.md
│ ├── linux.md
│ ├── macos.md
│ ├── web.md
│ └── windows.md
├── lunasea-notification-service
├── .dockerignore
├── .env.sample
├── .eslintignore
├── .eslintrc.json
├── .github
│ └── workflows
│ │ └── build.yaml
├── .gitignore
├── .husky
│ ├── .gitignore
│ └── pre-commit
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── .vscode
│ └── settings.json
├── Dockerfile
├── LICENSE
├── README.md
├── nodemon.json
├── package-lock.json
├── package.json
├── src
│ ├── api
│ │ ├── fanart_tv
│ │ │ └── index.ts
│ │ ├── index.ts
│ │ └── the_movie_db
│ │ │ ├── api.ts
│ │ │ ├── cache.ts
│ │ │ ├── index.ts
│ │ │ └── models.ts
│ ├── index.ts
│ ├── modules
│ │ ├── custom
│ │ │ ├── controller.ts
│ │ │ └── index.ts
│ │ ├── index.ts
│ │ ├── lidarr
│ │ │ ├── controller.ts
│ │ │ ├── index.ts
│ │ │ ├── models.ts
│ │ │ └── payloads.ts
│ │ ├── overseerr
│ │ │ ├── controller.ts
│ │ │ ├── index.ts
│ │ │ ├── models.ts
│ │ │ └── payloads.ts
│ │ ├── radarr
│ │ │ ├── controller.ts
│ │ │ ├── index.ts
│ │ │ ├── models.ts
│ │ │ └── payloads.ts
│ │ ├── sonarr
│ │ │ ├── controller.ts
│ │ │ ├── index.ts
│ │ │ ├── models.ts
│ │ │ └── payloads.ts
│ │ └── tautulli
│ │ │ ├── controller.ts
│ │ │ ├── index.ts
│ │ │ ├── models.ts
│ │ │ └── payloads.ts
│ ├── server
│ │ ├── index.ts
│ │ ├── middleware.ts
│ │ ├── models.ts
│ │ └── server.ts
│ ├── services
│ │ ├── firebase
│ │ │ ├── cache.ts
│ │ │ └── index.ts
│ │ ├── index.ts
│ │ └── redis
│ │ │ └── index.ts
│ └── utils
│ │ ├── constants.ts
│ │ ├── environment.ts
│ │ ├── index.ts
│ │ ├── logger.ts
│ │ └── notifications.ts
└── tsconfig.json
└── lunasea
├── .commitlintrc
├── .czrc
├── .dockerignore
├── .firebaserc
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug-report.md
│ ├── config.yml
│ └── other.md
├── actions
│ ├── prepare_for_build
│ │ └── action.yml
│ └── prepare_for_deployment
│ │ └── action.yml
├── scripts
│ └── notify_discord_embed.js
└── workflows
│ ├── build.yml
│ ├── build_android.yml
│ ├── build_ios.yml
│ ├── build_linux.yml
│ ├── build_macos.yml
│ ├── build_web.yml
│ ├── build_windows.yml
│ └── prepare.yml
├── .gitignore
├── .husky
├── commit-msg
└── prepare-commit-msg
├── .metadata
├── .prettierignore
├── .ruby-version
├── .versionrc
├── .vscode
└── launch.json
├── CHANGELOG.md
├── Dockerfile
├── LICENSE.md
├── README.md
├── analysis_options.yaml
├── android
├── .gitignore
├── Gemfile
├── Gemfile.lock
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── app
│ │ │ │ └── lunasea
│ │ │ │ └── lunasea
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ ├── notification.png
│ │ │ └── splash.png
│ │ │ ├── drawable-mdpi
│ │ │ ├── notification.png
│ │ │ └── splash.png
│ │ │ ├── drawable-v21
│ │ │ ├── background.png
│ │ │ └── launch_background.xml
│ │ │ ├── drawable-xhdpi
│ │ │ ├── notification.png
│ │ │ └── splash.png
│ │ │ ├── drawable-xxhdpi
│ │ │ ├── notification.png
│ │ │ └── splash.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ ├── notification.png
│ │ │ └── splash.png
│ │ │ ├── drawable
│ │ │ ├── background.png
│ │ │ ├── ic_launcher_foreground.xml
│ │ │ ├── ic_launcher_monochrome.xml
│ │ │ ├── ic_notification.xml
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ └── ic_launcher.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── values-v31
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── fastlane
│ ├── Appfile
│ ├── Fastfile
│ └── README.md
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── key.properties.sample
├── settings.gradle
└── settings_aar.gradle
├── assets
├── LunaBrandIcons.ttf
├── changelog.json
├── changelog_stable.json
├── icon
│ ├── icon.png
│ ├── icon_adaptive.png
│ ├── icon_linux.png
│ ├── icon_web.png
│ └── icon_windows.png
├── images
│ ├── branding_full.png
│ ├── branding_logo.png
│ └── brands
│ │ ├── config.json
│ │ ├── lidarr.svg
│ │ ├── musicbrainz.svg
│ │ ├── nzbget.svg
│ │ ├── overseerr.svg
│ │ ├── radarr.svg
│ │ ├── sabnzbd.svg
│ │ ├── sonarr.svg
│ │ ├── tautulli.svg
│ │ ├── thetvdb.svg
│ │ └── tvmaze.svg
└── localization
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nb.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ ├── zh-Hans.json
│ └── zh.json
├── build.yaml
├── debian
├── DEBIAN
│ ├── control
│ ├── postinst
│ └── postrm
└── usr
│ └── share
│ ├── applications
│ └── lunasea.desktop
│ └── icons
│ └── lunasea.png
├── environment_config.yaml
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Gemfile
├── Gemfile.lock
├── Podfile
├── Podfile.lock
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-50x50@1x.png
│ │ │ ├── Icon-App-50x50@2x.png
│ │ │ ├── Icon-App-57x57@1x.png
│ │ │ ├── Icon-App-57x57@2x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-72x72@1x.png
│ │ │ ├── Icon-App-72x72@2x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ ├── LaunchBackground.imageset
│ │ │ ├── Contents.json
│ │ │ └── background.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Info.plist
│ ├── Runner-Bridging-Header.h
│ └── Runner.entitlements
└── fastlane
│ ├── Appfile
│ ├── Fastfile
│ ├── Matchfile
│ └── README.md
├── lib
├── api
│ ├── nzbget
│ │ ├── api.dart
│ │ └── models
│ │ │ ├── status.dart
│ │ │ └── version.dart
│ ├── radarr
│ │ ├── commands.dart
│ │ ├── commands
│ │ │ ├── command.dart
│ │ │ ├── command
│ │ │ │ ├── backup.dart
│ │ │ │ ├── downloaded_movies_scan.dart
│ │ │ │ ├── manual_import.dart
│ │ │ │ ├── missing_movie_search.dart
│ │ │ │ ├── movies_search.dart
│ │ │ │ ├── refresh_monitored_downloads.dart
│ │ │ │ ├── refresh_movie.dart
│ │ │ │ └── rss_sync.dart
│ │ │ ├── credits.dart
│ │ │ ├── credits
│ │ │ │ └── get_credits.dart
│ │ │ ├── exclusions.dart
│ │ │ ├── exclusions
│ │ │ │ ├── get_all_exclusions.dart
│ │ │ │ └── get_exclusion.dart
│ │ │ ├── extra_file.dart
│ │ │ ├── extra_file
│ │ │ │ └── get_extra_files.dart
│ │ │ ├── filesystem.dart
│ │ │ ├── filesystem
│ │ │ │ ├── get_all_disk_spaces.dart
│ │ │ │ └── get_filesystem.dart
│ │ │ ├── health_check.dart
│ │ │ ├── health_check
│ │ │ │ └── get_all_health_checks.dart
│ │ │ ├── history.dart
│ │ │ ├── history
│ │ │ │ ├── get_history.dart
│ │ │ │ └── get_movie_history.dart
│ │ │ ├── import_list.dart
│ │ │ ├── import_list
│ │ │ │ ├── get_all_import_lists.dart
│ │ │ │ ├── get_import_list.dart
│ │ │ │ └── get_movies_from_list.dart
│ │ │ ├── language.dart
│ │ │ ├── language
│ │ │ │ ├── get_all_languages.dart
│ │ │ │ └── get_language.dart
│ │ │ ├── manual_import.dart
│ │ │ ├── manual_import
│ │ │ │ ├── get_manual_import.dart
│ │ │ │ └── update_manual_import.dart
│ │ │ ├── movie.dart
│ │ │ ├── movie
│ │ │ │ ├── add_movie.dart
│ │ │ │ ├── delete_movie.dart
│ │ │ │ ├── get_all_movies.dart
│ │ │ │ ├── get_movie.dart
│ │ │ │ └── update_movie.dart
│ │ │ ├── movie_file.dart
│ │ │ ├── movie_file
│ │ │ │ ├── delete_movie_file.dart
│ │ │ │ └── get_movie_file.dart
│ │ │ ├── movie_lookup.dart
│ │ │ ├── movie_lookup
│ │ │ │ └── get_movie_lookup.dart
│ │ │ ├── quality_profile.dart
│ │ │ ├── quality_profile
│ │ │ │ ├── get_all_quality_profiles.dart
│ │ │ │ ├── get_quality_definitions.dart
│ │ │ │ └── get_quality_profile.dart
│ │ │ ├── queue.dart
│ │ │ ├── queue
│ │ │ │ ├── delete_queue.dart
│ │ │ │ ├── get_queue.dart
│ │ │ │ └── get_queue_status.dart
│ │ │ ├── release.dart
│ │ │ ├── release
│ │ │ │ ├── get_releases.dart
│ │ │ │ └── push_release.dart
│ │ │ ├── root_folder.dart
│ │ │ ├── root_folder
│ │ │ │ └── get_root_folders.dart
│ │ │ ├── system.dart
│ │ │ ├── system
│ │ │ │ └── get_status.dart
│ │ │ ├── tag.dart
│ │ │ └── tag
│ │ │ │ ├── add_tag.dart
│ │ │ │ ├── delete_tag.dart
│ │ │ │ ├── get_all_tags.dart
│ │ │ │ ├── get_tag.dart
│ │ │ │ └── update_tag.dart
│ │ ├── models.dart
│ │ ├── models
│ │ │ ├── command
│ │ │ │ ├── command.dart
│ │ │ │ └── command_body.dart
│ │ │ ├── custom_format
│ │ │ │ ├── custom_format.dart
│ │ │ │ └── custom_format_specifications.dart
│ │ │ ├── exclusions
│ │ │ │ └── exclusion.dart
│ │ │ ├── extrafile
│ │ │ │ └── extra_file.dart
│ │ │ ├── filesystem
│ │ │ │ ├── directory.dart
│ │ │ │ ├── disk_space.dart
│ │ │ │ ├── file.dart
│ │ │ │ └── filesystem.dart
│ │ │ ├── health_check
│ │ │ │ └── health_check.dart
│ │ │ ├── history
│ │ │ │ ├── history.dart
│ │ │ │ └── history_record.dart
│ │ │ ├── image
│ │ │ │ └── image.dart
│ │ │ ├── import_list
│ │ │ │ └── import_list.dart
│ │ │ ├── manual_import
│ │ │ │ ├── manual_import.dart
│ │ │ │ ├── manual_import_file.dart
│ │ │ │ ├── manual_import_rejection.dart
│ │ │ │ ├── manual_import_update.dart
│ │ │ │ └── manual_import_update_data.dart
│ │ │ ├── movie
│ │ │ │ ├── alternate_titles.dart
│ │ │ │ ├── collection.dart
│ │ │ │ ├── credits.dart
│ │ │ │ ├── movie.dart
│ │ │ │ ├── movie_file.dart
│ │ │ │ ├── movie_file_media_info.dart
│ │ │ │ ├── movie_file_quality.dart
│ │ │ │ └── rating.dart
│ │ │ ├── quality_profile
│ │ │ │ ├── format_item.dart
│ │ │ │ ├── item.dart
│ │ │ │ ├── language.dart
│ │ │ │ ├── quality.dart
│ │ │ │ ├── quality_definition.dart
│ │ │ │ ├── quality_profile.dart
│ │ │ │ └── quality_revision.dart
│ │ │ ├── queue
│ │ │ │ ├── queue.dart
│ │ │ │ ├── queue_record.dart
│ │ │ │ ├── queue_status.dart
│ │ │ │ └── queue_status_message.dart
│ │ │ ├── release
│ │ │ │ └── release.dart
│ │ │ ├── root_folder
│ │ │ │ ├── root_folder.dart
│ │ │ │ └── unmapped_folder.dart
│ │ │ ├── system
│ │ │ │ └── status.dart
│ │ │ └── tag
│ │ │ │ └── tag.dart
│ │ ├── radarr.dart
│ │ ├── types.dart
│ │ ├── types
│ │ │ ├── availability.dart
│ │ │ ├── credit_type.dart
│ │ │ ├── event_type.dart
│ │ │ ├── filesystem_type.dart
│ │ │ ├── health_check_type.dart
│ │ │ ├── history_sort_key.dart
│ │ │ ├── import_mode.dart
│ │ │ ├── protocol_type.dart
│ │ │ ├── queue_record_status.dart
│ │ │ ├── queue_sort_key.dart
│ │ │ ├── sort_direction.dart
│ │ │ ├── tracked_download_state.dart
│ │ │ └── tracked_download_status.dart
│ │ └── utilities.dart
│ ├── sabnzbd
│ │ ├── api.dart
│ │ ├── models
│ │ │ ├── action_result.dart
│ │ │ ├── categories.dart
│ │ │ ├── history.dart
│ │ │ ├── queue.dart
│ │ │ ├── server.dart
│ │ │ ├── server_stats.dart
│ │ │ ├── stage_log.dart
│ │ │ ├── status.dart
│ │ │ └── version.dart
│ │ └── types
│ │ │ ├── action.dart
│ │ │ ├── clear_history.dart
│ │ │ ├── on_complete_action.dart
│ │ │ ├── post_processing.dart
│ │ │ ├── priority.dart
│ │ │ ├── sort_category.dart
│ │ │ └── sort_direction.dart
│ ├── sonarr
│ │ ├── controllers.dart
│ │ ├── controllers
│ │ │ ├── calendar.dart
│ │ │ ├── calendar
│ │ │ │ └── get_calendar.dart
│ │ │ ├── command.dart
│ │ │ ├── command
│ │ │ │ ├── backup.dart
│ │ │ │ ├── episode_search.dart
│ │ │ │ ├── missing_episode_search.dart
│ │ │ │ ├── queue.dart
│ │ │ │ ├── refresh_monitored_downloads.dart
│ │ │ │ ├── refresh_series.dart
│ │ │ │ ├── rescan_series.dart
│ │ │ │ ├── rss_sync.dart
│ │ │ │ ├── season_search.dart
│ │ │ │ └── series_search.dart
│ │ │ ├── episode.dart
│ │ │ ├── episode
│ │ │ │ ├── get_episode.dart
│ │ │ │ ├── get_episodes.dart
│ │ │ │ ├── set_monitored.dart
│ │ │ │ └── update_episode.dart
│ │ │ ├── episode_file.dart
│ │ │ ├── episode_file
│ │ │ │ ├── delete_episode_file.dart
│ │ │ │ ├── delete_episode_files.dart
│ │ │ │ ├── get_episode_file.dart
│ │ │ │ └── get_series_episode_files.dart
│ │ │ ├── history.dart
│ │ │ ├── history
│ │ │ │ ├── get_history.dart
│ │ │ │ └── get_history_by_series.dart
│ │ │ ├── import_list.dart
│ │ │ ├── import_list
│ │ │ │ └── get_exclusion_list.dart
│ │ │ ├── profile.dart
│ │ │ ├── profile
│ │ │ │ ├── get_language_profiles.dart
│ │ │ │ └── get_quality_profiles.dart
│ │ │ ├── queue.dart
│ │ │ ├── queue
│ │ │ │ ├── delete_queue.dart
│ │ │ │ ├── get_queue.dart
│ │ │ │ └── get_queue_details.dart
│ │ │ ├── release.dart
│ │ │ ├── release
│ │ │ │ ├── add_release.dart
│ │ │ │ ├── get_release.dart
│ │ │ │ └── get_season_release.dart
│ │ │ ├── root_folder.dart
│ │ │ ├── root_folder
│ │ │ │ └── get_root_folders.dart
│ │ │ ├── series.dart
│ │ │ ├── series
│ │ │ │ ├── add_series.dart
│ │ │ │ ├── delete_series.dart
│ │ │ │ ├── get_all_series.dart
│ │ │ │ ├── get_series.dart
│ │ │ │ └── update_series.dart
│ │ │ ├── series_lookup.dart
│ │ │ ├── series_lookup
│ │ │ │ └── lookup.dart
│ │ │ ├── system.dart
│ │ │ ├── system
│ │ │ │ └── get_status.dart
│ │ │ ├── tag.dart
│ │ │ ├── tag
│ │ │ │ ├── add_tag.dart
│ │ │ │ ├── delete_tag.dart
│ │ │ │ ├── get_all_tags.dart
│ │ │ │ ├── get_tag.dart
│ │ │ │ └── update_tag.dart
│ │ │ ├── wanted.dart
│ │ │ └── wanted
│ │ │ │ └── get_missing.dart
│ │ ├── models.dart
│ │ ├── models
│ │ │ ├── calendar
│ │ │ │ └── calendar.dart
│ │ │ ├── command
│ │ │ │ ├── command.dart
│ │ │ │ └── command_body.dart
│ │ │ ├── episode
│ │ │ │ └── episode.dart
│ │ │ ├── episode_file
│ │ │ │ ├── episode_file.dart
│ │ │ │ ├── episode_file_language.dart
│ │ │ │ ├── episode_file_media_info.dart
│ │ │ │ ├── episode_file_quality.dart
│ │ │ │ ├── episode_file_quality_quality.dart
│ │ │ │ └── episode_file_quality_revision.dart
│ │ │ ├── history
│ │ │ │ ├── history.dart
│ │ │ │ └── history_record.dart
│ │ │ ├── import_list
│ │ │ │ └── exclusion.dart
│ │ │ ├── profile
│ │ │ │ ├── language_profile.dart
│ │ │ │ ├── language_profile_cutoff.dart
│ │ │ │ ├── language_profile_item.dart
│ │ │ │ ├── language_profile_item_language.dart
│ │ │ │ ├── quality_profile.dart
│ │ │ │ ├── quality_profile_cutoff.dart
│ │ │ │ ├── quality_profile_item.dart
│ │ │ │ └── quality_profile_item_quality.dart
│ │ │ ├── queue
│ │ │ │ ├── queue.dart
│ │ │ │ ├── queue_record.dart
│ │ │ │ └── queue_status_message.dart
│ │ │ ├── release
│ │ │ │ ├── added_release.dart
│ │ │ │ └── release.dart
│ │ │ ├── root_folder
│ │ │ │ ├── root_folder.dart
│ │ │ │ └── unmapped_folder.dart
│ │ │ ├── series
│ │ │ │ ├── alternate_title.dart
│ │ │ │ ├── image.dart
│ │ │ │ ├── rating.dart
│ │ │ │ ├── season.dart
│ │ │ │ ├── season_statistics.dart
│ │ │ │ ├── series.dart
│ │ │ │ └── series_statistics.dart
│ │ │ ├── system
│ │ │ │ └── status.dart
│ │ │ ├── tag
│ │ │ │ └── tag.dart
│ │ │ └── wanted_missing
│ │ │ │ ├── missing.dart
│ │ │ │ └── missing_record.dart
│ │ ├── sonarr.dart
│ │ ├── types.dart
│ │ ├── types
│ │ │ ├── event_type.dart
│ │ │ ├── history_sort_key.dart
│ │ │ ├── protocol_type.dart
│ │ │ ├── queue_sort_key.dart
│ │ │ ├── queue_status_type.dart
│ │ │ ├── queue_tracked_download_state_type.dart
│ │ │ ├── queue_tracked_download_status_type.dart
│ │ │ ├── series_monitor_type.dart
│ │ │ ├── series_type.dart
│ │ │ ├── sort_dir.dart
│ │ │ └── wanted_missing_sort_key.dart
│ │ └── utilities.dart
│ ├── tautulli
│ │ ├── commands.dart
│ │ ├── commands
│ │ │ ├── activity.dart
│ │ │ ├── activity
│ │ │ │ ├── delete_temp_sessions.dart
│ │ │ │ ├── get_activity.dart
│ │ │ │ └── terminate_session.dart
│ │ │ ├── history.dart
│ │ │ ├── history
│ │ │ │ ├── delete_history.dart
│ │ │ │ ├── get_history.dart
│ │ │ │ ├── get_home_stats.dart
│ │ │ │ ├── get_plays_by_date.dart
│ │ │ │ ├── get_plays_by_dayofweek.dart
│ │ │ │ ├── get_plays_by_hourofday.dart
│ │ │ │ ├── get_plays_by_source_resolution.dart
│ │ │ │ ├── get_plays_by_stream_resolution.dart
│ │ │ │ ├── get_plays_by_stream_type.dart
│ │ │ │ ├── get_plays_by_top_10_platforms.dart
│ │ │ │ ├── get_plays_by_top_10_users.dart
│ │ │ │ ├── get_plays_per_month.dart
│ │ │ │ ├── get_stream_data.dart
│ │ │ │ ├── get_stream_type_by_top_10_platforms.dart
│ │ │ │ └── get_stream_type_by_top_10_users.dart
│ │ │ ├── libraries.dart
│ │ │ ├── libraries
│ │ │ │ ├── delete_all_library_history.dart
│ │ │ │ ├── delete_library.dart
│ │ │ │ ├── delete_recently_added.dart
│ │ │ │ ├── edit_library.dart
│ │ │ │ ├── get_libraries.dart
│ │ │ │ ├── get_libraries_table.dart
│ │ │ │ ├── get_library.dart
│ │ │ │ ├── get_library_media_info.dart
│ │ │ │ ├── get_library_names.dart
│ │ │ │ ├── get_library_user_stats.dart
│ │ │ │ ├── get_library_watch_time_stats.dart
│ │ │ │ ├── get_metadata.dart
│ │ │ │ ├── get_new_rating_keys.dart
│ │ │ │ ├── get_old_rating_keys.dart
│ │ │ │ ├── get_recently_added.dart
│ │ │ │ ├── get_synced_items.dart
│ │ │ │ ├── refresh_libraries_list.dart
│ │ │ │ ├── search.dart
│ │ │ │ ├── undelete_library.dart
│ │ │ │ └── update_metadata_details.dart
│ │ │ ├── miscellaneous.dart
│ │ │ ├── miscellaneous
│ │ │ │ ├── arnold.dart
│ │ │ │ ├── docs.dart
│ │ │ │ ├── docs_md.dart
│ │ │ │ ├── download_config.dart
│ │ │ │ ├── download_database.dart
│ │ │ │ ├── download_log.dart
│ │ │ │ ├── download_plex_log.dart
│ │ │ │ ├── get_date_formats.dart
│ │ │ │ ├── get_geoip_lookup.dart
│ │ │ │ ├── get_logs.dart
│ │ │ │ ├── get_plex_log.dart
│ │ │ │ ├── get_server_friendly_name.dart
│ │ │ │ ├── get_server_id.dart
│ │ │ │ ├── get_server_identity.dart
│ │ │ │ ├── get_server_list.dart
│ │ │ │ ├── get_server_pref.dart
│ │ │ │ ├── get_servers_info.dart
│ │ │ │ ├── get_whois_lookup.dart
│ │ │ │ ├── pms_image_proxy.dart
│ │ │ │ └── sql.dart
│ │ │ ├── notifications.dart
│ │ │ ├── notifications
│ │ │ │ ├── add_newsletter_config.dart
│ │ │ │ ├── add_notifier_config.dart
│ │ │ │ ├── delete_mobile_device.dart
│ │ │ │ ├── delete_newsletter.dart
│ │ │ │ ├── delete_notifier.dart
│ │ │ │ ├── get_newsletter_config.dart
│ │ │ │ ├── get_newsletter_log.dart
│ │ │ │ ├── get_newsletters.dart
│ │ │ │ ├── get_notification_log.dart
│ │ │ │ ├── get_notifier_config.dart
│ │ │ │ ├── get_notifier_parameters.dart
│ │ │ │ ├── get_notifiers.dart
│ │ │ │ ├── notify.dart
│ │ │ │ ├── notify_newsletter.dart
│ │ │ │ ├── notify_recently_added.dart
│ │ │ │ ├── register_device.dart
│ │ │ │ ├── set_mobile_device_config.dart
│ │ │ │ ├── set_newsletter_config.dart
│ │ │ │ └── set_notifier_config.dart
│ │ │ ├── system.dart
│ │ │ ├── system
│ │ │ │ ├── backup_config.dart
│ │ │ │ ├── backup_db.dart
│ │ │ │ ├── delete_cache.dart
│ │ │ │ ├── delete_hosted_images.dart
│ │ │ │ ├── delete_image_cache.dart
│ │ │ │ ├── delete_login_log.dart
│ │ │ │ ├── delete_lookup_info.dart
│ │ │ │ ├── delete_media_info_cache.dart
│ │ │ │ ├── delete_newsletter_log.dart
│ │ │ │ ├── delete_notification_log.dart
│ │ │ │ ├── get_pms_token.dart
│ │ │ │ ├── get_pms_update.dart
│ │ │ │ ├── get_settings.dart
│ │ │ │ ├── restart.dart
│ │ │ │ ├── status.dart
│ │ │ │ ├── update.dart
│ │ │ │ └── update_check.dart
│ │ │ ├── users.dart
│ │ │ └── users
│ │ │ │ ├── delete_all_user_history.dart
│ │ │ │ ├── delete_user.dart
│ │ │ │ ├── edit_user.dart
│ │ │ │ ├── get_user.dart
│ │ │ │ ├── get_user_ips.dart
│ │ │ │ ├── get_user_logins.dart
│ │ │ │ ├── get_user_names.dart
│ │ │ │ ├── get_user_player_stats.dart
│ │ │ │ ├── get_user_watch_time_stats.dart
│ │ │ │ ├── get_users.dart
│ │ │ │ ├── get_users_table.dart
│ │ │ │ ├── refresh_users_list.dart
│ │ │ │ └── undelete_user.dart
│ │ ├── models.dart
│ │ ├── models
│ │ │ ├── activity
│ │ │ │ ├── activity.dart
│ │ │ │ └── session.dart
│ │ │ ├── history
│ │ │ │ ├── graph_data.dart
│ │ │ │ ├── history.dart
│ │ │ │ ├── history_record.dart
│ │ │ │ ├── home_stats.dart
│ │ │ │ ├── series_data.dart
│ │ │ │ └── stream_data.dart
│ │ │ ├── libraries
│ │ │ │ ├── audio_stream.dart
│ │ │ │ ├── libraries_table.dart
│ │ │ │ ├── library.dart
│ │ │ │ ├── library_media_info.dart
│ │ │ │ ├── library_media_info_record.dart
│ │ │ │ ├── library_name.dart
│ │ │ │ ├── library_user_stats.dart
│ │ │ │ ├── library_watch_time_stats.dart
│ │ │ │ ├── media_info.dart
│ │ │ │ ├── media_info_parts.dart
│ │ │ │ ├── metadata.dart
│ │ │ │ ├── recently_added.dart
│ │ │ │ ├── search.dart
│ │ │ │ ├── search_result.dart
│ │ │ │ ├── search_results.dart
│ │ │ │ ├── single_library.dart
│ │ │ │ ├── subtitle_stream.dart
│ │ │ │ ├── synced_item.dart
│ │ │ │ ├── table_library.dart
│ │ │ │ └── video_stream.dart
│ │ │ ├── miscellaneous
│ │ │ │ ├── date_format.dart
│ │ │ │ ├── geolocation_info.dart
│ │ │ │ ├── log.dart
│ │ │ │ ├── plex_log.dart
│ │ │ │ ├── server.dart
│ │ │ │ ├── server_identity.dart
│ │ │ │ ├── server_info.dart
│ │ │ │ ├── whois_info.dart
│ │ │ │ └── whois_subnet.dart
│ │ │ ├── notifications
│ │ │ │ ├── newsletter.dart
│ │ │ │ ├── newsletter_config.dart
│ │ │ │ ├── newsletter_log_record.dart
│ │ │ │ ├── newsletter_logs.dart
│ │ │ │ ├── notification_log_record.dart
│ │ │ │ ├── notification_logs.dart
│ │ │ │ ├── notifier.dart
│ │ │ │ ├── notifier_config.dart
│ │ │ │ ├── notifier_config_actions.dart
│ │ │ │ └── notifier_parameter.dart
│ │ │ ├── system
│ │ │ │ ├── pms_update.dart
│ │ │ │ └── update_check.dart
│ │ │ └── users
│ │ │ │ ├── table_user.dart
│ │ │ │ ├── user.dart
│ │ │ │ ├── user_ip_record.dart
│ │ │ │ ├── user_ips.dart
│ │ │ │ ├── user_login_record.dart
│ │ │ │ ├── user_logins.dart
│ │ │ │ ├── user_name.dart
│ │ │ │ ├── user_player_stats.dart
│ │ │ │ ├── user_watch_time_stats.dart
│ │ │ │ └── users_table.dart
│ │ ├── tautulli.dart
│ │ ├── types.dart
│ │ ├── types
│ │ │ ├── api_lookup_service.dart
│ │ │ ├── fallback_image.dart
│ │ │ ├── graph_y_axis.dart
│ │ │ ├── image_host_service.dart
│ │ │ ├── media.dart
│ │ │ ├── order_column_history.dart
│ │ │ ├── order_column_libraries.dart
│ │ │ ├── order_column_library_media_info.dart
│ │ │ ├── order_column_log.dart
│ │ │ ├── order_column_newsletter_log.dart
│ │ │ ├── order_column_notification_log.dart
│ │ │ ├── order_column_user_ips.dart
│ │ │ ├── order_column_user_logins.dart
│ │ │ ├── order_column_users.dart
│ │ │ ├── order_direction.dart
│ │ │ ├── plex_log_type.dart
│ │ │ ├── section.dart
│ │ │ ├── session_location.dart
│ │ │ ├── session_state.dart
│ │ │ ├── stats_type.dart
│ │ │ ├── transcode_decision.dart
│ │ │ ├── user_group.dart
│ │ │ └── watched_status.dart
│ │ └── utilities.dart
│ └── wake_on_lan
│ │ ├── platform
│ │ ├── wake_on_lan_html.dart
│ │ ├── wake_on_lan_io.dart
│ │ └── wake_on_lan_stub.dart
│ │ └── wake_on_lan.dart
├── core.dart
├── database
│ ├── box.dart
│ ├── config.dart
│ ├── database.dart
│ ├── models
│ │ ├── deprecated.dart
│ │ ├── external_module.dart
│ │ ├── indexer.dart
│ │ ├── log.dart
│ │ └── profile.dart
│ ├── table.dart
│ └── tables
│ │ ├── bios.dart
│ │ ├── dashboard.dart
│ │ ├── lidarr.dart
│ │ ├── lunasea.dart
│ │ ├── nzbget.dart
│ │ ├── radarr.dart
│ │ ├── sabnzbd.dart
│ │ ├── search.dart
│ │ ├── sonarr.dart
│ │ └── tautulli.dart
├── extensions
│ ├── datetime.dart
│ ├── double
│ │ └── time.dart
│ ├── duration
│ │ └── timestamp.dart
│ ├── int
│ │ ├── bytes.dart
│ │ └── duration.dart
│ ├── page_controller.dart
│ ├── scroll_controller.dart
│ └── string
│ │ ├── links.dart
│ │ └── string.dart
├── main.dart
├── modules.dart
├── modules
│ ├── dashboard
│ │ ├── core
│ │ │ ├── adapters
│ │ │ │ ├── calendar_starting_day.dart
│ │ │ │ ├── calendar_starting_size.dart
│ │ │ │ └── calendar_starting_type.dart
│ │ │ ├── api
│ │ │ │ ├── api.dart
│ │ │ │ └── data
│ │ │ │ │ ├── abstract.dart
│ │ │ │ │ ├── lidarr.dart
│ │ │ │ │ ├── radarr.dart
│ │ │ │ │ └── sonarr.dart
│ │ │ ├── dialogs.dart
│ │ │ └── state.dart
│ │ └── routes
│ │ │ └── dashboard
│ │ │ ├── pages
│ │ │ ├── calendar.dart
│ │ │ └── modules.dart
│ │ │ ├── route.dart
│ │ │ └── widgets
│ │ │ ├── calendar_view.dart
│ │ │ ├── content_block.dart
│ │ │ ├── navigation_bar.dart
│ │ │ ├── schedule_view.dart
│ │ │ └── switch_view_action.dart
│ ├── external_modules
│ │ └── routes
│ │ │ ├── external_modules.dart
│ │ │ └── external_modules
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ └── module_tile.dart
│ ├── lidarr.dart
│ ├── lidarr
│ │ ├── core.dart
│ │ ├── core
│ │ │ ├── api.dart
│ │ │ ├── api
│ │ │ │ ├── api.dart
│ │ │ │ ├── data.dart
│ │ │ │ └── data
│ │ │ │ │ ├── album.dart
│ │ │ │ │ ├── catalogue.dart
│ │ │ │ │ ├── history.dart
│ │ │ │ │ ├── metadata.dart
│ │ │ │ │ ├── missing.dart
│ │ │ │ │ ├── monitor_status.dart
│ │ │ │ │ ├── qualityprofile.dart
│ │ │ │ │ ├── release.dart
│ │ │ │ │ ├── rootfolder.dart
│ │ │ │ │ ├── search.dart
│ │ │ │ │ └── track.dart
│ │ │ ├── constants.dart
│ │ │ ├── dialogs.dart
│ │ │ ├── sorting.dart
│ │ │ ├── sorting
│ │ │ │ ├── catalogue.dart
│ │ │ │ └── releases.dart
│ │ │ ├── state.dart
│ │ │ └── webhooks.dart
│ │ ├── routes.dart
│ │ ├── routes
│ │ │ ├── add_details.dart
│ │ │ ├── add_search.dart
│ │ │ ├── catalogue.dart
│ │ │ ├── details_album.dart
│ │ │ ├── details_artist.dart
│ │ │ ├── edit_artist.dart
│ │ │ ├── history.dart
│ │ │ ├── lidarr.dart
│ │ │ ├── missing.dart
│ │ │ └── search_results.dart
│ │ ├── sheets
│ │ │ └── links.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── add_search_bar.dart
│ │ │ ├── add_search_result_tile.dart
│ │ │ ├── artist_navigation_bar.dart
│ │ │ ├── catalogue_hide_button.dart
│ │ │ ├── catalogue_search_bar.dart
│ │ │ ├── catalogue_sorting_button.dart
│ │ │ ├── catalogue_tile.dart
│ │ │ ├── description_block.dart
│ │ │ ├── details_album_list.dart
│ │ │ ├── details_album_tile.dart
│ │ │ ├── details_album_track_tile.dart
│ │ │ ├── details_edit_button.dart
│ │ │ ├── details_overview.dart
│ │ │ ├── details_settings_button.dart
│ │ │ ├── history_tile.dart
│ │ │ ├── missing_tile.dart
│ │ │ ├── navigation_bar.dart
│ │ │ ├── releases_hide_button.dart
│ │ │ ├── releases_search_bar.dart
│ │ │ ├── releases_sorting_button.dart
│ │ │ └── search_result_tile.dart
│ ├── nzbget.dart
│ ├── nzbget
│ │ ├── core.dart
│ │ ├── core
│ │ │ ├── api.dart
│ │ │ ├── api
│ │ │ │ ├── api.dart
│ │ │ │ ├── data.dart
│ │ │ │ └── data
│ │ │ │ │ ├── category.dart
│ │ │ │ │ ├── history.dart
│ │ │ │ │ ├── log.dart
│ │ │ │ │ ├── priority.dart
│ │ │ │ │ ├── queue.dart
│ │ │ │ │ ├── sort.dart
│ │ │ │ │ ├── statistics.dart
│ │ │ │ │ └── status.dart
│ │ │ ├── dialogs.dart
│ │ │ └── state.dart
│ │ ├── routes.dart
│ │ ├── routes
│ │ │ ├── history.dart
│ │ │ ├── nzbget.dart
│ │ │ ├── queue.dart
│ │ │ └── statistics.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── app_bar_stats.dart
│ │ │ ├── history_hide_button.dart
│ │ │ ├── history_search_bar.dart
│ │ │ ├── history_tile.dart
│ │ │ ├── log_tile.dart
│ │ │ ├── navigation_bar.dart
│ │ │ ├── queue_fab.dart
│ │ │ └── queue_tile.dart
│ ├── radarr.dart
│ ├── radarr
│ │ ├── core.dart
│ │ ├── core
│ │ │ ├── api_helper.dart
│ │ │ ├── bottom_modal_sheets.dart
│ │ │ ├── dialogs.dart
│ │ │ ├── extensions.dart
│ │ │ ├── extensions
│ │ │ │ ├── radarr_disk_space.dart
│ │ │ │ ├── radarr_event_type.dart
│ │ │ │ ├── radarr_extra_file.dart
│ │ │ │ ├── radarr_health_check_type.dart
│ │ │ │ ├── radarr_history_record.dart
│ │ │ │ ├── radarr_import_mode.dart
│ │ │ │ ├── radarr_manual_import.dart
│ │ │ │ ├── radarr_movie.dart
│ │ │ │ ├── radarr_movie_file.dart
│ │ │ │ ├── radarr_movie_file_media_info.dart
│ │ │ │ ├── radarr_quality_profile.dart
│ │ │ │ ├── radarr_queue_record.dart
│ │ │ │ ├── radarr_release.dart
│ │ │ │ ├── radarr_root_folder.dart
│ │ │ │ └── radarr_system_status.dart
│ │ │ ├── state.dart
│ │ │ ├── types.dart
│ │ │ ├── types
│ │ │ │ ├── filter_movies.dart
│ │ │ │ ├── filter_releases.dart
│ │ │ │ ├── settings_global.dart
│ │ │ │ ├── settings_movie.dart
│ │ │ │ ├── sorting_movies.dart
│ │ │ │ └── sorting_releases.dart
│ │ │ └── webhooks.dart
│ │ ├── routes.dart
│ │ └── routes
│ │ │ ├── add_movie.dart
│ │ │ ├── add_movie
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── discovery_results_tile.dart
│ │ │ │ ├── navigation_bar.dart
│ │ │ │ ├── page_discover.dart
│ │ │ │ ├── page_search.dart
│ │ │ │ ├── search_results_tile.dart
│ │ │ │ └── search_search_bar.dart
│ │ │ ├── add_movie_details.dart
│ │ │ ├── add_movie_details
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── bottom_action_bar.dart
│ │ │ │ ├── tile_minimum_availability.dart
│ │ │ │ ├── tile_monitored.dart
│ │ │ │ ├── tile_quality_profile.dart
│ │ │ │ ├── tile_root_folder.dart
│ │ │ │ └── tile_tags.dart
│ │ │ ├── catalogue.dart
│ │ │ ├── catalogue
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── movie_tile.dart
│ │ │ │ ├── search_bar.dart
│ │ │ │ ├── search_bar_filter_button.dart
│ │ │ │ ├── search_bar_sort_button.dart
│ │ │ │ └── search_bar_view_button.dart
│ │ │ ├── edit_movie.dart
│ │ │ ├── edit_movie
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── bottom_action_bar.dart
│ │ │ │ ├── tile_monitored.dart
│ │ │ │ ├── tile_path.dart
│ │ │ │ ├── tile_quality_profile.dart
│ │ │ │ ├── tile_radarr_availability.dart
│ │ │ │ └── tile_tags.dart
│ │ │ ├── history.dart
│ │ │ ├── history
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── history_tile.dart
│ │ │ ├── manual_import.dart
│ │ │ ├── manual_import
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_path_bar.dart
│ │ │ │ ├── bottom_action_bar.dart
│ │ │ │ ├── directory_tile.dart
│ │ │ │ └── parent_directory_tile.dart
│ │ │ ├── manual_import_details.dart
│ │ │ ├── manual_import_details
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_configure_movies.dart
│ │ │ │ ├── bottom_action_bar.dart
│ │ │ │ └── import_tile.dart
│ │ │ ├── missing.dart
│ │ │ ├── missing
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── missing_tile.dart
│ │ │ ├── more.dart
│ │ │ ├── more
│ │ │ └── route.dart
│ │ │ ├── movie_details.dart
│ │ │ ├── movie_details
│ │ │ ├── route.dart
│ │ │ ├── sheets
│ │ │ │ └── links.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_settings_action.dart
│ │ │ │ ├── cast_crew_tile.dart
│ │ │ │ ├── files_extra_file_block.dart
│ │ │ │ ├── files_file_block.dart
│ │ │ │ ├── navigation_bar.dart
│ │ │ │ ├── overview_movie_description_tile.dart
│ │ │ │ ├── overview_movie_information_block.dart
│ │ │ │ ├── page_cast_crew.dart
│ │ │ │ ├── page_files.dart
│ │ │ │ ├── page_history.dart
│ │ │ │ └── page_overview.dart
│ │ │ ├── queue.dart
│ │ │ ├── queue
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── queue_tile.dart
│ │ │ ├── radarr.dart
│ │ │ ├── radarr
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_add_movie_action.dart
│ │ │ │ ├── appbar_global_settings_action.dart
│ │ │ │ └── navigation_bar.dart
│ │ │ ├── releases.dart
│ │ │ ├── releases
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── release_tile.dart
│ │ │ │ ├── search_bar.dart
│ │ │ │ ├── search_bar_filter_button.dart
│ │ │ │ └── search_bar_sort_button.dart
│ │ │ ├── system_status.dart
│ │ │ ├── system_status
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── page_about.dart
│ │ │ │ ├── page_disk_space.dart
│ │ │ │ └── page_health_check.dart
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── disk_space_tile.dart
│ │ │ │ ├── health_tile.dart
│ │ │ │ ├── navigation_bar.dart
│ │ │ │ └── root_folder_tile.dart
│ │ │ ├── tags.dart
│ │ │ ├── tags
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_action_add_tag.dart
│ │ │ │ └── tag_tile.dart
│ │ │ ├── upcoming.dart
│ │ │ └── upcoming
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ └── upcoming_tile.dart
│ ├── sabnzbd.dart
│ ├── sabnzbd
│ │ ├── core.dart
│ │ ├── core
│ │ │ ├── api.dart
│ │ │ ├── api
│ │ │ │ ├── api.dart
│ │ │ │ ├── data.dart
│ │ │ │ └── data
│ │ │ │ │ ├── category.dart
│ │ │ │ │ ├── history.dart
│ │ │ │ │ ├── queue.dart
│ │ │ │ │ ├── statistics.dart
│ │ │ │ │ ├── statistics_server.dart
│ │ │ │ │ └── status.dart
│ │ │ ├── dialogs.dart
│ │ │ └── state.dart
│ │ ├── routes.dart
│ │ ├── routes
│ │ │ ├── history.dart
│ │ │ ├── history_stages.dart
│ │ │ ├── queue.dart
│ │ │ ├── sabnzbd.dart
│ │ │ └── statistics.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── app_bar_stats.dart
│ │ │ ├── history_hide_button.dart
│ │ │ ├── history_search_bar.dart
│ │ │ ├── history_tile.dart
│ │ │ ├── navigation_bar.dart
│ │ │ ├── queue_fab.dart
│ │ │ └── queue_tile.dart
│ ├── search.dart
│ ├── search
│ │ ├── core.dart
│ │ ├── core
│ │ │ ├── api.dart
│ │ │ ├── dialogs.dart
│ │ │ ├── models.dart
│ │ │ ├── models
│ │ │ │ ├── category.dart
│ │ │ │ ├── result.dart
│ │ │ │ └── subcategory.dart
│ │ │ ├── state.dart
│ │ │ ├── types.dart
│ │ │ └── types
│ │ │ │ └── download_type.dart
│ │ ├── routes.dart
│ │ └── routes
│ │ │ ├── categories.dart
│ │ │ ├── categories
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── category_tile.dart
│ │ │ ├── indexers.dart
│ │ │ ├── indexers
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── indexer_tile.dart
│ │ │ ├── results.dart
│ │ │ ├── results
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── result_tile.dart
│ │ │ ├── search.dart
│ │ │ ├── search
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── search_bar.dart
│ │ │ ├── subcategories.dart
│ │ │ └── subcategories
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ ├── all_subcategories_tile.dart
│ │ │ └── subcategory_tile.dart
│ ├── settings.dart
│ ├── settings
│ │ ├── core.dart
│ │ ├── core
│ │ │ ├── banners.dart
│ │ │ ├── dialogs.dart
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ └── headers.dart
│ │ │ ├── state.dart
│ │ │ ├── types.dart
│ │ │ ├── types
│ │ │ │ └── header.dart
│ │ │ ├── utilities.dart
│ │ │ └── utilities
│ │ │ │ └── headers.dart
│ │ └── routes
│ │ │ ├── configuration
│ │ │ └── route.dart
│ │ │ ├── configuration_dashboard
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── calendar_settings.dart
│ │ │ │ └── default_pages.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_drawer
│ │ │ └── route.dart
│ │ │ ├── configuration_external_modules
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── add_module.dart
│ │ │ │ └── edit_module.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_general
│ │ │ └── route.dart
│ │ │ ├── configuration_lidarr
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── connection_details.dart
│ │ │ │ ├── default_pages.dart
│ │ │ │ └── headers.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_nzbget
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── connection_details.dart
│ │ │ │ ├── default_pages.dart
│ │ │ │ └── headers.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_quick_actions
│ │ │ └── route.dart
│ │ │ ├── configuration_radarr
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── connection_details.dart
│ │ │ │ ├── default_options.dart
│ │ │ │ ├── default_pages.dart
│ │ │ │ └── headers.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_sabnzbd
│ │ │ ├── pages
│ │ │ │ ├── connection_details.dart
│ │ │ │ ├── default_pages.dart
│ │ │ │ └── headers.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_search
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── add_indexer.dart
│ │ │ │ ├── add_indexer_headers.dart
│ │ │ │ ├── edit_indexer.dart
│ │ │ │ └── edit_indexer_headers.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_sonarr
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── connection_details.dart
│ │ │ │ ├── default_options.dart
│ │ │ │ ├── default_pages.dart
│ │ │ │ └── headers.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_tautulli
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ │ ├── connection_details.dart
│ │ │ │ ├── default_pages.dart
│ │ │ │ └── headers.dart
│ │ │ └── route.dart
│ │ │ ├── configuration_wake_on_lan
│ │ │ └── route.dart
│ │ │ ├── profiles
│ │ │ └── route.dart
│ │ │ ├── settings
│ │ │ └── route.dart
│ │ │ ├── system
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── backup_tile.dart
│ │ │ │ └── restore_tile.dart
│ │ │ └── system_logs
│ │ │ ├── pages.dart
│ │ │ ├── pages
│ │ │ └── log_details.dart
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ └── log_tile.dart
│ ├── sonarr.dart
│ ├── sonarr
│ │ ├── core.dart
│ │ ├── core
│ │ │ ├── api_controller.dart
│ │ │ ├── dialogs.dart
│ │ │ ├── extensions.dart
│ │ │ ├── extensions
│ │ │ │ ├── sonarr_calendar.dart
│ │ │ │ ├── sonarr_episode.dart
│ │ │ │ ├── sonarr_episode_file_media_info.dart
│ │ │ │ ├── sonarr_event_type.dart
│ │ │ │ ├── sonarr_history.dart
│ │ │ │ ├── sonarr_protocol.dart
│ │ │ │ ├── sonarr_queue_record.dart
│ │ │ │ ├── sonarr_queue_status.dart
│ │ │ │ ├── sonarr_release.dart
│ │ │ │ ├── sonarr_series.dart
│ │ │ │ ├── sonarr_series_monitor_type.dart
│ │ │ │ └── sonarr_series_season.dart
│ │ │ ├── state.dart
│ │ │ ├── types.dart
│ │ │ ├── types
│ │ │ │ ├── filter_releases.dart
│ │ │ │ ├── filter_series.dart
│ │ │ │ ├── monitor_status.dart
│ │ │ │ ├── settings_episode.dart
│ │ │ │ ├── settings_episode_multi.dart
│ │ │ │ ├── settings_global.dart
│ │ │ │ ├── settings_season.dart
│ │ │ │ ├── settings_series.dart
│ │ │ │ ├── sorting_releases.dart
│ │ │ │ └── sorting_series.dart
│ │ │ └── webhooks.dart
│ │ ├── routes.dart
│ │ └── routes
│ │ │ ├── add_series.dart
│ │ │ ├── add_series
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar.dart
│ │ │ │ ├── page_search.dart
│ │ │ │ └── search_results_tile.dart
│ │ │ ├── add_series_details.dart
│ │ │ ├── add_series_details
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── bottom_action_bar.dart
│ │ │ │ ├── tile_language_profile.dart
│ │ │ │ ├── tile_monitor.dart
│ │ │ │ ├── tile_quality_profile.dart
│ │ │ │ ├── tile_root_folder.dart
│ │ │ │ ├── tile_series_type.dart
│ │ │ │ ├── tile_tags.dart
│ │ │ │ └── tile_use_season_folders.dart
│ │ │ ├── catalogue.dart
│ │ │ ├── catalogue
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── search_bar.dart
│ │ │ │ ├── search_bar_filter_button.dart
│ │ │ │ ├── search_bar_sort_button.dart
│ │ │ │ ├── search_bar_view_button.dart
│ │ │ │ └── series_tile.dart
│ │ │ ├── edit_series.dart
│ │ │ ├── edit_series
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── bottom_action_bar.dart
│ │ │ │ ├── tile_language_profile.dart
│ │ │ │ ├── tile_monitored.dart
│ │ │ │ ├── tile_quality_profile.dart
│ │ │ │ ├── tile_series_path.dart
│ │ │ │ ├── tile_series_type.dart
│ │ │ │ ├── tile_tags.dart
│ │ │ │ └── tile_use_season_folders.dart
│ │ │ ├── history.dart
│ │ │ ├── history
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── history_tile.dart
│ │ │ ├── missing.dart
│ │ │ ├── missing
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── missing_tile.dart
│ │ │ ├── more.dart
│ │ │ ├── more
│ │ │ └── route.dart
│ │ │ ├── queue.dart
│ │ │ ├── queue
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ └── queue_tile.dart
│ │ │ ├── releases.dart
│ │ │ ├── releases
│ │ │ ├── route.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── release_tile.dart
│ │ │ │ ├── search_bar.dart
│ │ │ │ ├── search_bar_filter_button.dart
│ │ │ │ └── search_bar_sort_button.dart
│ │ │ ├── season_details.dart
│ │ │ ├── season_details
│ │ │ ├── route.dart
│ │ │ ├── sheets.dart
│ │ │ ├── sheets
│ │ │ │ ├── episode_details.dart
│ │ │ │ └── media_info.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── episode_tile.dart
│ │ │ │ ├── navigation_bar.dart
│ │ │ │ ├── page_episodes.dart
│ │ │ │ ├── page_history.dart
│ │ │ │ └── season_header.dart
│ │ │ ├── series_details.dart
│ │ │ ├── series_details
│ │ │ ├── route.dart
│ │ │ ├── sheets
│ │ │ │ └── links.dart
│ │ │ ├── state.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_settings_action.dart
│ │ │ │ ├── navigation_bar.dart
│ │ │ │ ├── overview_series_description_tile.dart
│ │ │ │ ├── overview_series_information_block.dart.dart
│ │ │ │ ├── page_history.dart
│ │ │ │ ├── page_overview.dart
│ │ │ │ ├── page_seasons.dart
│ │ │ │ ├── season_all_tile.dart
│ │ │ │ └── season_tile.dart
│ │ │ ├── sonarr.dart
│ │ │ ├── sonarr
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_add_series_action.dart
│ │ │ │ ├── appbar_global_settings_action.dart
│ │ │ │ └── navigation_bar.dart
│ │ │ ├── tags.dart
│ │ │ ├── tags
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ │ ├── appbar_action_add_tag.dart
│ │ │ │ └── tag_tile.dart
│ │ │ ├── upcoming.dart
│ │ │ └── upcoming
│ │ │ ├── route.dart
│ │ │ ├── widgets.dart
│ │ │ └── widgets
│ │ │ └── upcoming_tile.dart
│ ├── tautulli.dart
│ └── tautulli
│ │ ├── core.dart
│ │ ├── core
│ │ ├── api_helper.dart
│ │ ├── dialogs.dart
│ │ ├── extensions.dart
│ │ ├── extensions
│ │ │ ├── tautulli_activity.dart
│ │ │ ├── tautulli_history_record.dart
│ │ │ ├── tautulli_session.dart
│ │ │ ├── tautulli_table_library.dart
│ │ │ └── tautulli_transcode_decision.dart
│ │ ├── graphs.dart
│ │ ├── graphs
│ │ │ ├── bar_graph.dart
│ │ │ ├── graph.dart
│ │ │ └── line_graph.dart
│ │ ├── state.dart
│ │ ├── types.dart
│ │ ├── types
│ │ │ ├── media_details_switcher.dart
│ │ │ ├── settings_global.dart
│ │ │ └── statistics_time_range.dart
│ │ └── webhooks.dart
│ │ ├── routes.dart
│ │ └── routes
│ │ ├── activity.dart
│ │ ├── activity
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── activity_status.dart
│ │ │ └── activity_tile.dart
│ │ ├── activity_details.dart
│ │ ├── activity_details
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── appbar_metadata_action.dart
│ │ │ ├── appbar_user_action.dart
│ │ │ ├── block_metadata.dart
│ │ │ ├── block_player.dart
│ │ │ ├── block_stream.dart
│ │ │ └── bottom_action_bar.dart
│ │ ├── check_for_updates.dart
│ │ ├── check_for_updates
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── pms_tile.dart
│ │ │ └── tautulli_tile.dart
│ │ ├── graphs.dart
│ │ ├── graphs
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── navigation_bar.dart
│ │ │ └── type_button.dart
│ │ ├── graphs_play_by_period.dart
│ │ ├── graphs_play_by_period
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── daily_play_count_graph.dart
│ │ │ ├── play_count_by_day_of_week_graph.dart
│ │ │ ├── play_count_by_top_platforms_graph.dart
│ │ │ ├── play_count_by_top_users_graph.dart
│ │ │ └── plays_by_month_graph.dart
│ │ ├── graphs_stream_information.dart
│ │ ├── graphs_stream_information
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── daily_stream_type_breakdown_graph.dart
│ │ │ ├── play_count_by_platform_stream_type_graph.dart
│ │ │ ├── play_count_by_source_resolution_graph.dart
│ │ │ ├── play_count_by_stream_resolution_graph.dart
│ │ │ └── play_count_by_user_stream_type_graph.dart
│ │ ├── history.dart
│ │ ├── history
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── history_tile.dart
│ │ ├── history_details.dart
│ │ ├── history_details
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── information.dart
│ │ │ ├── metadata.dart
│ │ │ └── user.dart
│ │ ├── ipaddress_details.dart
│ │ ├── ipaddress_details
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── geolocation_tile.dart
│ │ │ └── whois_tile.dart
│ │ ├── libraries.dart
│ │ ├── libraries
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── library_tile.dart
│ │ ├── libraries_details.dart
│ │ ├── libraries_details
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── information.dart
│ │ │ ├── information_details.dart
│ │ │ ├── information_global_stats.dart
│ │ │ ├── navigation_bar.dart
│ │ │ ├── user_stats.dart
│ │ │ └── user_stats_tile.dart
│ │ ├── logs.dart
│ │ ├── logs
│ │ └── route.dart
│ │ ├── logs_logins.dart
│ │ ├── logs_logins
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── log_tile.dart
│ │ ├── logs_newsletters.dart
│ │ ├── logs_newsletters
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── log_tile.dart
│ │ ├── logs_notifications.dart
│ │ ├── logs_notifications
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── log_tile.dart
│ │ ├── logs_plex_media_scanner.dart
│ │ ├── logs_plex_media_scanner
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── log_tile.dart
│ │ ├── logs_plex_media_server.dart
│ │ ├── logs_plex_media_server
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── log_tile.dart
│ │ ├── logs_tautulli.dart
│ │ ├── logs_tautulli
│ │ ├── route.dart
│ │ ├── state.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── log_tile.dart
│ │ ├── media_details.dart
│ │ ├── media_details
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── history.dart
│ │ │ ├── metadata.dart
│ │ │ ├── metadata_header.dart
│ │ │ ├── metadata_metadata.dart
│ │ │ ├── metadata_summary.dart
│ │ │ ├── navigation_bar.dart
│ │ │ └── open_plex_button.dart
│ │ ├── more.dart
│ │ ├── more
│ │ └── route.dart
│ │ ├── recently_added.dart
│ │ ├── recently_added
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── content_tile.dart
│ │ ├── search.dart
│ │ ├── search
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── search_appbar.dart
│ │ │ ├── search_result_tile.dart
│ │ │ └── search_results.dart
│ │ ├── statistics.dart
│ │ ├── statistics
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── media_tile.dart
│ │ │ ├── platform_tile.dart
│ │ │ ├── recently_watched_tile.dart
│ │ │ ├── stream_tile.dart
│ │ │ ├── time_range_button.dart
│ │ │ ├── type_button.dart
│ │ │ └── user_tile.dart
│ │ ├── synced_items.dart
│ │ ├── synced_items
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── synced_item_tile.dart
│ │ ├── tautulli.dart
│ │ ├── tautulli
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ ├── appbar_global_settings_action.dart
│ │ │ └── navigation_bar.dart
│ │ ├── users.dart
│ │ ├── users
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ │ └── user_tile.dart
│ │ ├── users_details.dart
│ │ └── users_details
│ │ ├── route.dart
│ │ ├── widgets.dart
│ │ └── widgets
│ │ ├── history.dart
│ │ ├── ip_addresses.dart
│ │ ├── navigation_bar.dart
│ │ ├── profile.dart
│ │ └── synced_items.dart
├── router
│ ├── router.dart
│ ├── routes.dart
│ └── routes
│ │ ├── bios.dart
│ │ ├── dashboard.dart
│ │ ├── external_modules.dart
│ │ ├── lidarr.dart
│ │ ├── nzbget.dart
│ │ ├── radarr.dart
│ │ ├── sabnzbd.dart
│ │ ├── search.dart
│ │ ├── settings.dart
│ │ ├── sonarr.dart
│ │ └── tautulli.dart
├── system
│ ├── bios.dart
│ ├── cache
│ │ ├── image
│ │ │ ├── image_cache.dart
│ │ │ └── platform
│ │ │ │ ├── image_cache_html.dart
│ │ │ │ ├── image_cache_io.dart
│ │ │ │ └── image_cache_stub.dart
│ │ └── memory
│ │ │ ├── memory_cache.dart
│ │ │ └── memory_store.dart
│ ├── filesystem
│ │ ├── file.dart
│ │ ├── filesystem.dart
│ │ └── platform
│ │ │ ├── filesystem_html.dart
│ │ │ ├── filesystem_io.dart
│ │ │ └── filesystem_stub.dart
│ ├── flavor.dart
│ ├── logger.dart
│ ├── network
│ │ ├── network.dart
│ │ └── platform
│ │ │ ├── network_html.dart
│ │ │ ├── network_io.dart
│ │ │ └── network_stub.dart
│ ├── platform.dart
│ ├── quick_actions
│ │ ├── platform
│ │ │ ├── quick_actions_html.dart
│ │ │ ├── quick_actions_io.dart
│ │ │ └── quick_actions_stub.dart
│ │ └── quick_actions.dart
│ ├── recovery_mode
│ │ ├── action_tile.dart
│ │ ├── actions
│ │ │ ├── bootstrap.dart
│ │ │ └── clear_database.dart
│ │ └── main.dart
│ ├── state.dart
│ ├── webhooks.dart
│ └── window_manager
│ │ ├── platform
│ │ ├── window_manager_html.dart
│ │ ├── window_manager_io.dart
│ │ └── window_manager_stub.dart
│ │ └── window_manager.dart
├── types
│ ├── enum
│ │ ├── readable.dart
│ │ └── serializable.dart
│ ├── exception.dart
│ ├── indexer_icon.dart
│ ├── list_view_option.dart
│ ├── loading_state.dart
│ └── log_type.dart
├── utils
│ ├── dialogs.dart
│ ├── links.dart
│ ├── parser.dart
│ ├── profile_tools.dart
│ ├── uuid.dart
│ └── validator.dart
├── vendor.dart
└── widgets
│ ├── pages
│ ├── error_route.dart
│ ├── invalid_route.dart
│ └── not_enabled.dart
│ ├── sheets
│ └── download_client
│ │ ├── button.dart
│ │ └── sheet.dart
│ ├── ui.dart
│ └── ui
│ ├── appbar.dart
│ ├── assets.dart
│ ├── banner.dart
│ ├── block.dart
│ ├── block
│ ├── block.dart
│ └── grid_block.dart
│ ├── bottom_bar.dart
│ ├── bottom_bar
│ ├── action_bar.dart
│ ├── action_bar_card.dart
│ ├── badge.dart
│ └── navigation_bar.dart
│ ├── bottom_modal_sheet.dart
│ ├── button.dart
│ ├── card.dart
│ ├── colors.dart
│ ├── containers.dart
│ ├── containers
│ └── button_container.dart
│ ├── controllers.dart
│ ├── controllers
│ └── page_controller.dart
│ ├── deprecated.dart
│ ├── dialog.dart
│ ├── divider.dart
│ ├── drawer.dart
│ ├── drawer
│ ├── drawer.dart
│ └── drawer_header.dart
│ ├── floating_action_button.dart
│ ├── floating_action_button
│ ├── floating_action_button.dart
│ └── floating_action_button_animated.dart
│ ├── grid_view.dart
│ ├── grid_view
│ └── grid_view_builder.dart
│ ├── header.dart
│ ├── highlighted_node.dart
│ ├── icons.dart
│ ├── icons
│ ├── icon.dart
│ └── icon_button.dart
│ ├── images.dart
│ ├── images
│ ├── network_image.dart
│ └── network_image_provider
│ │ ├── network_image_provider.dart
│ │ └── platform
│ │ ├── network_image_provider_html.dart
│ │ ├── network_image_provider_io.dart
│ │ └── network_image_provider_stub.dart
│ ├── input_bar.dart
│ ├── linear_indicator.dart
│ ├── list_tile.dart
│ ├── list_tile
│ ├── expandable_list_tile.dart
│ └── list_tile.dart
│ ├── list_view.dart
│ ├── list_view
│ ├── custom_scroll_view.dart
│ ├── list_view.dart
│ ├── list_view_builder.dart
│ ├── list_view_modal.dart
│ ├── list_view_modal_builder.dart
│ ├── paged_list_view.dart
│ ├── reorderable_list_view.dart
│ ├── reorderable_list_view_builder.dart
│ └── reorderable_list_view_dragger.dart
│ ├── loader.dart
│ ├── message.dart
│ ├── mixins.dart
│ ├── mixins
│ ├── load_callback.dart
│ └── scroll_controller.dart
│ ├── page_view.dart
│ ├── popup_menu_button.dart
│ ├── refresh_indicator.dart
│ ├── scaffold.dart
│ ├── shape.dart
│ ├── shimmer.dart
│ ├── snackbar.dart
│ ├── snackbar
│ ├── snackbar.dart
│ ├── snackbar_error.dart
│ ├── snackbar_info.dart
│ └── snackbar_success.dart
│ ├── switch.dart
│ ├── table.dart
│ ├── table
│ ├── table_card.dart
│ └── table_content.dart
│ ├── text.dart
│ ├── text_span.dart
│ ├── text_style.dart
│ └── theme.dart
├── linux
├── .gitignore
├── CMakeLists.txt
├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
├── main.cc
├── my_application.cc
└── my_application.h
├── localization
├── dashboard
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── lidarr
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── lunasea
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── nzbget
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── overseerr
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── radarr
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── sabnzbd
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── search
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── settings
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── sonarr
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── tautulli
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
└── wake_on_lan
│ ├── ca.json
│ ├── de.json
│ ├── el.json
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ ├── hr.json
│ ├── hu.json
│ ├── it.json
│ ├── nb-NO.json
│ ├── nl.json
│ ├── pt.json
│ ├── ro.json
│ ├── ru.json
│ ├── sk.json
│ ├── sv.json
│ ├── tr.json
│ ├── vi.json
│ └── zh-Hans.json
├── macos
├── .gitignore
├── Flutter
│ ├── Flutter-Debug.xcconfig
│ ├── Flutter-Release.xcconfig
│ └── GeneratedPluginRegistrant.swift
├── Gemfile
├── Gemfile.lock
├── Podfile
├── Podfile.lock
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── icon_128.png
│ │ │ ├── icon_128@2x.png
│ │ │ ├── icon_16.png
│ │ │ ├── icon_16@2x.png
│ │ │ ├── icon_256.png
│ │ │ ├── icon_256@2x.png
│ │ │ ├── icon_32.png
│ │ │ ├── icon_32@2x.png
│ │ │ ├── icon_512.png
│ │ │ └── icon_512@2x.png
│ ├── Base.lproj
│ │ └── MainMenu.xib
│ ├── Configs
│ │ ├── AppInfo.xcconfig
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── Warnings.xcconfig
│ ├── DebugProfile.entitlements
│ ├── Info.plist
│ ├── MainFlutterWindow.swift
│ └── Release.entitlements
└── fastlane
│ ├── Appfile
│ ├── Fastfile
│ ├── Matchfile
│ └── README.md
├── package-lock.json
├── package.json
├── pubspec.lock
├── pubspec.yaml
├── scripts
├── generate_changelog.dart
├── generate_debian.dart
└── generate_localization.dart
├── snap
├── gui
│ ├── lunasea.desktop
│ └── lunasea.png
└── snapcraft.yaml
├── spider.yaml
├── web
├── android-icon-144x144.png
├── android-icon-192x192.png
├── android-icon-36x36.png
├── android-icon-48x48.png
├── android-icon-72x72.png
├── android-icon-96x96.png
├── apple-icon-114x114.png
├── apple-icon-120x120.png
├── apple-icon-144x144.png
├── apple-icon-152x152.png
├── apple-icon-180x180.png
├── apple-icon-57x57.png
├── apple-icon-60x60.png
├── apple-icon-72x72.png
├── apple-icon-76x76.png
├── apple-icon-precomposed.png
├── apple-icon.png
├── browserconfig.xml
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon-96x96.png
├── favicon.ico
├── firebase-messaging-sw.js
├── index.html
├── manifest.json
├── ms-icon-144x144.png
├── ms-icon-150x150.png
├── ms-icon-310x310.png
├── ms-icon-70x70.png
└── splash
│ ├── img
│ ├── dark-1x.png
│ ├── dark-2x.png
│ ├── dark-3x.png
│ ├── dark-4x.png
│ ├── light-1x.png
│ ├── light-2x.png
│ ├── light-3x.png
│ └── light-4x.png
│ ├── splash.js
│ └── style.css
└── windows
├── .gitignore
├── CMakeLists.txt
├── flutter
├── CMakeLists.txt
├── generated_plugin_registrant.cc
├── generated_plugin_registrant.h
└── generated_plugins.cmake
└── runner
├── CMakeLists.txt
├── Runner.rc
├── flutter_window.cpp
├── flutter_window.h
├── main.cpp
├── resource.h
├── resources
└── app_icon.ico
├── runner.exe.manifest
├── utils.cpp
├── utils.h
├── win32_window.cpp
└── win32_window.h
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | #
LunaSea
2 |
3 | > This is a mono-repository for archival of the entire LunaSea project.
4 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "comettools-lunasea"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/README.md:
--------------------------------------------------------------------------------
1 | # LunaSea Cloud Functions
2 |
3 | A collection of Cloud Functions that are associated with LunaSea.
4 |
5 | ## Controllers
6 |
7 | | Trigger | Controller |
8 | | :------------ | :--------------------- |
9 | | Auth.onDelete | `deleteUserController` |
10 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "functions": {
3 | "predeploy": [
4 | "npm --prefix \"$RESOURCE_DIR\" run lint",
5 | "npm --prefix \"$RESOURCE_DIR\" run build"
6 | ]
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/.eslintignore:
--------------------------------------------------------------------------------
1 | .eslintrc.js
2 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled JavaScript files
2 | lib/**/*.js
3 | lib/**/*.js.map
4 |
5 | # TypeScript v1 declaration files
6 | typings/
7 |
8 | # Node.js dependency directory
9 | node_modules/
10 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/.prettierignore:
--------------------------------------------------------------------------------
1 | .eslintrc.js
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "all",
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": true,
6 | "bracketSpacing": true,
7 | "arrowParens": "always",
8 | "endOfLine": "lf",
9 | "printWidth": 80
10 | }
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/src/controllers/delete_user.ts:
--------------------------------------------------------------------------------
1 | import * as functions from 'firebase-functions';
2 | import { Firestore, Storage } from '../services';
3 |
4 | export const deleteUserController = functions.auth
5 | .user()
6 | .onDelete(async (user: functions.auth.UserRecord) => {
7 | await Firestore.deleteUser(user);
8 | await Storage.deleteUser(user);
9 | });
10 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/src/controllers/index.ts:
--------------------------------------------------------------------------------
1 | import { deleteUserController } from './delete_user';
2 | export { deleteUserController };
3 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/src/index.ts:
--------------------------------------------------------------------------------
1 | import * as admin from 'firebase-admin';
2 | import { deleteUserController } from './controllers';
3 |
4 | admin.initializeApp();
5 | export { deleteUserController };
6 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/src/services/firestore/index.ts:
--------------------------------------------------------------------------------
1 | import * as admin from 'firebase-admin';
2 | import { deleteUser } from './delete_user';
3 |
4 | const getUserRootPath = (user: admin.auth.UserRecord) => `users/${user.uid}`;
5 |
6 | export { deleteUser, getUserRootPath };
7 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/src/services/index.ts:
--------------------------------------------------------------------------------
1 | import * as Firestore from './firestore';
2 | import * as Storage from './storage';
3 | export { Firestore, Storage };
4 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/src/services/storage/index.ts:
--------------------------------------------------------------------------------
1 | import * as admin from 'firebase-admin';
2 | import { deleteUser } from './delete_user';
3 |
4 | const getBackupBucket = () => admin.storage().bucket('backup.lunasea.app');
5 |
6 | export { deleteUser, getBackupBucket };
7 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/tsconfig.dev.json:
--------------------------------------------------------------------------------
1 | {
2 | "include": [
3 | ".eslintrc.js"
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea-cloud-functions/functions/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "noImplicitReturns": true,
5 | "noUnusedLocals": true,
6 | "outDir": "lib",
7 | "sourceMap": true,
8 | "strict": true,
9 | "target": "es2017"
10 | },
11 | "compileOnSave": true,
12 | "include": [
13 | "src"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/background.png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/firebase_crashlytics_example (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/firebase_crashlytics_example (1).png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/firebase_crashlytics_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/firebase_crashlytics_example.png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/img_1184.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/img_1184.jpg
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/lidarr_notification_example (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/lidarr_notification_example (1).png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/lidarr_notification_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/lidarr_notification_example.png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/overseerr_notification_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/overseerr_notification_example.png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/overseerr_notification_sample_v2 (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/overseerr_notification_sample_v2 (1).png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/overseerr_notification_sample_v2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/overseerr_notification_sample_v2.png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/radarr_notification_example (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/radarr_notification_example (1).png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/radarr_notification_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/radarr_notification_example.png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/sonarr_notification_example (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/sonarr_notification_example (1).png
--------------------------------------------------------------------------------
/lunasea-docs/.gitbook/assets/sonarr_notification_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea-docs/.gitbook/assets/sonarr_notification_example.png
--------------------------------------------------------------------------------
/lunasea-docs/modules/nzbget.md:
--------------------------------------------------------------------------------
1 | # NZBGet
2 |
3 | {% hint style="info" %}
4 | Coming Soon!
5 | {% endhint %}
6 |
--------------------------------------------------------------------------------
/lunasea-docs/modules/overseerr.md:
--------------------------------------------------------------------------------
1 | # Overseerr
2 |
3 | {% hint style="info" %}
4 | Coming Soon!
5 | {% endhint %}
6 |
--------------------------------------------------------------------------------
/lunasea-docs/modules/sabnzbd.md:
--------------------------------------------------------------------------------
1 | # SABnzbd
2 |
3 | {% hint style="info" %}
4 | Coming Soon!
5 | {% endhint %}
6 |
--------------------------------------------------------------------------------
/lunasea-docs/modules/tautulli.md:
--------------------------------------------------------------------------------
1 | # Tautulli
2 |
3 | {% hint style="info" %}
4 | Coming Soon!
5 | {% endhint %}
6 |
--------------------------------------------------------------------------------
/lunasea-docs/modules/wake-on-lan.md:
--------------------------------------------------------------------------------
1 | # Wake on LAN
2 |
3 | {% hint style="info" %}
4 | Coming Soon!
5 | {% endhint %}
6 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.dockerignore:
--------------------------------------------------------------------------------
1 | data/
2 | node_modules/
3 | .dockerignore
4 | .env
5 | .env.sample
6 | .eslintignore
7 | .eslintrc.json
8 | .gitignore
9 | .prettierignore
10 | .prettierrc.json
11 | Dockerfile
12 | LICENSE
13 | nodemon.json
14 | npm-debug.log
15 | README.md
16 | server.log
17 | serviceaccount.json
18 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.env.sample:
--------------------------------------------------------------------------------
1 | FIREBASE_CLIENT_EMAIL=
2 | FIREBASE_DATABASE_URL=
3 | FIREBASE_PRIVATE_KEY=
4 | FIREBASE_PROJECT_ID=
5 | FANART_TV_API_KEY=
6 | THEMOVIEDB_API_KEY=
7 | REDIS_USE_TLS="false"
8 | REDIS_HOST=
9 | REDIS_PORT="6379"
10 | REDIS_USER="default"
11 | REDIS_PASS=""
12 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/**
2 | node_modules/**
3 | .eslintrc.json
4 | .prettierrc.json
5 | nodemon.json
6 | package-lock.json
7 | package.json
8 | tsconfig.json
9 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.husky/.gitignore:
--------------------------------------------------------------------------------
1 | _
2 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx --no-install pretty-quick --staged
5 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.npmrc:
--------------------------------------------------------------------------------
1 | message="chore(release): v%s"
--------------------------------------------------------------------------------
/lunasea-notification-service/.prettierignore:
--------------------------------------------------------------------------------
1 | dist/**
2 | node_modules/**
3 | package-lock.json
4 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "all",
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": true,
6 | "bracketSpacing": true,
7 | "arrowParens": "always",
8 | "endOfLine": "lf",
9 | "printWidth": 100
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea-notification-service/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "yaml.schemas": {
3 | "https://json.schemastore.org/github-workflow.json": "file:///Users/jagandeepbrar/Git/LunaSea-Notification-Service/.github/workflows/build.yaml"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea-notification-service/nodemon.json:
--------------------------------------------------------------------------------
1 | {
2 | "restartable": "rs",
3 | "ignore": [".git", "node_modules", "dist"],
4 | "watch": ["src"],
5 | "exec": "ts-node -r dotenv/config",
6 | "env": {
7 | "NODE_ENV": "development"
8 | },
9 | "ext": "js,json,ts"
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/api/index.ts:
--------------------------------------------------------------------------------
1 | import * as FanartTV from './fanart_tv';
2 | import * as TheMovieDB from './the_movie_db';
3 | export { FanartTV, TheMovieDB };
4 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/index.ts:
--------------------------------------------------------------------------------
1 | import { Server } from './server';
2 | import { Firebase, Redis } from './services';
3 |
4 | Firebase.initialize();
5 | Redis.initialize();
6 | Server.start();
7 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/modules/custom/index.ts:
--------------------------------------------------------------------------------
1 | import * as Controller from './controller';
2 | export { Controller };
3 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/modules/lidarr/index.ts:
--------------------------------------------------------------------------------
1 | import * as Controller from './controller';
2 | import * as Models from './models';
3 | import * as Payloads from './payloads';
4 | export { Controller, Models, Payloads };
5 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/modules/overseerr/index.ts:
--------------------------------------------------------------------------------
1 | import * as Controller from './controller';
2 | import * as Models from './models';
3 | import * as Payloads from './payloads';
4 | export { Controller, Models, Payloads };
5 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/modules/radarr/index.ts:
--------------------------------------------------------------------------------
1 | import * as Controller from './controller';
2 | import * as Models from './models';
3 | import * as Payloads from './payloads';
4 | export { Controller, Models, Payloads };
5 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/modules/sonarr/index.ts:
--------------------------------------------------------------------------------
1 | import * as Controller from './controller';
2 | import * as Models from './models';
3 | import * as Payloads from './payloads';
4 | export { Controller, Models, Payloads };
5 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/modules/tautulli/index.ts:
--------------------------------------------------------------------------------
1 | import * as Controller from './controller';
2 | import * as Models from './models';
3 | import * as Payloads from './payloads';
4 | export { Controller, Models, Payloads };
5 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/server/index.ts:
--------------------------------------------------------------------------------
1 | import * as Middleware from './middleware';
2 | import * as Models from './models';
3 | import * as Server from './server';
4 | export { Server, Middleware, Models };
5 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/server/models.ts:
--------------------------------------------------------------------------------
1 | export interface Response {
2 | message: string;
3 | }
4 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/services/index.ts:
--------------------------------------------------------------------------------
1 | import * as Firebase from './firebase';
2 | import * as Redis from './redis';
3 | export { Firebase, Redis };
4 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | import * as Constants from './constants';
2 | import * as Environment from './environment';
3 | import * as Notifications from './notifications';
4 | import { Logger } from './logger';
5 |
6 | export { Constants, Environment, Notifications, Logger };
7 |
--------------------------------------------------------------------------------
/lunasea-notification-service/src/utils/logger.ts:
--------------------------------------------------------------------------------
1 | import pino from 'pino';
2 |
3 | export const Logger = pino({
4 | mixin: () => {
5 | return {
6 | service: 'lunasea-notification-service',
7 | version: process.env.npm_package_version,
8 | };
9 | },
10 | level: process.env.NODE_ENV === 'development' ? 'debug' : 'info',
11 | });
12 |
13 | process.on('uncaughtException', (e) => Logger.error(e));
14 | process.on('unhandledRejection', (e) => Logger.error(e));
15 |
--------------------------------------------------------------------------------
/lunasea-notification-service/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "esModuleInterop": true,
4 | "module": "commonjs",
5 | "moduleResolution": "node",
6 | "outDir": "dist",
7 | "sourceMap": true,
8 | "strict": true,
9 | "target": "es2018",
10 | "resolveJsonModule": true,
11 | "skipLibCheck": true
12 | },
13 | "exclude": ["node_modules", "dist", ".git"],
14 | "include": ["src/**/*"],
15 | "lib": ["ES2018"]
16 | }
17 |
--------------------------------------------------------------------------------
/lunasea/.commitlintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "@commitlint/config-conventional"
4 | ],
5 | "rules": {
6 | "type-enum": [
7 | 2,
8 | "always",
9 | [
10 | "chore",
11 | "docs",
12 | "feat",
13 | "fix",
14 | "refactor",
15 | "release"
16 | ]
17 | ]
18 | }
19 | }
--------------------------------------------------------------------------------
/lunasea/.dockerignore:
--------------------------------------------------------------------------------
1 | .git/
2 | .dart_tool/
3 | android/
4 | build/
5 | ios/
6 | linux/
7 | localization/
8 | macos/
9 | node_modules/
10 | shaders/
11 | snap/
12 | windows/
13 |
--------------------------------------------------------------------------------
/lunasea/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "comettools-lunasea"
4 | }
5 | }
--------------------------------------------------------------------------------
/lunasea/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: jagandeepbrar
2 | ko_fi: jagandeepbrar
3 |
--------------------------------------------------------------------------------
/lunasea/.github/ISSUE_TEMPLATE/other.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Other
3 | about: Anything else for LunaSea
4 | title: "[Other] "
5 | labels: other
6 | assignees: ''
7 |
8 | ---
9 |
--------------------------------------------------------------------------------
/lunasea/.husky/commit-msg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx --no -- commitlint --edit
5 |
--------------------------------------------------------------------------------
/lunasea/.husky/prepare-commit-msg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | exec < /dev/tty && npx cz --hook || true
5 |
--------------------------------------------------------------------------------
/lunasea/.prettierignore:
--------------------------------------------------------------------------------
1 | CHANGELOG.md
2 |
--------------------------------------------------------------------------------
/lunasea/.ruby-version:
--------------------------------------------------------------------------------
1 | 2.7.6
--------------------------------------------------------------------------------
/lunasea/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/lunasea/android/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 | gem "abbrev"
5 | gem "logger"
6 | gem "mutex_m"
7 | gem "csv"
8 |
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/kotlin/app/lunasea/lunasea/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package app.lunasea.lunasea
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | import android.os.Build
6 | import android.view.ViewTreeObserver
7 | import android.view.WindowManager
8 | class MainActivity: FlutterActivity() {
9 | }
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-hdpi/notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-hdpi/notification.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-hdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-hdpi/splash.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-mdpi/notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-mdpi/notification.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-mdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-mdpi/splash.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-v21/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-v21/background.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-xhdpi/notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-xhdpi/notification.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-xhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-xhdpi/splash.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-xxhdpi/notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-xxhdpi/notification.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-xxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-xxhdpi/splash.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-xxxhdpi/notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-xxxhdpi/notification.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable-xxxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable-xxxhdpi/splash.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/drawable/background.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable/ic_notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #32323E
4 | #32323E
5 | #4ECCA3
6 |
--------------------------------------------------------------------------------
/lunasea/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | [{\"include\": \"https://www.lunasea.app/.well-known/assetlinks.json\"}]
3 |
4 |
--------------------------------------------------------------------------------
/lunasea/android/build.gradle:
--------------------------------------------------------------------------------
1 | allprojects {
2 | repositories {
3 | google()
4 | mavenCentral()
5 | }
6 | }
7 |
8 | rootProject.buildDir = '../build'
9 | subprojects {
10 | project.buildDir = "${rootProject.buildDir}/${project.name}"
11 | }
12 | subprojects {
13 | project.evaluationDependsOn(':app')
14 | }
15 |
16 | tasks.register("clean", Delete) {
17 | delete rootProject.buildDir
18 | }
19 |
--------------------------------------------------------------------------------
/lunasea/android/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | package_name("app.lunasea.lunasea")
2 |
--------------------------------------------------------------------------------
/lunasea/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/lunasea/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip
6 |
--------------------------------------------------------------------------------
/lunasea/android/key.properties.sample:
--------------------------------------------------------------------------------
1 | storePassword=
2 | keyPassword=
3 | keyAlias=
4 | storeFile=../key.jks
5 |
--------------------------------------------------------------------------------
/lunasea/android/settings_aar.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/lunasea/assets/LunaBrandIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/LunaBrandIcons.ttf
--------------------------------------------------------------------------------
/lunasea/assets/changelog.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/assets/changelog_stable.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/assets/icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/icon/icon.png
--------------------------------------------------------------------------------
/lunasea/assets/icon/icon_adaptive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/icon/icon_adaptive.png
--------------------------------------------------------------------------------
/lunasea/assets/icon/icon_linux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/icon/icon_linux.png
--------------------------------------------------------------------------------
/lunasea/assets/icon/icon_web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/icon/icon_web.png
--------------------------------------------------------------------------------
/lunasea/assets/icon/icon_windows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/icon/icon_windows.png
--------------------------------------------------------------------------------
/lunasea/assets/images/branding_full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/images/branding_full.png
--------------------------------------------------------------------------------
/lunasea/assets/images/branding_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/assets/images/branding_logo.png
--------------------------------------------------------------------------------
/lunasea/assets/localization/nb.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/assets/localization/vi.json:
--------------------------------------------------------------------------------
1 | {
2 | "lunasea.Add": "Thêm",
3 | "lunasea.ChangeProfiles": "Thay đổi thông tin",
4 | "lunasea.Changelog": "Bản ghi các thay đổi",
5 | "lunasea.CopiedContentToTheClipboard": "Nội dung đã được sao chép vào Clipboard"
6 | }
--------------------------------------------------------------------------------
/lunasea/assets/localization/zh.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | sources:
4 | - lib/**
5 | - pubspec.*
6 | - $package$
7 | builders:
8 | # Hive
9 | hive_generator:
10 | enabled: true
11 | # JSON Serializable
12 | json_serializable:
13 | enabled: true
14 | options:
15 | explicit_to_json: true
16 | include_if_null: false
17 |
18 | # Retrofit
19 | retrofit_generator:
20 | enabled: true
21 |
--------------------------------------------------------------------------------
/lunasea/debian/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package:LunaSea
2 | Architecture:amd64
3 | Essential:no
4 | Priority:optional
5 | Maintainer:LunaSea Support
6 | Description:Self-hosted software controller built using Flutter
7 |
--------------------------------------------------------------------------------
/lunasea/debian/DEBIAN/postinst:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ln -sf '/usr/share/lunasea/lunasea' '/usr/bin/lunasea'
4 |
--------------------------------------------------------------------------------
/lunasea/debian/DEBIAN/postrm:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | rm -f '/usr/bin/lunasea'
4 |
--------------------------------------------------------------------------------
/lunasea/debian/usr/share/applications/lunasea.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=LunaSea
3 | Comment=Self-hosted software controller built using Flutter
4 | Icon=/usr/share/icons/lunasea.png
5 | Terminal=false
6 | Type=Application
7 | Categories=Utilities;Entertainment;
8 | Exec=/usr/bin/lunasea
9 | TryExec=/usr/bin/lunasea
10 |
--------------------------------------------------------------------------------
/lunasea/debian/usr/share/icons/lunasea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/debian/usr/share/icons/lunasea.png
--------------------------------------------------------------------------------
/lunasea/environment_config.yaml:
--------------------------------------------------------------------------------
1 | environment_config:
2 | path: system/environment.dart
3 | class: LunaEnvironment
4 |
5 | fields:
6 | build:
7 | type: int
8 | default: 9999999999
9 | env_var: BUILD
10 | commit:
11 | type: String
12 | default: master
13 | env_var: COMMIT
14 | flavor:
15 | type: String
16 | default: edge
17 | env_var: FLAVOR
18 |
--------------------------------------------------------------------------------
/lunasea/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
3 | #include "Generated.xcconfig"
4 |
--------------------------------------------------------------------------------
/lunasea/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
3 | #include "Generated.xcconfig"
4 |
--------------------------------------------------------------------------------
/lunasea/ios/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 | gem "cocoapods"
5 | gem "abbrev"
6 | gem "logger"
7 | gem "mutex_m"
8 | gem "csv"
9 |
--------------------------------------------------------------------------------
/lunasea/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lunasea/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lunasea/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/lunasea/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lunasea/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @main
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "background.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
--------------------------------------------------------------------------------
/lunasea/ios/Runner/Runner.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.associated-domains
6 |
7 | webcredentials:www.lunasea.app
8 |
9 | com.apple.developer.networking.wifi-info
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lunasea/ios/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | app_identifier("app.lunasea.lunasea")
2 | apple_id(ENV["APPLE_ID"])
3 | itc_team_id(ENV["APPLE_ITC_TEAM_ID"])
4 | team_id(ENV["APPLE_TEAM_ID"])
5 |
--------------------------------------------------------------------------------
/lunasea/ios/fastlane/Matchfile:
--------------------------------------------------------------------------------
1 | git_url("git@github.com:JagandeepBrar/fastlane-match-storage.git")
2 | storage_mode("git")
3 | app_identifier(["app.lunasea.lunasea"])
4 | platform("ios")
5 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/command/backup.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandBackup(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'Backup',
6 | });
7 | return RadarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/command/downloaded_movies_scan.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandDownloadedMoviesScan(
4 | Dio client, {
5 | required String path,
6 | }) async {
7 | Response response = await client.post('command', data: {
8 | 'name': 'DownloadedMoviesScan',
9 | 'path': path,
10 | });
11 | return RadarrCommand.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/command/missing_movie_search.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandMissingMovieSearch(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'MissingMoviesSearch',
6 | });
7 | return RadarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/command/movies_search.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandMoviesSearch(
4 | Dio client, {
5 | required List movieIds,
6 | }) async {
7 | Response response = await client.post('command', data: {
8 | 'name': 'MoviesSearch',
9 | 'movieIds': movieIds,
10 | });
11 | return RadarrCommand.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/command/refresh_monitored_downloads.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandRefreshMonitoredDownloads(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'RefreshMonitoredDownloads',
6 | });
7 | return RadarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/command/refresh_movie.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandRefreshMovie(
4 | Dio client, {
5 | List? movieIds,
6 | }) async {
7 | Response response = await client.post('command', data: {
8 | 'name': 'RefreshMovie',
9 | if (movieIds != null) 'movieIds': movieIds,
10 | });
11 | return RadarrCommand.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/command/rss_sync.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandRSSSync(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'RssSync',
6 | });
7 | return RadarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/credits/get_credits.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetCredits(
4 | Dio client, {
5 | required int movieId,
6 | }) async {
7 | Response response = await client.get('credit', queryParameters: {
8 | 'movieId': movieId,
9 | });
10 | return (response.data as List)
11 | .map((credit) => RadarrMovieCredits.fromJson(credit))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/exclusions/get_all_exclusions.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllExclusions(Dio client) async {
4 | Response response = await client.get('exclusions');
5 | return (response.data as List)
6 | .map((exclusion) => RadarrExclusion.fromJson(exclusion))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/exclusions/get_exclusion.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetExclusions(
4 | Dio client, {
5 | required int exclusionId,
6 | }) async {
7 | Response response = await client.get('exclusions/$exclusionId');
8 | return RadarrExclusion.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/extra_file/get_extra_files.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetExtraFiles(
4 | Dio client, {
5 | required int movieId,
6 | }) async {
7 | Response response = await client.get('extraFile', queryParameters: {
8 | 'movieId': movieId,
9 | });
10 | return (response.data as List)
11 | .map((credit) => RadarrExtraFile.fromJson(credit))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/filesystem/get_all_disk_spaces.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllDiskSpaces(Dio client) async {
4 | Response response = await client.get('diskspace');
5 | return (response.data as List)
6 | .map((exclusion) => RadarrDiskSpace.fromJson(exclusion))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/health_check/get_all_health_checks.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllHealthChecks(Dio client) async {
4 | Response response = await client.get('health');
5 | return (response.data as List)
6 | .map((health) => RadarrHealthCheck.fromJson(health))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/history/get_movie_history.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetMovieHistory(
4 | Dio client, {
5 | required int movieId,
6 | }) async {
7 | Response response = await client.get('history/movie', queryParameters: {
8 | 'movieId': movieId,
9 | });
10 | return (response.data as List)
11 | .map((file) => RadarrHistoryRecord.fromJson(file))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/import_list/get_all_import_lists.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllImportLists(Dio client) async {
4 | Response response = await client.get('importlist');
5 | return (response.data as List)
6 | .map((list) => RadarrImportList.fromJson(list))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/import_list/get_import_list.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetImportList(
4 | Dio client, {
5 | required int listId,
6 | }) async {
7 | Response response = await client.get('importlist/$listId');
8 | return RadarrImportList.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/language/get_all_languages.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllLanguages(Dio client) async {
4 | Response response = await client.get('language');
5 | return (response.data as List)
6 | .map((profile) => RadarrLanguage.fromJson(profile))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/language/get_language.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetLanguage(
4 | Dio client, {
5 | required int languageId,
6 | }) async {
7 | Response response = await client.get('language/$languageId');
8 | return RadarrLanguage.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/movie/delete_movie.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandDeleteMovie(
4 | Dio client, {
5 | required int movieId,
6 | bool addImportExclusion = false,
7 | bool deleteFiles = false,
8 | }) async {
9 | await client.delete('movie/$movieId', queryParameters: {
10 | 'addImportExclusion': addImportExclusion,
11 | 'deleteFiles': deleteFiles,
12 | });
13 | return;
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/movie/get_all_movies.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllMovies(Dio client) async {
4 | Response response = await client.get('movie');
5 | return (response.data as List)
6 | .map((series) => RadarrMovie.fromJson(series))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/movie/get_movie.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetMovie(
4 | Dio client, {
5 | required int movieId,
6 | }) async {
7 | Response response = await client.get('movie/$movieId');
8 | return RadarrMovie.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/movie/update_movie.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandUpdateMovie(
4 | Dio client, {
5 | required RadarrMovie movie,
6 | required bool moveFiles,
7 | }) async {
8 | Response response = await client.put(
9 | 'movie',
10 | data: movie.toJson(),
11 | queryParameters: {
12 | 'moveFiles': moveFiles,
13 | },
14 | );
15 | return RadarrMovie.fromJson(response.data);
16 | }
17 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/movie_file/delete_movie_file.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandDeleteMovieFile(
4 | Dio client, {
5 | required int movieFileId,
6 | }) async {
7 | await client.delete('moviefile/$movieFileId');
8 | return;
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/movie_file/get_movie_file.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetMovieFile(
4 | Dio client, {
5 | required int movieId,
6 | }) async {
7 | Response response = await client.get('moviefile', queryParameters: {
8 | 'movieId': movieId,
9 | });
10 | return (response.data as List)
11 | .map((file) => RadarrMovieFile.fromJson(file))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/movie_lookup/get_movie_lookup.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetMovieLookup(
4 | Dio client, {
5 | required String term,
6 | }) async {
7 | Response response = await client.get('movie/lookup', queryParameters: {
8 | 'term': term,
9 | });
10 | return (response.data as List)
11 | .map((lookup) => RadarrMovie.fromJson(lookup))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/quality_profile/get_all_quality_profiles.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllQualityProfiles(
4 | Dio client) async {
5 | Response response = await client.get('qualityprofile');
6 | return (response.data as List)
7 | .map((profile) => RadarrQualityProfile.fromJson(profile))
8 | .toList();
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/quality_profile/get_quality_definitions.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetQualityDefinitions(
4 | Dio client) async {
5 | Response response = await client.get('qualitydefinition');
6 | return (response.data as List)
7 | .map((profile) => RadarrQualityDefinition.fromJson(profile))
8 | .toList();
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/quality_profile/get_quality_profile.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetQualityProfile(
4 | Dio client, {
5 | required int profileId,
6 | }) async {
7 | Response response = await client.get('qualityprofile/$profileId');
8 | return RadarrQualityProfile.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/queue/delete_queue.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandDeleteQueue(
4 | Dio client, {
5 | required int id,
6 | bool removeFromClient = false,
7 | bool blacklist = false,
8 | }) async {
9 | await client.delete('queue/$id', queryParameters: {
10 | 'removeFromClient': removeFromClient,
11 | 'blacklist': blacklist,
12 | });
13 | return;
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/queue/get_queue_status.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetQueueStatus(Dio client) async {
4 | Response response = await client.get('queue/status');
5 | return RadarrQueueStatus.fromJson(response.data);
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/release/get_releases.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetReleases(
4 | Dio client, {
5 | required int movieId,
6 | }) async {
7 | Response response = await client.get('release', queryParameters: {
8 | 'movieId': movieId,
9 | });
10 | return (response.data as List)
11 | .map((release) => RadarrRelease.fromJson(release))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/release/push_release.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandPushRelease(
4 | Dio client, {
5 | required String guid,
6 | required int indexerId,
7 | }) async {
8 | await client.post('release', data: {
9 | 'guid': guid,
10 | 'indexerId': indexerId,
11 | });
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/root_folder/get_root_folders.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetRootFolders(Dio client) async {
4 | Response response = await client.get('rootfolder');
5 | return (response.data as List)
6 | .map((folder) => RadarrRootFolder.fromJson(folder))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/system/get_status.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetSystemStatus(Dio client) async {
4 | Response response = await client.get('system/status');
5 | return RadarrSystemStatus.fromJson(response.data);
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/tag/add_tag.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandAddTag(
4 | Dio client, {
5 | required String label,
6 | }) async {
7 | Response response = await client.post('tag', data: {
8 | 'label': label,
9 | });
10 | return RadarrTag.fromJson(response.data);
11 | }
12 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/tag/delete_tag.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandDeleteTag(
4 | Dio client, {
5 | required int id,
6 | }) async {
7 | await client.delete('tag/$id');
8 | return;
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/tag/get_all_tags.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future> _commandGetAllTags(Dio client) async {
4 | Response response = await client.get('tag');
5 | return (response.data as List).map((tag) => RadarrTag.fromJson(tag)).toList();
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/tag/get_tag.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandGetTag(
4 | Dio client, {
5 | required int id,
6 | }) async {
7 | Response response = await client.get('tag/$id');
8 | return RadarrTag.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/radarr/commands/tag/update_tag.dart:
--------------------------------------------------------------------------------
1 | part of radarr_commands;
2 |
3 | Future _commandUpdateTag(
4 | Dio client, {
5 | required RadarrTag tag,
6 | }) async {
7 | Response response = await client.put('tag', data: tag.toJson());
8 | return RadarrTag.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sabnzbd/types/action.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/types/enum/serializable.dart';
2 |
3 | enum SABnzbdAction with EnumSerializable {
4 | FALSE('0'),
5 | TRUE('1');
6 |
7 | @override
8 | final String value;
9 |
10 | const SABnzbdAction(this.value);
11 | }
12 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/backup.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandBackup(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'Backup',
6 | });
7 | return SonarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/episode_search.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandEpisodeSearch(
4 | Dio client, {
5 | required List episodeIds,
6 | }) async {
7 | Response response = await client.post('command', data: {
8 | 'name': 'EpisodeSearch',
9 | 'episodeIds': episodeIds,
10 | });
11 | return SonarrCommand.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/missing_episode_search.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandMissingEpisodeSearch(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'missingEpisodeSearch',
6 | });
7 | return SonarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/queue.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandCommandQueue(Dio client) async {
4 | Response response = await client.get('command');
5 | return (response.data as List)
6 | .map((command) => SonarrCommand.fromJson(command))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/refresh_monitored_downloads.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandRefreshMonitoredDownloads(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'RefreshMonitoredDownloads',
6 | });
7 | return SonarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/refresh_series.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandRefreshSeries(
4 | Dio client, {
5 | int? seriesId,
6 | }) async {
7 | Response response = await client.post('command', data: {
8 | 'name': 'RefreshSeries',
9 | if (seriesId != null) 'seriesId': seriesId,
10 | });
11 | return SonarrCommand.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/rescan_series.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandRescanSeries(
4 | Dio client, {
5 | int? seriesId,
6 | }) async {
7 | Response response = await client.post('command', data: {
8 | 'name': 'RescanSeries',
9 | if (seriesId != null) 'seriesId': seriesId,
10 | });
11 | return SonarrCommand.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/rss_sync.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandRSSSync(Dio client) async {
4 | Response response = await client.post('command', data: {
5 | 'name': 'RssSync',
6 | });
7 | return SonarrCommand.fromJson(response.data);
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/season_search.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandSeasonSearch(
4 | Dio client, {
5 | required int seriesId,
6 | required int seasonNumber,
7 | }) async {
8 | Response response = await client.post('command', data: {
9 | 'name': 'SeasonSearch',
10 | 'seriesId': seriesId,
11 | 'seasonNumber': seasonNumber,
12 | });
13 | return SonarrCommand.fromJson(response.data);
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/command/series_search.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandSeriesSearch(
4 | Dio client, {
5 | required int seriesId,
6 | }) async {
7 | Response response = await client.post('command', data: {
8 | 'name': 'SeriesSearch',
9 | 'seriesId': seriesId,
10 | });
11 | return SonarrCommand.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/episode/get_episode.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandGetEpisode(
4 | Dio client, {
5 | required int episodeId,
6 | }) async {
7 | Response response = await client.get('episode/$episodeId');
8 | return SonarrEpisode.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/episode/update_episode.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandUpdateEpisode(
4 | Dio client, {
5 | required SonarrEpisode episode,
6 | }) async {
7 | Response response = await client.put('episode', data: episode.toJson());
8 | return SonarrEpisode.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/episode_file/delete_episode_file.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandDeleteEpisodeFile(
4 | Dio client, {
5 | required int episodeFileId,
6 | }) async {
7 | await client.delete('episodefile/$episodeFileId');
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/episode_file/delete_episode_files.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandDeleteEpisodeFiles(
4 | Dio client, {
5 | required List episodeFileIds,
6 | }) async {
7 | await client.delete('episodefile/bulk', data: {
8 | 'episodeFileIds': episodeFileIds,
9 | });
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/episode_file/get_episode_file.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandGetEpisodeFile(
4 | Dio client, {
5 | required int episodeId,
6 | }) async {
7 | Response response = await client.get('episodefile/$episodeId');
8 | return SonarrEpisodeFile.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/episode_file/get_series_episode_files.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetSeriesEpisodeFiles(
4 | Dio client, {
5 | required int seriesId,
6 | }) async {
7 | Response response = await client.get('episodefile', queryParameters: {
8 | 'seriesId': seriesId,
9 | });
10 | return (response.data as List)
11 | .map((episode) => SonarrEpisodeFile.fromJson(episode))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/import_list/get_exclusion_list.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetExclusionList(
4 | Dio client,
5 | ) async {
6 | Response response = await client.get('importlistexclusion');
7 | return (response.data as List)
8 | .map((series) => SonarrExclusion.fromJson(series))
9 | .toList();
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/profile/get_language_profiles.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetLanguageProfiles(
4 | Dio client,
5 | ) async {
6 | Response response = await client.get('languageprofile');
7 | return (response.data as List)
8 | .map((profile) => SonarrLanguageProfile.fromJson(profile))
9 | .toList();
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/profile/get_quality_profiles.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetQualityProfiles(
4 | Dio client,
5 | ) async {
6 | Response response = await client.get('qualityprofile');
7 | return (response.data as List)
8 | .map((profile) => SonarrQualityProfile.fromJson(profile))
9 | .toList();
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/queue/delete_queue.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandDeleteQueue(
4 | Dio client, {
5 | required int id,
6 | bool? removeFromClient,
7 | bool? blocklist,
8 | }) async {
9 | await client.delete('queue/$id', queryParameters: {
10 | if (removeFromClient != null) 'removeFromClient': removeFromClient,
11 | if (blocklist != null) 'blocklist': blocklist,
12 | });
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/release/add_release.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandAddRelease(
4 | Dio client, {
5 | required String guid,
6 | required int indexerId,
7 | }) async {
8 | Response response = await client.post(
9 | 'release',
10 | data: {
11 | 'guid': guid,
12 | 'indexerId': indexerId,
13 | },
14 | );
15 | return SonarrAddedRelease.fromJson(response.data);
16 | }
17 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/release/get_release.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetReleases(
4 | Dio client, {
5 | required int episodeId,
6 | }) async {
7 | Response response = await client.get('release', queryParameters: {
8 | 'episodeId': episodeId,
9 | });
10 | return (response.data as List)
11 | .map((series) => SonarrRelease.fromJson(series))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/root_folder/get_root_folders.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetRootFolders(Dio client) async {
4 | Response response = await client.get('rootfolder');
5 | return (response.data as List)
6 | .map((folder) => SonarrRootFolder.fromJson(folder))
7 | .toList();
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/series/delete_series.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandDeleteSeries(
4 | Dio client, {
5 | required int seriesId,
6 | bool deleteFiles = false,
7 | bool addImportListExclusion = false,
8 | }) async {
9 | await client.delete('series/$seriesId', queryParameters: {
10 | 'deleteFiles': deleteFiles,
11 | 'addImportListExclusion': addImportListExclusion,
12 | });
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/series/get_all_series.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetAllSeries(
4 | Dio client, {
5 | bool includeSeasonImages = false,
6 | }) async {
7 | Response response = await client.get('series', queryParameters: {
8 | 'includeSeasonImages': includeSeasonImages,
9 | });
10 | return (response.data as List)
11 | .map((series) => SonarrSeries.fromJson(series))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/series/get_series.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandGetSeries(
4 | Dio client, {
5 | required int seriesId,
6 | bool includeSeasonImages = false,
7 | }) async {
8 | Response response = await client.get('series/$seriesId', queryParameters: {
9 | 'includeSeasonImages': includeSeasonImages,
10 | });
11 | return SonarrSeries.fromJson(response.data);
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/series/update_series.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandUpdateSeries(
4 | Dio client, {
5 | required SonarrSeries series,
6 | }) async {
7 | Response response = await client.put('series', data: series.toJson());
8 | return SonarrSeries.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/series_lookup/lookup.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetSeriesLookup(
4 | Dio client, {
5 | required String term,
6 | }) async {
7 | Response response = await client.get('series/lookup', queryParameters: {
8 | 'term': term,
9 | });
10 | return (response.data as List)
11 | .map((series) => SonarrSeries.fromJson(series))
12 | .toList();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/system/get_status.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandGetStatus(Dio client) async {
4 | Response response = await client.get('system/status');
5 | return SonarrStatus.fromJson(response.data);
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/tag/add_tag.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandAddTag(
4 | Dio client, {
5 | required String label,
6 | }) async {
7 | Response response = await client.post('tag', data: {
8 | 'label': label,
9 | });
10 | return SonarrTag.fromJson(response.data);
11 | }
12 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/tag/delete_tag.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandDeleteTag(
4 | Dio client, {
5 | required int id,
6 | }) async {
7 | await client.delete('tag/$id');
8 | return;
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/tag/get_all_tags.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future> _commandGetAllTags(Dio client) async {
4 | Response response = await client.get('tag');
5 | return (response.data as List).map((tag) => SonarrTag.fromJson(tag)).toList();
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/tag/get_tag.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandGetTag(
4 | Dio client, {
5 | required int id,
6 | }) async {
7 | Response response = await client.get('tag/$id');
8 | return SonarrTag.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/sonarr/controllers/tag/update_tag.dart:
--------------------------------------------------------------------------------
1 | part of sonarr_commands;
2 |
3 | Future _commandUpdateTag(
4 | Dio client, {
5 | required SonarrTag tag,
6 | }) async {
7 | Response response = await client.put('tag', data: tag.toJson());
8 | return SonarrTag.fromJson(response.data);
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/miscellaneous/docs_md.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandDocsMd(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'docs_md',
8 | },
9 | options: Options(
10 | responseType: ResponseType.bytes,
11 | ),
12 | );
13 | return (response.data as Uint8List?);
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/miscellaneous/download_config.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandDownloadConfig(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'download_config',
8 | },
9 | options: Options(
10 | responseType: ResponseType.bytes,
11 | ),
12 | );
13 | return (response.data as Uint8List?);
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/miscellaneous/download_database.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandDownloadDatabase(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'download_database',
8 | },
9 | options: Options(
10 | responseType: ResponseType.bytes,
11 | ),
12 | );
13 | return (response.data as Uint8List?);
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/miscellaneous/download_log.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandDownloadLog(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'download_log',
8 | },
9 | options: Options(
10 | responseType: ResponseType.bytes,
11 | ),
12 | );
13 | return (response.data as Uint8List?);
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/miscellaneous/download_plex_log.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandDownloadPlexLog(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'download_plex_log',
8 | },
9 | options: Options(
10 | responseType: ResponseType.bytes,
11 | ),
12 | );
13 | return (response.data as Uint8List?);
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/system/backup_db.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandBackupDB(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'backup_db',
8 | },
9 | );
10 | switch ((response.data['response']['result'] as String?)) {
11 | case 'success':
12 | return;
13 | case 'error':
14 | default:
15 | throw Exception(response.data['response']['message']);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/system/delete_cache.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandDeleteCache(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'delete_cache',
8 | },
9 | );
10 | switch ((response.data['response']['result'] as String?)) {
11 | case 'success':
12 | return;
13 | case 'error':
14 | default:
15 | throw Exception(response.data['response']['message']);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/system/restart.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandRestart(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'restart',
8 | },
9 | );
10 | switch ((response.data['response']['result'] as String?)) {
11 | case 'success':
12 | return;
13 | case 'error':
14 | default:
15 | throw Exception(response.data['response']['message']);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/lunasea/lib/api/tautulli/commands/system/update.dart:
--------------------------------------------------------------------------------
1 | part of tautulli_commands;
2 |
3 | Future _commandUpdate(Dio client) async {
4 | Response response = await client.get(
5 | '/',
6 | queryParameters: {
7 | 'cmd': 'update',
8 | },
9 | );
10 | switch ((response.data['response']['result'] as String?)) {
11 | case 'success':
12 | return;
13 | case 'error':
14 | default:
15 | throw Exception(response.data['response']['message']);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/lunasea/lib/api/wake_on_lan/platform/wake_on_lan_html.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/api/wake_on_lan/wake_on_lan.dart';
2 |
3 | bool isPlatformSupported() => false;
4 | LunaWakeOnLAN getWakeOnLAN() =>
5 | throw UnsupportedError('LunaWakeOnLAN unsupported');
6 |
--------------------------------------------------------------------------------
/lunasea/lib/api/wake_on_lan/platform/wake_on_lan_stub.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/api/wake_on_lan/wake_on_lan.dart';
2 |
3 | bool isPlatformSupported() => false;
4 | LunaWakeOnLAN getWakeOnLAN() =>
5 | throw UnsupportedError('LunaWakeOnLAN unsupported');
6 |
--------------------------------------------------------------------------------
/lunasea/lib/api/wake_on_lan/wake_on_lan.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import 'platform/wake_on_lan_stub.dart'
3 | if (dart.library.io) 'platform/wake_on_lan_io.dart'
4 | if (dart.library.html) 'platform/wake_on_lan_html.dart';
5 |
6 | abstract class LunaWakeOnLAN {
7 | static bool get isSupported => isPlatformSupported();
8 | factory LunaWakeOnLAN() => getWakeOnLAN();
9 |
10 | Future wake();
11 | }
12 |
--------------------------------------------------------------------------------
/lunasea/lib/database/tables/nzbget.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/database/table.dart';
2 |
3 | enum NZBGetDatabase with LunaTableMixin {
4 | NAVIGATION_INDEX(0);
5 |
6 | @override
7 | LunaTable get table => LunaTable.nzbget;
8 |
9 | @override
10 | final T fallback;
11 |
12 | const NZBGetDatabase(this.fallback);
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/database/tables/sabnzbd.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/database/table.dart';
2 |
3 | enum SABnzbdDatabase with LunaTableMixin {
4 | NAVIGATION_INDEX(0);
5 |
6 | @override
7 | LunaTable get table => LunaTable.sabnzbd;
8 |
9 | @override
10 | final T fallback;
11 |
12 | const SABnzbdDatabase(this.fallback);
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/database/tables/search.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/database/table.dart';
2 |
3 | enum SearchDatabase with LunaTableMixin {
4 | HIDE_XXX(false),
5 | SHOW_LINKS(true);
6 |
7 | @override
8 | LunaTable get table => LunaTable.search;
9 |
10 | @override
11 | final T fallback;
12 |
13 | const SearchDatabase(this.fallback);
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/extensions/page_controller.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | extension PageControllerExtension on PageController {
4 | Future protectedJumpToPage(int index) async {
5 | if (this.hasClients) this.jumpToPage(index);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/external_modules/routes/external_modules.dart:
--------------------------------------------------------------------------------
1 | export 'external_modules/route.dart';
2 | export 'external_modules/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/external_modules/routes/external_modules/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/module_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr.dart:
--------------------------------------------------------------------------------
1 | export 'lidarr/core.dart';
2 | export 'lidarr/routes.dart';
3 | export 'lidarr/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr/core.dart:
--------------------------------------------------------------------------------
1 | export 'package:lunasea/database/tables/lidarr.dart';
2 | export 'core/api.dart';
3 | export 'core/constants.dart';
4 | export 'core/dialogs.dart';
5 | export 'core/sorting.dart';
6 | export 'core/state.dart';
7 | export 'core/webhooks.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr/core/api.dart:
--------------------------------------------------------------------------------
1 | export 'api/api.dart';
2 | export 'api/data.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr/core/api/data.dart:
--------------------------------------------------------------------------------
1 | export 'data/album.dart';
2 | export 'data/catalogue.dart';
3 | export 'data/history.dart';
4 | export 'data/metadata.dart';
5 | export 'data/missing.dart';
6 | export 'data/monitor_status.dart';
7 | export 'data/qualityprofile.dart';
8 | export 'data/release.dart';
9 | export 'data/rootfolder.dart';
10 | export 'data/search.dart';
11 | export 'data/track.dart';
12 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr/core/api/data/metadata.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/core.dart';
2 |
3 | part 'metadata.g.dart';
4 |
5 | @HiveType(typeId: 10, adapterName: 'LidarrMetadataProfileAdapter')
6 | class LidarrMetadataProfile {
7 | @HiveField(0)
8 | int? id;
9 | @HiveField(1)
10 | String? name;
11 |
12 | LidarrMetadataProfile({
13 | required this.id,
14 | required this.name,
15 | });
16 | }
17 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr/core/api/data/qualityprofile.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/core.dart';
2 |
3 | part 'qualityprofile.g.dart';
4 |
5 | @HiveType(typeId: 9, adapterName: 'LidarrQualityProfileAdapter')
6 | class LidarrQualityProfile {
7 | @HiveField(0)
8 | int? id;
9 | @HiveField(1)
10 | String? name;
11 |
12 | LidarrQualityProfile({
13 | required this.id,
14 | required this.name,
15 | });
16 | }
17 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr/core/sorting.dart:
--------------------------------------------------------------------------------
1 | export 'sorting/catalogue.dart';
2 | export 'sorting/releases.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/lidarr/routes.dart:
--------------------------------------------------------------------------------
1 | export 'routes/add_details.dart';
2 | export 'routes/add_search.dart';
3 | export 'routes/catalogue.dart';
4 | export 'routes/details_album.dart';
5 | export 'routes/details_artist.dart';
6 | export 'routes/edit_artist.dart';
7 | export 'routes/history.dart';
8 | export 'routes/lidarr.dart';
9 | export 'routes/missing.dart';
10 | export 'routes/search_results.dart';
11 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/nzbget.dart:
--------------------------------------------------------------------------------
1 | export 'nzbget/core.dart';
2 | export 'nzbget/routes.dart';
3 | export 'nzbget/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/nzbget/core.dart:
--------------------------------------------------------------------------------
1 | export 'core/api.dart';
2 | export 'core/dialogs.dart';
3 | export 'core/state.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/nzbget/core/api.dart:
--------------------------------------------------------------------------------
1 | export 'api/api.dart';
2 | export 'api/data.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/nzbget/core/api/data.dart:
--------------------------------------------------------------------------------
1 | export 'data/category.dart';
2 | export 'data/history.dart';
3 | export 'data/log.dart';
4 | export 'data/priority.dart';
5 | export 'data/queue.dart';
6 | export 'data/sort.dart';
7 | export 'data/statistics.dart';
8 | export 'data/status.dart';
9 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/nzbget/core/api/data/category.dart:
--------------------------------------------------------------------------------
1 | class NZBGetCategoryData {
2 | String name;
3 |
4 | NZBGetCategoryData({
5 | required this.name,
6 | });
7 | }
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/nzbget/routes.dart:
--------------------------------------------------------------------------------
1 | export 'routes/history.dart';
2 | export 'routes/nzbget.dart';
3 | export 'routes/queue.dart';
4 | export 'routes/statistics.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/nzbget/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/app_bar_stats.dart';
2 | export 'widgets/history_hide_button.dart';
3 | export 'widgets/history_search_bar.dart';
4 | export 'widgets/history_tile.dart';
5 | export 'widgets/log_tile.dart';
6 | export 'widgets/navigation_bar.dart';
7 | export 'widgets/queue_fab.dart';
8 | export 'widgets/queue_tile.dart';
9 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr.dart:
--------------------------------------------------------------------------------
1 | export '../api/radarr/radarr.dart';
2 | export '../api/radarr/commands.dart';
3 | export '../api/radarr/models.dart';
4 | export '../api/radarr/types.dart';
5 | export '../api/radarr/utilities.dart';
6 | export 'radarr/core.dart';
7 | export 'radarr/routes.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/core.dart:
--------------------------------------------------------------------------------
1 | export 'package:lunasea/database/tables/radarr.dart';
2 | export 'core/api_helper.dart';
3 | export 'core/bottom_modal_sheets.dart';
4 | export 'core/dialogs.dart';
5 | export 'core/extensions.dart';
6 | export 'core/state.dart';
7 | export 'core/types.dart';
8 | export 'core/webhooks.dart';
9 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/core/extensions/radarr_quality_profile.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/core.dart';
2 | import 'package:lunasea/modules/radarr.dart';
3 |
4 | extension RadarrQualityProfileExtension on RadarrQualityProfile {
5 | String? get lunaName {
6 | if (this.name != null && this.name!.isNotEmpty) return this.name;
7 | return LunaUI.TEXT_EMDASH;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/core/types.dart:
--------------------------------------------------------------------------------
1 | export 'types/filter_movies.dart';
2 | export 'types/filter_releases.dart';
3 | export 'types/settings_global.dart';
4 | export 'types/settings_movie.dart';
5 | export 'types/sorting_movies.dart';
6 | export 'types/sorting_releases.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/add_movie.dart:
--------------------------------------------------------------------------------
1 | export 'add_movie/route.dart';
2 | export 'add_movie/state.dart';
3 | export 'add_movie/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/add_movie/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/discovery_results_tile.dart';
2 | export 'widgets/navigation_bar.dart';
3 | export 'widgets/page_discover.dart';
4 | export 'widgets/page_search.dart';
5 | export 'widgets/search_results_tile.dart';
6 | export 'widgets/search_search_bar.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/add_movie_details.dart:
--------------------------------------------------------------------------------
1 | export 'add_movie_details/route.dart';
2 | export 'add_movie_details/state.dart';
3 | export 'add_movie_details/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/add_movie_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/bottom_action_bar.dart';
2 | export 'widgets/tile_minimum_availability.dart';
3 | export 'widgets/tile_monitored.dart';
4 | export 'widgets/tile_quality_profile.dart';
5 | export 'widgets/tile_root_folder.dart';
6 | export 'widgets/tile_tags.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/catalogue.dart:
--------------------------------------------------------------------------------
1 | export 'catalogue/route.dart';
2 | export 'catalogue/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/catalogue/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/movie_tile.dart';
2 | export 'widgets/search_bar.dart';
3 | export 'widgets/search_bar_filter_button.dart';
4 | export 'widgets/search_bar_sort_button.dart';
5 | export 'widgets/search_bar_view_button.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/edit_movie.dart:
--------------------------------------------------------------------------------
1 | export 'edit_movie/route.dart';
2 | export 'edit_movie/state.dart';
3 | export 'edit_movie/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/edit_movie/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/bottom_action_bar.dart';
2 | export 'widgets/tile_monitored.dart';
3 | export 'widgets/tile_path.dart';
4 | export 'widgets/tile_quality_profile.dart';
5 | export 'widgets/tile_radarr_availability.dart';
6 | export 'widgets/tile_tags.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/history.dart:
--------------------------------------------------------------------------------
1 | export 'history/route.dart';
2 | export 'history/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/history/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/history_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/manual_import.dart:
--------------------------------------------------------------------------------
1 | export 'manual_import/route.dart';
2 | export 'manual_import/state.dart';
3 | export 'manual_import/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/manual_import/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_path_bar.dart';
2 | export 'widgets/bottom_action_bar.dart';
3 | export 'widgets/directory_tile.dart';
4 | export 'widgets/parent_directory_tile.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/manual_import_details.dart:
--------------------------------------------------------------------------------
1 | export 'manual_import_details/route.dart';
2 | export 'manual_import_details/state.dart';
3 | export 'manual_import_details/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/manual_import_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_configure_movies.dart';
2 | export 'widgets/bottom_action_bar.dart';
3 | export 'widgets/import_tile.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/missing.dart:
--------------------------------------------------------------------------------
1 | export 'missing/route.dart';
2 | export 'missing/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/missing/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/missing_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/more.dart:
--------------------------------------------------------------------------------
1 | export 'more/route.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/movie_details.dart:
--------------------------------------------------------------------------------
1 | export 'movie_details/route.dart';
2 | export 'movie_details/state.dart';
3 | export 'movie_details/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/queue.dart:
--------------------------------------------------------------------------------
1 | export 'queue/route.dart';
2 | export 'queue/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/queue/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/queue_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/radarr.dart:
--------------------------------------------------------------------------------
1 | export 'radarr/route.dart';
2 | export 'radarr/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/radarr/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_add_movie_action.dart';
2 | export 'widgets/appbar_global_settings_action.dart';
3 | export 'widgets/navigation_bar.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/releases.dart:
--------------------------------------------------------------------------------
1 | export 'releases/route.dart';
2 | export 'releases/state.dart';
3 | export 'releases/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/releases/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/release_tile.dart';
2 | export 'widgets/search_bar.dart';
3 | export 'widgets/search_bar_filter_button.dart';
4 | export 'widgets/search_bar_sort_button.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/system_status.dart:
--------------------------------------------------------------------------------
1 | export 'system_status/pages.dart';
2 | export 'system_status/route.dart';
3 | export 'system_status/state.dart';
4 | export 'system_status/widgets.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/system_status/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/page_about.dart';
2 | export 'pages/page_disk_space.dart';
3 | export 'pages/page_health_check.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/system_status/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/disk_space_tile.dart';
2 | export 'widgets/health_tile.dart';
3 | export 'widgets/navigation_bar.dart';
4 | export 'widgets/root_folder_tile.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/tags.dart:
--------------------------------------------------------------------------------
1 | export 'tags/route.dart';
2 | export 'tags/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/tags/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_action_add_tag.dart';
2 | export 'widgets/tag_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/upcoming.dart:
--------------------------------------------------------------------------------
1 | export 'upcoming/route.dart';
2 | export 'upcoming/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/radarr/routes/upcoming/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/upcoming_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd.dart:
--------------------------------------------------------------------------------
1 | export 'sabnzbd/core.dart';
2 | export 'sabnzbd/routes.dart';
3 | export 'sabnzbd/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd/core.dart:
--------------------------------------------------------------------------------
1 | export 'core/api.dart';
2 | export 'core/dialogs.dart';
3 | export 'core/state.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd/core/api.dart:
--------------------------------------------------------------------------------
1 | export 'api/api.dart';
2 | export 'api/data.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd/core/api/data.dart:
--------------------------------------------------------------------------------
1 | export 'data/category.dart';
2 | export 'data/history.dart';
3 | export 'data/queue.dart';
4 | export 'data/statistics.dart';
5 | export 'data/statistics_server.dart';
6 | export 'data/status.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd/core/api/data/category.dart:
--------------------------------------------------------------------------------
1 | class SABnzbdCategoryData {
2 | String? category;
3 |
4 | SABnzbdCategoryData({
5 | required this.category,
6 | });
7 | }
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd/core/api/data/statistics_server.dart:
--------------------------------------------------------------------------------
1 | class SABnzbdServerStatisticsData {
2 | String name;
3 | int? dailyUsage;
4 | int? weeklyUsage;
5 | int? monthlyUsage;
6 | int? totalUsage;
7 |
8 | SABnzbdServerStatisticsData({
9 | required this.name,
10 | required this.dailyUsage,
11 | required this.weeklyUsage,
12 | required this.monthlyUsage,
13 | required this.totalUsage,
14 | });
15 | }
16 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd/routes.dart:
--------------------------------------------------------------------------------
1 | export 'routes/history.dart';
2 | export 'routes/history_stages.dart';
3 | export 'routes/queue.dart';
4 | export 'routes/sabnzbd.dart';
5 | export 'routes/statistics.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sabnzbd/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/app_bar_stats.dart';
2 | export 'widgets/history_hide_button.dart';
3 | export 'widgets/history_search_bar.dart';
4 | export 'widgets/history_tile.dart';
5 | export 'widgets/navigation_bar.dart';
6 | export 'widgets/queue_fab.dart';
7 | export 'widgets/queue_tile.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search.dart:
--------------------------------------------------------------------------------
1 | export 'search/core.dart';
2 | export 'search/routes.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/core.dart:
--------------------------------------------------------------------------------
1 | export 'package:lunasea/database/tables/search.dart';
2 | export 'core/api.dart';
3 | export 'core/dialogs.dart';
4 | export 'core/models.dart';
5 | export 'core/state.dart';
6 | export 'core/types.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/core/models.dart:
--------------------------------------------------------------------------------
1 | export 'models/category.dart';
2 | export 'models/result.dart';
3 | export 'models/subcategory.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/core/models/subcategory.dart:
--------------------------------------------------------------------------------
1 | class NewznabSubcategoryData {
2 | int id;
3 | String? name;
4 |
5 | NewznabSubcategoryData({
6 | required this.id,
7 | required this.name,
8 | });
9 |
10 | @override
11 | String toString() => {
12 | 'id': id,
13 | 'name': name,
14 | }.toString();
15 | }
16 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/core/types.dart:
--------------------------------------------------------------------------------
1 | export 'types/download_type.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes.dart:
--------------------------------------------------------------------------------
1 | export 'routes/categories.dart';
2 | export 'routes/indexers.dart';
3 | export 'routes/results.dart';
4 | export 'routes/search.dart';
5 | export 'routes/subcategories.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/categories.dart:
--------------------------------------------------------------------------------
1 | export 'categories/route.dart';
2 | export 'categories/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/categories/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/category_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/indexers.dart:
--------------------------------------------------------------------------------
1 | export 'indexers/route.dart';
2 | export 'indexers/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/indexers/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/indexer_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/results.dart:
--------------------------------------------------------------------------------
1 | export 'results/route.dart';
2 | export 'results/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/results/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/result_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/search.dart:
--------------------------------------------------------------------------------
1 | export 'search/route.dart';
2 | export 'search/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/search/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/search_bar.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/subcategories.dart:
--------------------------------------------------------------------------------
1 | export 'subcategories/route.dart';
2 | export 'subcategories/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/search/routes/subcategories/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/all_subcategories_tile.dart';
2 | export 'widgets/subcategory_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings.dart:
--------------------------------------------------------------------------------
1 | export 'settings/core.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/core.dart:
--------------------------------------------------------------------------------
1 | export 'core/banners.dart';
2 | export 'core/dialogs.dart';
3 | export 'core/pages.dart';
4 | export 'core/state.dart';
5 | export 'core/types.dart';
6 | export 'core/utilities.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/core/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/headers.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/core/state.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/core.dart';
2 |
3 | class SettingsState extends LunaModuleState {
4 | @override
5 | void reset() {}
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/core/types.dart:
--------------------------------------------------------------------------------
1 | export 'types/header.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/core/utilities.dart:
--------------------------------------------------------------------------------
1 | export 'utilities/headers.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_dashboard/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/calendar_settings.dart';
2 | export 'pages/default_pages.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_external_modules/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/add_module.dart';
2 | export 'pages/edit_module.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_lidarr/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/connection_details.dart';
2 | export 'pages/default_pages.dart';
3 | export 'pages/headers.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_nzbget/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/connection_details.dart';
2 | export 'pages/default_pages.dart';
3 | export 'pages/headers.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_radarr/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/connection_details.dart';
2 | export 'pages/default_options.dart';
3 | export 'pages/default_pages.dart';
4 | export 'pages/headers.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_search/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/add_indexer.dart';
2 | export 'pages/add_indexer_headers.dart';
3 | export 'pages/edit_indexer.dart';
4 | export 'pages/edit_indexer_headers.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_sonarr/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/connection_details.dart';
2 | export 'pages/default_options.dart';
3 | export 'pages/default_pages.dart';
4 | export 'pages/headers.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/configuration_tautulli/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/connection_details.dart';
2 | export 'pages/default_pages.dart';
3 | export 'pages/headers.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/system/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/backup_tile.dart';
2 | export 'widgets/restore_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/system_logs/pages.dart:
--------------------------------------------------------------------------------
1 | export 'pages/log_details.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/settings/routes/system_logs/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/log_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr.dart:
--------------------------------------------------------------------------------
1 | export '../api/sonarr/sonarr.dart';
2 | export '../api/sonarr/controllers.dart';
3 | export '../api/sonarr/models.dart';
4 | export '../api/sonarr/types.dart';
5 | export '../api/sonarr/utilities.dart';
6 | export 'sonarr/core.dart';
7 | export 'sonarr/routes.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/core.dart:
--------------------------------------------------------------------------------
1 | export 'package:lunasea/database/tables/sonarr.dart';
2 | export 'core/api_controller.dart';
3 | export 'core/dialogs.dart';
4 | export 'core/extensions.dart';
5 | export 'core/state.dart';
6 | export 'core/types.dart';
7 | export 'core/webhooks.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/core/types.dart:
--------------------------------------------------------------------------------
1 | export 'types/filter_releases.dart';
2 | export 'types/filter_series.dart';
3 | export 'types/monitor_status.dart';
4 | export 'types/settings_episode_multi.dart';
5 | export 'types/settings_episode.dart';
6 | export 'types/settings_global.dart';
7 | export 'types/settings_season.dart';
8 | export 'types/settings_series.dart';
9 | export 'types/sorting_releases.dart';
10 | export 'types/sorting_series.dart';
11 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/add_series.dart:
--------------------------------------------------------------------------------
1 | export 'add_series/route.dart';
2 | export 'add_series/state.dart';
3 | export 'add_series/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/add_series/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar.dart';
2 | export 'widgets/page_search.dart';
3 | export 'widgets/search_results_tile.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/add_series_details.dart:
--------------------------------------------------------------------------------
1 | export 'add_series_details/route.dart';
2 | export 'add_series_details/state.dart';
3 | export 'add_series_details/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/add_series_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/bottom_action_bar.dart';
2 | export 'widgets/tile_language_profile.dart';
3 | export 'widgets/tile_monitor.dart';
4 | export 'widgets/tile_quality_profile.dart';
5 | export 'widgets/tile_root_folder.dart';
6 | export 'widgets/tile_series_type.dart';
7 | export 'widgets/tile_tags.dart';
8 | export 'widgets/tile_use_season_folders.dart';
9 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/catalogue.dart:
--------------------------------------------------------------------------------
1 | export 'catalogue/route.dart';
2 | export 'catalogue/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/catalogue/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/search_bar.dart';
2 | export 'widgets/search_bar_filter_button.dart';
3 | export 'widgets/search_bar_sort_button.dart';
4 | export 'widgets/search_bar_view_button.dart';
5 | export 'widgets/series_tile.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/edit_series.dart:
--------------------------------------------------------------------------------
1 | export 'edit_series/route.dart';
2 | export 'edit_series/state.dart';
3 | export 'edit_series/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/edit_series/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/bottom_action_bar.dart';
2 | export 'widgets/tile_language_profile.dart';
3 | export 'widgets/tile_monitored.dart';
4 | export 'widgets/tile_quality_profile.dart';
5 | export 'widgets/tile_series_path.dart';
6 | export 'widgets/tile_series_type.dart';
7 | export 'widgets/tile_tags.dart';
8 | export 'widgets/tile_use_season_folders.dart';
9 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/history.dart:
--------------------------------------------------------------------------------
1 | export 'history/route.dart';
2 | export 'history/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/history/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/history_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/missing.dart:
--------------------------------------------------------------------------------
1 | export 'missing/route.dart';
2 | export 'missing/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/missing/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/missing_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/more.dart:
--------------------------------------------------------------------------------
1 | export 'more/route.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/queue.dart:
--------------------------------------------------------------------------------
1 | export 'queue/route.dart';
2 | export 'queue/state.dart';
3 | export 'queue/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/queue/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/queue_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/releases.dart:
--------------------------------------------------------------------------------
1 | export 'releases/route.dart';
2 | export 'releases/state.dart';
3 | export 'releases/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/releases/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/release_tile.dart';
2 | export 'widgets/search_bar.dart';
3 | export 'widgets/search_bar_filter_button.dart';
4 | export 'widgets/search_bar_sort_button.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/season_details.dart:
--------------------------------------------------------------------------------
1 | export 'season_details/route.dart';
2 | export 'season_details/sheets.dart';
3 | export 'season_details/state.dart';
4 | export 'season_details/widgets.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/season_details/sheets.dart:
--------------------------------------------------------------------------------
1 | export 'sheets/episode_details.dart';
2 | export 'sheets/media_info.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/season_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/episode_tile.dart';
2 | export 'widgets/navigation_bar.dart';
3 | export 'widgets/page_episodes.dart';
4 | export 'widgets/page_history.dart';
5 | export 'widgets/season_header.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/series_details.dart:
--------------------------------------------------------------------------------
1 | export 'series_details/route.dart';
2 | export 'series_details/state.dart';
3 | export 'series_details/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/series_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_settings_action.dart';
2 | export 'widgets/navigation_bar.dart';
3 | export 'widgets/overview_series_description_tile.dart';
4 | export 'widgets/overview_series_information_block.dart.dart';
5 | export 'widgets/page_history.dart';
6 | export 'widgets/page_overview.dart';
7 | export 'widgets/page_seasons.dart';
8 | export 'widgets/season_all_tile.dart';
9 | export 'widgets/season_tile.dart';
10 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/sonarr.dart:
--------------------------------------------------------------------------------
1 | export 'sonarr/route.dart';
2 | export 'sonarr/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/sonarr/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_add_series_action.dart';
2 | export 'widgets/appbar_global_settings_action.dart';
3 | export 'widgets/navigation_bar.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/tags.dart:
--------------------------------------------------------------------------------
1 | export 'tags/route.dart';
2 | export 'tags/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/tags/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_action_add_tag.dart';
2 | export 'widgets/tag_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/upcoming.dart:
--------------------------------------------------------------------------------
1 | export 'upcoming/route.dart';
2 | export 'upcoming/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/sonarr/routes/upcoming/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/upcoming_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli.dart:
--------------------------------------------------------------------------------
1 | export '../api/tautulli/tautulli.dart';
2 | export '../api/tautulli/commands.dart';
3 | export '../api/tautulli/models.dart';
4 | export '../api/tautulli/types.dart';
5 | export '../api/tautulli/utilities.dart';
6 | export 'tautulli/core.dart';
7 | export 'tautulli/routes.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/core.dart:
--------------------------------------------------------------------------------
1 | export 'package:lunasea/database/tables/tautulli.dart';
2 | export 'core/api_helper.dart';
3 | export 'core/dialogs.dart';
4 | export 'core/extensions.dart';
5 | export 'core/graphs.dart';
6 | export 'core/state.dart';
7 | export 'core/types.dart';
8 | export 'core/webhooks.dart';
9 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/core/extensions.dart:
--------------------------------------------------------------------------------
1 | export 'extensions/tautulli_activity.dart';
2 | export 'extensions/tautulli_history_record.dart';
3 | export 'extensions/tautulli_session.dart';
4 | export 'extensions/tautulli_table_library.dart';
5 | export 'extensions/tautulli_transcode_decision.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/core/graphs.dart:
--------------------------------------------------------------------------------
1 | export 'graphs/bar_graph.dart';
2 | export 'graphs/graph.dart';
3 | export 'graphs/line_graph.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/core/types.dart:
--------------------------------------------------------------------------------
1 | export 'types/media_details_switcher.dart';
2 | export 'types/settings_global.dart';
3 | export 'types/statistics_time_range.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/activity.dart:
--------------------------------------------------------------------------------
1 | export 'activity/route.dart';
2 | export 'activity/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/activity/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/activity_status.dart';
2 | export 'widgets/activity_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/activity_details.dart:
--------------------------------------------------------------------------------
1 | export 'activity_details/route.dart';
2 | export 'activity_details/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/activity_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_metadata_action.dart';
2 | export 'widgets/appbar_user_action.dart';
3 | export 'widgets/block_metadata.dart';
4 | export 'widgets/block_player.dart';
5 | export 'widgets/block_stream.dart';
6 | export 'widgets/bottom_action_bar.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/check_for_updates.dart:
--------------------------------------------------------------------------------
1 | export 'check_for_updates/route.dart';
2 | export 'check_for_updates/state.dart';
3 | export 'check_for_updates/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/check_for_updates/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/pms_tile.dart';
2 | export 'widgets/tautulli_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/graphs.dart:
--------------------------------------------------------------------------------
1 | export 'graphs/route.dart';
2 | export 'graphs/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/graphs/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/navigation_bar.dart';
2 | export 'widgets/type_button.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/graphs_play_by_period.dart:
--------------------------------------------------------------------------------
1 | export 'graphs_play_by_period/route.dart';
2 | export 'graphs_play_by_period/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/graphs_play_by_period/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/daily_play_count_graph.dart';
2 | export 'widgets/play_count_by_day_of_week_graph.dart';
3 | export 'widgets/play_count_by_top_platforms_graph.dart';
4 | export 'widgets/play_count_by_top_users_graph.dart';
5 | export 'widgets/plays_by_month_graph.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/graphs_stream_information.dart:
--------------------------------------------------------------------------------
1 | export 'graphs_stream_information/route.dart';
2 | export 'graphs_stream_information/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/graphs_stream_information/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/daily_stream_type_breakdown_graph.dart';
2 | export 'widgets/play_count_by_platform_stream_type_graph.dart';
3 | export 'widgets/play_count_by_source_resolution_graph.dart';
4 | export 'widgets/play_count_by_stream_resolution_graph.dart';
5 | export 'widgets/play_count_by_user_stream_type_graph.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/history.dart:
--------------------------------------------------------------------------------
1 | export 'history/route.dart';
2 | export 'history/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/history/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/history_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/history_details.dart:
--------------------------------------------------------------------------------
1 | export 'history_details/route.dart';
2 | export 'history_details/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/history_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/information.dart';
2 | export 'widgets/metadata.dart';
3 | export 'widgets/user.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/ipaddress_details.dart:
--------------------------------------------------------------------------------
1 | export 'ipaddress_details/route.dart';
2 | export 'ipaddress_details/state.dart';
3 | export 'ipaddress_details/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/ipaddress_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/geolocation_tile.dart';
2 | export 'widgets/whois_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/libraries.dart:
--------------------------------------------------------------------------------
1 | export 'libraries/route.dart';
2 | export 'libraries/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/libraries/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/library_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/libraries_details.dart:
--------------------------------------------------------------------------------
1 | export 'libraries_details/route.dart';
2 | export 'libraries_details/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/libraries_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/information.dart';
2 | export 'widgets/information_details.dart';
3 | export 'widgets/information_global_stats.dart';
4 | export 'widgets/navigation_bar.dart';
5 | export 'widgets/user_stats.dart';
6 | export 'widgets/user_stats_tile.dart';
7 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs.dart:
--------------------------------------------------------------------------------
1 | export 'logs/route.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_logins.dart:
--------------------------------------------------------------------------------
1 | export 'logs_logins/route.dart';
2 | export 'logs_logins/state.dart';
3 | export 'logs_logins/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_logins/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/log_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_newsletters.dart:
--------------------------------------------------------------------------------
1 | export 'logs_newsletters/route.dart';
2 | export 'logs_newsletters/state.dart';
3 | export 'logs_newsletters/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_newsletters/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/log_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_notifications.dart:
--------------------------------------------------------------------------------
1 | export 'logs_notifications/route.dart';
2 | export 'logs_notifications/state.dart';
3 | export 'logs_notifications/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_notifications/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/log_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_plex_media_scanner.dart:
--------------------------------------------------------------------------------
1 | export 'logs_plex_media_scanner/route.dart';
2 | export 'logs_plex_media_scanner/state.dart';
3 | export 'logs_plex_media_scanner/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_plex_media_scanner/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/log_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_plex_media_server.dart:
--------------------------------------------------------------------------------
1 | export 'logs_plex_media_server/route.dart';
2 | export 'logs_plex_media_server/state.dart';
3 | export 'logs_plex_media_server/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_plex_media_server/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/log_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_tautulli.dart:
--------------------------------------------------------------------------------
1 | export 'logs_tautulli/route.dart';
2 | export 'logs_tautulli/state.dart';
3 | export 'logs_tautulli/widgets.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/logs_tautulli/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/log_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/media_details.dart:
--------------------------------------------------------------------------------
1 | export 'media_details/route.dart';
2 | export 'media_details/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/media_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/history.dart';
2 | export 'widgets/metadata.dart';
3 | export 'widgets/metadata_header.dart';
4 | export 'widgets/metadata_metadata.dart';
5 | export 'widgets/metadata_summary.dart';
6 | export 'widgets/navigation_bar.dart';
7 | export 'widgets/open_plex_button.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/more.dart:
--------------------------------------------------------------------------------
1 | export 'more/route.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/recently_added.dart:
--------------------------------------------------------------------------------
1 | export 'recently_added/route.dart';
2 | export 'recently_added/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/recently_added/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/content_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/search.dart:
--------------------------------------------------------------------------------
1 | export 'search/route.dart';
2 | export 'search/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/search/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/search_appbar.dart';
2 | export 'widgets/search_result_tile.dart';
3 | export 'widgets/search_results.dart';
4 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/statistics.dart:
--------------------------------------------------------------------------------
1 | export 'statistics/route.dart';
2 | export 'statistics/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/statistics/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/media_tile.dart';
2 | export 'widgets/platform_tile.dart';
3 | export 'widgets/recently_watched_tile.dart';
4 | export 'widgets/stream_tile.dart';
5 | export 'widgets/time_range_button.dart';
6 | export 'widgets/type_button.dart';
7 | export 'widgets/user_tile.dart';
8 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/synced_items.dart:
--------------------------------------------------------------------------------
1 | export 'synced_items/route.dart';
2 | export 'synced_items/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/synced_items/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/synced_item_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/tautulli.dart:
--------------------------------------------------------------------------------
1 | export 'tautulli/route.dart';
2 | export 'tautulli/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/tautulli/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/appbar_global_settings_action.dart';
2 | export 'widgets/navigation_bar.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/users.dart:
--------------------------------------------------------------------------------
1 | export 'users/route.dart';
2 | export 'users/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/users/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/user_tile.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/users_details.dart:
--------------------------------------------------------------------------------
1 | export 'users_details/route.dart';
2 | export 'users_details/widgets.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/modules/tautulli/routes/users_details/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'widgets/history.dart';
2 | export 'widgets/ip_addresses.dart';
3 | export 'widgets/navigation_bar.dart';
4 | export 'widgets/profile.dart';
5 | export 'widgets/synced_items.dart';
6 |
--------------------------------------------------------------------------------
/lunasea/lib/system/bios.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import 'package:lunasea/system/quick_actions/quick_actions.dart';
4 |
5 | class LunaOS {
6 | Future boot(BuildContext context) async {
7 | if (LunaQuickActions.isSupported) LunaQuickActions().initialize();
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/system/cache/image/platform/image_cache_html.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../image_cache.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaImageCache getImageCache() =>
6 | throw UnsupportedError('LunaImageCache unsupported');
7 |
--------------------------------------------------------------------------------
/lunasea/lib/system/cache/image/platform/image_cache_stub.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../image_cache.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaImageCache getImageCache() =>
6 | throw UnsupportedError('LunaImageCache unsupported');
7 |
--------------------------------------------------------------------------------
/lunasea/lib/system/filesystem/file.dart:
--------------------------------------------------------------------------------
1 | class LunaFile {
2 | List data;
3 | String name;
4 | String? path;
5 |
6 | LunaFile({
7 | required this.data,
8 | required this.name,
9 | this.path,
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/lunasea/lib/system/filesystem/platform/filesystem_stub.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../filesystem.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaFileSystem getFileSystem() =>
6 | throw UnsupportedError('LunaFileSystem unsupported');
7 |
--------------------------------------------------------------------------------
/lunasea/lib/system/network/network.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import 'platform/network_stub.dart'
3 | if (dart.library.io) 'platform/network_io.dart'
4 | if (dart.library.html) 'platform/network_html.dart';
5 |
6 | abstract class LunaNetwork {
7 | static bool get isSupported => isPlatformSupported();
8 | factory LunaNetwork() => getNetwork();
9 |
10 | void initialize();
11 | }
12 |
--------------------------------------------------------------------------------
/lunasea/lib/system/network/platform/network_html.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../network.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaNetwork getNetwork() => throw UnsupportedError('LunaNetwork unsupported');
6 |
--------------------------------------------------------------------------------
/lunasea/lib/system/network/platform/network_stub.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../network.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaNetwork getNetwork() => throw UnsupportedError('LunaNetwork unsupported');
6 |
--------------------------------------------------------------------------------
/lunasea/lib/system/quick_actions/platform/quick_actions_html.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../quick_actions.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaQuickActions getQuickActions() =>
6 | throw UnsupportedError('LunaQuickActions unsupported');
7 |
--------------------------------------------------------------------------------
/lunasea/lib/system/quick_actions/platform/quick_actions_stub.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../quick_actions.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaQuickActions getQuickActions() =>
6 | throw UnsupportedError('LunaQuickActions unsupported');
7 |
--------------------------------------------------------------------------------
/lunasea/lib/system/webhooks.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/core.dart';
2 |
3 | abstract class LunaWebhooks {
4 | Future handle(Map data);
5 |
6 | static String buildUserTokenURL(String token, LunaModule module) {
7 | return 'https://notify.lunasea.app/v1/${module.key}/user/$token';
8 | }
9 |
10 | static String buildDeviceTokenURL(String token, LunaModule module) {
11 | return 'https://notify.lunasea.app/v1/${module.key}/device/$token';
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/system/window_manager/platform/window_manager_html.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../window_manager.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaWindowManager getWindowManager() =>
6 | throw UnsupportedError('LunaWindowManager unsupported');
7 |
--------------------------------------------------------------------------------
/lunasea/lib/system/window_manager/platform/window_manager_stub.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../window_manager.dart';
3 |
4 | bool isPlatformSupported() => false;
5 | LunaWindowManager getWindowManager() =>
6 | throw UnsupportedError('LunaWindowManager unsupported');
7 |
--------------------------------------------------------------------------------
/lunasea/lib/types/enum/readable.dart:
--------------------------------------------------------------------------------
1 | mixin EnumReadable on Enum {
2 | String get readable;
3 | }
4 |
--------------------------------------------------------------------------------
/lunasea/lib/types/enum/serializable.dart:
--------------------------------------------------------------------------------
1 | mixin EnumSerializable on Enum {
2 | String get value;
3 |
4 | String toJson() => this.value;
5 |
6 | @override
7 | String toString() => this.value;
8 | }
9 |
--------------------------------------------------------------------------------
/lunasea/lib/types/exception.dart:
--------------------------------------------------------------------------------
1 | import 'package:lunasea/types/log_type.dart';
2 |
3 | abstract class LunaException implements Exception {
4 | LunaLogType get type;
5 | }
6 |
7 | mixin WarningExceptionMixin implements LunaException {
8 | @override
9 | LunaLogType get type => LunaLogType.WARNING;
10 | }
11 |
12 | mixin ErrorExceptionMixin implements LunaException {
13 | @override
14 | LunaLogType get type => LunaLogType.ERROR;
15 | }
16 |
--------------------------------------------------------------------------------
/lunasea/lib/types/loading_state.dart:
--------------------------------------------------------------------------------
1 | enum LunaLoadingState {
2 | ACTIVE,
3 | INACTIVE,
4 | ERROR,
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/lib/utils/parser.dart:
--------------------------------------------------------------------------------
1 | abstract class LunaParser {
2 | static DateTime? dateTimeFromString(String? date) {
3 | return DateTime.tryParse(date ?? '');
4 | }
5 |
6 | static String? dateTimeToISO8601(DateTime? date) {
7 | return date?.toIso8601String();
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/utils/uuid.dart:
--------------------------------------------------------------------------------
1 | import 'package:uuid/uuid.dart';
2 |
3 | class LunaUUID {
4 | static const Uuid _generator = Uuid();
5 |
6 | String generate() {
7 | return _generator.v4();
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/utils/validator.dart:
--------------------------------------------------------------------------------
1 | class LunaValidator {
2 | bool email(String email) {
3 | const regex = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)";
4 | return RegExp(regex).hasMatch(email);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/assets.dart:
--------------------------------------------------------------------------------
1 | class LunaAssets {
2 | LunaAssets._();
3 |
4 | static const String brandingFull = 'assets/images/branding_full.png';
5 | static const String brandingLogo = 'assets/images/branding_logo.png';
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/block.dart:
--------------------------------------------------------------------------------
1 | export 'block/block.dart';
2 | export 'block/grid_block.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/bottom_bar.dart:
--------------------------------------------------------------------------------
1 | export 'bottom_bar/action_bar_card.dart';
2 | export 'bottom_bar/action_bar.dart';
3 | export 'bottom_bar/badge.dart';
4 | export 'bottom_bar/navigation_bar.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/containers.dart:
--------------------------------------------------------------------------------
1 | export 'containers/button_container.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/controllers.dart:
--------------------------------------------------------------------------------
1 | export 'controllers/page_controller.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/deprecated.dart:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/divider.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:lunasea/core.dart';
3 |
4 | class LunaDivider extends Divider {
5 | LunaDivider({
6 | Key? key,
7 | }) : super(
8 | key: key,
9 | thickness: 1.0,
10 | color: LunaColours.accent.dimmed(),
11 | indent: LunaUI.DEFAULT_MARGIN_SIZE * 5,
12 | endIndent: LunaUI.DEFAULT_MARGIN_SIZE * 5,
13 | );
14 | }
15 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/drawer.dart:
--------------------------------------------------------------------------------
1 | export 'drawer/drawer.dart';
2 | export 'drawer/drawer_header.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/floating_action_button.dart:
--------------------------------------------------------------------------------
1 | export 'floating_action_button/floating_action_button_animated.dart';
2 | export 'floating_action_button/floating_action_button.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/grid_view.dart:
--------------------------------------------------------------------------------
1 | export 'grid_view/grid_view_builder.dart';
2 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/icons.dart:
--------------------------------------------------------------------------------
1 | export 'icons/icon_button.dart';
2 | export 'icons/icon.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/images.dart:
--------------------------------------------------------------------------------
1 | export 'images/network_image.dart';
2 | export 'images/network_image_provider/network_image_provider.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/images/network_image_provider/platform/network_image_provider_stub.dart:
--------------------------------------------------------------------------------
1 | // ignore: always_use_package_imports
2 | import '../network_image_provider.dart';
3 |
4 | LunaNetworkImageProvider getNetworkImageProvider({
5 | required String url,
6 | Map? headers,
7 | }) {
8 | throw UnsupportedError('LunaNetworkImageProvider unsupported');
9 | }
10 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/list_tile.dart:
--------------------------------------------------------------------------------
1 | export 'list_tile/expandable_list_tile.dart';
2 | export 'list_tile/list_tile.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/list_view.dart:
--------------------------------------------------------------------------------
1 | export 'list_view/custom_scroll_view.dart';
2 | export 'list_view/list_view.dart';
3 | export 'list_view/list_view_builder.dart';
4 | export 'list_view/list_view_modal.dart';
5 | export 'list_view/list_view_modal_builder.dart';
6 | export 'list_view/paged_list_view.dart';
7 | export 'list_view/reorderable_list_view.dart';
8 | export 'list_view/reorderable_list_view_builder.dart';
9 | export 'list_view/reorderable_list_view_dragger.dart';
10 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/mixins.dart:
--------------------------------------------------------------------------------
1 | export 'mixins/load_callback.dart';
2 | export 'mixins/scroll_controller.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/mixins/load_callback.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | /// Simple mixin to force a definition of [loadCallback], a post-frame callback added to the [initState] override.
4 | mixin LunaLoadCallbackMixin on State {
5 | @mustCallSuper
6 | @override
7 | void initState() {
8 | super.initState();
9 | WidgetsBinding.instance.addPostFrameCallback((_) => loadCallback());
10 | }
11 |
12 | Future loadCallback();
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/mixins/scroll_controller.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | mixin LunaScrollControllerMixin on State {
4 | final ScrollController scrollController = ScrollController();
5 |
6 | @mustCallSuper
7 | @override
8 | void dispose() {
9 | scrollController.dispose();
10 | super.dispose();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/snackbar.dart:
--------------------------------------------------------------------------------
1 | export 'snackbar/snackbar.dart';
2 | export 'snackbar/snackbar_error.dart';
3 | export 'snackbar/snackbar_info.dart';
4 | export 'snackbar/snackbar_success.dart';
5 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/table.dart:
--------------------------------------------------------------------------------
1 | export 'table/table_card.dart';
2 | export 'table/table_content.dart';
3 |
--------------------------------------------------------------------------------
/lunasea/lib/widgets/ui/text_span.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:lunasea/core.dart';
3 |
4 | class LunaTextSpan extends TextSpan {
5 | const LunaTextSpan.extended({
6 | required String? text,
7 | }) : super(
8 | text: text,
9 | style: const TextStyle(
10 | height: LunaBlock.SUBTITLE_HEIGHT / LunaUI.FONT_SIZE_H3,
11 | ),
12 | );
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 |
--------------------------------------------------------------------------------
/lunasea/linux/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void fl_register_plugins(FlPluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/lunasea/linux/main.cc:
--------------------------------------------------------------------------------
1 | #include "my_application.h"
2 |
3 | int main(int argc, char** argv) {
4 | g_autoptr(MyApplication) app = my_application_new();
5 | return g_application_run(G_APPLICATION(app), argc, argv);
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/linux/my_application.h:
--------------------------------------------------------------------------------
1 | #ifndef FLUTTER_MY_APPLICATION_H_
2 | #define FLUTTER_MY_APPLICATION_H_
3 |
4 | #include
5 |
6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
7 | GtkApplication)
8 |
9 | /**
10 | * my_application_new:
11 | *
12 | * Creates a new Flutter-based application.
13 | *
14 | * Returns: a new #MyApplication.
15 | */
16 | MyApplication* my_application_new();
17 |
18 | #endif // FLUTTER_MY_APPLICATION_H_
19 |
--------------------------------------------------------------------------------
/lunasea/localization/dashboard/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/dashboard/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/de.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Beginne Suche nach…",
3 | "lidarr.StartSearchForMissingAlbums": "Beginne Suche nach fehlenden Alben"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/el.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchForMissingAlbums": "Ξεκίνα αναζήτηση για άλμπουμ που λείπουν",
3 | "lidarr.StartSearchFor": "Ξεκίνα αναζήτηση…"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Start Search For…",
3 | "lidarr.StartSearchForMissingAlbums": "Start search for missing albums"
4 | }
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/es.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Iniciar búsqueda de…",
3 | "lidarr.StartSearchForMissingAlbums": "Iniciar la búsqueda de álbumes que faltan"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/fr.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Démarrer la recherche de…",
3 | "lidarr.StartSearchForMissingAlbums": "Lancez la recherche des albums manquants"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/hu.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Indítsa el a keresést…",
3 | "lidarr.StartSearchForMissingAlbums": "Keresse ki a hiányzó albumokat"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/it.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Inizia la ricerca di…",
3 | "lidarr.StartSearchForMissingAlbums": "Inizia la ricerca degli album mancanti"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/nb-NO.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/nl.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/pt.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/ro.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Începe Căutarea Pentru…",
3 | "lidarr.StartSearchForMissingAlbums": "Începe căutarea pentru albume lipsă"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/ru.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/sk.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Začnite hľadať…",
3 | "lidarr.StartSearchForMissingAlbums": "Začnite hľadať chýbajúce albumy"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/sv.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/tr.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "Aramaya Başla…",
3 | "lidarr.StartSearchForMissingAlbums": "Eksik albümleri aramaya başla"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lidarr/zh-Hans.json:
--------------------------------------------------------------------------------
1 | {
2 | "lidarr.StartSearchFor": "开始搜索…",
3 | "lidarr.StartSearchForMissingAlbums": "开始搜索丢失的专辑"
4 | }
5 |
--------------------------------------------------------------------------------
/lunasea/localization/lunasea/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lunasea/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lunasea/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lunasea/sk.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/lunasea/vi.json:
--------------------------------------------------------------------------------
1 | {
2 | "lunasea.Add": "Thêm",
3 | "lunasea.ChangeProfiles": "Thay đổi thông tin",
4 | "lunasea.Changelog": "Bản ghi các thay đổi",
5 | "lunasea.CopiedContentToTheClipboard": "Nội dung đã được sao chép vào Clipboard"
6 | }
7 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/de.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/el.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/en.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/es.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/fr.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/hu.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/it.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/nb-NO.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/nl.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/pt.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/ru.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/sk.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/sv.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/tr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/nzbget/zh-Hans.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/nb-NO.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/nl.json:
--------------------------------------------------------------------------------
1 | {
2 | "overseerr.NoRequests": "Geen Verzoeken",
3 | "overseerr.OneRequest": "1 Verzoek",
4 | "overseerr.Requests": "Verzoeken",
5 | "overseerr.NoRequestsFound": "Geen Verzoeken Gevonden",
6 | "overseerr.NoUsersFound": "Geen Gebruikers Gevonden",
7 | "overseerr.UnknownUser": "Onbekende Gebruiker",
8 | "overseerr.Users": "Gebruikers",
9 | "overseerr.SomeRequests": "{} Verzoeken"
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/pt.json:
--------------------------------------------------------------------------------
1 | {
2 | "overseerr.NoRequestsFound": "Nenhum Pedido Encontrado",
3 | "overseerr.Requests": "Pedidos",
4 | "overseerr.NoUsersFound": "Nenhum Usuário Encontrado",
5 | "overseerr.NoRequests": "Sem Pedidos",
6 | "overseerr.OneRequest": "1 Pedido",
7 | "overseerr.SomeRequests": "{} Pedidos",
8 | "overseerr.UnknownUser": "Usuário Desconhecido",
9 | "overseerr.Users": "Usuários"
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/ru.json:
--------------------------------------------------------------------------------
1 | {
2 | "overseerr.Users": "Пользователи",
3 | "overseerr.UnknownUser": "Неизвестный пользователь",
4 | "overseerr.NoUsersFound": "Пользователи не найдены",
5 | "overseerr.NoRequestsFound": "Запросы не найдены",
6 | "overseerr.Requests": "Запросы",
7 | "overseerr.NoRequests": "Нет запросов",
8 | "overseerr.OneRequest": "1 запрос",
9 | "overseerr.SomeRequests": "{} запросов"
10 | }
11 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/sv.json:
--------------------------------------------------------------------------------
1 | {
2 | "overseerr.Users": "Användare",
3 | "overseerr.UnknownUser": "Okänd användare",
4 | "overseerr.NoUsersFound": "Inga användare hittades"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/overseerr/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/radarr/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/radarr/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/radarr/sk.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/radarr/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/it.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/nl.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/pt.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/ru.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/sv.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/sabnzbd/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/search/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/search/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/search/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/search/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/settings/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/settings/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/settings/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/settings/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sonarr/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sonarr/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sonarr/it.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/sonarr/nb-NO.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/sonarr/sk.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/sonarr/sv.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/sonarr/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/tautulli/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/tautulli/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/tautulli/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/tautulli/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/ca.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/de.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Magic Paket gesendet",
3 | "wake_on_lan.MagicPacketSentMessage": "Ihre Maschine sollte nun aufwachen!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Senden von Magic Paket fehlgeschlagen"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/el.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Αποστολή Magic Packet",
3 | "wake_on_lan.MagicPacketSentMessage": "Το μηχάνημα πρέπει να εκκινεί!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Αποτυχία αποστολής Magic Packet"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Magic Packet Sent",
3 | "wake_on_lan.MagicPacketSentMessage": "Your machine should be waking up!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Failed to Send Magic Packet"
5 | }
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/es.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Paquete mágico enviado",
3 | "wake_on_lan.MagicPacketSentMessage": "¡Su máquina debería estar despertando!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Error al enviar Magic Packet"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/fr.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Paquet magique envoyé",
3 | "wake_on_lan.MagicPacketSentMessage": "Votre machine devrait se réveiller !",
4 | "wake_on_lan.MagicPacketFailedToSend": "Échec de l'envoi du paquet magique"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/hr.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/hu.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Magic Packet elküldve",
3 | "wake_on_lan.MagicPacketSentMessage": "A gépednek fel kellene ébrednie!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Nem sikerült Magic Packet-et küldeni"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/it.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Pacchetto magico inviato",
3 | "wake_on_lan.MagicPacketSentMessage": "La tua macchina dovrebbe risvegliarsi!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Invio del pacchetto magico fallito"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/nb-NO.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/nl.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/pt.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Pacote mágico enviado",
3 | "wake_on_lan.MagicPacketSentMessage": "Sua máquina deve estar acordando!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Falha ao enviar pacote mágico"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/ro.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/ru.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/sk.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Odoslaný magický balík",
3 | "wake_on_lan.MagicPacketFailedToSend": "Nepodarilo sa odoslať magický balík",
4 | "wake_on_lan.MagicPacketSentMessage": "Váš počítač by sa mal prebúdzať!"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/sv.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/tr.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "Sihirli Paket Gönderildi",
3 | "wake_on_lan.MagicPacketSentMessage": "Makineniz uyanıyor olmalı!",
4 | "wake_on_lan.MagicPacketFailedToSend": "Sihirli Paket Gönderilemedi"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/vi.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/lunasea/localization/wake_on_lan/zh-Hans.json:
--------------------------------------------------------------------------------
1 | {
2 | "wake_on_lan.MagicPacketSent": "已发送幻包",
3 | "wake_on_lan.MagicPacketSentMessage": "您的机器正在唤醒!",
4 | "wake_on_lan.MagicPacketFailedToSend": "幻包发送失败"
5 | }
6 |
--------------------------------------------------------------------------------
/lunasea/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/xcuserdata/
7 |
--------------------------------------------------------------------------------
/lunasea/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lunasea/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lunasea/macos/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 | gem "cocoapods"
5 | gem "abbrev"
6 | gem "logger"
7 | gem "mutex_m"
8 | gem "csv"
9 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | @main
5 | class AppDelegate: FlutterAppDelegate {
6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7 | return true
8 | }
9 |
10 | override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
11 | return true
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_128.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_128@2x.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_16.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_16@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_16@2x.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_256.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_256@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_256@2x.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_32.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_32@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_32@2x.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_512.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_512@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/macos/Runner/Assets.xcassets/AppIcon.appiconset/icon_512@2x.png
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Configs/AppInfo.xcconfig:
--------------------------------------------------------------------------------
1 | PRODUCT_NAME = LunaSea
2 | PRODUCT_BUNDLE_IDENTIFIER = app.lunasea.lunasea
3 | PRODUCT_COPYRIGHT = Copyright © 2023 Jagandeep Brar. All rights reserved.
4 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 | #include "AppInfo.xcconfig"
4 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 | #include "AppInfo.xcconfig"
4 |
--------------------------------------------------------------------------------
/lunasea/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController.init()
7 | let windowFrame = self.frame
8 | self.contentViewController = flutterViewController
9 | self.setFrame(windowFrame, display: true)
10 |
11 | RegisterGeneratedPlugins(registry: flutterViewController)
12 |
13 | super.awakeFromNib()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/lunasea/macos/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | app_identifier("app.lunasea.lunasea")
2 | apple_id(ENV["APPLE_ID"])
3 | itc_team_id(ENV["APPLE_ITC_TEAM_ID"])
4 | team_id(ENV["APPLE_TEAM_ID"])
5 |
--------------------------------------------------------------------------------
/lunasea/macos/fastlane/Matchfile:
--------------------------------------------------------------------------------
1 | git_url("git@github.com:JagandeepBrar/fastlane-match-storage.git")
2 | storage_mode("git")
3 | app_identifier("app.lunasea.lunasea")
4 | platform("macos")
5 |
--------------------------------------------------------------------------------
/lunasea/snap/gui/lunasea.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=LunaSea
3 | Comment=Self-hosted software controller built using Flutter
4 | Exec=lunasea
5 | Icon=${SNAP}/meta/gui/lunasea.png
6 | Terminal=false
7 | Type=Application
8 | Categories=Utilities;Entertainment;
9 |
--------------------------------------------------------------------------------
/lunasea/snap/gui/lunasea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/snap/gui/lunasea.png
--------------------------------------------------------------------------------
/lunasea/web/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/android-icon-144x144.png
--------------------------------------------------------------------------------
/lunasea/web/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/android-icon-192x192.png
--------------------------------------------------------------------------------
/lunasea/web/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/android-icon-36x36.png
--------------------------------------------------------------------------------
/lunasea/web/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/android-icon-48x48.png
--------------------------------------------------------------------------------
/lunasea/web/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/android-icon-72x72.png
--------------------------------------------------------------------------------
/lunasea/web/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/android-icon-96x96.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-114x114.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-120x120.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-144x144.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-152x152.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-180x180.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-57x57.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-60x60.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-72x72.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-76x76.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/lunasea/web/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/apple-icon.png
--------------------------------------------------------------------------------
/lunasea/web/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/lunasea/web/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/favicon-16x16.png
--------------------------------------------------------------------------------
/lunasea/web/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/favicon-32x32.png
--------------------------------------------------------------------------------
/lunasea/web/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/favicon-96x96.png
--------------------------------------------------------------------------------
/lunasea/web/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/favicon.ico
--------------------------------------------------------------------------------
/lunasea/web/firebase-messaging-sw.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/firebase-messaging-sw.js
--------------------------------------------------------------------------------
/lunasea/web/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/ms-icon-144x144.png
--------------------------------------------------------------------------------
/lunasea/web/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/ms-icon-150x150.png
--------------------------------------------------------------------------------
/lunasea/web/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/ms-icon-310x310.png
--------------------------------------------------------------------------------
/lunasea/web/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/ms-icon-70x70.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/dark-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/dark-1x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/dark-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/dark-2x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/dark-3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/dark-3x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/dark-4x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/dark-4x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/light-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/light-1x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/light-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/light-2x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/light-3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/light-3x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/img/light-4x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/web/splash/img/light-4x.png
--------------------------------------------------------------------------------
/lunasea/web/splash/splash.js:
--------------------------------------------------------------------------------
1 | function removeSplashFromWeb() {
2 | const elem = document.getElementById("splash");
3 | if (elem) {
4 | elem.remove();
5 | }
6 | document.body.style.background = "transparent";
7 | }
8 |
--------------------------------------------------------------------------------
/lunasea/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral/
2 |
3 | # Visual Studio user-specific files.
4 | *.suo
5 | *.user
6 | *.userosscache
7 | *.sln.docstates
8 |
9 | # Visual Studio build-related files.
10 | x64/
11 | x86/
12 |
13 | # Visual Studio cache files
14 | # files ending in .cache can be ignored
15 | *.[Cc]ache
16 | # but keep track of directories ending in .cache
17 | !*.[Cc]ache/
18 |
--------------------------------------------------------------------------------
/lunasea/windows/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void RegisterPlugins(flutter::PluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/lunasea/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jagandeepbrar/lunasea/6ee0bf9a6f4ffc735b0c0000d62c795c822023ff/lunasea/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------