diff --git a/lib/presentation/provider/booru/post_headers_factory.dart b/lib/presentation/provider/booru/post_headers_factory.dart index 6dfa5037..9c13ff06 100644 --- a/lib/presentation/provider/booru/post_headers_factory.dart +++ b/lib/presentation/provider/booru/post_headers_factory.dart @@ -8,7 +8,7 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'post_headers_factory.g.dart'; -String _createReferer(String url) { +String createReferer(String url) { final uri = Uri.parse(url); final path = uri.path.replaceAll(RegExp('/+'), '/'); return uri.replace(path: uri.hasAbsolutePath ? path : '/').toString(); @@ -22,7 +22,7 @@ Map postHeadersFactory( }) { final versionRepo = ref.watch(versionRepoProvider); final url = post.postUrl.isEmpty ? post.content.url : post.postUrl; - final referer = _createReferer(url); + final referer = createReferer(url); return HeadersFactory.builder() .setCookies(cookies) diff --git a/lib/presentation/provider/download/downloader.dart b/lib/presentation/provider/download/downloader.dart index aaf53c14..81b10545 100644 --- a/lib/presentation/provider/download/downloader.dart +++ b/lib/presentation/provider/download/downloader.dart @@ -2,6 +2,7 @@ import 'package:boorusphere/data/dio/headers_factory.dart'; import 'package:boorusphere/data/repository/booru/entity/post.dart'; import 'package:boorusphere/data/repository/downloads/entity/download_entry.dart'; import 'package:boorusphere/domain/provider.dart'; +import 'package:boorusphere/presentation/provider/booru/post_headers_factory.dart'; import 'package:boorusphere/presentation/provider/download/download_state.dart'; import 'package:boorusphere/presentation/provider/shared_storage_handle.dart'; import 'package:boorusphere/utils/extensions/string.dart'; @@ -41,8 +42,10 @@ class Downloader { savedDir: targetPath ?? sharedStorageHandle.path, showNotification: true, openFileFromNotification: true, - headers: - HeadersFactory.builder().setUserAgent(versionRepo.current).build(), + headers: HeadersFactory.builder() + .setUserAgent(versionRepo.current) + .setReferer(createReferer(fileUrl)) + .build(), ); if (taskId != null) {