Release RuleGel 1.0.1 with Realbooru

This commit is contained in:
2026-05-25 14:33:59 +03:00
parent 16e86fb9d5
commit ea39cf8567
28 changed files with 1217 additions and 263 deletions
@@ -30,6 +30,8 @@ class AppSettings {
required this.smartBlacklistRules,
required this.hideViewedPosts,
required this.mediaQualityMode,
required this.motionRefreshMode,
required this.autoBatterySaver60Hz,
required this.hiddenPostKeys,
required this.diagnosticLogLines,
required this.lastFeedTags,
@@ -60,6 +62,8 @@ class AppSettings {
final List<String> smartBlacklistRules;
final bool hideViewedPosts;
final String mediaQualityMode;
final String motionRefreshMode;
final bool autoBatterySaver60Hz;
final List<String> hiddenPostKeys;
final List<String> diagnosticLogLines;
final List<String> lastFeedTags;
@@ -90,6 +94,8 @@ class AppSettings {
smartBlacklistRules: [],
hideViewedPosts: false,
mediaQualityMode: 'auto',
motionRefreshMode: 'auto',
autoBatterySaver60Hz: true,
hiddenPostKeys: [],
diagnosticLogLines: [],
lastFeedTags: [],
@@ -121,6 +127,8 @@ class AppSettings {
List<String>? smartBlacklistRules,
bool? hideViewedPosts,
String? mediaQualityMode,
String? motionRefreshMode,
bool? autoBatterySaver60Hz,
List<String>? hiddenPostKeys,
List<String>? diagnosticLogLines,
List<String>? lastFeedTags,
@@ -154,6 +162,8 @@ class AppSettings {
smartBlacklistRules: smartBlacklistRules ?? this.smartBlacklistRules,
hideViewedPosts: hideViewedPosts ?? this.hideViewedPosts,
mediaQualityMode: mediaQualityMode ?? this.mediaQualityMode,
motionRefreshMode: motionRefreshMode ?? this.motionRefreshMode,
autoBatterySaver60Hz: autoBatterySaver60Hz ?? this.autoBatterySaver60Hz,
hiddenPostKeys: hiddenPostKeys ?? this.hiddenPostKeys,
diagnosticLogLines: diagnosticLogLines ?? this.diagnosticLogLines,
lastFeedTags: lastFeedTags ?? this.lastFeedTags,
@@ -187,6 +197,8 @@ class AppSettings {
'smartBlacklistRules': smartBlacklistRules,
'hideViewedPosts': hideViewedPosts,
'mediaQualityMode': mediaQualityMode,
'motionRefreshMode': motionRefreshMode,
'autoBatterySaver60Hz': autoBatterySaver60Hz,
'hiddenPostKeys': hiddenPostKeys,
'diagnosticLogLines': diagnosticLogLines,
'lastFeedTags': lastFeedTags,
@@ -243,6 +255,10 @@ class AppSettings {
(json['hideViewedPosts'] as bool?) ?? defaults.hideViewedPosts,
mediaQualityMode:
(json['mediaQualityMode'] as String?) ?? defaults.mediaQualityMode,
motionRefreshMode: (json['motionRefreshMode'] as String?) ??
defaults.motionRefreshMode,
autoBatterySaver60Hz: (json['autoBatterySaver60Hz'] as bool?) ??
defaults.autoBatterySaver60Hz,
hiddenPostKeys: List<String>.from(
(json['hiddenPostKeys'] as List?) ?? defaults.hiddenPostKeys,
),
@@ -442,6 +458,8 @@ class SettingsService {
'nsfwEnabled': settings.nsfwEnabled,
'blurExplicitContent': settings.blurExplicitContent,
'mediaQualityMode': settings.mediaQualityMode,
'motionRefreshMode': settings.motionRefreshMode,
'autoBatterySaver60Hz': settings.autoBatterySaver60Hz,
'cacheTtlHours': settings.cacheTtlHours,
'cacheMaxItems': settings.cacheMaxItems,
'hiddenPosts': settings.hiddenPostKeys.length,
@@ -506,6 +524,7 @@ class SettingsService {
'blacklistedTags',
'whitelistedTags',
'smartBlacklistRules',
'hiddenPostKeys',
]) {
settingsJson.putIfAbsent(key, () => filtersJson[key]);
}
-8
View File
@@ -21,8 +21,6 @@ class UpdateService {
? settingsResult.data
: AppSettings.defaults;
if (!force && !_shouldCheck(settings)) return const Success(null);
try {
final response = await _dio.get<dynamic>(latestReleaseUrl);
final data = Map<String, dynamic>.from(response.data as Map);
@@ -68,12 +66,6 @@ class UpdateService {
);
}
bool _shouldCheck(AppSettings settings) {
final last = DateTime.tryParse(settings.lastUpdateCheckAt ?? '');
if (last == null) return true;
return DateTime.now().difference(last) >= const Duration(hours: 24);
}
AppUpdateInfo _releaseFromJson(Map<String, dynamic> json) {
final tag = (json['tag_name'] ?? '').toString();
final assets = (json['assets'] as List?) ?? const [];