mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 12:23:31 +00:00
Add user agent data for image upload/download requests
This commit is contained in:
parent
f45ace3567
commit
feb799dd20
6 changed files with 47 additions and 76 deletions
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../globals.dart';
|
||||
import '../services/auth_service.dart';
|
||||
|
||||
class LoginAwareCachedNetworkImage extends StatelessWidget {
|
||||
|
@ -22,12 +23,12 @@ class LoginAwareCachedNetworkImage extends StatelessWidget {
|
|||
Widget build(BuildContext context) {
|
||||
final profile = context.watch<AccountsService>().currentProfile;
|
||||
|
||||
Map<String, String>? headers;
|
||||
Map<String, String> headers = {'user-agent': userAgent};
|
||||
|
||||
try {
|
||||
final imageServer = Uri.parse(imageUrl).host;
|
||||
if (imageServer == profile.serverName) {
|
||||
headers = {'Authorization': profile.credentials.authHeaderValue};
|
||||
headers['Authorization'] = profile.credentials.authHeaderValue;
|
||||
}
|
||||
} catch (e) {
|
||||
_logger.severe('Error Parsing ImageURL: $e');
|
||||
|
|
|
@ -717,6 +717,7 @@ class RemoteFileClient extends FriendicaClient {
|
|||
url,
|
||||
headers: {
|
||||
'Authorization': _profile.credentials.authHeaderValue,
|
||||
'user-agent': userAgent,
|
||||
},
|
||||
);
|
||||
|
||||
|
@ -742,6 +743,7 @@ class RemoteFileClient extends FriendicaClient {
|
|||
final postUri = Uri.parse('https://$serverName/api/friendica/photo/create');
|
||||
final request = http.MultipartRequest('POST', postUri);
|
||||
request.headers['Authorization'] = _profile.credentials.authHeaderValue;
|
||||
request.headers['user-agent'] = userAgent;
|
||||
if (usePhpDebugging) {
|
||||
request.headers['Cookie'] = 'XDEBUG_SESSION=PHPSTORM;path=/';
|
||||
}
|
||||
|
|
|
@ -19,10 +19,10 @@ enum _RequestType {
|
|||
|
||||
const _expireDuration = Duration(seconds: 2);
|
||||
|
||||
class _UserAgentClient extends http.BaseClient {
|
||||
http.Client _inner;
|
||||
class RelaticaUserAgentHttpClient extends http.BaseClient {
|
||||
final http.Client _inner;
|
||||
|
||||
_UserAgentClient() : _inner = http.Client();
|
||||
RelaticaUserAgentHttpClient() : _inner = http.Client();
|
||||
|
||||
@override
|
||||
Future<http.StreamedResponse> send(http.BaseRequest request) {
|
||||
|
@ -124,7 +124,7 @@ class _ExpiringRequestCache {
|
|||
print('Returning cached response for $type => $url');
|
||||
response = _responses[requestStub]?.response ?? http.Response('', 555);
|
||||
} else {
|
||||
final request = _UserAgentClient().get(
|
||||
final request = RelaticaUserAgentHttpClient().get(
|
||||
url,
|
||||
headers: headers,
|
||||
);
|
||||
|
@ -196,7 +196,7 @@ FutureResult<String, ExecError> postUrl(
|
|||
requestHeaders['Cookie'] = 'XDEBUG_SESSION=PHPSTORM;path=/';
|
||||
}
|
||||
try {
|
||||
final request = _UserAgentClient().post(
|
||||
final request = RelaticaUserAgentHttpClient().post(
|
||||
url,
|
||||
headers: requestHeaders,
|
||||
body: jsonEncode(body),
|
||||
|
@ -227,7 +227,7 @@ FutureResult<String, ExecError> putUrl(
|
|||
}) async {
|
||||
_logger.fine('PUT: $url \n Body: $body');
|
||||
try {
|
||||
final request = _UserAgentClient().put(
|
||||
final request = RelaticaUserAgentHttpClient().put(
|
||||
url,
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
|
@ -258,7 +258,7 @@ FutureResult<String, ExecError> deleteUrl(
|
|||
}) async {
|
||||
_logger.fine('DELETE: $url');
|
||||
try {
|
||||
final request = _UserAgentClient().delete(
|
||||
final request = RelaticaUserAgentHttpClient().delete(
|
||||
url,
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:html/parser.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:result_monad/result_monad.dart';
|
||||
|
||||
import '../models/exec_error.dart';
|
||||
import '../models/link_preview_data.dart';
|
||||
import 'network_utils.dart';
|
||||
|
||||
const ogTitleKey = 'og:title';
|
||||
const ogDescriptionKey = 'og:description';
|
||||
|
@ -35,7 +35,7 @@ FutureResult<LinkPreviewData, ExecError> getLinkPreview(String url) async {
|
|||
FutureResult<List<MapEntry<String, String>>, dynamic> _getOpenGraphData(
|
||||
String url) async {
|
||||
return runCatchingAsync<List<MapEntry<String, String>>>(() async {
|
||||
final response = await http.get(Uri.parse(url));
|
||||
final response = await RelaticaUserAgentHttpClient().get(Uri.parse(url));
|
||||
if (response.statusCode != 200) {
|
||||
return buildErrorResult(
|
||||
type: ErrorType.serverError,
|
||||
|
|
96
pubspec.lock
96
pubspec.lock
|
@ -181,10 +181,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.18.0"
|
||||
version: "1.17.2"
|
||||
color_blindness:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -309,10 +309,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
|
||||
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.0"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -733,30 +733,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.8.1"
|
||||
leak_tracker:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.0"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -785,18 +761,18 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.16+1"
|
||||
version: "0.12.16"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.8.0"
|
||||
version: "0.5.0"
|
||||
media_kit:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -873,10 +849,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
||||
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.9.1"
|
||||
mime:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -953,26 +929,26 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: package_info_plus
|
||||
sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0
|
||||
sha256: "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.0.0"
|
||||
version: "4.2.0"
|
||||
package_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_info_plus_platform_interface
|
||||
sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e
|
||||
sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
version: "2.0.1"
|
||||
path:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path
|
||||
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
version: "1.8.3"
|
||||
path_parsing:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1303,18 +1279,18 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.1"
|
||||
version: "1.11.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.1"
|
||||
stream_transform:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1359,10 +1335,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.6.0"
|
||||
time_machine:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -1547,14 +1523,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.17"
|
||||
vm_service:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "13.0.0"
|
||||
volume_controller:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1567,18 +1535,18 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_plus
|
||||
sha256: "14758533319a462ffb5aa3b7ddb198e59b29ac3b02da14173a1715d65d4e6e68"
|
||||
sha256: f268ca2116db22e57577fb99d52515a24bdc1d570f12ac18bb762361d43b043d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.5"
|
||||
version: "1.1.4"
|
||||
wakelock_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_plus_platform_interface
|
||||
sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16"
|
||||
sha256: "40fabed5da06caff0796dc638e1f07ee395fb18801fbff3255a2372db2d80385"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
version: "1.1.0"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1591,10 +1559,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
|
||||
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
version: "0.1.4-beta"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1607,10 +1575,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb"
|
||||
sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.5.0"
|
||||
version: "5.1.1"
|
||||
win32_registry:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1652,5 +1620,5 @@ packages:
|
|||
source: hosted
|
||||
version: "3.1.2"
|
||||
sdks:
|
||||
dart: ">=3.3.0 <4.0.0"
|
||||
flutter: ">=3.19.0"
|
||||
dart: ">=3.1.0 <4.0.0"
|
||||
flutter: ">=3.10.0"
|
||||
|
|
|
@ -38,7 +38,7 @@ dependencies:
|
|||
network_to_file_image: ^4.0.1
|
||||
objectbox: ^2.3.1
|
||||
objectbox_flutter_libs: ^2.3.1
|
||||
package_info_plus: ^8.0.0
|
||||
package_info_plus: ^4.2.0
|
||||
path: ^1.8.2
|
||||
path_provider: ^2.0.11
|
||||
provider: ^6.0.4
|
||||
|
|
Loading…
Reference in a new issue