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
78 lines
3.1 KiB
Dart
78 lines
3.1 KiB
Dart
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
|
|
part of 'publication.dart';
|
|
|
|
// **************************************************************************
|
|
// JsonSerializableGenerator
|
|
// **************************************************************************
|
|
|
|
_$PublicationImpl _$$PublicationImplFromJson(Map<String, dynamic> json) =>
|
|
_$PublicationImpl(
|
|
id: json['id'] as String,
|
|
serverId: json['serverId'] as String,
|
|
entryId: json['entryId'] as String,
|
|
title: json['title'] as String,
|
|
authors: (json['authors'] as List<dynamic>?)
|
|
?.map((e) => e as String)
|
|
.toList() ??
|
|
const [],
|
|
summary: json['summary'] as String?,
|
|
content: json['content'] as String?,
|
|
coverPath: json['coverPath'] as String?,
|
|
thumbnailPath: json['thumbnailPath'] as String?,
|
|
coverUrl: json['coverUrl'] as String?,
|
|
thumbnailUrl: json['thumbnailUrl'] as String?,
|
|
series: json['series'] as String?,
|
|
seriesPosition: (json['seriesPosition'] as num?)?.toDouble(),
|
|
publisher: json['publisher'] as String?,
|
|
language: json['language'] as String?,
|
|
isbn: json['isbn'] as String?,
|
|
categories: (json['categories'] as List<dynamic>?)
|
|
?.map((e) => e as String)
|
|
.toList() ??
|
|
const [],
|
|
links: (json['links'] as List<dynamic>?)
|
|
?.map((e) => Link.fromJson(e as Map<String, dynamic>))
|
|
.toList() ??
|
|
const [],
|
|
streamLink: json['streamLink'] == null
|
|
? null
|
|
: StreamLink.fromJson(json['streamLink'] as Map<String, dynamic>),
|
|
published: json['published'] == null
|
|
? null
|
|
: DateTime.parse(json['published'] as String),
|
|
updated: json['updated'] == null
|
|
? null
|
|
: DateTime.parse(json['updated'] as String),
|
|
firstCachedAt: DateTime.parse(json['firstCachedAt'] as String),
|
|
lastCachedAt: DateTime.parse(json['lastCachedAt'] as String),
|
|
lastAccessedAt: DateTime.parse(json['lastAccessedAt'] as String),
|
|
);
|
|
|
|
Map<String, dynamic> _$$PublicationImplToJson(_$PublicationImpl instance) =>
|
|
<String, dynamic>{
|
|
'id': instance.id,
|
|
'serverId': instance.serverId,
|
|
'entryId': instance.entryId,
|
|
'title': instance.title,
|
|
'authors': instance.authors,
|
|
'summary': instance.summary,
|
|
'content': instance.content,
|
|
'coverPath': instance.coverPath,
|
|
'thumbnailPath': instance.thumbnailPath,
|
|
'coverUrl': instance.coverUrl,
|
|
'thumbnailUrl': instance.thumbnailUrl,
|
|
'series': instance.series,
|
|
'seriesPosition': instance.seriesPosition,
|
|
'publisher': instance.publisher,
|
|
'language': instance.language,
|
|
'isbn': instance.isbn,
|
|
'categories': instance.categories,
|
|
'links': instance.links,
|
|
'streamLink': instance.streamLink,
|
|
'published': instance.published?.toIso8601String(),
|
|
'updated': instance.updated?.toIso8601String(),
|
|
'firstCachedAt': instance.firstCachedAt.toIso8601String(),
|
|
'lastCachedAt': instance.lastCachedAt.toIso8601String(),
|
|
'lastAccessedAt': instance.lastAccessedAt.toIso8601String(),
|
|
};
|