40 lines
1.1 KiB
Dart
40 lines
1.1 KiB
Dart
import 'package:get/get.dart';
|
|
|
|
import 'package:f0ckapp/models/media_item.dart';
|
|
|
|
const List<String> mediaTypes = ["alles", "image", "video", "audio"];
|
|
const List<String> mediaModes = ["sfw", "nsfw", "untagged", "all"];
|
|
|
|
class MediaService extends GetConnect {
|
|
Future<List<MediaItem>> fetchMediaItems({
|
|
required int type,
|
|
required int mode,
|
|
required int random,
|
|
String? tag,
|
|
int? older,
|
|
}) async {
|
|
final queryParameters = {
|
|
'type': type.toString(),
|
|
'mode': mode.toString(),
|
|
'random': random.toString(),
|
|
if (tag != null) 'tag': tag,
|
|
if (older != null) 'older': older.toString(),
|
|
};
|
|
|
|
try {
|
|
final response = await get(
|
|
'https://api.f0ck.me/items/get',
|
|
query: queryParameters,
|
|
);
|
|
if (response.status.code == 200 && response.body is List) {
|
|
final data = response.body as List<dynamic>;
|
|
return data.map((json) => MediaItem.fromJson(json)).toList();
|
|
} else {
|
|
return Future.error('Fehler beim Laden der Daten: ${response.body}');
|
|
}
|
|
} catch (e) {
|
|
return Future.error('Netzwerkfehler: ${e.toString()}');
|
|
}
|
|
}
|
|
}
|