From 5f33769bc1ca03be65e84e409e6d9806c347d9cf Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Fri, 14 Mar 2025 00:41:45 +0100 Subject: [PATCH] added mihon backup support --- .../providers/proto/BackupAnime.pb.dart | 243 +++++++++++++ .../providers/proto/BackupAnime.pbenum.dart | 11 + .../providers/proto/BackupAnime.pbjson.dart | 59 ++++ .../providers/proto/BackupAnime.pbserver.dart | 14 + .../providers/proto/BackupAniyomi.pb.dart | 107 ++++++ .../providers/proto/BackupAniyomi.pbenum.dart | 11 + .../providers/proto/BackupAniyomi.pbjson.dart | 38 +++ .../proto/BackupAniyomi.pbserver.dart | 14 + .../providers/proto/BackupCategory.pb.dart | 96 ++++++ .../proto/BackupCategory.pbenum.dart | 11 + .../proto/BackupCategory.pbjson.dart | 30 ++ .../proto/BackupCategory.pbserver.dart | 14 + .../providers/proto/BackupChapter.pb.dart | 222 ++++++++++++ .../providers/proto/BackupChapter.pbenum.dart | 11 + .../providers/proto/BackupChapter.pbjson.dart | 47 +++ .../proto/BackupChapter.pbserver.dart | 14 + .../providers/proto/BackupEpisode.pb.dart | 236 +++++++++++++ .../providers/proto/BackupEpisode.pbenum.dart | 11 + .../providers/proto/BackupEpisode.pbjson.dart | 49 +++ .../proto/BackupEpisode.pbserver.dart | 14 + .../providers/proto/BackupHistory.pb.dart | 96 ++++++ .../providers/proto/BackupHistory.pbenum.dart | 11 + .../providers/proto/BackupHistory.pbjson.dart | 30 ++ .../proto/BackupHistory.pbserver.dart | 14 + .../providers/proto/BackupManga.pb.dart | 257 ++++++++++++++ .../providers/proto/BackupManga.pbenum.dart | 11 + .../providers/proto/BackupManga.pbjson.dart | 60 ++++ .../providers/proto/BackupManga.pbserver.dart | 14 + .../providers/proto/BackupMihon.pb.dart | 82 +++++ .../providers/proto/BackupMihon.pbenum.dart | 11 + .../providers/proto/BackupMihon.pbjson.dart | 32 ++ .../providers/proto/BackupMihon.pbserver.dart | 14 + .../providers/proto/BackupSource.pb.dart | 82 +++++ .../providers/proto/BackupSource.pbenum.dart | 11 + .../providers/proto/BackupSource.pbjson.dart | 29 ++ .../proto/BackupSource.pbserver.dart | 14 + .../data_and_storage/providers/restore.dart | 322 ++++++++++++++---- .../data_and_storage/providers/restore.g.dart | 154 ++++++++- proto/BackupAnime.proto | 22 ++ proto/BackupAniyomi.proto | 15 + proto/BackupCategory.proto | 7 + proto/BackupChapter.proto | 16 + proto/BackupEpisode.proto | 17 + proto/BackupHistory.proto | 7 + proto/BackupManga.proto | 23 ++ proto/BackupMihon.proto | 11 + proto/BackupSource.proto | 6 + proto/gen_proto.bat | 3 + proto/gen_proto.sh | 4 + pubspec.lock | 16 + pubspec.yaml | 2 + 51 files changed, 2585 insertions(+), 60 deletions(-) create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAnime.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupCategory.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupChapter.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupHistory.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupManga.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupManga.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupManga.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupManga.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupMihon.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbserver.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupSource.pb.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupSource.pbenum.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupSource.pbjson.dart create mode 100644 lib/modules/more/data_and_storage/providers/proto/BackupSource.pbserver.dart create mode 100644 proto/BackupAnime.proto create mode 100644 proto/BackupAniyomi.proto create mode 100644 proto/BackupCategory.proto create mode 100644 proto/BackupChapter.proto create mode 100644 proto/BackupEpisode.proto create mode 100644 proto/BackupHistory.proto create mode 100644 proto/BackupManga.proto create mode 100644 proto/BackupMihon.proto create mode 100644 proto/BackupSource.proto create mode 100644 proto/gen_proto.bat create mode 100644 proto/gen_proto.sh diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pb.dart new file mode 100644 index 00000000..7d20d47e --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pb.dart @@ -0,0 +1,243 @@ +// +// Generated code. Do not modify. +// source: BackupAnime.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +import 'BackupEpisode.pb.dart' as $0; +import 'BackupHistory.pb.dart' as $1; + +class BackupAnime extends $pb.GeneratedMessage { + factory BackupAnime({ + $core.int? source, + $core.String? url, + $core.String? title, + $core.String? artist, + $core.String? author, + $core.String? description, + $core.Iterable<$core.String>? genre, + $core.int? status, + $core.String? thumbnailUrl, + $core.int? dateAdded, + $core.Iterable<$0.BackupEpisode>? episodes, + $core.Iterable<$core.int>? categories, + $core.int? viewerFlags, + $core.Iterable<$1.BackupHistory>? history, + $core.int? lastModifiedAt, + }) { + final $result = create(); + if (source != null) { + $result.source = source; + } + if (url != null) { + $result.url = url; + } + if (title != null) { + $result.title = title; + } + if (artist != null) { + $result.artist = artist; + } + if (author != null) { + $result.author = author; + } + if (description != null) { + $result.description = description; + } + if (genre != null) { + $result.genre.addAll(genre); + } + if (status != null) { + $result.status = status; + } + if (thumbnailUrl != null) { + $result.thumbnailUrl = thumbnailUrl; + } + if (dateAdded != null) { + $result.dateAdded = dateAdded; + } + if (episodes != null) { + $result.episodes.addAll(episodes); + } + if (categories != null) { + $result.categories.addAll(categories); + } + if (viewerFlags != null) { + $result.viewerFlags = viewerFlags; + } + if (history != null) { + $result.history.addAll(history); + } + if (lastModifiedAt != null) { + $result.lastModifiedAt = lastModifiedAt; + } + return $result; + } + BackupAnime._() : super(); + factory BackupAnime.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupAnime.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupAnime', createEmptyInstance: create) + ..a<$core.int>(1, _omitFieldNames ? '' : 'source', $pb.PbFieldType.O3) + ..aOS(2, _omitFieldNames ? '' : 'url') + ..aOS(3, _omitFieldNames ? '' : 'title') + ..aOS(4, _omitFieldNames ? '' : 'artist') + ..aOS(5, _omitFieldNames ? '' : 'author') + ..aOS(6, _omitFieldNames ? '' : 'description') + ..pPS(7, _omitFieldNames ? '' : 'genre') + ..a<$core.int>(8, _omitFieldNames ? '' : 'status', $pb.PbFieldType.O3) + ..aOS(9, _omitFieldNames ? '' : 'thumbnailUrl', protoName: 'thumbnailUrl') + ..a<$core.int>(13, _omitFieldNames ? '' : 'dateAdded', $pb.PbFieldType.O3, protoName: 'dateAdded') + ..pc<$0.BackupEpisode>(16, _omitFieldNames ? '' : 'episodes', $pb.PbFieldType.PM, subBuilder: $0.BackupEpisode.create) + ..p<$core.int>(17, _omitFieldNames ? '' : 'categories', $pb.PbFieldType.K3) + ..a<$core.int>(103, _omitFieldNames ? '' : 'viewerFlags', $pb.PbFieldType.O3) + ..pc<$1.BackupHistory>(104, _omitFieldNames ? '' : 'history', $pb.PbFieldType.PM, subBuilder: $1.BackupHistory.create) + ..a<$core.int>(106, _omitFieldNames ? '' : 'lastModifiedAt', $pb.PbFieldType.O3, protoName: 'lastModifiedAt') + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupAnime clone() => BackupAnime()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupAnime copyWith(void Function(BackupAnime) updates) => super.copyWith((message) => updates(message as BackupAnime)) as BackupAnime; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupAnime create() => BackupAnime._(); + BackupAnime createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupAnime getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupAnime? _defaultInstance; + + @$pb.TagNumber(1) + $core.int get source => $_getIZ(0); + @$pb.TagNumber(1) + set source($core.int v) { $_setSignedInt32(0, v); } + @$pb.TagNumber(1) + $core.bool hasSource() => $_has(0); + @$pb.TagNumber(1) + void clearSource() => clearField(1); + + @$pb.TagNumber(2) + $core.String get url => $_getSZ(1); + @$pb.TagNumber(2) + set url($core.String v) { $_setString(1, v); } + @$pb.TagNumber(2) + $core.bool hasUrl() => $_has(1); + @$pb.TagNumber(2) + void clearUrl() => clearField(2); + + @$pb.TagNumber(3) + $core.String get title => $_getSZ(2); + @$pb.TagNumber(3) + set title($core.String v) { $_setString(2, v); } + @$pb.TagNumber(3) + $core.bool hasTitle() => $_has(2); + @$pb.TagNumber(3) + void clearTitle() => clearField(3); + + @$pb.TagNumber(4) + $core.String get artist => $_getSZ(3); + @$pb.TagNumber(4) + set artist($core.String v) { $_setString(3, v); } + @$pb.TagNumber(4) + $core.bool hasArtist() => $_has(3); + @$pb.TagNumber(4) + void clearArtist() => clearField(4); + + @$pb.TagNumber(5) + $core.String get author => $_getSZ(4); + @$pb.TagNumber(5) + set author($core.String v) { $_setString(4, v); } + @$pb.TagNumber(5) + $core.bool hasAuthor() => $_has(4); + @$pb.TagNumber(5) + void clearAuthor() => clearField(5); + + @$pb.TagNumber(6) + $core.String get description => $_getSZ(5); + @$pb.TagNumber(6) + set description($core.String v) { $_setString(5, v); } + @$pb.TagNumber(6) + $core.bool hasDescription() => $_has(5); + @$pb.TagNumber(6) + void clearDescription() => clearField(6); + + @$pb.TagNumber(7) + $core.List<$core.String> get genre => $_getList(6); + + @$pb.TagNumber(8) + $core.int get status => $_getIZ(7); + @$pb.TagNumber(8) + set status($core.int v) { $_setSignedInt32(7, v); } + @$pb.TagNumber(8) + $core.bool hasStatus() => $_has(7); + @$pb.TagNumber(8) + void clearStatus() => clearField(8); + + @$pb.TagNumber(9) + $core.String get thumbnailUrl => $_getSZ(8); + @$pb.TagNumber(9) + set thumbnailUrl($core.String v) { $_setString(8, v); } + @$pb.TagNumber(9) + $core.bool hasThumbnailUrl() => $_has(8); + @$pb.TagNumber(9) + void clearThumbnailUrl() => clearField(9); + + @$pb.TagNumber(13) + $core.int get dateAdded => $_getIZ(9); + @$pb.TagNumber(13) + set dateAdded($core.int v) { $_setSignedInt32(9, v); } + @$pb.TagNumber(13) + $core.bool hasDateAdded() => $_has(9); + @$pb.TagNumber(13) + void clearDateAdded() => clearField(13); + + @$pb.TagNumber(16) + $core.List<$0.BackupEpisode> get episodes => $_getList(10); + + @$pb.TagNumber(17) + $core.List<$core.int> get categories => $_getList(11); + + @$pb.TagNumber(103) + $core.int get viewerFlags => $_getIZ(12); + @$pb.TagNumber(103) + set viewerFlags($core.int v) { $_setSignedInt32(12, v); } + @$pb.TagNumber(103) + $core.bool hasViewerFlags() => $_has(12); + @$pb.TagNumber(103) + void clearViewerFlags() => clearField(103); + + @$pb.TagNumber(104) + $core.List<$1.BackupHistory> get history => $_getList(13); + + @$pb.TagNumber(106) + $core.int get lastModifiedAt => $_getIZ(14); + @$pb.TagNumber(106) + set lastModifiedAt($core.int v) { $_setSignedInt32(14, v); } + @$pb.TagNumber(106) + $core.bool hasLastModifiedAt() => $_has(14); + @$pb.TagNumber(106) + void clearLastModifiedAt() => clearField(106); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbenum.dart new file mode 100644 index 00000000..39455752 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupAnime.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbjson.dart new file mode 100644 index 00000000..e7fb732b --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbjson.dart @@ -0,0 +1,59 @@ +// +// Generated code. Do not modify. +// source: BackupAnime.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupAnimeDescriptor instead') +const BackupAnime$json = { + '1': 'BackupAnime', + '2': [ + {'1': 'source', '3': 1, '4': 1, '5': 5, '10': 'source'}, + {'1': 'url', '3': 2, '4': 1, '5': 9, '10': 'url'}, + {'1': 'title', '3': 3, '4': 1, '5': 9, '10': 'title'}, + {'1': 'artist', '3': 4, '4': 1, '5': 9, '9': 0, '10': 'artist', '17': true}, + {'1': 'author', '3': 5, '4': 1, '5': 9, '9': 1, '10': 'author', '17': true}, + {'1': 'description', '3': 6, '4': 1, '5': 9, '9': 2, '10': 'description', '17': true}, + {'1': 'genre', '3': 7, '4': 3, '5': 9, '10': 'genre'}, + {'1': 'status', '3': 8, '4': 1, '5': 5, '10': 'status'}, + {'1': 'thumbnailUrl', '3': 9, '4': 1, '5': 9, '9': 3, '10': 'thumbnailUrl', '17': true}, + {'1': 'dateAdded', '3': 13, '4': 1, '5': 5, '10': 'dateAdded'}, + {'1': 'episodes', '3': 16, '4': 3, '5': 11, '6': '.BackupEpisode', '10': 'episodes'}, + {'1': 'categories', '3': 17, '4': 3, '5': 5, '10': 'categories'}, + {'1': 'viewer_flags', '3': 103, '4': 1, '5': 5, '9': 4, '10': 'viewerFlags', '17': true}, + {'1': 'history', '3': 104, '4': 3, '5': 11, '6': '.BackupHistory', '10': 'history'}, + {'1': 'lastModifiedAt', '3': 106, '4': 1, '5': 5, '9': 5, '10': 'lastModifiedAt', '17': true}, + ], + '8': [ + {'1': '_artist'}, + {'1': '_author'}, + {'1': '_description'}, + {'1': '_thumbnailUrl'}, + {'1': '_viewer_flags'}, + {'1': '_lastModifiedAt'}, + ], +}; + +/// Descriptor for `BackupAnime`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupAnimeDescriptor = $convert.base64Decode( + 'CgtCYWNrdXBBbmltZRIWCgZzb3VyY2UYASABKAVSBnNvdXJjZRIQCgN1cmwYAiABKAlSA3VybB' + 'IUCgV0aXRsZRgDIAEoCVIFdGl0bGUSGwoGYXJ0aXN0GAQgASgJSABSBmFydGlzdIgBARIbCgZh' + 'dXRob3IYBSABKAlIAVIGYXV0aG9yiAEBEiUKC2Rlc2NyaXB0aW9uGAYgASgJSAJSC2Rlc2NyaX' + 'B0aW9uiAEBEhQKBWdlbnJlGAcgAygJUgVnZW5yZRIWCgZzdGF0dXMYCCABKAVSBnN0YXR1cxIn' + 'Cgx0aHVtYm5haWxVcmwYCSABKAlIA1IMdGh1bWJuYWlsVXJsiAEBEhwKCWRhdGVBZGRlZBgNIA' + 'EoBVIJZGF0ZUFkZGVkEioKCGVwaXNvZGVzGBAgAygLMg4uQmFja3VwRXBpc29kZVIIZXBpc29k' + 'ZXMSHgoKY2F0ZWdvcmllcxgRIAMoBVIKY2F0ZWdvcmllcxImCgx2aWV3ZXJfZmxhZ3MYZyABKA' + 'VIBFILdmlld2VyRmxhZ3OIAQESKAoHaGlzdG9yeRhoIAMoCzIOLkJhY2t1cEhpc3RvcnlSB2hp' + 'c3RvcnkSKwoObGFzdE1vZGlmaWVkQXQYaiABKAVIBVIObGFzdE1vZGlmaWVkQXSIAQFCCQoHX2' + 'FydGlzdEIJCgdfYXV0aG9yQg4KDF9kZXNjcmlwdGlvbkIPCg1fdGh1bWJuYWlsVXJsQg8KDV92' + 'aWV3ZXJfZmxhZ3NCEQoPX2xhc3RNb2RpZmllZEF0'); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbserver.dart new file mode 100644 index 00000000..37ab6488 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAnime.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupAnime.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupAnime.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pb.dart new file mode 100644 index 00000000..e5ec6af0 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pb.dart @@ -0,0 +1,107 @@ +// +// Generated code. Do not modify. +// source: BackupAniyomi.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +import 'BackupAnime.pb.dart' as $2; +import 'BackupCategory.pb.dart' as $1; +import 'BackupManga.pb.dart' as $0; +import 'BackupSource.pb.dart' as $3; + +class BackupAniyomi extends $pb.GeneratedMessage { + factory BackupAniyomi({ + $core.Iterable<$0.BackupManga>? backupManga, + $core.Iterable<$1.BackupCategory>? backupCategories, + $core.Iterable<$2.BackupAnime>? backupAnime, + $core.Iterable<$1.BackupCategory>? backupAnimeCategories, + $core.Iterable<$3.BackupSource>? backupSources, + $core.Iterable<$3.BackupSource>? backupAnimeSources, + }) { + final $result = create(); + if (backupManga != null) { + $result.backupManga.addAll(backupManga); + } + if (backupCategories != null) { + $result.backupCategories.addAll(backupCategories); + } + if (backupAnime != null) { + $result.backupAnime.addAll(backupAnime); + } + if (backupAnimeCategories != null) { + $result.backupAnimeCategories.addAll(backupAnimeCategories); + } + if (backupSources != null) { + $result.backupSources.addAll(backupSources); + } + if (backupAnimeSources != null) { + $result.backupAnimeSources.addAll(backupAnimeSources); + } + return $result; + } + BackupAniyomi._() : super(); + factory BackupAniyomi.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupAniyomi.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupAniyomi', createEmptyInstance: create) + ..pc<$0.BackupManga>(1, _omitFieldNames ? '' : 'backupManga', $pb.PbFieldType.PM, protoName: 'backupManga', subBuilder: $0.BackupManga.create) + ..pc<$1.BackupCategory>(2, _omitFieldNames ? '' : 'backupCategories', $pb.PbFieldType.PM, protoName: 'backupCategories', subBuilder: $1.BackupCategory.create) + ..pc<$2.BackupAnime>(3, _omitFieldNames ? '' : 'backupAnime', $pb.PbFieldType.PM, protoName: 'backupAnime', subBuilder: $2.BackupAnime.create) + ..pc<$1.BackupCategory>(4, _omitFieldNames ? '' : 'backupAnimeCategories', $pb.PbFieldType.PM, protoName: 'backupAnimeCategories', subBuilder: $1.BackupCategory.create) + ..pc<$3.BackupSource>(101, _omitFieldNames ? '' : 'backupSources', $pb.PbFieldType.PM, protoName: 'backupSources', subBuilder: $3.BackupSource.create) + ..pc<$3.BackupSource>(103, _omitFieldNames ? '' : 'backupAnimeSources', $pb.PbFieldType.PM, protoName: 'backupAnimeSources', subBuilder: $3.BackupSource.create) + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupAniyomi clone() => BackupAniyomi()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupAniyomi copyWith(void Function(BackupAniyomi) updates) => super.copyWith((message) => updates(message as BackupAniyomi)) as BackupAniyomi; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupAniyomi create() => BackupAniyomi._(); + BackupAniyomi createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupAniyomi getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupAniyomi? _defaultInstance; + + @$pb.TagNumber(1) + $core.List<$0.BackupManga> get backupManga => $_getList(0); + + @$pb.TagNumber(2) + $core.List<$1.BackupCategory> get backupCategories => $_getList(1); + + @$pb.TagNumber(3) + $core.List<$2.BackupAnime> get backupAnime => $_getList(2); + + @$pb.TagNumber(4) + $core.List<$1.BackupCategory> get backupAnimeCategories => $_getList(3); + + @$pb.TagNumber(101) + $core.List<$3.BackupSource> get backupSources => $_getList(4); + + @$pb.TagNumber(103) + $core.List<$3.BackupSource> get backupAnimeSources => $_getList(5); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbenum.dart new file mode 100644 index 00000000..8dd9a71d --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupAniyomi.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbjson.dart new file mode 100644 index 00000000..fedeb800 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbjson.dart @@ -0,0 +1,38 @@ +// +// Generated code. Do not modify. +// source: BackupAniyomi.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupAniyomiDescriptor instead') +const BackupAniyomi$json = { + '1': 'BackupAniyomi', + '2': [ + {'1': 'backupManga', '3': 1, '4': 3, '5': 11, '6': '.BackupManga', '10': 'backupManga'}, + {'1': 'backupCategories', '3': 2, '4': 3, '5': 11, '6': '.BackupCategory', '10': 'backupCategories'}, + {'1': 'backupAnime', '3': 3, '4': 3, '5': 11, '6': '.BackupAnime', '10': 'backupAnime'}, + {'1': 'backupAnimeCategories', '3': 4, '4': 3, '5': 11, '6': '.BackupCategory', '10': 'backupAnimeCategories'}, + {'1': 'backupSources', '3': 101, '4': 3, '5': 11, '6': '.BackupSource', '10': 'backupSources'}, + {'1': 'backupAnimeSources', '3': 103, '4': 3, '5': 11, '6': '.BackupSource', '10': 'backupAnimeSources'}, + ], +}; + +/// Descriptor for `BackupAniyomi`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupAniyomiDescriptor = $convert.base64Decode( + 'Cg1CYWNrdXBBbml5b21pEi4KC2JhY2t1cE1hbmdhGAEgAygLMgwuQmFja3VwTWFuZ2FSC2JhY2' + 't1cE1hbmdhEjsKEGJhY2t1cENhdGVnb3JpZXMYAiADKAsyDy5CYWNrdXBDYXRlZ29yeVIQYmFj' + 'a3VwQ2F0ZWdvcmllcxIuCgtiYWNrdXBBbmltZRgDIAMoCzIMLkJhY2t1cEFuaW1lUgtiYWNrdX' + 'BBbmltZRJFChViYWNrdXBBbmltZUNhdGVnb3JpZXMYBCADKAsyDy5CYWNrdXBDYXRlZ29yeVIV' + 'YmFja3VwQW5pbWVDYXRlZ29yaWVzEjMKDWJhY2t1cFNvdXJjZXMYZSADKAsyDS5CYWNrdXBTb3' + 'VyY2VSDWJhY2t1cFNvdXJjZXMSPQoSYmFja3VwQW5pbWVTb3VyY2VzGGcgAygLMg0uQmFja3Vw' + 'U291cmNlUhJiYWNrdXBBbmltZVNvdXJjZXM='); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbserver.dart new file mode 100644 index 00000000..165984db --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupAniyomi.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupAniyomi.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupAniyomi.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pb.dart new file mode 100644 index 00000000..962f7820 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pb.dart @@ -0,0 +1,96 @@ +// +// Generated code. Do not modify. +// source: BackupCategory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +class BackupCategory extends $pb.GeneratedMessage { + factory BackupCategory({ + $core.String? name, + $core.int? order, + $core.int? flags, + }) { + final $result = create(); + if (name != null) { + $result.name = name; + } + if (order != null) { + $result.order = order; + } + if (flags != null) { + $result.flags = flags; + } + return $result; + } + BackupCategory._() : super(); + factory BackupCategory.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupCategory.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupCategory', createEmptyInstance: create) + ..aOS(1, _omitFieldNames ? '' : 'name') + ..a<$core.int>(2, _omitFieldNames ? '' : 'order', $pb.PbFieldType.O3) + ..a<$core.int>(100, _omitFieldNames ? '' : 'flags', $pb.PbFieldType.O3) + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupCategory clone() => BackupCategory()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupCategory copyWith(void Function(BackupCategory) updates) => super.copyWith((message) => updates(message as BackupCategory)) as BackupCategory; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupCategory create() => BackupCategory._(); + BackupCategory createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupCategory getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupCategory? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get name => $_getSZ(0); + @$pb.TagNumber(1) + set name($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasName() => $_has(0); + @$pb.TagNumber(1) + void clearName() => clearField(1); + + @$pb.TagNumber(2) + $core.int get order => $_getIZ(1); + @$pb.TagNumber(2) + set order($core.int v) { $_setSignedInt32(1, v); } + @$pb.TagNumber(2) + $core.bool hasOrder() => $_has(1); + @$pb.TagNumber(2) + void clearOrder() => clearField(2); + + @$pb.TagNumber(100) + $core.int get flags => $_getIZ(2); + @$pb.TagNumber(100) + set flags($core.int v) { $_setSignedInt32(2, v); } + @$pb.TagNumber(100) + $core.bool hasFlags() => $_has(2); + @$pb.TagNumber(100) + void clearFlags() => clearField(100); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbenum.dart new file mode 100644 index 00000000..d63e2fa5 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupCategory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbjson.dart new file mode 100644 index 00000000..1648d384 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbjson.dart @@ -0,0 +1,30 @@ +// +// Generated code. Do not modify. +// source: BackupCategory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupCategoryDescriptor instead') +const BackupCategory$json = { + '1': 'BackupCategory', + '2': [ + {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'}, + {'1': 'order', '3': 2, '4': 1, '5': 5, '10': 'order'}, + {'1': 'flags', '3': 100, '4': 1, '5': 5, '10': 'flags'}, + ], +}; + +/// Descriptor for `BackupCategory`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupCategoryDescriptor = $convert.base64Decode( + 'Cg5CYWNrdXBDYXRlZ29yeRISCgRuYW1lGAEgASgJUgRuYW1lEhQKBW9yZGVyGAIgASgFUgVvcm' + 'RlchIUCgVmbGFncxhkIAEoBVIFZmxhZ3M='); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbserver.dart new file mode 100644 index 00000000..b61721ce --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupCategory.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupCategory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupCategory.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pb.dart new file mode 100644 index 00000000..5e4d2a50 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pb.dart @@ -0,0 +1,222 @@ +// +// Generated code. Do not modify. +// source: BackupChapter.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +class BackupChapter extends $pb.GeneratedMessage { + factory BackupChapter({ + $core.String? url, + $core.String? name, + $core.String? scanlator, + $core.bool? read, + $core.bool? bookmark, + $core.int? lastPageRead, + $core.int? dateFetch, + $core.int? dateUpload, + $core.double? chapterNumber, + $core.int? sourceOrder, + $core.int? lastModifiedAt, + $core.int? version, + }) { + final $result = create(); + if (url != null) { + $result.url = url; + } + if (name != null) { + $result.name = name; + } + if (scanlator != null) { + $result.scanlator = scanlator; + } + if (read != null) { + $result.read = read; + } + if (bookmark != null) { + $result.bookmark = bookmark; + } + if (lastPageRead != null) { + $result.lastPageRead = lastPageRead; + } + if (dateFetch != null) { + $result.dateFetch = dateFetch; + } + if (dateUpload != null) { + $result.dateUpload = dateUpload; + } + if (chapterNumber != null) { + $result.chapterNumber = chapterNumber; + } + if (sourceOrder != null) { + $result.sourceOrder = sourceOrder; + } + if (lastModifiedAt != null) { + $result.lastModifiedAt = lastModifiedAt; + } + if (version != null) { + $result.version = version; + } + return $result; + } + BackupChapter._() : super(); + factory BackupChapter.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupChapter.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupChapter', createEmptyInstance: create) + ..aOS(1, _omitFieldNames ? '' : 'url') + ..aOS(2, _omitFieldNames ? '' : 'name') + ..aOS(3, _omitFieldNames ? '' : 'scanlator') + ..aOB(4, _omitFieldNames ? '' : 'read') + ..aOB(5, _omitFieldNames ? '' : 'bookmark') + ..a<$core.int>(6, _omitFieldNames ? '' : 'lastPageRead', $pb.PbFieldType.O3, protoName: 'lastPageRead') + ..a<$core.int>(7, _omitFieldNames ? '' : 'dateFetch', $pb.PbFieldType.O3, protoName: 'dateFetch') + ..a<$core.int>(8, _omitFieldNames ? '' : 'dateUpload', $pb.PbFieldType.O3, protoName: 'dateUpload') + ..a<$core.double>(9, _omitFieldNames ? '' : 'chapterNumber', $pb.PbFieldType.OF, protoName: 'chapterNumber') + ..a<$core.int>(10, _omitFieldNames ? '' : 'sourceOrder', $pb.PbFieldType.O3, protoName: 'sourceOrder') + ..a<$core.int>(11, _omitFieldNames ? '' : 'lastModifiedAt', $pb.PbFieldType.O3, protoName: 'lastModifiedAt') + ..a<$core.int>(12, _omitFieldNames ? '' : 'version', $pb.PbFieldType.O3) + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupChapter clone() => BackupChapter()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupChapter copyWith(void Function(BackupChapter) updates) => super.copyWith((message) => updates(message as BackupChapter)) as BackupChapter; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupChapter create() => BackupChapter._(); + BackupChapter createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupChapter getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupChapter? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get url => $_getSZ(0); + @$pb.TagNumber(1) + set url($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasUrl() => $_has(0); + @$pb.TagNumber(1) + void clearUrl() => clearField(1); + + @$pb.TagNumber(2) + $core.String get name => $_getSZ(1); + @$pb.TagNumber(2) + set name($core.String v) { $_setString(1, v); } + @$pb.TagNumber(2) + $core.bool hasName() => $_has(1); + @$pb.TagNumber(2) + void clearName() => clearField(2); + + @$pb.TagNumber(3) + $core.String get scanlator => $_getSZ(2); + @$pb.TagNumber(3) + set scanlator($core.String v) { $_setString(2, v); } + @$pb.TagNumber(3) + $core.bool hasScanlator() => $_has(2); + @$pb.TagNumber(3) + void clearScanlator() => clearField(3); + + @$pb.TagNumber(4) + $core.bool get read => $_getBF(3); + @$pb.TagNumber(4) + set read($core.bool v) { $_setBool(3, v); } + @$pb.TagNumber(4) + $core.bool hasRead() => $_has(3); + @$pb.TagNumber(4) + void clearRead() => clearField(4); + + @$pb.TagNumber(5) + $core.bool get bookmark => $_getBF(4); + @$pb.TagNumber(5) + set bookmark($core.bool v) { $_setBool(4, v); } + @$pb.TagNumber(5) + $core.bool hasBookmark() => $_has(4); + @$pb.TagNumber(5) + void clearBookmark() => clearField(5); + + @$pb.TagNumber(6) + $core.int get lastPageRead => $_getIZ(5); + @$pb.TagNumber(6) + set lastPageRead($core.int v) { $_setSignedInt32(5, v); } + @$pb.TagNumber(6) + $core.bool hasLastPageRead() => $_has(5); + @$pb.TagNumber(6) + void clearLastPageRead() => clearField(6); + + @$pb.TagNumber(7) + $core.int get dateFetch => $_getIZ(6); + @$pb.TagNumber(7) + set dateFetch($core.int v) { $_setSignedInt32(6, v); } + @$pb.TagNumber(7) + $core.bool hasDateFetch() => $_has(6); + @$pb.TagNumber(7) + void clearDateFetch() => clearField(7); + + @$pb.TagNumber(8) + $core.int get dateUpload => $_getIZ(7); + @$pb.TagNumber(8) + set dateUpload($core.int v) { $_setSignedInt32(7, v); } + @$pb.TagNumber(8) + $core.bool hasDateUpload() => $_has(7); + @$pb.TagNumber(8) + void clearDateUpload() => clearField(8); + + @$pb.TagNumber(9) + $core.double get chapterNumber => $_getN(8); + @$pb.TagNumber(9) + set chapterNumber($core.double v) { $_setFloat(8, v); } + @$pb.TagNumber(9) + $core.bool hasChapterNumber() => $_has(8); + @$pb.TagNumber(9) + void clearChapterNumber() => clearField(9); + + @$pb.TagNumber(10) + $core.int get sourceOrder => $_getIZ(9); + @$pb.TagNumber(10) + set sourceOrder($core.int v) { $_setSignedInt32(9, v); } + @$pb.TagNumber(10) + $core.bool hasSourceOrder() => $_has(9); + @$pb.TagNumber(10) + void clearSourceOrder() => clearField(10); + + @$pb.TagNumber(11) + $core.int get lastModifiedAt => $_getIZ(10); + @$pb.TagNumber(11) + set lastModifiedAt($core.int v) { $_setSignedInt32(10, v); } + @$pb.TagNumber(11) + $core.bool hasLastModifiedAt() => $_has(10); + @$pb.TagNumber(11) + void clearLastModifiedAt() => clearField(11); + + @$pb.TagNumber(12) + $core.int get version => $_getIZ(11); + @$pb.TagNumber(12) + set version($core.int v) { $_setSignedInt32(11, v); } + @$pb.TagNumber(12) + $core.bool hasVersion() => $_has(11); + @$pb.TagNumber(12) + void clearVersion() => clearField(12); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbenum.dart new file mode 100644 index 00000000..0876ad53 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupChapter.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbjson.dart new file mode 100644 index 00000000..c743f60d --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbjson.dart @@ -0,0 +1,47 @@ +// +// Generated code. Do not modify. +// source: BackupChapter.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupChapterDescriptor instead') +const BackupChapter$json = { + '1': 'BackupChapter', + '2': [ + {'1': 'url', '3': 1, '4': 1, '5': 9, '10': 'url'}, + {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'}, + {'1': 'scanlator', '3': 3, '4': 1, '5': 9, '9': 0, '10': 'scanlator', '17': true}, + {'1': 'read', '3': 4, '4': 1, '5': 8, '10': 'read'}, + {'1': 'bookmark', '3': 5, '4': 1, '5': 8, '10': 'bookmark'}, + {'1': 'lastPageRead', '3': 6, '4': 1, '5': 5, '10': 'lastPageRead'}, + {'1': 'dateFetch', '3': 7, '4': 1, '5': 5, '10': 'dateFetch'}, + {'1': 'dateUpload', '3': 8, '4': 1, '5': 5, '10': 'dateUpload'}, + {'1': 'chapterNumber', '3': 9, '4': 1, '5': 2, '10': 'chapterNumber'}, + {'1': 'sourceOrder', '3': 10, '4': 1, '5': 5, '10': 'sourceOrder'}, + {'1': 'lastModifiedAt', '3': 11, '4': 1, '5': 5, '10': 'lastModifiedAt'}, + {'1': 'version', '3': 12, '4': 1, '5': 5, '10': 'version'}, + ], + '8': [ + {'1': '_scanlator'}, + ], +}; + +/// Descriptor for `BackupChapter`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupChapterDescriptor = $convert.base64Decode( + 'Cg1CYWNrdXBDaGFwdGVyEhAKA3VybBgBIAEoCVIDdXJsEhIKBG5hbWUYAiABKAlSBG5hbWUSIQ' + 'oJc2NhbmxhdG9yGAMgASgJSABSCXNjYW5sYXRvcogBARISCgRyZWFkGAQgASgIUgRyZWFkEhoK' + 'CGJvb2ttYXJrGAUgASgIUghib29rbWFyaxIiCgxsYXN0UGFnZVJlYWQYBiABKAVSDGxhc3RQYW' + 'dlUmVhZBIcCglkYXRlRmV0Y2gYByABKAVSCWRhdGVGZXRjaBIeCgpkYXRlVXBsb2FkGAggASgF' + 'UgpkYXRlVXBsb2FkEiQKDWNoYXB0ZXJOdW1iZXIYCSABKAJSDWNoYXB0ZXJOdW1iZXISIAoLc2' + '91cmNlT3JkZXIYCiABKAVSC3NvdXJjZU9yZGVyEiYKDmxhc3RNb2RpZmllZEF0GAsgASgFUg5s' + 'YXN0TW9kaWZpZWRBdBIYCgd2ZXJzaW9uGAwgASgFUgd2ZXJzaW9uQgwKCl9zY2FubGF0b3I='); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbserver.dart new file mode 100644 index 00000000..164213b8 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupChapter.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupChapter.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupChapter.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pb.dart new file mode 100644 index 00000000..803416cf --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pb.dart @@ -0,0 +1,236 @@ +// +// Generated code. Do not modify. +// source: BackupEpisode.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +class BackupEpisode extends $pb.GeneratedMessage { + factory BackupEpisode({ + $core.String? url, + $core.String? name, + $core.String? scanlator, + $core.bool? seen, + $core.bool? bookmark, + $core.int? lastSecondSeen, + $core.int? dateFetch, + $core.int? dateUpload, + $core.double? episodeNumber, + $core.int? sourceOrder, + $core.int? lastModifiedAt, + $core.int? version, + $core.int? totalSeconds, + }) { + final $result = create(); + if (url != null) { + $result.url = url; + } + if (name != null) { + $result.name = name; + } + if (scanlator != null) { + $result.scanlator = scanlator; + } + if (seen != null) { + $result.seen = seen; + } + if (bookmark != null) { + $result.bookmark = bookmark; + } + if (lastSecondSeen != null) { + $result.lastSecondSeen = lastSecondSeen; + } + if (dateFetch != null) { + $result.dateFetch = dateFetch; + } + if (dateUpload != null) { + $result.dateUpload = dateUpload; + } + if (episodeNumber != null) { + $result.episodeNumber = episodeNumber; + } + if (sourceOrder != null) { + $result.sourceOrder = sourceOrder; + } + if (lastModifiedAt != null) { + $result.lastModifiedAt = lastModifiedAt; + } + if (version != null) { + $result.version = version; + } + if (totalSeconds != null) { + $result.totalSeconds = totalSeconds; + } + return $result; + } + BackupEpisode._() : super(); + factory BackupEpisode.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupEpisode.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupEpisode', createEmptyInstance: create) + ..aOS(1, _omitFieldNames ? '' : 'url') + ..aOS(2, _omitFieldNames ? '' : 'name') + ..aOS(3, _omitFieldNames ? '' : 'scanlator') + ..aOB(4, _omitFieldNames ? '' : 'seen') + ..aOB(5, _omitFieldNames ? '' : 'bookmark') + ..a<$core.int>(6, _omitFieldNames ? '' : 'lastSecondSeen', $pb.PbFieldType.O3, protoName: 'lastSecondSeen') + ..a<$core.int>(7, _omitFieldNames ? '' : 'dateFetch', $pb.PbFieldType.O3, protoName: 'dateFetch') + ..a<$core.int>(8, _omitFieldNames ? '' : 'dateUpload', $pb.PbFieldType.O3, protoName: 'dateUpload') + ..a<$core.double>(9, _omitFieldNames ? '' : 'episodeNumber', $pb.PbFieldType.OF, protoName: 'episodeNumber') + ..a<$core.int>(10, _omitFieldNames ? '' : 'sourceOrder', $pb.PbFieldType.O3, protoName: 'sourceOrder') + ..a<$core.int>(11, _omitFieldNames ? '' : 'lastModifiedAt', $pb.PbFieldType.O3, protoName: 'lastModifiedAt') + ..a<$core.int>(12, _omitFieldNames ? '' : 'version', $pb.PbFieldType.O3) + ..a<$core.int>(16, _omitFieldNames ? '' : 'totalSeconds', $pb.PbFieldType.O3, protoName: 'totalSeconds') + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupEpisode clone() => BackupEpisode()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupEpisode copyWith(void Function(BackupEpisode) updates) => super.copyWith((message) => updates(message as BackupEpisode)) as BackupEpisode; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupEpisode create() => BackupEpisode._(); + BackupEpisode createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupEpisode getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupEpisode? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get url => $_getSZ(0); + @$pb.TagNumber(1) + set url($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasUrl() => $_has(0); + @$pb.TagNumber(1) + void clearUrl() => clearField(1); + + @$pb.TagNumber(2) + $core.String get name => $_getSZ(1); + @$pb.TagNumber(2) + set name($core.String v) { $_setString(1, v); } + @$pb.TagNumber(2) + $core.bool hasName() => $_has(1); + @$pb.TagNumber(2) + void clearName() => clearField(2); + + @$pb.TagNumber(3) + $core.String get scanlator => $_getSZ(2); + @$pb.TagNumber(3) + set scanlator($core.String v) { $_setString(2, v); } + @$pb.TagNumber(3) + $core.bool hasScanlator() => $_has(2); + @$pb.TagNumber(3) + void clearScanlator() => clearField(3); + + @$pb.TagNumber(4) + $core.bool get seen => $_getBF(3); + @$pb.TagNumber(4) + set seen($core.bool v) { $_setBool(3, v); } + @$pb.TagNumber(4) + $core.bool hasSeen() => $_has(3); + @$pb.TagNumber(4) + void clearSeen() => clearField(4); + + @$pb.TagNumber(5) + $core.bool get bookmark => $_getBF(4); + @$pb.TagNumber(5) + set bookmark($core.bool v) { $_setBool(4, v); } + @$pb.TagNumber(5) + $core.bool hasBookmark() => $_has(4); + @$pb.TagNumber(5) + void clearBookmark() => clearField(5); + + @$pb.TagNumber(6) + $core.int get lastSecondSeen => $_getIZ(5); + @$pb.TagNumber(6) + set lastSecondSeen($core.int v) { $_setSignedInt32(5, v); } + @$pb.TagNumber(6) + $core.bool hasLastSecondSeen() => $_has(5); + @$pb.TagNumber(6) + void clearLastSecondSeen() => clearField(6); + + @$pb.TagNumber(7) + $core.int get dateFetch => $_getIZ(6); + @$pb.TagNumber(7) + set dateFetch($core.int v) { $_setSignedInt32(6, v); } + @$pb.TagNumber(7) + $core.bool hasDateFetch() => $_has(6); + @$pb.TagNumber(7) + void clearDateFetch() => clearField(7); + + @$pb.TagNumber(8) + $core.int get dateUpload => $_getIZ(7); + @$pb.TagNumber(8) + set dateUpload($core.int v) { $_setSignedInt32(7, v); } + @$pb.TagNumber(8) + $core.bool hasDateUpload() => $_has(7); + @$pb.TagNumber(8) + void clearDateUpload() => clearField(8); + + @$pb.TagNumber(9) + $core.double get episodeNumber => $_getN(8); + @$pb.TagNumber(9) + set episodeNumber($core.double v) { $_setFloat(8, v); } + @$pb.TagNumber(9) + $core.bool hasEpisodeNumber() => $_has(8); + @$pb.TagNumber(9) + void clearEpisodeNumber() => clearField(9); + + @$pb.TagNumber(10) + $core.int get sourceOrder => $_getIZ(9); + @$pb.TagNumber(10) + set sourceOrder($core.int v) { $_setSignedInt32(9, v); } + @$pb.TagNumber(10) + $core.bool hasSourceOrder() => $_has(9); + @$pb.TagNumber(10) + void clearSourceOrder() => clearField(10); + + @$pb.TagNumber(11) + $core.int get lastModifiedAt => $_getIZ(10); + @$pb.TagNumber(11) + set lastModifiedAt($core.int v) { $_setSignedInt32(10, v); } + @$pb.TagNumber(11) + $core.bool hasLastModifiedAt() => $_has(10); + @$pb.TagNumber(11) + void clearLastModifiedAt() => clearField(11); + + @$pb.TagNumber(12) + $core.int get version => $_getIZ(11); + @$pb.TagNumber(12) + set version($core.int v) { $_setSignedInt32(11, v); } + @$pb.TagNumber(12) + $core.bool hasVersion() => $_has(11); + @$pb.TagNumber(12) + void clearVersion() => clearField(12); + + @$pb.TagNumber(16) + $core.int get totalSeconds => $_getIZ(12); + @$pb.TagNumber(16) + set totalSeconds($core.int v) { $_setSignedInt32(12, v); } + @$pb.TagNumber(16) + $core.bool hasTotalSeconds() => $_has(12); + @$pb.TagNumber(16) + void clearTotalSeconds() => clearField(16); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbenum.dart new file mode 100644 index 00000000..5dcb5d23 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupEpisode.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbjson.dart new file mode 100644 index 00000000..3b570eac --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbjson.dart @@ -0,0 +1,49 @@ +// +// Generated code. Do not modify. +// source: BackupEpisode.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupEpisodeDescriptor instead') +const BackupEpisode$json = { + '1': 'BackupEpisode', + '2': [ + {'1': 'url', '3': 1, '4': 1, '5': 9, '10': 'url'}, + {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'}, + {'1': 'scanlator', '3': 3, '4': 1, '5': 9, '9': 0, '10': 'scanlator', '17': true}, + {'1': 'seen', '3': 4, '4': 1, '5': 8, '10': 'seen'}, + {'1': 'bookmark', '3': 5, '4': 1, '5': 8, '10': 'bookmark'}, + {'1': 'lastSecondSeen', '3': 6, '4': 1, '5': 5, '10': 'lastSecondSeen'}, + {'1': 'dateFetch', '3': 7, '4': 1, '5': 5, '10': 'dateFetch'}, + {'1': 'dateUpload', '3': 8, '4': 1, '5': 5, '10': 'dateUpload'}, + {'1': 'episodeNumber', '3': 9, '4': 1, '5': 2, '10': 'episodeNumber'}, + {'1': 'sourceOrder', '3': 10, '4': 1, '5': 5, '10': 'sourceOrder'}, + {'1': 'lastModifiedAt', '3': 11, '4': 1, '5': 5, '10': 'lastModifiedAt'}, + {'1': 'version', '3': 12, '4': 1, '5': 5, '10': 'version'}, + {'1': 'totalSeconds', '3': 16, '4': 1, '5': 5, '10': 'totalSeconds'}, + ], + '8': [ + {'1': '_scanlator'}, + ], +}; + +/// Descriptor for `BackupEpisode`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupEpisodeDescriptor = $convert.base64Decode( + 'Cg1CYWNrdXBFcGlzb2RlEhAKA3VybBgBIAEoCVIDdXJsEhIKBG5hbWUYAiABKAlSBG5hbWUSIQ' + 'oJc2NhbmxhdG9yGAMgASgJSABSCXNjYW5sYXRvcogBARISCgRzZWVuGAQgASgIUgRzZWVuEhoK' + 'CGJvb2ttYXJrGAUgASgIUghib29rbWFyaxImCg5sYXN0U2Vjb25kU2VlbhgGIAEoBVIObGFzdF' + 'NlY29uZFNlZW4SHAoJZGF0ZUZldGNoGAcgASgFUglkYXRlRmV0Y2gSHgoKZGF0ZVVwbG9hZBgI' + 'IAEoBVIKZGF0ZVVwbG9hZBIkCg1lcGlzb2RlTnVtYmVyGAkgASgCUg1lcGlzb2RlTnVtYmVyEi' + 'AKC3NvdXJjZU9yZGVyGAogASgFUgtzb3VyY2VPcmRlchImCg5sYXN0TW9kaWZpZWRBdBgLIAEo' + 'BVIObGFzdE1vZGlmaWVkQXQSGAoHdmVyc2lvbhgMIAEoBVIHdmVyc2lvbhIiCgx0b3RhbFNlY2' + '9uZHMYECABKAVSDHRvdGFsU2Vjb25kc0IMCgpfc2NhbmxhdG9y'); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbserver.dart new file mode 100644 index 00000000..40fb0c89 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupEpisode.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupEpisode.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupEpisode.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pb.dart new file mode 100644 index 00000000..828f2067 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pb.dart @@ -0,0 +1,96 @@ +// +// Generated code. Do not modify. +// source: BackupHistory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +class BackupHistory extends $pb.GeneratedMessage { + factory BackupHistory({ + $core.String? url, + $core.int? lastRead, + $core.int? readDuration, + }) { + final $result = create(); + if (url != null) { + $result.url = url; + } + if (lastRead != null) { + $result.lastRead = lastRead; + } + if (readDuration != null) { + $result.readDuration = readDuration; + } + return $result; + } + BackupHistory._() : super(); + factory BackupHistory.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupHistory.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupHistory', createEmptyInstance: create) + ..aOS(1, _omitFieldNames ? '' : 'url') + ..a<$core.int>(2, _omitFieldNames ? '' : 'lastRead', $pb.PbFieldType.O3, protoName: 'lastRead') + ..a<$core.int>(3, _omitFieldNames ? '' : 'readDuration', $pb.PbFieldType.O3, protoName: 'readDuration') + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupHistory clone() => BackupHistory()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupHistory copyWith(void Function(BackupHistory) updates) => super.copyWith((message) => updates(message as BackupHistory)) as BackupHistory; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupHistory create() => BackupHistory._(); + BackupHistory createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupHistory getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupHistory? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get url => $_getSZ(0); + @$pb.TagNumber(1) + set url($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasUrl() => $_has(0); + @$pb.TagNumber(1) + void clearUrl() => clearField(1); + + @$pb.TagNumber(2) + $core.int get lastRead => $_getIZ(1); + @$pb.TagNumber(2) + set lastRead($core.int v) { $_setSignedInt32(1, v); } + @$pb.TagNumber(2) + $core.bool hasLastRead() => $_has(1); + @$pb.TagNumber(2) + void clearLastRead() => clearField(2); + + @$pb.TagNumber(3) + $core.int get readDuration => $_getIZ(2); + @$pb.TagNumber(3) + set readDuration($core.int v) { $_setSignedInt32(2, v); } + @$pb.TagNumber(3) + $core.bool hasReadDuration() => $_has(2); + @$pb.TagNumber(3) + void clearReadDuration() => clearField(3); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbenum.dart new file mode 100644 index 00000000..0aafccdb --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupHistory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbjson.dart new file mode 100644 index 00000000..3162187f --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbjson.dart @@ -0,0 +1,30 @@ +// +// Generated code. Do not modify. +// source: BackupHistory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupHistoryDescriptor instead') +const BackupHistory$json = { + '1': 'BackupHistory', + '2': [ + {'1': 'url', '3': 1, '4': 1, '5': 9, '10': 'url'}, + {'1': 'lastRead', '3': 2, '4': 1, '5': 5, '10': 'lastRead'}, + {'1': 'readDuration', '3': 3, '4': 1, '5': 5, '10': 'readDuration'}, + ], +}; + +/// Descriptor for `BackupHistory`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupHistoryDescriptor = $convert.base64Decode( + 'Cg1CYWNrdXBIaXN0b3J5EhAKA3VybBgBIAEoCVIDdXJsEhoKCGxhc3RSZWFkGAIgASgFUghsYX' + 'N0UmVhZBIiCgxyZWFkRHVyYXRpb24YAyABKAVSDHJlYWREdXJhdGlvbg=='); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbserver.dart new file mode 100644 index 00000000..6fcd48da --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupHistory.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupHistory.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupHistory.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupManga.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pb.dart new file mode 100644 index 00000000..50ea260a --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pb.dart @@ -0,0 +1,257 @@ +// +// Generated code. Do not modify. +// source: BackupManga.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +import 'BackupChapter.pb.dart' as $0; +import 'BackupHistory.pb.dart' as $1; + +class BackupManga extends $pb.GeneratedMessage { + factory BackupManga({ + $core.int? source, + $core.String? url, + $core.String? title, + $core.String? artist, + $core.String? author, + $core.String? description, + $core.Iterable<$core.String>? genre, + $core.int? status, + $core.String? thumbnailUrl, + $core.int? dateAdded, + $core.int? viewer, + $core.Iterable<$0.BackupChapter>? chapters, + $core.Iterable<$core.int>? categories, + $core.int? viewerFlags, + $core.Iterable<$1.BackupHistory>? history, + $core.int? lastModifiedAt, + }) { + final $result = create(); + if (source != null) { + $result.source = source; + } + if (url != null) { + $result.url = url; + } + if (title != null) { + $result.title = title; + } + if (artist != null) { + $result.artist = artist; + } + if (author != null) { + $result.author = author; + } + if (description != null) { + $result.description = description; + } + if (genre != null) { + $result.genre.addAll(genre); + } + if (status != null) { + $result.status = status; + } + if (thumbnailUrl != null) { + $result.thumbnailUrl = thumbnailUrl; + } + if (dateAdded != null) { + $result.dateAdded = dateAdded; + } + if (viewer != null) { + $result.viewer = viewer; + } + if (chapters != null) { + $result.chapters.addAll(chapters); + } + if (categories != null) { + $result.categories.addAll(categories); + } + if (viewerFlags != null) { + $result.viewerFlags = viewerFlags; + } + if (history != null) { + $result.history.addAll(history); + } + if (lastModifiedAt != null) { + $result.lastModifiedAt = lastModifiedAt; + } + return $result; + } + BackupManga._() : super(); + factory BackupManga.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupManga.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupManga', createEmptyInstance: create) + ..a<$core.int>(1, _omitFieldNames ? '' : 'source', $pb.PbFieldType.O3) + ..aOS(2, _omitFieldNames ? '' : 'url') + ..aOS(3, _omitFieldNames ? '' : 'title') + ..aOS(4, _omitFieldNames ? '' : 'artist') + ..aOS(5, _omitFieldNames ? '' : 'author') + ..aOS(6, _omitFieldNames ? '' : 'description') + ..pPS(7, _omitFieldNames ? '' : 'genre') + ..a<$core.int>(8, _omitFieldNames ? '' : 'status', $pb.PbFieldType.O3) + ..aOS(9, _omitFieldNames ? '' : 'thumbnailUrl', protoName: 'thumbnailUrl') + ..a<$core.int>(13, _omitFieldNames ? '' : 'dateAdded', $pb.PbFieldType.O3, protoName: 'dateAdded') + ..a<$core.int>(14, _omitFieldNames ? '' : 'viewer', $pb.PbFieldType.O3) + ..pc<$0.BackupChapter>(16, _omitFieldNames ? '' : 'chapters', $pb.PbFieldType.PM, subBuilder: $0.BackupChapter.create) + ..p<$core.int>(17, _omitFieldNames ? '' : 'categories', $pb.PbFieldType.K3) + ..a<$core.int>(103, _omitFieldNames ? '' : 'viewerFlags', $pb.PbFieldType.O3) + ..pc<$1.BackupHistory>(104, _omitFieldNames ? '' : 'history', $pb.PbFieldType.PM, subBuilder: $1.BackupHistory.create) + ..a<$core.int>(106, _omitFieldNames ? '' : 'lastModifiedAt', $pb.PbFieldType.O3, protoName: 'lastModifiedAt') + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupManga clone() => BackupManga()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupManga copyWith(void Function(BackupManga) updates) => super.copyWith((message) => updates(message as BackupManga)) as BackupManga; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupManga create() => BackupManga._(); + BackupManga createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupManga getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupManga? _defaultInstance; + + @$pb.TagNumber(1) + $core.int get source => $_getIZ(0); + @$pb.TagNumber(1) + set source($core.int v) { $_setSignedInt32(0, v); } + @$pb.TagNumber(1) + $core.bool hasSource() => $_has(0); + @$pb.TagNumber(1) + void clearSource() => clearField(1); + + @$pb.TagNumber(2) + $core.String get url => $_getSZ(1); + @$pb.TagNumber(2) + set url($core.String v) { $_setString(1, v); } + @$pb.TagNumber(2) + $core.bool hasUrl() => $_has(1); + @$pb.TagNumber(2) + void clearUrl() => clearField(2); + + @$pb.TagNumber(3) + $core.String get title => $_getSZ(2); + @$pb.TagNumber(3) + set title($core.String v) { $_setString(2, v); } + @$pb.TagNumber(3) + $core.bool hasTitle() => $_has(2); + @$pb.TagNumber(3) + void clearTitle() => clearField(3); + + @$pb.TagNumber(4) + $core.String get artist => $_getSZ(3); + @$pb.TagNumber(4) + set artist($core.String v) { $_setString(3, v); } + @$pb.TagNumber(4) + $core.bool hasArtist() => $_has(3); + @$pb.TagNumber(4) + void clearArtist() => clearField(4); + + @$pb.TagNumber(5) + $core.String get author => $_getSZ(4); + @$pb.TagNumber(5) + set author($core.String v) { $_setString(4, v); } + @$pb.TagNumber(5) + $core.bool hasAuthor() => $_has(4); + @$pb.TagNumber(5) + void clearAuthor() => clearField(5); + + @$pb.TagNumber(6) + $core.String get description => $_getSZ(5); + @$pb.TagNumber(6) + set description($core.String v) { $_setString(5, v); } + @$pb.TagNumber(6) + $core.bool hasDescription() => $_has(5); + @$pb.TagNumber(6) + void clearDescription() => clearField(6); + + @$pb.TagNumber(7) + $core.List<$core.String> get genre => $_getList(6); + + @$pb.TagNumber(8) + $core.int get status => $_getIZ(7); + @$pb.TagNumber(8) + set status($core.int v) { $_setSignedInt32(7, v); } + @$pb.TagNumber(8) + $core.bool hasStatus() => $_has(7); + @$pb.TagNumber(8) + void clearStatus() => clearField(8); + + @$pb.TagNumber(9) + $core.String get thumbnailUrl => $_getSZ(8); + @$pb.TagNumber(9) + set thumbnailUrl($core.String v) { $_setString(8, v); } + @$pb.TagNumber(9) + $core.bool hasThumbnailUrl() => $_has(8); + @$pb.TagNumber(9) + void clearThumbnailUrl() => clearField(9); + + @$pb.TagNumber(13) + $core.int get dateAdded => $_getIZ(9); + @$pb.TagNumber(13) + set dateAdded($core.int v) { $_setSignedInt32(9, v); } + @$pb.TagNumber(13) + $core.bool hasDateAdded() => $_has(9); + @$pb.TagNumber(13) + void clearDateAdded() => clearField(13); + + @$pb.TagNumber(14) + $core.int get viewer => $_getIZ(10); + @$pb.TagNumber(14) + set viewer($core.int v) { $_setSignedInt32(10, v); } + @$pb.TagNumber(14) + $core.bool hasViewer() => $_has(10); + @$pb.TagNumber(14) + void clearViewer() => clearField(14); + + @$pb.TagNumber(16) + $core.List<$0.BackupChapter> get chapters => $_getList(11); + + @$pb.TagNumber(17) + $core.List<$core.int> get categories => $_getList(12); + + @$pb.TagNumber(103) + $core.int get viewerFlags => $_getIZ(13); + @$pb.TagNumber(103) + set viewerFlags($core.int v) { $_setSignedInt32(13, v); } + @$pb.TagNumber(103) + $core.bool hasViewerFlags() => $_has(13); + @$pb.TagNumber(103) + void clearViewerFlags() => clearField(103); + + @$pb.TagNumber(104) + $core.List<$1.BackupHistory> get history => $_getList(14); + + @$pb.TagNumber(106) + $core.int get lastModifiedAt => $_getIZ(15); + @$pb.TagNumber(106) + set lastModifiedAt($core.int v) { $_setSignedInt32(15, v); } + @$pb.TagNumber(106) + $core.bool hasLastModifiedAt() => $_has(15); + @$pb.TagNumber(106) + void clearLastModifiedAt() => clearField(106); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbenum.dart new file mode 100644 index 00000000..07b79f12 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupManga.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbjson.dart new file mode 100644 index 00000000..55f7a52c --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbjson.dart @@ -0,0 +1,60 @@ +// +// Generated code. Do not modify. +// source: BackupManga.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupMangaDescriptor instead') +const BackupManga$json = { + '1': 'BackupManga', + '2': [ + {'1': 'source', '3': 1, '4': 1, '5': 5, '10': 'source'}, + {'1': 'url', '3': 2, '4': 1, '5': 9, '10': 'url'}, + {'1': 'title', '3': 3, '4': 1, '5': 9, '10': 'title'}, + {'1': 'artist', '3': 4, '4': 1, '5': 9, '9': 0, '10': 'artist', '17': true}, + {'1': 'author', '3': 5, '4': 1, '5': 9, '9': 1, '10': 'author', '17': true}, + {'1': 'description', '3': 6, '4': 1, '5': 9, '9': 2, '10': 'description', '17': true}, + {'1': 'genre', '3': 7, '4': 3, '5': 9, '10': 'genre'}, + {'1': 'status', '3': 8, '4': 1, '5': 5, '10': 'status'}, + {'1': 'thumbnailUrl', '3': 9, '4': 1, '5': 9, '9': 3, '10': 'thumbnailUrl', '17': true}, + {'1': 'dateAdded', '3': 13, '4': 1, '5': 5, '10': 'dateAdded'}, + {'1': 'viewer', '3': 14, '4': 1, '5': 5, '10': 'viewer'}, + {'1': 'chapters', '3': 16, '4': 3, '5': 11, '6': '.BackupChapter', '10': 'chapters'}, + {'1': 'categories', '3': 17, '4': 3, '5': 5, '10': 'categories'}, + {'1': 'viewer_flags', '3': 103, '4': 1, '5': 5, '9': 4, '10': 'viewerFlags', '17': true}, + {'1': 'history', '3': 104, '4': 3, '5': 11, '6': '.BackupHistory', '10': 'history'}, + {'1': 'lastModifiedAt', '3': 106, '4': 1, '5': 5, '9': 5, '10': 'lastModifiedAt', '17': true}, + ], + '8': [ + {'1': '_artist'}, + {'1': '_author'}, + {'1': '_description'}, + {'1': '_thumbnailUrl'}, + {'1': '_viewer_flags'}, + {'1': '_lastModifiedAt'}, + ], +}; + +/// Descriptor for `BackupManga`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupMangaDescriptor = $convert.base64Decode( + 'CgtCYWNrdXBNYW5nYRIWCgZzb3VyY2UYASABKAVSBnNvdXJjZRIQCgN1cmwYAiABKAlSA3VybB' + 'IUCgV0aXRsZRgDIAEoCVIFdGl0bGUSGwoGYXJ0aXN0GAQgASgJSABSBmFydGlzdIgBARIbCgZh' + 'dXRob3IYBSABKAlIAVIGYXV0aG9yiAEBEiUKC2Rlc2NyaXB0aW9uGAYgASgJSAJSC2Rlc2NyaX' + 'B0aW9uiAEBEhQKBWdlbnJlGAcgAygJUgVnZW5yZRIWCgZzdGF0dXMYCCABKAVSBnN0YXR1cxIn' + 'Cgx0aHVtYm5haWxVcmwYCSABKAlIA1IMdGh1bWJuYWlsVXJsiAEBEhwKCWRhdGVBZGRlZBgNIA' + 'EoBVIJZGF0ZUFkZGVkEhYKBnZpZXdlchgOIAEoBVIGdmlld2VyEioKCGNoYXB0ZXJzGBAgAygL' + 'Mg4uQmFja3VwQ2hhcHRlclIIY2hhcHRlcnMSHgoKY2F0ZWdvcmllcxgRIAMoBVIKY2F0ZWdvcm' + 'llcxImCgx2aWV3ZXJfZmxhZ3MYZyABKAVIBFILdmlld2VyRmxhZ3OIAQESKAoHaGlzdG9yeRho' + 'IAMoCzIOLkJhY2t1cEhpc3RvcnlSB2hpc3RvcnkSKwoObGFzdE1vZGlmaWVkQXQYaiABKAVIBV' + 'IObGFzdE1vZGlmaWVkQXSIAQFCCQoHX2FydGlzdEIJCgdfYXV0aG9yQg4KDF9kZXNjcmlwdGlv' + 'bkIPCg1fdGh1bWJuYWlsVXJsQg8KDV92aWV3ZXJfZmxhZ3NCEQoPX2xhc3RNb2RpZmllZEF0'); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbserver.dart new file mode 100644 index 00000000..50f8633f --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupManga.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupManga.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupManga.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pb.dart new file mode 100644 index 00000000..4153e877 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pb.dart @@ -0,0 +1,82 @@ +// +// Generated code. Do not modify. +// source: BackupMihon.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +import 'BackupCategory.pb.dart' as $1; +import 'BackupManga.pb.dart' as $0; +import 'BackupSource.pb.dart' as $2; + +class BackupMihon extends $pb.GeneratedMessage { + factory BackupMihon({ + $core.Iterable<$0.BackupManga>? backupManga, + $core.Iterable<$1.BackupCategory>? backupCategories, + $core.Iterable<$2.BackupSource>? backupSources, + }) { + final $result = create(); + if (backupManga != null) { + $result.backupManga.addAll(backupManga); + } + if (backupCategories != null) { + $result.backupCategories.addAll(backupCategories); + } + if (backupSources != null) { + $result.backupSources.addAll(backupSources); + } + return $result; + } + BackupMihon._() : super(); + factory BackupMihon.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupMihon.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupMihon', createEmptyInstance: create) + ..pc<$0.BackupManga>(1, _omitFieldNames ? '' : 'backupManga', $pb.PbFieldType.PM, protoName: 'backupManga', subBuilder: $0.BackupManga.create) + ..pc<$1.BackupCategory>(2, _omitFieldNames ? '' : 'backupCategories', $pb.PbFieldType.PM, protoName: 'backupCategories', subBuilder: $1.BackupCategory.create) + ..pc<$2.BackupSource>(101, _omitFieldNames ? '' : 'backupSources', $pb.PbFieldType.PM, protoName: 'backupSources', subBuilder: $2.BackupSource.create) + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupMihon clone() => BackupMihon()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupMihon copyWith(void Function(BackupMihon) updates) => super.copyWith((message) => updates(message as BackupMihon)) as BackupMihon; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupMihon create() => BackupMihon._(); + BackupMihon createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupMihon getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupMihon? _defaultInstance; + + @$pb.TagNumber(1) + $core.List<$0.BackupManga> get backupManga => $_getList(0); + + @$pb.TagNumber(2) + $core.List<$1.BackupCategory> get backupCategories => $_getList(1); + + @$pb.TagNumber(101) + $core.List<$2.BackupSource> get backupSources => $_getList(2); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbenum.dart new file mode 100644 index 00000000..30eb22de --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupMihon.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbjson.dart new file mode 100644 index 00000000..59988fff --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbjson.dart @@ -0,0 +1,32 @@ +// +// Generated code. Do not modify. +// source: BackupMihon.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupMihonDescriptor instead') +const BackupMihon$json = { + '1': 'BackupMihon', + '2': [ + {'1': 'backupManga', '3': 1, '4': 3, '5': 11, '6': '.BackupManga', '10': 'backupManga'}, + {'1': 'backupCategories', '3': 2, '4': 3, '5': 11, '6': '.BackupCategory', '10': 'backupCategories'}, + {'1': 'backupSources', '3': 101, '4': 3, '5': 11, '6': '.BackupSource', '10': 'backupSources'}, + ], +}; + +/// Descriptor for `BackupMihon`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupMihonDescriptor = $convert.base64Decode( + 'CgtCYWNrdXBNaWhvbhIuCgtiYWNrdXBNYW5nYRgBIAMoCzIMLkJhY2t1cE1hbmdhUgtiYWNrdX' + 'BNYW5nYRI7ChBiYWNrdXBDYXRlZ29yaWVzGAIgAygLMg8uQmFja3VwQ2F0ZWdvcnlSEGJhY2t1' + 'cENhdGVnb3JpZXMSMwoNYmFja3VwU291cmNlcxhlIAMoCzINLkJhY2t1cFNvdXJjZVINYmFja3' + 'VwU291cmNlcw=='); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbserver.dart new file mode 100644 index 00000000..95b3a859 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupMihon.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupMihon.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupMihon.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupSource.pb.dart b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pb.dart new file mode 100644 index 00000000..8e63a556 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pb.dart @@ -0,0 +1,82 @@ +// +// Generated code. Do not modify. +// source: BackupSource.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +class BackupSource extends $pb.GeneratedMessage { + factory BackupSource({ + $core.String? name, + $core.int? sourceId, + }) { + final $result = create(); + if (name != null) { + $result.name = name; + } + if (sourceId != null) { + $result.sourceId = sourceId; + } + return $result; + } + BackupSource._() : super(); + factory BackupSource.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BackupSource.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BackupSource', createEmptyInstance: create) + ..aOS(1, _omitFieldNames ? '' : 'name') + ..a<$core.int>(2, _omitFieldNames ? '' : 'sourceId', $pb.PbFieldType.O3, protoName: 'sourceId') + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + BackupSource clone() => BackupSource()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BackupSource copyWith(void Function(BackupSource) updates) => super.copyWith((message) => updates(message as BackupSource)) as BackupSource; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static BackupSource create() => BackupSource._(); + BackupSource createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BackupSource getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BackupSource? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get name => $_getSZ(0); + @$pb.TagNumber(1) + set name($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasName() => $_has(0); + @$pb.TagNumber(1) + void clearName() => clearField(1); + + @$pb.TagNumber(2) + $core.int get sourceId => $_getIZ(1); + @$pb.TagNumber(2) + set sourceId($core.int v) { $_setSignedInt32(1, v); } + @$pb.TagNumber(2) + $core.bool hasSourceId() => $_has(1); + @$pb.TagNumber(2) + void clearSourceId() => clearField(2); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbenum.dart b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbenum.dart new file mode 100644 index 00000000..7ac7ac9b --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: BackupSource.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbjson.dart b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbjson.dart new file mode 100644 index 00000000..50ed1dab --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbjson.dart @@ -0,0 +1,29 @@ +// +// Generated code. Do not modify. +// source: BackupSource.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use backupSourceDescriptor instead') +const BackupSource$json = { + '1': 'BackupSource', + '2': [ + {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'}, + {'1': 'sourceId', '3': 2, '4': 1, '5': 5, '10': 'sourceId'}, + ], +}; + +/// Descriptor for `BackupSource`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List backupSourceDescriptor = $convert.base64Decode( + 'CgxCYWNrdXBTb3VyY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIaCghzb3VyY2VJZBgCIAEoBVIIc2' + '91cmNlSWQ='); + diff --git a/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbserver.dart b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbserver.dart new file mode 100644 index 00000000..06d1e6a1 --- /dev/null +++ b/lib/modules/more/data_and_storage/providers/proto/BackupSource.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: BackupSource.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'BackupSource.pb.dart'; + diff --git a/lib/modules/more/data_and_storage/providers/restore.dart b/lib/modules/more/data_and_storage/providers/restore.dart index 32673ce1..d84ccc51 100644 --- a/lib/modules/more/data_and_storage/providers/restore.dart +++ b/lib/modules/more/data_and_storage/providers/restore.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:archive/archive_io.dart'; import 'package:bot_toast/bot_toast.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_qjs/quickjs/ffi.dart'; import 'package:isar/isar.dart'; import 'package:mangayomi/eval/model/m_bridge.dart'; import 'package:mangayomi/eval/model/source_preference.dart'; @@ -16,6 +17,8 @@ import 'package:mangayomi/models/settings.dart'; import 'package:mangayomi/models/source.dart'; import 'package:mangayomi/models/track.dart'; import 'package:mangayomi/models/track_preference.dart'; +import 'package:mangayomi/modules/more/data_and_storage/providers/proto/BackupAniyomi.pb.dart'; +import 'package:mangayomi/modules/more/data_and_storage/providers/proto/BackupMihon.pb.dart'; import 'package:mangayomi/modules/more/settings/appearance/providers/blend_level_state_provider.dart'; import 'package:mangayomi/modules/more/settings/appearance/providers/flex_scheme_color_state_provider.dart'; import 'package:mangayomi/modules/more/settings/appearance/providers/pure_black_dark_mode_state_provider.dart'; @@ -31,8 +34,8 @@ part 'restore.g.dart'; @riverpod void doRestore(Ref ref, {required String path, required BuildContext context}) { final inputStream = InputFileStream(path); - final archive = ZipDecoder().decodeStream(inputStream); try { + final archive = ZipDecoder().decodeStream(inputStream); final backupType = checkBackupType(path, archive); switch (backupType) { case BackupType.mangayomi: @@ -44,6 +47,10 @@ void doRestore(Ref ref, {required String path, required BuildContext context}) { case BackupType.kotatsu: ref.read(restoreKotatsuBackupProvider(archive)); break; + case BackupType.mihon: + case BackupType.aniyomi: + ref.read(restoreTachiBkBackupProvider(path, backupType)); + break; default: } if (backupType != BackupType.unknown) { @@ -70,7 +77,7 @@ void showBotToast(String text) { ); } -enum BackupType { unknown, mangayomi, tachibk, kotatsu } +enum BackupType { unknown, mangayomi, mihon, aniyomi, kotatsu } BackupType checkBackupType(String path, Archive archive) { if (path.toLowerCase().contains("mangayomi") && @@ -88,6 +95,13 @@ BackupType checkBackupType(String path, Archive archive) { }).length == 2) { return BackupType.kotatsu; + } else if (path.toLowerCase().endsWith(".tachibk") || + path.toLowerCase().endsWith(".proto.gz")) { + return path.contains("tachiyomi") || path.contains("mihon") + ? BackupType.mihon + : path.contains("xyz.jmir.tachiyomi.mi") + ? BackupType.aniyomi + : BackupType.unknown; } return BackupType.unknown; } @@ -284,65 +298,242 @@ ItemType _convertToItemTypeCategory(Map backup) { @riverpod void restoreKotatsuBackup(Ref ref, Archive archive) { - for (var f in archive.files) { - List cats = []; - switch (f.name) { - case "categories": - final categories = jsonDecode(utf8.decode(f.content)) as List? ?? []; - isar.writeTxnSync(() { - isar.categorys.clearSync(); - for (var category in categories) { - final cat = Category( - id: category["id"], - name: category["title"], - forItemType: ItemType.manga, - hide: !(category["show_in_lib"] ?? true) - ); - isar.categorys.putSync(cat); - cats.add(cat); - } - }); - case "favourites": - final favourites = jsonDecode(utf8.decode(f.content)) as List? ?? []; - isar.writeTxnSync(() { - isar.mangas.clearSync(); - for (var favourite in favourites) { - final tempManga = favourite["manga"]; - final manga = Manga( - source: tempManga["source"], - author: tempManga["author"], - artist: null, - genre: - (tempManga["tags"] as List?) - ?.map((t) => t["title"] as String) - .toList() ?? - [], - imageUrl: tempManga["large_cover_url"], - lang: 'en', - link: tempManga["url"], - name: tempManga["title"], - status: Status.values.firstWhere( - (s) => - s.name.toLowerCase() == - (tempManga["state"] as String?)?.toLowerCase(), - orElse: () => Status.unknown, - ), - description: null, - categories: [favourite["category_id"]], - itemType: ItemType.manga, - favorite: true - ); - isar.mangas.putSync(manga); - } - }); - default: - continue; + try { + for (var f in archive.files) { + List cats = []; + switch (f.name) { + case "categories": + final categories = jsonDecode(utf8.decode(f.content)) as List? ?? []; + isar.writeTxnSync(() { + isar.categorys.clearSync(); + for (var category in categories) { + final cat = Category( + id: category["id"], + name: category["title"], + forItemType: ItemType.manga, + hide: !(category["show_in_lib"] ?? true), + ); + isar.categorys.putSync(cat); + cats.add(cat); + } + }); + case "favourites": + final favourites = jsonDecode(utf8.decode(f.content)) as List? ?? []; + isar.writeTxnSync(() { + isar.mangas.clearSync(); + for (var favourite in favourites) { + final tempManga = favourite["manga"]; + final manga = Manga( + source: tempManga["source"], + author: tempManga["author"], + artist: null, + genre: + (tempManga["tags"] as List?) + ?.map((t) => t["title"] as String) + .toList() ?? + [], + imageUrl: tempManga["large_cover_url"], + lang: 'en', + link: tempManga["url"], + name: tempManga["title"], + status: Status.values.firstWhere( + (s) => + s.name.toLowerCase() == + (tempManga["state"] as String?)?.toLowerCase(), + orElse: () => Status.unknown, + ), + description: null, + categories: [favourite["category_id"]], + itemType: ItemType.manga, + favorite: true, + ); + isar.mangas.putSync(manga); + } + }); + default: + continue; + } } + isar.writeTxnSync(() { + isar.chapters.clearSync(); + isar.downloads.clearSync(); + isar.historys.clearSync(); + isar.updates.clearSync(); + isar.tracks.clearSync(); + isar.trackPreferences.clearSync(); + ref + .read(synchingProvider(syncId: 1).notifier) + .clearAllChangedParts(false); + ref.invalidate(themeModeStateProvider); + ref.invalidate(blendLevelStateProvider); + ref.invalidate(flexSchemeColorStateProvider); + ref.invalidate(pureBlackDarkModeStateProvider); + ref.invalidate(l10nLocaleStateProvider); + ref.invalidate(navigationOrderStateProvider); + ref.invalidate(hideItemsStateProvider); + ref.invalidate(extensionsRepoStateProvider(ItemType.manga)); + ref.invalidate(extensionsRepoStateProvider(ItemType.anime)); + ref.invalidate(extensionsRepoStateProvider(ItemType.novel)); + }); + } catch (e) { + rethrow; + } +} + +@riverpod +void restoreTachiBkBackup(Ref ref, String path, BackupType bkType) { + final content = GZipDecoder().decodeBytes( + InputFileStream(path).toUint8List(), + ); + final backup = BackupMihon.fromBuffer(content); + List cats = []; + isar.writeTxnSync(() { + isar.categorys.clearSync(); + isar.mangas.clearSync(); + isar.chapters.clearSync(); + isar.historys.clearSync(); + for (var category in backup.backupCategories) { + final cat = Category( + name: category.name, + forItemType: ItemType.manga, + pos: category.order, + ); + isar.categorys.putSync(cat); + cats.add(cat); + } + for (var tempManga in backup.backupManga) { + final manga = Manga( + source: + backup.backupSources + .firstWhereOrNull((src) => src.sourceId == tempManga.source) + ?.name ?? + "Unknown", + author: tempManga.author, + artist: tempManga.artist, + genre: tempManga.genre, + imageUrl: tempManga.thumbnailUrl, + lang: 'en', + link: tempManga.url, + name: tempManga.title, + status: _convertStatusFromTachiBk(tempManga.status), + description: tempManga.description, + categories: + cats + .where((cat) => tempManga.categories.contains(cat.pos!)) + .map((cat) => cat.id!) + .toList(), + itemType: ItemType.manga, + favorite: true, + dateAdded: tempManga.dateAdded, + lastUpdate: tempManga.lastModifiedAt, + ); + isar.mangas.putSync(manga); + History? history; + for (var tempChapter in tempManga.chapters) { + final chapter = Chapter( + mangaId: manga.id!, + name: tempChapter.name, + dateUpload: "${tempChapter.dateUpload}", + isBookmarked: tempChapter.bookmark, + isRead: tempChapter.read, + lastPageRead: "${tempChapter.lastPageRead}", + scanlator: tempChapter.scanlator, + url: tempChapter.url, + ); + isar.chapters.putSync(chapter..manga.value = manga); + chapter.manga.saveSync(); + if ((chapter.isRead ?? false) && + (history == null || + int.parse(history.date ?? "0") < tempChapter.lastModifiedAt)) { + history = History( + mangaId: manga.id, + date: "${tempChapter.lastModifiedAt}", + itemType: ItemType.manga, + chapterId: chapter.id, + )..chapter.value = chapter; + } + } + if (history != null) { + isar.historys.putSync(history); + history.chapter.saveSync(); + } + } + }); + if (bkType == BackupType.aniyomi) { + final backupAnime = BackupAniyomi.fromBuffer(content); + List cats = []; + isar.writeTxnSync(() { + for (var category in backupAnime.backupAnimeCategories) { + final cat = Category( + name: category.name, + forItemType: ItemType.anime, + pos: category.order, + ); + isar.categorys.putSync(cat); + cats.add(cat); + } + for (var tempAnime in backupAnime.backupAnime) { + final anime = Manga( + source: + backupAnime.backupAnimeSources + .firstWhereOrNull((src) => src.sourceId == tempAnime.source) + ?.name ?? + "Unknown", + author: tempAnime.author, + artist: tempAnime.artist, + genre: tempAnime.genre, + imageUrl: tempAnime.thumbnailUrl, + lang: 'en', + link: tempAnime.url, + name: tempAnime.title, + status: _convertStatusFromTachiBk(tempAnime.status), + description: tempAnime.description, + categories: + cats + .where((cat) => tempAnime.categories.contains(cat.pos!)) + .map((cat) => cat.id!) + .toList(), + itemType: ItemType.anime, + favorite: true, + dateAdded: tempAnime.dateAdded, + lastUpdate: tempAnime.lastModifiedAt, + ); + isar.mangas.putSync(anime); + History? history; + for (var tempEpisode in tempAnime.episodes) { + final episode = Chapter( + mangaId: anime.id!, + name: tempEpisode.name, + dateUpload: "${tempEpisode.dateUpload}", + isBookmarked: tempEpisode.bookmark, + isRead: tempEpisode.seen, + lastPageRead: "${tempEpisode.lastSecondSeen}", + scanlator: tempEpisode.scanlator, + url: tempEpisode.url, + ); + isar.chapters.putSync(episode..manga.value = anime); + episode.manga.saveSync(); + if ((episode.isRead ?? false) && + (history == null || + int.parse(history.date ?? "0") < + tempEpisode.lastModifiedAt)) { + history = History( + mangaId: anime.id, + date: "${tempEpisode.lastModifiedAt}", + itemType: ItemType.anime, + chapterId: episode.id, + )..chapter.value = episode; + } + } + if (history != null) { + isar.historys.putSync(history); + history.chapter.saveSync(); + } + } + }); } isar.writeTxnSync(() { - isar.chapters.clearSync(); isar.downloads.clearSync(); - isar.historys.clearSync(); isar.updates.clearSync(); isar.tracks.clearSync(); isar.trackPreferences.clearSync(); @@ -359,3 +550,20 @@ void restoreKotatsuBackup(Ref ref, Archive archive) { ref.invalidate(extensionsRepoStateProvider(ItemType.novel)); }); } + +Status _convertStatusFromTachiBk(int idx) { + switch (idx) { + case 1: + return Status.ongoing; + case 2: + return Status.completed; + case 4: + return Status.publishingFinished; + case 5: + return Status.canceled; + case 6: + return Status.onHiatus; + default: + return Status.unknown; + } +} diff --git a/lib/modules/more/data_and_storage/providers/restore.g.dart b/lib/modules/more/data_and_storage/providers/restore.g.dart index 0dcc76c4..eab58b88 100644 --- a/lib/modules/more/data_and_storage/providers/restore.g.dart +++ b/lib/modules/more/data_and_storage/providers/restore.g.dart @@ -6,7 +6,7 @@ part of 'restore.dart'; // RiverpodGenerator // ************************************************************************** -String _$doRestoreHash() => r'355f3ca8fb830aedc6fdc24cb91e2adc25c760f7'; +String _$doRestoreHash() => r'5dfc1eea6bda317ee52dd0851a63d490293e9a81'; /// Copied from Dart SDK class _SystemHash { @@ -173,7 +173,7 @@ class _DoRestoreProviderElement extends AutoDisposeProviderElement BuildContext get context => (origin as DoRestoreProvider).context; } -String _$restoreBackupHash() => r'0b6bdb8eff801da7efa7b3776f80e50bee4d4ad1'; +String _$restoreBackupHash() => r'503a17e4145bfb19e16f533cd87b75038cb50dbc'; /// See also [restoreBackup]. @ProviderFor(restoreBackup) @@ -321,7 +321,7 @@ class _RestoreBackupProviderElement extends AutoDisposeProviderElement } String _$restoreKotatsuBackupHash() => - r'a27c30891ba09cc48d4df69270a93a783aeb919f'; + r'e2c10fb6d17ab8f44ee429712cce4aa5a9298bc0'; /// See also [restoreKotatsuBackup]. @ProviderFor(restoreKotatsuBackup) @@ -450,5 +450,153 @@ class _RestoreKotatsuBackupProviderElement @override Archive get archive => (origin as RestoreKotatsuBackupProvider).archive; } + +String _$restoreTachiBkBackupHash() => + r'981786aa59a7391a0872eb191fb8f8de6a4b7f6a'; + +/// See also [restoreTachiBkBackup]. +@ProviderFor(restoreTachiBkBackup) +const restoreTachiBkBackupProvider = RestoreTachiBkBackupFamily(); + +/// See also [restoreTachiBkBackup]. +class RestoreTachiBkBackupFamily extends Family { + /// See also [restoreTachiBkBackup]. + const RestoreTachiBkBackupFamily(); + + /// See also [restoreTachiBkBackup]. + RestoreTachiBkBackupProvider call( + String path, + BackupType bkType, + ) { + return RestoreTachiBkBackupProvider( + path, + bkType, + ); + } + + @override + RestoreTachiBkBackupProvider getProviderOverride( + covariant RestoreTachiBkBackupProvider provider, + ) { + return call( + provider.path, + provider.bkType, + ); + } + + static const Iterable? _dependencies = null; + + @override + Iterable? get dependencies => _dependencies; + + static const Iterable? _allTransitiveDependencies = null; + + @override + Iterable? get allTransitiveDependencies => + _allTransitiveDependencies; + + @override + String? get name => r'restoreTachiBkBackupProvider'; +} + +/// See also [restoreTachiBkBackup]. +class RestoreTachiBkBackupProvider extends AutoDisposeProvider { + /// See also [restoreTachiBkBackup]. + RestoreTachiBkBackupProvider( + String path, + BackupType bkType, + ) : this._internal( + (ref) => restoreTachiBkBackup( + ref as RestoreTachiBkBackupRef, + path, + bkType, + ), + from: restoreTachiBkBackupProvider, + name: r'restoreTachiBkBackupProvider', + debugGetCreateSourceHash: + const bool.fromEnvironment('dart.vm.product') + ? null + : _$restoreTachiBkBackupHash, + dependencies: RestoreTachiBkBackupFamily._dependencies, + allTransitiveDependencies: + RestoreTachiBkBackupFamily._allTransitiveDependencies, + path: path, + bkType: bkType, + ); + + RestoreTachiBkBackupProvider._internal( + super._createNotifier, { + required super.name, + required super.dependencies, + required super.allTransitiveDependencies, + required super.debugGetCreateSourceHash, + required super.from, + required this.path, + required this.bkType, + }) : super.internal(); + + final String path; + final BackupType bkType; + + @override + Override overrideWith( + void Function(RestoreTachiBkBackupRef provider) create, + ) { + return ProviderOverride( + origin: this, + override: RestoreTachiBkBackupProvider._internal( + (ref) => create(ref as RestoreTachiBkBackupRef), + from: from, + name: null, + dependencies: null, + allTransitiveDependencies: null, + debugGetCreateSourceHash: null, + path: path, + bkType: bkType, + ), + ); + } + + @override + AutoDisposeProviderElement createElement() { + return _RestoreTachiBkBackupProviderElement(this); + } + + @override + bool operator ==(Object other) { + return other is RestoreTachiBkBackupProvider && + other.path == path && + other.bkType == bkType; + } + + @override + int get hashCode { + var hash = _SystemHash.combine(0, runtimeType.hashCode); + hash = _SystemHash.combine(hash, path.hashCode); + hash = _SystemHash.combine(hash, bkType.hashCode); + + return _SystemHash.finish(hash); + } +} + +@Deprecated('Will be removed in 3.0. Use Ref instead') +// ignore: unused_element +mixin RestoreTachiBkBackupRef on AutoDisposeProviderRef { + /// The parameter `path` of this provider. + String get path; + + /// The parameter `bkType` of this provider. + BackupType get bkType; +} + +class _RestoreTachiBkBackupProviderElement + extends AutoDisposeProviderElement with RestoreTachiBkBackupRef { + _RestoreTachiBkBackupProviderElement(super.provider); + + @override + String get path => (origin as RestoreTachiBkBackupProvider).path; + @override + BackupType get bkType => (origin as RestoreTachiBkBackupProvider).bkType; +} // ignore_for_file: type=lint // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package diff --git a/proto/BackupAnime.proto b/proto/BackupAnime.proto new file mode 100644 index 00000000..d2845893 --- /dev/null +++ b/proto/BackupAnime.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; + +import "BackupEpisode.proto"; +import "BackupHistory.proto"; + +message BackupAnime { + int32 source = 1; + string url = 2; + string title = 3; + optional string artist = 4; + optional string author = 5; + optional string description = 6; + repeated string genre = 7; + int32 status = 8; + optional string thumbnailUrl = 9; + int32 dateAdded = 13; + repeated BackupEpisode episodes = 16; + repeated int32 categories = 17; + optional int32 viewer_flags = 103; + repeated BackupHistory history = 104; + optional int32 lastModifiedAt = 106; +} diff --git a/proto/BackupAniyomi.proto b/proto/BackupAniyomi.proto new file mode 100644 index 00000000..be28ef49 --- /dev/null +++ b/proto/BackupAniyomi.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +import "BackupManga.proto"; +import "BackupCategory.proto"; +import "BackupAnime.proto"; +import "BackupSource.proto"; + +message BackupAniyomi { + repeated BackupManga backupManga = 1; + repeated BackupCategory backupCategories = 2; + repeated BackupAnime backupAnime = 3; + repeated BackupCategory backupAnimeCategories = 4; + repeated BackupSource backupSources = 101; + repeated BackupSource backupAnimeSources = 103; +} diff --git a/proto/BackupCategory.proto b/proto/BackupCategory.proto new file mode 100644 index 00000000..ef059124 --- /dev/null +++ b/proto/BackupCategory.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +message BackupCategory { + string name = 1; + int32 order = 2; + int32 flags = 100; +} diff --git a/proto/BackupChapter.proto b/proto/BackupChapter.proto new file mode 100644 index 00000000..105816ef --- /dev/null +++ b/proto/BackupChapter.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +message BackupChapter { + string url = 1; + string name = 2; + optional string scanlator = 3; + bool read = 4; + bool bookmark = 5; + int32 lastPageRead = 6; + int32 dateFetch = 7; + int32 dateUpload = 8; + float chapterNumber = 9; + int32 sourceOrder = 10; + int32 lastModifiedAt = 11; + int32 version = 12; +} diff --git a/proto/BackupEpisode.proto b/proto/BackupEpisode.proto new file mode 100644 index 00000000..cedf17a3 --- /dev/null +++ b/proto/BackupEpisode.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +message BackupEpisode { + string url = 1; + string name = 2; + optional string scanlator = 3; + bool seen = 4; + bool bookmark = 5; + int32 lastSecondSeen = 6; + int32 dateFetch = 7; + int32 dateUpload = 8; + float episodeNumber = 9; + int32 sourceOrder = 10; + int32 lastModifiedAt = 11; + int32 version = 12; + int32 totalSeconds = 16; +} diff --git a/proto/BackupHistory.proto b/proto/BackupHistory.proto new file mode 100644 index 00000000..a8015c8c --- /dev/null +++ b/proto/BackupHistory.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +message BackupHistory { + string url = 1; + int32 lastRead = 2; + int32 readDuration = 3; +} diff --git a/proto/BackupManga.proto b/proto/BackupManga.proto new file mode 100644 index 00000000..c15989f4 --- /dev/null +++ b/proto/BackupManga.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; + +import "BackupChapter.proto"; +import "BackupHistory.proto"; + +message BackupManga { + int32 source = 1; + string url = 2; + string title = 3; + optional string artist = 4; + optional string author = 5; + optional string description = 6; + repeated string genre = 7; + int32 status = 8; + optional string thumbnailUrl = 9; + int32 dateAdded = 13; + int32 viewer = 14; + repeated BackupChapter chapters = 16; + repeated int32 categories = 17; + optional int32 viewer_flags = 103; + repeated BackupHistory history = 104; + optional int32 lastModifiedAt = 106; +} diff --git a/proto/BackupMihon.proto b/proto/BackupMihon.proto new file mode 100644 index 00000000..c9a7b59a --- /dev/null +++ b/proto/BackupMihon.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +import "BackupManga.proto"; +import "BackupCategory.proto"; +import "BackupSource.proto"; + +message BackupMihon { + repeated BackupManga backupManga = 1; + repeated BackupCategory backupCategories = 2; + repeated BackupSource backupSources = 101; +} diff --git a/proto/BackupSource.proto b/proto/BackupSource.proto new file mode 100644 index 00000000..ea64ad40 --- /dev/null +++ b/proto/BackupSource.proto @@ -0,0 +1,6 @@ +syntax = "proto3"; + +message BackupSource { + string name = 1; + int32 sourceId = 2; +} diff --git a/proto/gen_proto.bat b/proto/gen_proto.bat new file mode 100644 index 00000000..9602ec4a --- /dev/null +++ b/proto/gen_proto.bat @@ -0,0 +1,3 @@ +@echo + +for %%f in (proto/*.proto) do protoc --dart_out="../lib/modules/more/data_and_storage/providers/proto" "%%f" diff --git a/proto/gen_proto.sh b/proto/gen_proto.sh new file mode 100644 index 00000000..aeb8c354 --- /dev/null +++ b/proto/gen_proto.sh @@ -0,0 +1,4 @@ +#!/bin/bash +for filename in proto/*.proto; do + protoc --dart_out=../lib/modules/more/data_and_storage/providers/proto "$filename" +done diff --git a/pubspec.lock b/pubspec.lock index 4a1abf80..0eaec472 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1432,6 +1432,22 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.1" + protobuf: + dependency: "direct main" + description: + name: protobuf + sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + protoc_plugin: + dependency: "direct dev" + description: + name: protoc_plugin + sha256: fb0554851c9eca30bd18405fbbfe81e39166d4a2f0e5b770606fd69da3da0b2f + url: "https://pub.dev" + source: hosted + version: "21.1.2" provider: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0bc31a36..8a56c4bf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -82,6 +82,7 @@ dependencies: connectivity_plus: ^6.1.3 app_links: ^6.4.0 win32: ^5.10.1 + protobuf: ^3.1.0 dependency_overrides: http: ^1.2.2 @@ -117,6 +118,7 @@ dev_dependencies: flutter_lints: ^5.0.0 freezed: ^2.0.0 inno_bundle: ^0.8.0 + protoc_plugin: ^21.1.2 flutter: uses-material-design: true