adguard-home-manager/lib/models/server_status.dart

77 lines
2.8 KiB
Dart
Raw Normal View History

2023-04-12 23:26:50 +02:00
import 'package:adguard_home_manager/functions/time_server_disabled.dart';
2022-10-22 03:16:08 +02:00
import 'package:adguard_home_manager/models/clients.dart';
2022-09-27 12:43:25 +02:00
import 'package:adguard_home_manager/models/dns_statistics.dart';
import 'package:adguard_home_manager/models/filtering_status.dart';
2022-09-27 12:43:25 +02:00
class ServerStatus {
2022-09-27 14:29:36 +02:00
int loadStatus;
ServerStatusData? data;
ServerStatus({
required this.loadStatus,
this.data
});
}
class ServerStatusData {
2022-09-27 12:43:25 +02:00
final DnsStatistics stats;
2022-10-22 03:16:08 +02:00
final List<Client> clients;
final FilteringStatus filteringStatus;
2023-04-12 23:26:50 +02:00
int timeGeneralDisabled;
DateTime? disabledUntil;
2022-09-27 22:49:58 +02:00
bool generalEnabled;
bool filteringEnabled;
bool safeSearchEnabled;
bool safeBrowsingEnabled;
bool parentalControlEnabled;
final String serverVersion;
2023-04-15 02:02:40 +02:00
bool? safeSeachBing;
bool? safeSearchGoogle;
bool? safeSearchDuckduckgo;
bool? safeSearchPixabay;
bool? safeSearchYandex;
bool? safeSearchYoutube;
2022-09-27 12:43:25 +02:00
2022-09-27 22:49:58 +02:00
ServerStatusData({
2022-09-27 12:43:25 +02:00
required this.stats,
2022-10-22 03:16:08 +02:00
required this.clients,
required this.filteringStatus,
2023-04-12 23:26:50 +02:00
required this.timeGeneralDisabled,
this.disabledUntil,
2022-09-27 12:43:25 +02:00
required this.generalEnabled,
required this.filteringEnabled,
required this.safeSearchEnabled,
required this.safeBrowsingEnabled,
required this.parentalControlEnabled,
2023-04-14 01:40:40 +02:00
required this.serverVersion,
required this.safeSeachBing,
required this.safeSearchGoogle,
required this.safeSearchDuckduckgo,
required this.safeSearchPixabay,
required this.safeSearchYandex,
required this.safeSearchYoutube
2022-09-27 12:43:25 +02:00
});
2022-09-27 14:29:36 +02:00
factory ServerStatusData.fromJson(Map<String, dynamic> json) => ServerStatusData(
2022-09-27 12:43:25 +02:00
stats: DnsStatistics.fromJson(json['stats']),
2022-10-22 03:16:08 +02:00
clients: json["clients"] != null ? List<Client>.from(json["clients"].map((x) => Client.fromJson(x))) : [],
generalEnabled: json['status']['protection_enabled'],
timeGeneralDisabled: json['status']['protection_disabled_duration'] ?? 0,
2023-04-15 02:02:40 +02:00
disabledUntil: json['status']['protection_disabled_duration'] != null
? json['status']['protection_disabled_duration'] > 0
? generateTimeDeadline(json['status']['protection_disabled_duration'])
: null
: null,
filteringStatus: FilteringStatus.fromJson(json['filtering']),
filteringEnabled: json['filtering']['enabled'],
2023-04-14 01:40:40 +02:00
safeSearchEnabled: json['safeSearch']['enabled'],
2022-09-27 12:43:25 +02:00
safeBrowsingEnabled: json['safeBrowsingEnabled']['enabled'],
parentalControlEnabled: json['parentalControlEnabled']['enabled'],
2023-04-14 01:40:40 +02:00
serverVersion: json['status']['version'],
safeSeachBing: json['safeSearch']['bing'],
safeSearchDuckduckgo: json['safeSearch']['duckduckgo'],
safeSearchGoogle: json['safeSearch']['google'],
safeSearchPixabay: json['safeSearch']['pixabay'],
safeSearchYandex: json['safeSearch']['yandex'],
safeSearchYoutube: json['safeSearch']['youtube'],
2022-09-27 12:43:25 +02:00
);
}