import 'dart:convert'; import 'package:loris/business_logic/timeline/timeline.dart'; import 'package:loris/global.dart' as global; import 'package:http/http.dart' as http; Future> getPostFromUrl( String id, String posturl, ) async { Map headers = global.settings!.identities[id]!.getAuthHeaders(); headers.addAll(global.defaultHeaders); final uriv1 = Uri( scheme: "https", host: global.settings!.identities[id]!.instanceUrl, path: "api/v1/search", queryParameters: { "resolve": "true", "type": "statuses", "q": posturl, }, ); http.Response response = await http.get(uriv1, headers: headers); if (response.statusCode != 200) { final uriv2 = Uri( scheme: "https", host: global.settings!.identities[id]!.instanceUrl, path: "api/v2/search", queryParameters: { "type": "statuses", "q": posturl, "resolve": "true", }, ); response = await http.get(uriv2, headers: headers); } if (response.statusCode != 200) { return {response.statusCode: null}; } final Map json = jsonDecode(response.body); final List statuses = json["statuses"]; if (statuses.isEmpty) { return {404: null}; } return {200: PostModel.fromJson(statuses[0], id)}; }