mirror of
https://github.com/jagandeepbrar/lunasea.git
synced 2026-08-31 04:32:32 +00:00
* [Packages] Updated packages * [Sonarr/Series] Switched to bottom navigation, removed sliver app bar * [Sonarr/Series] Removed bottom padding from overview * [README] Added AltStore, Removed Feedback, Updated Android APK Build (#213) * [Snackbar] Fixed cases where iOS swipe-back would lock UI * [Android/Back Button] Back button now shows drawer on primary routes instead of closing app * [Wake on LAN] Added configuration to hive * [Settings/Modules] Added Wake on LAN section * [Wake on LAN] Added entry to drawer * [Lidarr/Details] Removed sliver app bar, removed fanart, switched to bottom navigation bar * [Radarr/Details] Removed sliver app bar, removed fanart, switched to bottom navigation bar * [Wake on LAN] Show toast on action * [Wake on LAN] Created RawDatagramSocket binding * [WoL] Full support for Wake on LAN functionality * [Semantics] Cleanup * [TestFlight] v2.3.0 (230002) * [Settings/Modules] Implemented settings UI for custom headers * [Custom Headers] Finished UI implementation * [Custom Headers] Integrated into API calls * [TestFlight] v2.3.0 (230003) * [Images] Attach custom headers to all network image requests * [Everything] Many Changes (Read Notes) (#218) - Unified the structure of each module (core, routes, widgets at the root of every module) - Cleaned Most Remaining Dialogs (SABnzbd and NZBGet remain) - Reduced font-size across dialogs - Unified padding across all dialogs (that have been cleaned so far) - Changelog is now a routed page, not a dialog prompt - SABnzbd: Fixed bug where setting priority to "stop" would cause a fatal crash * [Networking] Added RegExp Validation for IPv4 & MAC Addresses * [Networking] Improved network address classes * Finished Dialog Rework * [TestFlight] v2.3.0 (230004) * [README] Updated README for v2.3.0
329 lines
10 KiB
Dart
329 lines
10 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:hive/hive.dart';
|
|
import 'package:lunasea/core.dart';
|
|
|
|
part 'profile.g.dart';
|
|
|
|
//Next HiveField ID: 31
|
|
|
|
@HiveType(typeId: 0, adapterName: 'ProfileHiveObjectAdapter')
|
|
class ProfileHiveObject extends HiveObject {
|
|
factory ProfileHiveObject.empty() {
|
|
return ProfileHiveObject(
|
|
//Lidarr
|
|
lidarrEnabled: false,
|
|
lidarrHost: '',
|
|
lidarrKey: '',
|
|
lidarrStrictTLS: true,
|
|
lidarrHeaders: {},
|
|
//Radarr
|
|
radarrEnabled: false,
|
|
radarrHost: '',
|
|
radarrKey: '',
|
|
radarrStrictTLS: true,
|
|
radarrHeaders: {},
|
|
//Sonarr
|
|
sonarrEnabled: false,
|
|
sonarrHost: '',
|
|
sonarrKey: '',
|
|
sonarrStrictTLS: true,
|
|
sonarrVersion3: false,
|
|
sonarrHeaders: {},
|
|
//SABnzbd
|
|
sabnzbdEnabled: false,
|
|
sabnzbdHost: '',
|
|
sabnzbdKey: '',
|
|
sabnzbdStrictTLS: true,
|
|
sabnzbdHeaders: {},
|
|
//NZBGet
|
|
nzbgetEnabled: false,
|
|
nzbgetHost: '',
|
|
nzbgetUser: '',
|
|
nzbgetPass: '',
|
|
nzbgetStrictTLS: true,
|
|
nzbgetBasicAuth: false,
|
|
nzbgetHeaders: {},
|
|
//Wake on LAN
|
|
wakeOnLANEnabled: false,
|
|
wakeOnLANBroadcastAddress: '',
|
|
wakeOnLANMACAddress: '',
|
|
);
|
|
}
|
|
|
|
factory ProfileHiveObject.from(ProfileHiveObject obj) {
|
|
return ProfileHiveObject(
|
|
//Lidarr
|
|
lidarrEnabled: obj.lidarrEnabled,
|
|
lidarrHost: obj.lidarrHost,
|
|
lidarrKey: obj.lidarrKey,
|
|
lidarrStrictTLS: obj.lidarrStrictTLS,
|
|
lidarrHeaders: obj.lidarrHeaders,
|
|
//Radarr
|
|
radarrEnabled: obj.radarrEnabled,
|
|
radarrHost: obj.radarrHost,
|
|
radarrKey: obj.radarrKey,
|
|
radarrStrictTLS: obj.radarrStrictTLS,
|
|
radarrHeaders: obj.radarrHeaders,
|
|
//Sonarr
|
|
sonarrEnabled: obj.sonarrEnabled,
|
|
sonarrHost: obj.sonarrHost,
|
|
sonarrKey: obj.sonarrKey,
|
|
sonarrStrictTLS: obj.sonarrStrictTLS,
|
|
sonarrVersion3: obj.sonarrVersion3,
|
|
sonarrHeaders: obj.sonarrHeaders,
|
|
//SABnzbd
|
|
sabnzbdEnabled: obj.sabnzbdEnabled,
|
|
sabnzbdHost: obj.sabnzbdHost,
|
|
sabnzbdKey: obj.sabnzbdKey,
|
|
sabnzbdStrictTLS: obj.sabnzbdStrictTLS,
|
|
sabnzbdHeaders: obj.sabnzbdHeaders,
|
|
//NZBGet
|
|
nzbgetEnabled: obj.nzbgetEnabled,
|
|
nzbgetHost: obj.nzbgetHost,
|
|
nzbgetUser: obj.nzbgetUser,
|
|
nzbgetPass: obj.nzbgetPass,
|
|
nzbgetStrictTLS: obj.nzbgetStrictTLS,
|
|
nzbgetBasicAuth: obj.nzbgetBasicAuth,
|
|
nzbgetHeaders: obj.nzbgetHeaders,
|
|
//Wake On LAN
|
|
wakeOnLANEnabled: obj.wakeOnLANEnabled,
|
|
wakeOnLANBroadcastAddress: obj.wakeOnLANBroadcastAddress,
|
|
wakeOnLANMACAddress: obj.wakeOnLANMACAddress,
|
|
);
|
|
}
|
|
|
|
ProfileHiveObject({
|
|
//Lidarr
|
|
@required this.lidarrEnabled,
|
|
@required this.lidarrHost,
|
|
@required this.lidarrKey,
|
|
@required this.lidarrStrictTLS,
|
|
@required this.lidarrHeaders,
|
|
//Radarr
|
|
@required this.radarrEnabled,
|
|
@required this.radarrHost,
|
|
@required this.radarrKey,
|
|
@required this.radarrStrictTLS,
|
|
@required this.radarrHeaders,
|
|
//Sonarr
|
|
@required this.sonarrEnabled,
|
|
@required this.sonarrHost,
|
|
@required this.sonarrKey,
|
|
@required this.sonarrStrictTLS,
|
|
@required this.sonarrVersion3,
|
|
@required this.sonarrHeaders,
|
|
//SABnzbd
|
|
@required this.sabnzbdEnabled,
|
|
@required this.sabnzbdHost,
|
|
@required this.sabnzbdKey,
|
|
@required this.sabnzbdStrictTLS,
|
|
@required this.sabnzbdHeaders,
|
|
//NZBGet
|
|
@required this.nzbgetEnabled,
|
|
@required this.nzbgetHost,
|
|
@required this.nzbgetUser,
|
|
@required this.nzbgetPass,
|
|
@required this.nzbgetStrictTLS,
|
|
@required this.nzbgetBasicAuth,
|
|
@required this.nzbgetHeaders,
|
|
//Wake On LAN
|
|
@required this.wakeOnLANEnabled,
|
|
@required this.wakeOnLANBroadcastAddress,
|
|
@required this.wakeOnLANMACAddress,
|
|
});
|
|
|
|
@override
|
|
String toString() {
|
|
return toMap().toString();
|
|
}
|
|
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
"key": key,
|
|
//Sonarr
|
|
"sonarrEnabled": sonarrEnabled,
|
|
"sonarrHost": sonarrHost,
|
|
"sonarrKey": sonarrKey,
|
|
"sonarrStrictTLS": sonarrStrictTLS,
|
|
"sonarrVersion3": sonarrVersion3,
|
|
"sonarrHeaders": sonarrHeaders,
|
|
//Radarr
|
|
"radarrEnabled": radarrEnabled,
|
|
"radarrHost": radarrHost,
|
|
"radarrKey": radarrKey,
|
|
"radarrStrictTLS": radarrStrictTLS,
|
|
"radarrHeaders": radarrHeaders,
|
|
//Lidarr
|
|
"lidarrEnabled": lidarrEnabled,
|
|
"lidarrHost": lidarrHost,
|
|
"lidarrKey": lidarrKey,
|
|
"lidarrStrictTLS": lidarrStrictTLS,
|
|
"lidarrHeaders": lidarrHeaders,
|
|
//SABnzbd
|
|
"sabnzbdEnabled": sabnzbdEnabled,
|
|
"sabnzbdHost": sabnzbdHost,
|
|
"sabnzbdKey": sabnzbdKey,
|
|
"sabnzbdStrictTLS": sabnzbdStrictTLS,
|
|
"sabnzbdHeaders": sabnzbdHeaders,
|
|
//NZBGet
|
|
"nzbgetEnabled": nzbgetEnabled,
|
|
"nzbgetHost": nzbgetHost,
|
|
"nzbgetUser": nzbgetUser,
|
|
"nzbgetPass": nzbgetPass,
|
|
"nzbgetStrictTLS": nzbgetStrictTLS,
|
|
"nzbgetBasicAuth": nzbgetBasicAuth,
|
|
"nzbgetHeaders": nzbgetHeaders,
|
|
//Wake On LAN
|
|
"wakeOnLANEnabled": wakeOnLANEnabled,
|
|
"wakeOnLANBroadcastAddress": wakeOnLANBroadcastAddress,
|
|
"wakeOnLANMACAddress": wakeOnLANMACAddress,
|
|
};
|
|
}
|
|
|
|
//Lidarr
|
|
@HiveField(0)
|
|
bool lidarrEnabled;
|
|
@HiveField(1)
|
|
String lidarrHost;
|
|
@HiveField(2)
|
|
String lidarrKey;
|
|
@HiveField(18)
|
|
bool lidarrStrictTLS;
|
|
@HiveField(26)
|
|
Map lidarrHeaders;
|
|
|
|
Map<String, dynamic> getLidarr() => {
|
|
'enabled': lidarrEnabled ?? false,
|
|
'host': lidarrHost ?? '',
|
|
'key': lidarrKey ?? '',
|
|
'strict_tls': lidarrStrictTLS ?? true,
|
|
'headers': lidarrHeaders ?? {},
|
|
};
|
|
|
|
//Radarr
|
|
@HiveField(3)
|
|
bool radarrEnabled;
|
|
@HiveField(4)
|
|
String radarrHost;
|
|
@HiveField(5)
|
|
String radarrKey;
|
|
@HiveField(17)
|
|
bool radarrStrictTLS;
|
|
@HiveField(27)
|
|
Map radarrHeaders;
|
|
|
|
Map<String, dynamic> getRadarr() => {
|
|
'enabled': radarrEnabled ?? false,
|
|
'host': radarrHost ?? '',
|
|
'key': radarrKey ?? '',
|
|
'strict_tls': radarrStrictTLS ?? true,
|
|
'headers': radarrHeaders ?? {},
|
|
};
|
|
|
|
//Sonarr
|
|
@HiveField(6)
|
|
bool sonarrEnabled;
|
|
@HiveField(7)
|
|
String sonarrHost;
|
|
@HiveField(8)
|
|
String sonarrKey;
|
|
@HiveField(16)
|
|
bool sonarrStrictTLS;
|
|
@HiveField(21)
|
|
bool sonarrVersion3;
|
|
@HiveField(28)
|
|
Map sonarrHeaders;
|
|
|
|
Map<String, dynamic> getSonarr() => {
|
|
'enabled': sonarrEnabled ?? false,
|
|
'host': sonarrHost ?? '',
|
|
'key': sonarrKey ?? '',
|
|
'strict_tls': sonarrStrictTLS ?? true,
|
|
'v3': sonarrVersion3 ?? false,
|
|
'headers': sonarrHeaders ?? {},
|
|
};
|
|
|
|
//SABnzbd
|
|
@HiveField(9)
|
|
bool sabnzbdEnabled;
|
|
@HiveField(10)
|
|
String sabnzbdHost;
|
|
@HiveField(11)
|
|
String sabnzbdKey;
|
|
@HiveField(19)
|
|
bool sabnzbdStrictTLS;
|
|
@HiveField(29)
|
|
Map sabnzbdHeaders;
|
|
|
|
Map<String, dynamic> getSABnzbd() => {
|
|
'enabled': sabnzbdEnabled ?? false,
|
|
'host': sabnzbdHost ?? '',
|
|
'key': sabnzbdKey ?? '',
|
|
'strict_tls': sabnzbdStrictTLS ?? true,
|
|
'headers': sabnzbdHeaders ?? {},
|
|
};
|
|
|
|
//NZBGet
|
|
@HiveField(12)
|
|
bool nzbgetEnabled;
|
|
@HiveField(13)
|
|
String nzbgetHost;
|
|
@HiveField(14)
|
|
String nzbgetUser;
|
|
@HiveField(15)
|
|
String nzbgetPass;
|
|
@HiveField(20)
|
|
bool nzbgetStrictTLS;
|
|
@HiveField(22)
|
|
bool nzbgetBasicAuth;
|
|
@HiveField(30)
|
|
Map nzbgetHeaders;
|
|
|
|
Map<String, dynamic> getNZBGet() => {
|
|
'enabled': nzbgetEnabled ?? false,
|
|
'host': nzbgetHost ?? '',
|
|
'user': nzbgetUser ?? '',
|
|
'pass': nzbgetPass ?? '',
|
|
'strict_tls': nzbgetStrictTLS ?? true,
|
|
'basic_auth': nzbgetBasicAuth ?? false,
|
|
'headers': nzbgetHeaders ?? {},
|
|
};
|
|
|
|
//Wake On LAN
|
|
@HiveField(23)
|
|
bool wakeOnLANEnabled;
|
|
@HiveField(24)
|
|
String wakeOnLANBroadcastAddress;
|
|
@HiveField(25)
|
|
String wakeOnLANMACAddress;
|
|
|
|
Map<String, dynamic> getWakeOnLAN() => {
|
|
'enabled': wakeOnLANEnabled ?? false,
|
|
'broadcastAddress': wakeOnLANBroadcastAddress ?? '',
|
|
'MACAddress': wakeOnLANMACAddress ?? '',
|
|
};
|
|
|
|
List<String> get enabledServices => [
|
|
if(ModuleFlags.AUTOMATION && ModuleFlags.LIDARR && lidarrEnabled) 'lidarr',
|
|
if(ModuleFlags.AUTOMATION && ModuleFlags.RADARR && radarrEnabled) 'radarr',
|
|
if(ModuleFlags.AUTOMATION && ModuleFlags.SONARR && sonarrEnabled) 'sonarr',
|
|
if(ModuleFlags.CLIENTS && ModuleFlags.NZBGET && nzbgetEnabled) 'nzbget',
|
|
if(ModuleFlags.CLIENTS && ModuleFlags.SABNZBD && sabnzbdEnabled) 'sabnzbd',
|
|
];
|
|
|
|
List<String> get enabledAutomationServices => [
|
|
if(ModuleFlags.AUTOMATION && ModuleFlags.LIDARR && lidarrEnabled) 'lidarr',
|
|
if(ModuleFlags.AUTOMATION && ModuleFlags.RADARR && radarrEnabled) 'radarr',
|
|
if(ModuleFlags.AUTOMATION && ModuleFlags.SONARR && sonarrEnabled) 'sonarr',
|
|
];
|
|
|
|
List<String> get enabledClientServices => [
|
|
if(ModuleFlags.CLIENTS && ModuleFlags.NZBGET && nzbgetEnabled) 'nzbget',
|
|
if(ModuleFlags.CLIENTS && ModuleFlags.SABNZBD && sabnzbdEnabled) 'sabnzbd',
|
|
];
|
|
|
|
bool get anyAutomationEnabled => lidarrEnabled || radarrEnabled || sonarrEnabled;
|
|
bool get anyClientsEnabled => nzbgetEnabled || sabnzbdEnabled;
|
|
bool get anythingEnabled => anyAutomationEnabled || anyClientsEnabled;
|
|
}
|