worldhopper/lib/models/feed.g.dart
Felipe M. 58a562abe8
feat: refactor server software abstraction with Kavita REST API integration
Rename all OPDS-prefixed models to generic names (Server, Feed, Entry,
Link, StreamLink), expand the ServerSoftware interface to cover all
server interactions, and implement a full Kavita REST API client that
replaces the OPDS delegation.

- Rename OPDS* models to generic names across ~60 files
- Add database migrations 13 (opds_id → entry_id) and 14 (unify credentials)
- Create OPDSServerSoftware wrapping existing OPDS services
- Create KavitaApiClient for direct Kavita REST API calls
- Create KavitaFeedMapper to convert Kavita JSON to Feed/Entry models
- Rewrite KavitaServerSoftware to use native API (no OPDS delegation)
- Unify server credentials (remove softwareUsername/softwarePassword)
- Simplify add/edit server UI to single auth section
- Add test connection button to server add/edit screens
- Add progress indicator to PublicationCard using local and server data
- Eliminate softwareType branching in reader screens
- Add EntryProgress and fetchEntryProgress to ServerSoftware interface
- Fix Entry.acquisitionLink crash on empty links
- Add 59 new tests covering models, services, and providers
2026-04-06 17:46:48 +02:00

44 lines
1.6 KiB
Dart

// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'feed.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
_$FeedImpl _$$FeedImplFromJson(Map<String, dynamic> json) => _$FeedImpl(
id: json['id'] as String,
title: json['title'] as String,
subtitle: json['subtitle'] as String?,
icon: json['icon'] as String?,
updated: json['updated'] == null
? null
: DateTime.parse(json['updated'] as String),
author: json['author'] as String?,
links: (json['links'] as List<dynamic>?)
?.map((e) => Link.fromJson(e as Map<String, dynamic>))
.toList() ??
const [],
entries: (json['entries'] as List<dynamic>?)
?.map((e) => Entry.fromJson(e as Map<String, dynamic>))
.toList() ??
const [],
totalResults: (json['totalResults'] as num?)?.toInt(),
itemsPerPage: (json['itemsPerPage'] as num?)?.toInt(),
startIndex: (json['startIndex'] as num?)?.toInt(),
);
Map<String, dynamic> _$$FeedImplToJson(_$FeedImpl instance) =>
<String, dynamic>{
'id': instance.id,
'title': instance.title,
'subtitle': instance.subtitle,
'icon': instance.icon,
'updated': instance.updated?.toIso8601String(),
'author': instance.author,
'links': instance.links,
'entries': instance.entries,
'totalResults': instance.totalResults,
'itemsPerPage': instance.itemsPerPage,
'startIndex': instance.startIndex,
};