Merge branch 'agent-string-fix' into 'main'

Send Relatica/<version> as User Agent on HTTP requests

See merge request mysocialportal/relatica!55
This commit is contained in:
HankG 2024-06-20 20:54:56 +00:00
commit 414f275936
6 changed files with 57 additions and 25 deletions

View file

@ -19,6 +19,9 @@ final platformIsDesktop = !platformIsMobile;
final useImagePicker = kIsWeb || platformIsMobile;
String appVersion = '';
String userAgent = '';
const usePhpDebugging = false;
const maxViewPortalHeight = 750.0;

View file

@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
import 'package:media_kit/media_kit.dart';
import 'package:multi_trigger_autocomplete/multi_trigger_autocomplete.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:provider/provider.dart';
import 'app_theme.dart';
@ -45,6 +46,7 @@ void main() async {
await fixLetsEncryptCertOnOldAndroid();
await dependencyInjectionInitialization();
await setupPackageInfoAndUserAgent();
runApp(DevicePreview(
enabled: !kReleaseMode && enablePreview,
@ -52,6 +54,12 @@ void main() async {
));
}
Future<void> setupPackageInfoAndUserAgent() async {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
appVersion = packageInfo.version;
userAgent = 'Relatica/$appVersion';
}
class App extends StatelessWidget {
const App({super.key});

View file

@ -19,6 +19,18 @@ enum _RequestType {
const _expireDuration = Duration(seconds: 2);
class _UserAgentClient extends http.BaseClient {
http.Client _inner;
_UserAgentClient() : _inner = http.Client();
@override
Future<http.StreamedResponse> send(http.BaseRequest request) {
request.headers['user-agent'] = userAgent;
return _inner.send(request);
}
}
class _CachedResponse {
final _RequestType requestType;
final Uri requestUri;
@ -112,7 +124,7 @@ class _ExpiringRequestCache {
print('Returning cached response for $type => $url');
response = _responses[requestStub]?.response ?? http.Response('', 555);
} else {
final request = http.get(
final request = _UserAgentClient().get(
url,
headers: headers,
);
@ -184,7 +196,7 @@ FutureResult<String, ExecError> postUrl(
requestHeaders['Cookie'] = 'XDEBUG_SESSION=PHPSTORM;path=/';
}
try {
final request = http.post(
final request = _UserAgentClient().post(
url,
headers: requestHeaders,
body: jsonEncode(body),
@ -215,7 +227,7 @@ FutureResult<String, ExecError> putUrl(
}) async {
_logger.fine('PUT: $url \n Body: $body');
try {
final request = http.put(
final request = _UserAgentClient().put(
url,
headers: headers,
body: jsonEncode(body),
@ -246,7 +258,7 @@ FutureResult<String, ExecError> deleteUrl(
}) async {
_logger.fine('DELETE: $url');
try {
final request = http.delete(
final request = _UserAgentClient().delete(
url,
headers: headers,
body: jsonEncode(body),

View file

@ -119,7 +119,7 @@ SPEC CHECKSUMS:
media_kit_video: c75b07f14d59706c775778e4dd47dd027de8d1e5
ObjectBox: e7ff611291a0663380e0736b46786bcd077294ff
objectbox_flutter_libs: 32997857c213cbcc6f9b25ffc73e1e3c34ea3c8e
package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce
package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
screen_brightness_macos: 2d6d3af2165592d9a55ffcd95b7550970e41ebda
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126

View file

@ -253,10 +253,10 @@ packages:
dependency: transitive
description:
name: dbus
sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263"
sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac"
url: "https://pub.dev"
source: hosted
version: "0.7.8"
version: "0.7.10"
desktop_window:
dependency: "direct main"
description:
@ -309,10 +309,10 @@ packages:
dependency: transitive
description:
name: ffi
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.2"
file:
dependency: transitive
description:
@ -950,21 +950,21 @@ packages:
source: hosted
version: "2.1.0"
package_info_plus:
dependency: transitive
dependency: "direct main"
description:
name: package_info_plus
sha256: "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017"
sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0
url: "https://pub.dev"
source: hosted
version: "4.2.0"
version: "8.0.0"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "3.0.0"
path:
dependency: "direct main"
description:
@ -1049,10 +1049,10 @@ packages:
dependency: transitive
description:
name: plugin_platform_interface
sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev"
source: hosted
version: "2.1.6"
version: "2.1.8"
pointycastle:
dependency: transitive
description:
@ -1567,18 +1567,18 @@ packages:
dependency: transitive
description:
name: wakelock_plus
sha256: f45a6c03aa3f8322e0a9d7f4a0482721c8789cb41d555407367650b8f9c26018
sha256: "14758533319a462ffb5aa3b7ddb198e59b29ac3b02da14173a1715d65d4e6e68"
url: "https://pub.dev"
source: hosted
version: "1.1.3"
version: "1.2.5"
wakelock_plus_platform_interface:
dependency: transitive
description:
name: wakelock_plus_platform_interface
sha256: "40fabed5da06caff0796dc638e1f07ee395fb18801fbff3255a2372db2d80385"
sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.2.1"
watcher:
dependency: transitive
description:
@ -1587,6 +1587,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.0"
web:
dependency: transitive
description:
name: web
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev"
source: hosted
version: "0.5.1"
web_socket_channel:
dependency: transitive
description:
@ -1599,10 +1607,10 @@ packages:
dependency: transitive
description:
name: win32
sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3"
sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb"
url: "https://pub.dev"
source: hosted
version: "5.0.9"
version: "5.5.0"
win32_registry:
dependency: transitive
description:
@ -1644,5 +1652,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
dart: ">=3.2.0-0 <4.0.0"
flutter: ">=3.10.0"
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.19.0"

View file

@ -2,7 +2,7 @@ name: relatica
description: A mobile and desktop client for interacting with the Friendica social network
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 0.10.0
version: 0.10.1
environment:
sdk: '>=3.0.0 <4.0.0'
@ -38,6 +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
path: ^1.8.2
path_provider: ^2.0.11
provider: ^6.0.4