add novel support
This commit is contained in:
parent
161750f5dc
commit
d46d30a30b
6 changed files with 55 additions and 21 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:mangayomi/eval/dart/model/m_bridge.dart';
|
||||
import 'package:mangayomi/main.dart';
|
||||
import 'package:mangayomi/models/manga.dart';
|
||||
import 'package:mangayomi/models/source.dart';
|
||||
import 'package:mangayomi/providers/l10n_providers.dart';
|
||||
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
|
||||
|
|
@ -13,15 +14,16 @@ class CreateExtension extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _CreateExtensionState extends State<CreateExtension> {
|
||||
bool _isManga = false;
|
||||
String _name = "";
|
||||
String _lang = "";
|
||||
String _baseUrl = "";
|
||||
String _apiUrl = "";
|
||||
String _iconUrl = "";
|
||||
int _sourceTypeIndex = 0;
|
||||
int _itemTypeIndex = 0;
|
||||
int _languageIndex = 0;
|
||||
final List<String> _sourceTypes = ["single", "multi", "torrent"];
|
||||
final List<String> _itemTypes = ["Manga", "Anime", "Novel"];
|
||||
final List<String> _languages = ["Dart", "JavaScript"];
|
||||
SourceCodeLanguage _sourceCodeLanguage = SourceCodeLanguage.dart;
|
||||
@override
|
||||
|
|
@ -129,12 +131,35 @@ class _CreateExtensionState extends State<CreateExtension> {
|
|||
],
|
||||
),
|
||||
),
|
||||
SwitchListTile(
|
||||
title: const Text("isManga"),
|
||||
value: _isManga,
|
||||
onChanged: (value) => setState(() {
|
||||
_isManga = value;
|
||||
}),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 17),
|
||||
child: Row(
|
||||
children: [
|
||||
const Text("Target"),
|
||||
const SizedBox(width: 20),
|
||||
Flexible(
|
||||
child: DropdownButton(
|
||||
icon: const Icon(Icons.keyboard_arrow_down),
|
||||
isExpanded: true,
|
||||
value: _itemTypeIndex,
|
||||
hint: Text(_itemTypes[_itemTypeIndex],
|
||||
style: const TextStyle(fontSize: 13)),
|
||||
items: _itemTypes
|
||||
.map((e) => DropdownMenuItem(
|
||||
value: _itemTypes.indexOf(e),
|
||||
child: Text(e,
|
||||
style: const TextStyle(fontSize: 13)),
|
||||
))
|
||||
.toList(),
|
||||
onChanged: (v) {
|
||||
setState(() {
|
||||
_itemTypeIndex = v!;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
|
|
@ -159,7 +184,7 @@ class _CreateExtensionState extends State<CreateExtension> {
|
|||
apiUrl: _apiUrl,
|
||||
iconUrl: _iconUrl,
|
||||
typeSource: _sourceTypes[_sourceTypeIndex],
|
||||
isManga: _isManga,
|
||||
itemType: ItemType.values.elementAt(_itemTypeIndex),
|
||||
isAdded: true,
|
||||
isActive: true,
|
||||
version: "0.0.1",
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:mangayomi/main.dart';
|
||||
import 'package:mangayomi/models/manga.dart';
|
||||
import 'package:mangayomi/models/source.dart';
|
||||
import 'package:mangayomi/services/fetch_anime_sources.dart';
|
||||
import 'package:mangayomi/services/fetch_manga_sources.dart';
|
||||
import 'package:mangayomi/providers/l10n_providers.dart';
|
||||
import 'package:mangayomi/services/fetch_novel_sources.dart';
|
||||
import 'package:mangayomi/services/fetch_sources_list.dart';
|
||||
import 'package:mangayomi/utils/cached_network.dart';
|
||||
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
|
||||
|
|
@ -48,13 +50,17 @@ class _ExtensionListTileWidgetState
|
|||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
widget.source.isManga!
|
||||
widget.source.itemType == ItemType.manga
|
||||
? await ref.watch(fetchMangaSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future)
|
||||
: await ref.watch(fetchAnimeSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future);
|
||||
: widget.source.itemType == ItemType.anime
|
||||
? await ref.watch(fetchAnimeSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future)
|
||||
: await ref.watch(fetchNovelSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future);
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
|
|
@ -115,13 +121,17 @@ class _ExtensionListTileWidgetState
|
|||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
widget.source.isManga!
|
||||
widget.source.itemType == ItemType.manga
|
||||
? await ref.watch(fetchMangaSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future)
|
||||
: await ref.watch(fetchAnimeSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future);
|
||||
: widget.source.itemType == ItemType.anime
|
||||
? await ref.watch(fetchAnimeSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future)
|
||||
: await ref.watch(fetchNovelSourcesListProvider(
|
||||
id: widget.source.id, reFresh: true)
|
||||
.future);
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'fetch_anime_sources.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$fetchAnimeSourcesListHash() =>
|
||||
r'8fbe1642aee4d475583a1f04b2d236984c6fcfb4';
|
||||
r'75185e008e90491987fabb55851c536de89653a4';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'fetch_manga_sources.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$fetchMangaSourcesListHash() =>
|
||||
r'8bc08c334cfdba887227c154e249355f33e69da4';
|
||||
r'f66f3011e72a3b234d7729ef203fc5f255870db3';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -9,10 +9,9 @@ part 'fetch_novel_sources.g.dart';
|
|||
Future fetchNovelSourcesList(Ref ref,
|
||||
{int? id, required reFresh}) async {
|
||||
if (ref.watch(checkForExtensionsUpdateStateProvider) || reFresh) {
|
||||
return;
|
||||
await fetchSourcesList(
|
||||
sourcesIndexUrl:
|
||||
"https://kodjodevf.github.io/mangayomi-extensions/novel_index.json",
|
||||
"https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/refs/heads/main/novel_index.json",
|
||||
refresh: reFresh,
|
||||
id: id,
|
||||
ref: ref,
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ part of 'fetch_novel_sources.dart';
|
|||
// **************************************************************************
|
||||
|
||||
String _$fetchNovelSourcesListHash() =>
|
||||
r'464573fff74edd4bf1f0bf36eb9ad44ef38accfc';
|
||||
r'cc4b989c0248c3b16155444c0c429d1ed0025ecb';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
Loading…
Reference in a new issue