good state
This commit is contained in:
@@ -684,7 +684,7 @@ class _FetchWebFeedProviderElement
|
||||
Uri get url => (origin as FetchWebFeedProvider).url;
|
||||
}
|
||||
|
||||
String _$articleSearchHash() => r'8bf2c4aa8d8b3918be8a416909535682abfbab35';
|
||||
String _$articleSearchHash() => r'cc59a5d3c4b926db9f03ed96db592965ff925b04';
|
||||
|
||||
abstract class _$ArticleSearch
|
||||
extends BuildlessAutoDisposeStreamNotifier<List<FeedArticle>> {
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
import 'package:lensai/core/logger.dart';
|
||||
import 'package:lensai/extensions/nullable.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'add_dialog_blocking.g.dart';
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
class AddFeedDialogBlocking extends _$AddFeedDialogBlocking {
|
||||
DateTime? _lastIgnore;
|
||||
final _ignoredUrls = <Uri, DateTime>{};
|
||||
|
||||
void ignore(Uri url) {
|
||||
final date = DateTime.now();
|
||||
|
||||
_lastIgnore = date;
|
||||
_ignoredUrls[url] = date;
|
||||
}
|
||||
|
||||
bool canPush(Uri url) {
|
||||
if (_lastIgnore.mapNotNull(
|
||||
(last) =>
|
||||
DateTime.now().difference(last) <= const Duration(seconds: 30),
|
||||
) ??
|
||||
false) {
|
||||
logger.i('Blocking add feed default timeout for $url');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_ignoredUrls[url].mapNotNull(
|
||||
(last) =>
|
||||
DateTime.now().difference(last) <= const Duration(minutes: 5),
|
||||
) ??
|
||||
false) {
|
||||
logger.i('Blocking add feed url specific for $url');
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@override
|
||||
void build() {}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'add_dialog_blocking.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$addFeedDialogBlockingHash() =>
|
||||
r'513071d5e507dd292df6b4a3ee3ef7d2217db5bb';
|
||||
|
||||
/// See also [AddFeedDialogBlocking].
|
||||
@ProviderFor(AddFeedDialogBlocking)
|
||||
final addFeedDialogBlockingProvider =
|
||||
NotifierProvider<AddFeedDialogBlocking, void>.internal(
|
||||
AddFeedDialogBlocking.new,
|
||||
name: r'addFeedDialogBlockingProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$addFeedDialogBlockingHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$AddFeedDialogBlocking = Notifier<void>;
|
||||
// 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
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
|
||||
import 'package:lensai/core/logger.dart';
|
||||
import 'package:lensai/extensions/nullable.dart';
|
||||
import 'package:lensai/features/web_feed/data/models/feed_article.dart';
|
||||
import 'package:lensai/features/web_feed/data/providers.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
@@ -29,10 +28,10 @@ class ArticleContentProcessorService extends _$ArticleContentProcessorService {
|
||||
articles
|
||||
.mapIndexed(
|
||||
(index, article) => article.copyWith(
|
||||
contentMarkdown: content[index].markdown.whenNotEmpty,
|
||||
contentPlain: content[index].plain.whenNotEmpty,
|
||||
summaryMarkdown: summary[index].markdown.whenNotEmpty,
|
||||
summaryPlain: summary[index].plain.whenNotEmpty,
|
||||
contentMarkdown: content[index].markdown ?? '',
|
||||
contentPlain: content[index].plain,
|
||||
summaryMarkdown: summary[index].markdown ?? '',
|
||||
summaryPlain: summary[index].plain,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
|
||||
@@ -7,7 +7,7 @@ part of 'article_content_processor.dart';
|
||||
// **************************************************************************
|
||||
|
||||
String _$articleContentProcessorServiceHash() =>
|
||||
r'182cd89e38a0a9a86b7425c16ad2bd1fc39c6704';
|
||||
r'e7cc3da71f6dcf39b0c10df4dcd061f816d5c12e';
|
||||
|
||||
/// See also [ArticleContentProcessorService].
|
||||
@ProviderFor(ArticleContentProcessorService)
|
||||
|
||||
Reference in New Issue
Block a user