implemented reader mode
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:bang_navigator/features/content_block/domain/repositories/host.dart';
|
||||
import 'package:bang_navigator/features/settings/data/models/settings.dart';
|
||||
import 'package:bang_navigator/features/settings/data/repositories/settings_repository.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/services.dart' show rootBundle;
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:universal_io/io.dart';
|
||||
|
||||
part 'providers.g.dart';
|
||||
|
||||
@@ -28,3 +33,13 @@ Stream<Set<String>?> blockContentHosts(BlockContentHostsRef ref) {
|
||||
.watchHosts(sources: enableHostList)
|
||||
.map((hosts) => hosts.toSet());
|
||||
}
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
Future<String> readerabilityScript(ReaderabilityScriptRef ref) {
|
||||
return rootBundle.load('assets/scripts/readability.min.js.gz').then(
|
||||
(value) => compute(
|
||||
(message) => utf8.decode(gzip.decode(message)),
|
||||
value.buffer.asUint8List(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -21,5 +21,21 @@ final blockContentHostsProvider = StreamProvider<Set<String>?>.internal(
|
||||
);
|
||||
|
||||
typedef BlockContentHostsRef = StreamProviderRef<Set<String>?>;
|
||||
String _$readerabilityScriptHash() =>
|
||||
r'6fdd1aa920bc58c35ef9888158e572e25793870a';
|
||||
|
||||
/// See also [readerabilityScript].
|
||||
@ProviderFor(readerabilityScript)
|
||||
final readerabilityScriptProvider = FutureProvider<String>.internal(
|
||||
readerabilityScript,
|
||||
name: r'readerabilityScriptProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$readerabilityScriptHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef ReaderabilityScriptRef = FutureProviderRef<String>;
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member
|
||||
|
||||
Reference in New Issue
Block a user