This commit is contained in:
kodjomoustapha 2024-12-19 17:52:47 +01:00
parent 62deeb8b94
commit f99bc996b1
4 changed files with 48 additions and 34 deletions

View file

@ -17,6 +17,7 @@ import 'package:mangayomi/eval/dart/model/m_provider.dart';
import 'package:mangayomi/eval/javascript/http.dart';
import 'package:mangayomi/models/video.dart';
import 'package:mangayomi/modules/browse/extension/providers/extension_preferences_providers.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
import 'package:mangayomi/utils/log/log.dart';
class $MProvider extends MProvider with $Bridge<MProvider> {
@ -854,15 +855,7 @@ class $MProvider extends MProvider with $Bridge<MProvider> {
.then((value) => $String(value.stringResult)));
}),
'getUrlWithoutDomain' => $Function((_, __, List<$Value?> args) {
final uri = Uri.parse(args[0]!.$value.replaceAll(' ', '%20'));
String out = uri.path;
if (uri.query.isNotEmpty) {
out += '?${uri.query}';
}
if (uri.fragment.isNotEmpty) {
out += '#${uri.fragment}';
}
return $String(out);
return $String((args[0]!.$value as String).getUrlWithoutDomain);
}),
'parseHtml' => $Function((_, __, List<$Value?> args) {
final res = MBridge.parsHtml(args[0]!.$reified);

View file

@ -28,7 +28,7 @@ import 'package:mangayomi/modules/widgets/custom_draggable_tabbar.dart';
import 'package:mangayomi/modules/widgets/custom_extended_image_provider.dart';
import 'package:mangayomi/providers/l10n_providers.dart';
import 'package:mangayomi/providers/storage_provider.dart';
import 'package:mangayomi/services/get_source_baseurl.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
import 'package:mangayomi/utils/utils.dart';
import 'package:mangayomi/utils/cached_network.dart';
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
@ -382,23 +382,32 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
return [
PopupMenuItem<int>(
value: 0,
child: Text(
widget.isManga ? context.l10n.next_chapter : context.l10n.next_episode)),
child: Text(widget.isManga
? context.l10n.next_chapter
: context.l10n.next_episode)),
PopupMenuItem<int>(
value: 1,
child: Text(
widget.isManga ? context.l10n.next_5_chapters : context.l10n.next_5_episodes)),
child: Text(widget.isManga
? context.l10n.next_5_chapters
: context
.l10n.next_5_episodes)),
PopupMenuItem<int>(
value: 2,
child: Text(
widget.isManga ? context.l10n.next_10_chapters : context.l10n.next_10_episodes)),
child: Text(widget.isManga
? context.l10n.next_10_chapters
: context
.l10n.next_10_episodes)),
PopupMenuItem<int>(
value: 3,
child: Text(
widget.isManga ? context.l10n.next_25_chapters : context.l10n.next_25_episodes)),
child: Text(widget.isManga
? context.l10n.next_25_chapters
: context
.l10n.next_25_episodes)),
PopupMenuItem<int>(
value: 4,
child: Text(widget.isManga ? context.l10n.unread : context.l10n.unwatched)),
child: Text(widget.isManga
? context.l10n.unread
: context.l10n.unwatched)),
];
},
onSelected: (value) {
@ -519,8 +528,8 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
final source = getSource(
widget.manga!.lang!,
widget.manga!.source!);
String url = "${source?.baseUrl}${widget.manga!.link!}";
final url =
"${source!.baseUrl}${widget.manga!.link!.getUrlWithoutDomain}";
Share.share(url);
}
}),
@ -1184,7 +1193,8 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
),
RadioListTile(
dense: true,
title: Text(widget.isManga ? l10n.chapter_number : l10n.episode_number),
title: Text(
widget.isManga ? l10n.chapter_number : l10n.episode_number),
value: "ej",
groupValue: "e",
selected: false,
@ -1548,12 +1558,9 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
final manga = widget.manga!;
final source =
getSource(widget.manga!.lang!, widget.manga!.source!)!;
final baseUrl =
ref.watch(sourceBaseUrlProvider(source: source));
String url = widget.manga!.link!.startsWith('/')
? "$baseUrl${widget.manga!.link!}"
: widget.manga!.link!;
getSource(widget.manga!.lang!, widget.manga!.source!);
final url =
"${source!.baseUrl}${widget.manga!.link!.getUrlWithoutDomain}";
Map<String, dynamic> data = {
'url': url,

View file

@ -25,6 +25,7 @@ import 'package:mangayomi/modules/more/settings/reader/providers/reader_state_pr
import 'package:mangayomi/modules/widgets/custom_draggable_tabbar.dart';
import 'package:mangayomi/providers/l10n_providers.dart';
import 'package:mangayomi/providers/storage_provider.dart';
import 'package:mangayomi/utils/extensions/string_extensions.dart';
import 'package:mangayomi/utils/utils.dart';
import 'package:mangayomi/modules/manga/reader/providers/push_router.dart';
import 'package:mangayomi/services/get_chapter_pages.dart';
@ -301,7 +302,8 @@ class _MangaChapterPageGalleryState
width: 35,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6),
color: context.secondaryColor.withValues(alpha: 0.4)),
color:
context.secondaryColor.withValues(alpha: 0.4)),
),
),
Row(
@ -721,8 +723,9 @@ class _MangaChapterPageGalleryState
l10n.image_loading_error,
style: TextStyle(
color: Colors.white
.withValues(alpha:
0.7)),
.withValues(
alpha:
0.7)),
),
Padding(
padding:
@ -1336,9 +1339,8 @@ class _MangaChapterPageGalleryState
onPressed: () async {
final manga = chapter.manga.value!;
final source = getSource(manga.lang!, manga.source!)!;
String url = chapter.url!.startsWith('/')
? "${source.baseUrl}/${chapter.url!}"
: chapter.url!;
final url =
"${source.baseUrl}${chapter.url!.getUrlWithoutDomain}";
Map<String, dynamic> data = {
'url': url,
'sourceId': source.id.toString(),

View file

@ -43,6 +43,18 @@ extension StringExtensions on String {
source);
}
String get getUrlWithoutDomain {
final uri = Uri.parse(replaceAll(' ', '%20'));
String out = uri.path;
if (uri.query.isNotEmpty) {
out += '?${uri.query}';
}
if (uri.fragment.isNotEmpty) {
out += '#${uri.fragment}';
}
return out;
}
bool isMediaVideo() {
return [
"3gp",