Add viewed history, diagnostics, tag chips and SWF viewer

This commit is contained in:
2026-05-24 11:35:43 +03:00
parent b02c776628
commit 361d0b3910
49 changed files with 4956 additions and 446 deletions
+22 -5
View File
@@ -43,7 +43,7 @@ class DanbooruProvider implements ContentProvider, CommentProvider {
final response = await _dio.get<dynamic>(
'/posts.json',
queryParameters: {
'page': page <= 0 ? 1 : page,
'page': page + 1,
'limit': limit,
'tags': queryTags.join(' '),
..._queryParameters,
@@ -107,8 +107,7 @@ class DanbooruProvider implements ContentProvider, CommentProvider {
..._queryParameters,
},
);
final data = response.data;
final items = data is List ? data : const [];
final items = _commentItems(response.data);
return items
.whereType<Map>()
.map((item) {
@@ -117,9 +116,13 @@ class DanbooruProvider implements ContentProvider, CommentProvider {
id: (json['id'] ?? '').toString(),
postId: (json['post_id'] ?? postId).toString(),
providerId: id,
authorName: (json['creator_name'] ?? json['creator_id'] ?? 'user')
authorName: (json['creator_name'] ??
json['creator_id'] ??
json['updater_name'] ??
'user')
.toString(),
body: (json['body'] ?? json['text'] ?? json['comment'] ?? '')
.toString(),
body: (json['body'] ?? '').toString(),
createdAt:
DateTime.tryParse((json['created_at'] ?? '').toString()) ??
DateTime.fromMillisecondsSinceEpoch(0),
@@ -129,6 +132,20 @@ class DanbooruProvider implements ContentProvider, CommentProvider {
.toList();
}
List<dynamic> _commentItems(dynamic data) {
if (data is List) return data;
if (data is! Map) return const [];
final json = Map<String, dynamic>.from(data);
final comments = json['comments'];
if (comments is List) return comments;
final records = json['records'];
if (records is List) return records;
final comment = json['comment'];
if (comment is List) return comment;
if (comment is Map) return [comment];
return const [];
}
List<String> _topTags(TopPeriodFilter period) {
return switch (period) {
TopPeriodFilter.none => const [],