use logging package

This commit is contained in:
Dr-Blank 2024-06-28 06:01:56 -04:00
parent 99fb8264f1
commit f24e63d852
No known key found for this signature in database
GPG key ID: 7452CC63F210A266
14 changed files with 135 additions and 86 deletions

View file

@ -2,7 +2,7 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shelfsdk/audiobookshelf_api.dart';
import 'package:whispering_pages/db/cache_manager.dart';
@ -10,6 +10,8 @@ import 'package:whispering_pages/settings/api_settings_provider.dart';
part 'api_provider.g.dart';
final _logger = Logger('api_provider');
Uri makeBaseUrl(String address) {
if (!address.startsWith('http') && !address.startsWith('https')) {
address = 'https://$address';
@ -103,7 +105,7 @@ class PersonalizedView extends _$PersonalizedView {
for (final item in resJson)
Shelf.fromJson(item as Map<String, dynamic>),
];
debugPrint('reading from cache: $cachedRes');
_logger.fine('reading from cache: $cachedRes');
yield res;
}
@ -119,7 +121,7 @@ class PersonalizedView extends _$PersonalizedView {
fileExtension: 'json',
key: key,
);
debugPrint('writing to cache: $newFile');
_logger.fine('writing to cache: $newFile');
yield res!;
}

View file

@ -1,16 +1,19 @@
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:whispering_pages/api/server_provider.dart'
show audiobookShelfServerProvider;
import 'package:whispering_pages/settings/models/audiobookshelf_server.dart';
import 'package:whispering_pages/settings/models/authenticated_user.dart' as model;
import 'package:whispering_pages/settings/api_settings_provider.dart';
import 'package:whispering_pages/db/storage.dart';
import 'package:whispering_pages/settings/api_settings_provider.dart';
import 'package:whispering_pages/settings/models/audiobookshelf_server.dart';
import 'package:whispering_pages/settings/models/authenticated_user.dart'
as model;
part 'authenticated_user_provider.g.dart';
final _box = AvailableHiveBoxes.authenticatedUserBox;
final _logger = Logger('authenticated_user_provider');
/// provides with a set of authenticated users
@riverpod
class AuthenticatedUser extends _$AuthenticatedUser {
@ -32,10 +35,10 @@ class AuthenticatedUser extends _$AuthenticatedUser {
Set<model.AuthenticatedUser> readFromBoxOrCreate() {
if (_box.isNotEmpty) {
final foundData = _box.getRange(0, _box.length);
debugPrint('found users in box: $foundData');
_logger.fine('found users in box: $foundData');
return foundData.toSet();
} else {
debugPrint('no settings found in box');
_logger.fine('no settings found in box');
return {};
}
}
@ -46,7 +49,7 @@ class AuthenticatedUser extends _$AuthenticatedUser {
return;
}
_box.addAll(state);
debugPrint('writing state to box: $state');
_logger.fine('writing state to box: $state');
}
void addUser(model.AuthenticatedUser user) {

View file

@ -1,6 +1,6 @@
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shelfsdk/audiobookshelf_api.dart';
import 'package:whispering_pages/api/api_provider.dart';
@ -14,6 +14,8 @@ import 'package:whispering_pages/db/cache_manager.dart';
part 'image_provider.g.dart';
final _logger = Logger('cover_image_provider');
@Riverpod(keepAlive: true)
class CoverImage extends _$CoverImage {
@override
@ -29,23 +31,23 @@ class CoverImage extends _$CoverImage {
if (file != null) {
// if the image is in the cache, yield it
debugPrint(
_logger.fine(
'cover image found in cache for ${libraryItem.id} at ${file.file.path}',
);
yield await file.file.readAsBytes();
// return if no need to fetch from the server
if (libraryItem.updatedAt.isBefore(await file.file.lastModified())) {
debugPrint(
_logger.fine(
'cover image is up to date for ${libraryItem.id}, no need to fetch from the server',
);
return;
} else {
debugPrint(
_logger.fine(
'cover image stale for ${libraryItem.id}, fetching from the server',
);
}
} else {
debugPrint('cover image not found in cache for ${libraryItem.id}');
_logger.fine('cover image not found in cache for ${libraryItem.id}');
}
// check if the image is in the cache
@ -61,7 +63,7 @@ class CoverImage extends _$CoverImage {
key: libraryItem.id,
fileExtension: 'jpg',
);
debugPrint(
_logger.fine(
'cover image fetched for for ${libraryItem.id}, file time: ${await newFile.lastModified()}',
);
}

View file

@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shelfsdk/audiobookshelf_api.dart' as shelfsdk;
import 'package:whispering_pages/api/api_provider.dart';
@ -10,6 +10,8 @@ import 'package:whispering_pages/shared/extensions/model_conversions.dart';
part 'library_item_provider.g.dart';
final _logger = Logger('LibraryItemProvider');
/// provides the library item for the given id
@riverpod
class LibraryItem extends _$LibraryItem {
@ -17,7 +19,7 @@ class LibraryItem extends _$LibraryItem {
Stream<shelfsdk.LibraryItemExpanded> build(String id) async* {
final api = ref.watch(authenticatedApiProvider);
debugPrint('LibraryItemProvider fetching library item: $id');
_logger.fine('LibraryItemProvider fetching library item: $id');
// ! this is a mock delay
// await Future.delayed(const Duration(seconds: 10));
@ -27,14 +29,15 @@ class LibraryItem extends _$LibraryItem {
final cachedFile = await apiResponseCacheManager.getFileFromMemory(key) ??
await apiResponseCacheManager.getFileFromCache(key);
if (cachedFile != null) {
debugPrint('LibraryItemProvider reading from cache for $id from ${cachedFile.file}');
_logger.fine(
'LibraryItemProvider reading from cache for $id from ${cachedFile.file}');
// read file as json
final cachedItem = shelfsdk.LibraryItemExpanded.fromJson(
jsonDecode(await cachedFile.file.readAsString()),
);
yield cachedItem;
} else {
debugPrint('LibraryItemProvider cache miss for $id');
_logger.fine('LibraryItemProvider cache miss for $id');
}
// ! this is a mock delay
@ -60,7 +63,7 @@ class LibraryItem extends _$LibraryItem {
fileExtension: 'json',
key: key,
);
debugPrint('writing to cache: $newFile');
_logger.fine('writing to cache: $newFile');
yield item.asExpanded;
}
}