mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-06-20 10:54:22 +08:00
Add category filter to galleries
This commit is contained in:
@@ -240,6 +240,7 @@ abstract class _EHApi {
|
||||
@Query("sort_by_gid") bool? sortByGid,
|
||||
@Query("uploader") String? uploader,
|
||||
@Query("tag") String? tag,
|
||||
@Query("category") String? category,
|
||||
@CancelRequest() CancelToken? cancel});
|
||||
|
||||
@GET('/tag/{id}')
|
||||
|
||||
@@ -6,7 +6,7 @@ part of 'client.dart';
|
||||
// RetrofitGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// ignore_for_file: unnecessary_brace_in_string_interps,no_leading_underscores_for_local_identifiers
|
||||
// ignore_for_file: unnecessary_brace_in_string_interps,no_leading_underscores_for_local_identifiers,unused_element
|
||||
|
||||
class __EHApi implements _EHApi {
|
||||
__EHApi(
|
||||
@@ -51,11 +51,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<BUser>.fromJson(
|
||||
final _value = ApiResult<BUser>.fromJson(
|
||||
_result.data!,
|
||||
(json) => BUser.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -101,11 +101,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<dynamic>.fromJson(
|
||||
final _value = ApiResult<dynamic>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json as dynamic,
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -160,11 +160,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<int>.fromJson(
|
||||
final _value = ApiResult<int>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json as int,
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -209,11 +209,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<dynamic>.fromJson(
|
||||
final _value = ApiResult<dynamic>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json as dynamic,
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -248,11 +248,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<BUser>.fromJson(
|
||||
final _value = ApiResult<BUser>.fromJson(
|
||||
_result.data!,
|
||||
(json) => BUser.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -289,7 +289,7 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<List<BUser>>.fromJson(
|
||||
final _value = ApiResult<List<BUser>>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json is List<dynamic>
|
||||
? json
|
||||
@@ -297,7 +297,7 @@ class __EHApi implements _EHApi {
|
||||
.toList()
|
||||
: List.empty(),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -370,11 +370,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<BUser>.fromJson(
|
||||
final _value = ApiResult<BUser>.fromJson(
|
||||
_result.data!,
|
||||
(json) => BUser.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -402,11 +402,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<ServerStatus>.fromJson(
|
||||
final _value = ApiResult<ServerStatus>.fromJson(
|
||||
_result.data!,
|
||||
(json) => ServerStatus.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -501,11 +501,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<Token>.fromJson(
|
||||
final _value = ApiResult<Token>.fromJson(
|
||||
_result.data!,
|
||||
(json) => Token.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -571,11 +571,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<Token>.fromJson(
|
||||
final _value = ApiResult<Token>.fromJson(
|
||||
_result.data!,
|
||||
(json) => Token.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -613,11 +613,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<bool>.fromJson(
|
||||
final _value = ApiResult<bool>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json as bool,
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -648,11 +648,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<TokenWithUserInfo>.fromJson(
|
||||
final _value = ApiResult<TokenWithUserInfo>.fromJson(
|
||||
_result.data!,
|
||||
(json) => TokenWithUserInfo.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -684,8 +684,8 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = _result.data!.cast<int>();
|
||||
final httpResponse = HttpResponse(value, _result);
|
||||
final _value = _result.data!.cast<int>();
|
||||
final httpResponse = HttpResponse(_value, _result);
|
||||
return httpResponse;
|
||||
}
|
||||
|
||||
@@ -718,11 +718,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<EhFileExtend>.fromJson(
|
||||
final _value = ApiResult<EhFileExtend>.fromJson(
|
||||
_result.data!,
|
||||
(json) => EhFileExtend.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -760,8 +760,8 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = _result.data!.cast<int>();
|
||||
final httpResponse = HttpResponse(value, _result);
|
||||
final _value = _result.data!.cast<int>();
|
||||
final httpResponse = HttpResponse(_value, _result);
|
||||
return httpResponse;
|
||||
}
|
||||
|
||||
@@ -793,11 +793,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<EhFiles>.fromJson(
|
||||
final _value = ApiResult<EhFiles>.fromJson(
|
||||
_result.data!,
|
||||
(json) => EhFiles.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -844,8 +844,8 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = _result.data!.cast<int>();
|
||||
final httpResponse = HttpResponse(value, _result);
|
||||
final _value = _result.data!.cast<int>();
|
||||
final httpResponse = HttpResponse(_value, _result);
|
||||
return httpResponse;
|
||||
}
|
||||
|
||||
@@ -877,11 +877,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<GalleryData>.fromJson(
|
||||
final _value = ApiResult<GalleryData>.fromJson(
|
||||
_result.data!,
|
||||
(json) => GalleryData.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -912,11 +912,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<GMetaInfos>.fromJson(
|
||||
final _value = ApiResult<GMetaInfos>.fromJson(
|
||||
_result.data!,
|
||||
(json) => GMetaInfos.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -927,6 +927,7 @@ class __EHApi implements _EHApi {
|
||||
bool? sortByGid,
|
||||
String? uploader,
|
||||
String? tag,
|
||||
String? category,
|
||||
CancelToken? cancel,
|
||||
}) async {
|
||||
final _extra = <String, dynamic>{};
|
||||
@@ -937,6 +938,7 @@ class __EHApi implements _EHApi {
|
||||
r'sort_by_gid': sortByGid,
|
||||
r'uploader': uploader,
|
||||
r'tag': tag,
|
||||
r'category': category,
|
||||
};
|
||||
queryParameters.removeWhere((k, v) => v == null);
|
||||
final _headers = <String, dynamic>{};
|
||||
@@ -959,7 +961,7 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<List<GMeta>>.fromJson(
|
||||
final _value = ApiResult<List<GMeta>>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json is List<dynamic>
|
||||
? json
|
||||
@@ -967,7 +969,7 @@ class __EHApi implements _EHApi {
|
||||
.toList()
|
||||
: List.empty(),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -998,11 +1000,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<Tags>.fromJson(
|
||||
final _value = ApiResult<Tags>.fromJson(
|
||||
_result.data!,
|
||||
(json) => Tags.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1030,7 +1032,7 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<List<Tag>>.fromJson(
|
||||
final _value = ApiResult<List<Tag>>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json is List<dynamic>
|
||||
? json
|
||||
@@ -1038,7 +1040,7 @@ class __EHApi implements _EHApi {
|
||||
.toList()
|
||||
: List.empty(),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1077,8 +1079,8 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = _result.data;
|
||||
final httpResponse = HttpResponse(value, _result);
|
||||
final _value = _result.data;
|
||||
final httpResponse = HttpResponse(_value, _result);
|
||||
return httpResponse;
|
||||
}
|
||||
|
||||
@@ -1136,11 +1138,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<dynamic>.fromJson(
|
||||
final _value = ApiResult<dynamic>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json as dynamic,
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1190,11 +1192,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<dynamic>.fromJson(
|
||||
final _value = ApiResult<dynamic>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json as dynamic,
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1244,11 +1246,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<dynamic>.fromJson(
|
||||
final _value = ApiResult<dynamic>.fromJson(
|
||||
_result.data!,
|
||||
(json) => json as dynamic,
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1279,8 +1281,8 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = Config.fromJson(_result.data!);
|
||||
return value;
|
||||
final _value = Config.fromJson(_result.data!);
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1312,8 +1314,8 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = UpdateConfigResult.fromJson(_result.data!);
|
||||
return value;
|
||||
final _value = UpdateConfigResult.fromJson(_result.data!);
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1348,11 +1350,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<EHMetaInfo>.fromJson(
|
||||
final _value = ApiResult<EHMetaInfo>.fromJson(
|
||||
_result.data!,
|
||||
(json) => EHMetaInfo.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1403,11 +1405,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<Task>.fromJson(
|
||||
final _value = ApiResult<Task>.fromJson(
|
||||
_result.data!,
|
||||
(json) => Task.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1453,11 +1455,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<Task>.fromJson(
|
||||
final _value = ApiResult<Task>.fromJson(
|
||||
_result.data!,
|
||||
(json) => Task.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1508,11 +1510,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<Task>.fromJson(
|
||||
final _value = ApiResult<Task>.fromJson(
|
||||
_result.data!,
|
||||
(json) => Task.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1541,11 +1543,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<DownloadConfig>.fromJson(
|
||||
final _value = ApiResult<DownloadConfig>.fromJson(
|
||||
_result.data!,
|
||||
(json) => DownloadConfig.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1574,11 +1576,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<ExportZipConfig>.fromJson(
|
||||
final _value = ApiResult<ExportZipConfig>.fromJson(
|
||||
_result.data!,
|
||||
(json) => ExportZipConfig.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1607,11 +1609,11 @@ class __EHApi implements _EHApi {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = ApiResult<DefaultImportConfig>.fromJson(
|
||||
final _value = ApiResult<DefaultImportConfig>.fromJson(
|
||||
_result.data!,
|
||||
(json) => DefaultImportConfig.fromJson(json as Map<String, dynamic>),
|
||||
);
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
RequestOptions _setStreamType<T>(RequestOptions requestOptions) {
|
||||
|
||||
@@ -57,7 +57,14 @@ class GalleryBasicInfo extends StatelessWidget {
|
||||
context.pushNamed("/galleries",
|
||||
queryParameters: {"uploader": gMeta.uploader});
|
||||
})),
|
||||
SelectableText(gMeta.category),
|
||||
SelectableText.rich(TextSpan(
|
||||
text: gMeta.category,
|
||||
mouseCursor: SystemMouseCursors.click,
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () {
|
||||
context.pushNamed("/galleries",
|
||||
queryParameters: {"category": gMeta.category});
|
||||
})),
|
||||
],
|
||||
))
|
||||
])),
|
||||
|
||||
@@ -94,8 +94,17 @@ class GalleryInfoDesktop extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 170,
|
||||
child: Column(children: [
|
||||
SelectableText(gData.meta.category,
|
||||
style: TextStyle(color: cs.secondary)),
|
||||
SelectableText.rich(TextSpan(
|
||||
text: gData.meta.category,
|
||||
style: TextStyle(color: cs.secondary),
|
||||
mouseCursor: SystemMouseCursors.click,
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () {
|
||||
context.pushNamed("/galleries",
|
||||
queryParameters: {
|
||||
"category": gData.meta.category
|
||||
});
|
||||
})),
|
||||
SelectableText.rich(TextSpan(
|
||||
text: gData.meta.uploader,
|
||||
style: TextStyle(color: cs.secondary),
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tagUploaderGalleries": "Galleries tagged {tag} by {uploader}",
|
||||
"tagUploaderGalleries": "Galleries tagged {tag} uploaded by {uploader}",
|
||||
"@tagUploaderGalleries": {
|
||||
"placeholders": {
|
||||
"tag": {
|
||||
@@ -269,5 +269,49 @@
|
||||
"thumbnailAlignHelp": "This only works if the scaling method is to touch container from outside/inside.",
|
||||
"createImportTask": "Create import task",
|
||||
"importPath": "Path to the file/directory to import",
|
||||
"importSize": "Image size"
|
||||
"importSize": "Image size",
|
||||
"tagUploaderCategoryGalleries": "Galleries tagged {tag} uploaded by {uploader} in category {category}",
|
||||
"@tagUploaderCategoryGalleries": {
|
||||
"placeholders": {
|
||||
"tag": {
|
||||
"type": "String"
|
||||
},
|
||||
"uploader": {
|
||||
"type": "String"
|
||||
},
|
||||
"category": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"categoryGalleries": "Galleries with category {category}",
|
||||
"@categoryGalleries": {
|
||||
"placeholders": {
|
||||
"category": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"uploaderCategoryGalleries": "Galleries with category {category} uploaded by {uploader}",
|
||||
"@uploaderCategoryGalleries": {
|
||||
"placeholders": {
|
||||
"category": {
|
||||
"type": "String"
|
||||
},
|
||||
"uploader": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tagCategoryGalleries": "Galleries with category {category} tagged {tag}",
|
||||
"@tagCategoryGalleries": {
|
||||
"placeholders": {
|
||||
"category": {
|
||||
"type": "String"
|
||||
},
|
||||
"tag": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
"networkError": "网络错误。",
|
||||
"internalError": "出现了内部错误,请将日志发送给开发者。",
|
||||
"setServerUrl": "服务器地址",
|
||||
"createRootUser": "创建根用户",
|
||||
"createRootUser": "新建根用户",
|
||||
"skip": "跳过",
|
||||
"create": "创建",
|
||||
"create": "新建",
|
||||
"settings": "设置",
|
||||
"lang": "语言",
|
||||
"systemLang": "系统语言",
|
||||
@@ -267,7 +267,51 @@
|
||||
"center": "居中",
|
||||
"rightOrBottom": "右/下",
|
||||
"thumbnailAlignHelp": "仅当缩放方法是缩放以填满/适合容器时生效。",
|
||||
"createImportTask": "创建导入任务",
|
||||
"createImportTask": "新建导入任务",
|
||||
"importPath": "需要导入的文件/文件夹路径",
|
||||
"importSize": "图像大小"
|
||||
"importSize": "图像大小",
|
||||
"tagUploaderCategoryGalleries": "在分类 {category} 中 {uploader} 上传的带有 {tag} 标签的画廊",
|
||||
"@tagUploaderCategoryGalleries": {
|
||||
"placeholders": {
|
||||
"tag": {
|
||||
"type": "String"
|
||||
},
|
||||
"uploader": {
|
||||
"type": "String"
|
||||
},
|
||||
"category": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"categoryGalleries": "分类为 {category} 的画廊",
|
||||
"@categoryGalleries": {
|
||||
"placeholders": {
|
||||
"category": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"uploaderCategoryGalleries": "{uploader} 上传的分类为 {category} 的画廊",
|
||||
"@uploaderCategoryGalleries": {
|
||||
"placeholders": {
|
||||
"category": {
|
||||
"type": "String"
|
||||
},
|
||||
"uploader": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tagCategoryGalleries": "分类为 {category} 的带有 {tag} 标签的画廊",
|
||||
"@tagCategoryGalleries": {
|
||||
"placeholders": {
|
||||
"category": {
|
||||
"type": "String"
|
||||
},
|
||||
"tag": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ final _router = GoRouter(
|
||||
}
|
||||
final tag = state.uri.queryParameters["tag"];
|
||||
final uploader = state.uri.queryParameters["uploader"];
|
||||
final category = state.uri.queryParameters["category"];
|
||||
final extra = state.extra as GalleriesPageExtra?;
|
||||
return GalleriesPage(
|
||||
key: state.pageKey,
|
||||
@@ -79,6 +80,7 @@ final _router = GoRouter(
|
||||
tag: tag,
|
||||
uploader: uploader,
|
||||
translatedTag: extra?.translatedTag,
|
||||
category: category,
|
||||
hasExtra: extra != null);
|
||||
}),
|
||||
GoRoute(
|
||||
|
||||
@@ -23,12 +23,14 @@ class GalleriesPage extends StatefulWidget {
|
||||
this.uploader,
|
||||
this.tag,
|
||||
this.translatedTag,
|
||||
this.category,
|
||||
this.hasExtra = false});
|
||||
final SortByGid? sortByGid;
|
||||
final String? uploader;
|
||||
final String? tag;
|
||||
final String? translatedTag;
|
||||
final bool hasExtra;
|
||||
final String? category;
|
||||
bool _stt(BuildContext context) =>
|
||||
prefs.getBool("showTranslatedTag") ??
|
||||
MainApp.of(context).lang.toLocale().languageCode == "zh";
|
||||
@@ -61,6 +63,7 @@ class _GalleriesPage extends State<GalleriesPage>
|
||||
limit: _pageSize,
|
||||
sortByGid: _sortByGid,
|
||||
uploader: widget.uploader,
|
||||
category: widget.category,
|
||||
tag: widget.tag))
|
||||
.unwrap();
|
||||
final isLastPage = list.length < _pageSize;
|
||||
@@ -140,6 +143,7 @@ class _GalleriesPage extends State<GalleriesPage>
|
||||
"sortByGid": [v!.index.toString()],
|
||||
"tag": [widget.tag ?? ""],
|
||||
"uploader": [widget.uploader ?? ""],
|
||||
"category": [widget.category ?? ""],
|
||||
};
|
||||
queryParameters.removeWhere((k, v) => v[0].isEmpty);
|
||||
context.pushReplacementNamed("/galleries",
|
||||
@@ -155,12 +159,24 @@ class _GalleriesPage extends State<GalleriesPage>
|
||||
],
|
||||
leadingIcon: const Icon(Icons.sort),
|
||||
);
|
||||
final title = widget.uploader != null && widget.tag != null
|
||||
? i18n.tagUploaderGalleries(preferredTag(context)!, widget.uploader!)
|
||||
final title = widget.tag != null
|
||||
? widget.uploader != null
|
||||
? widget.category != null
|
||||
? i18n.tagUploaderCategoryGalleries(
|
||||
preferredTag(context)!, widget.uploader!, widget.category!)
|
||||
: i18n.tagUploaderGalleries(
|
||||
preferredTag(context)!, widget.uploader!)
|
||||
: widget.category != null
|
||||
? i18n.tagCategoryGalleries(
|
||||
widget.category!, preferredTag(context)!)
|
||||
: i18n.tagGalleries(preferredTag(context)!)
|
||||
: widget.uploader != null
|
||||
? i18n.uploaderGalleries(widget.uploader!)
|
||||
: widget.tag != null
|
||||
? i18n.tagGalleries(preferredTag(context)!)
|
||||
? widget.category != null
|
||||
? i18n.uploaderCategoryGalleries(
|
||||
widget.category!, widget.uploader!)
|
||||
: i18n.uploaderGalleries(widget.uploader!)
|
||||
: widget.category != null
|
||||
? i18n.categoryGalleries(widget.category!)
|
||||
: i18n.galleries;
|
||||
if (isTop(context)) {
|
||||
setCurrentTitle(title, Theme.of(context).primaryColor.value);
|
||||
|
||||
Reference in New Issue
Block a user