use gomuks for downloading media

This commit is contained in:
Henry Hiles 2026-07-26 23:01:36 -04:00
commit fa451621de
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
20 changed files with 159 additions and 241 deletions

View file

@ -18,6 +18,7 @@ import "package:nexus/models/content/message.dart";
import "package:nexus/models/event.dart";
import "package:nexus/models/oauth_auth_code_response.dart";
import "package:nexus/models/paginate.dart";
import "package:nexus/models/requests/download_media.dart";
import "package:nexus/models/requests/get_event.dart";
import "package:nexus/models/requests/get_related_events.dart";
import "package:nexus/models/requests/get_room_state.dart";
@ -271,6 +272,9 @@ class ClientController extends AsyncNotifier<int> {
Future<MessageContent> uploadMedia(UploadMediaRequest request) async =>
.fromJson(await _sendCommand("upload_media", request.toJson()));
Future<File> downloadMedia(DownloadMediaRequest request) async =>
.new((await _sendCommand("download_media", request.toJson()))["path"]);
Future<void> logout() => _sendCommand("logout");
Future<void> markRead(Room room) async {

View file

@ -1,11 +0,0 @@
import "package:cross_cache/cross_cache.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
class CrossCacheController extends Notifier<CrossCache> {
@override
CrossCache build() => .new();
static final provider = NotifierProvider<CrossCacheController, CrossCache>(
CrossCacheController.new,
);
}

View file

@ -3,7 +3,6 @@ import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:http/http.dart";
import "package:nexus/controllers/client_state.dart";
import "package:nexus/controllers/header.dart";
import "package:nexus/helpers/extensions/mxc_to_https.dart";
import "package:nexus/models/open_graph_data.dart";
class UrlPreviewController extends AsyncNotifier<OpenGraphData?> {
@ -30,12 +29,9 @@ class UrlPreviewController extends AsyncNotifier<OpenGraphData?> {
final decodedValue = json.decode(response.body);
if (decodedValue is! Map<String, dynamic>) return null;
final mxc = decodedValue["og:image"];
final image = mxc == null
? null
: Uri.tryParse(mxc)?.mxcToHttps(homeserver);
return .fromJson(decodedValue).copyWith(imageUrl: image);
return .fromJson(
decodedValue,
).copyWith(imageUrl: decodedValue["og:image"]);
}
}
}