import 'dart:convert'; import 'dart:math'; import 'dart:typed_data'; import '../log/log.dart'; import '../types/actor.dart'; import '../types/tag.dart'; import '../types/video.dart'; import '../types/video_data.dart'; import 'api.dart'; Future loadVideoData(int videoId) async { final data = await API.query("video", "loadVideo", {'MovieId': videoId}); final d = jsonDecode(data); final video = VideoData.fromJson(d); return video; } Future> loadVideo(Tag? tag, int filterIdx) async { final data = await API .query("video", "getMovies", {'Tag': tag?.tagId ?? 1, 'Sort': filterIdx}); final d = jsonDecode(data); List dta = (d['Videos'] as List).map((e) => VideoT.fromJson(e)).toList(); return dta; } Future> loadShuffledVideos(int nr) async { final data = await API.query("video", "getRandomMovies", {'Number': nr, 'Seed': Random().nextInt(0x7fffffff)}); final d = jsonDecode(data); List dta = (d['Videos'] as List).map((e) => VideoT.fromJson(e)).toList(); return dta; } Future> loadVideoByActor(Actor actor) async { final data = await API.query("actor", "getActorInfo", {'ActorId': actor.actorId}); final d = jsonDecode(data); List dta = (d['Videos'] as List).map((e) => VideoT.fromJson(e)).toList(); return dta; } Future addLike(int movieId) async { final data = await API.query("video", "addLike", {'MovieId': movieId}); final d = jsonDecode(data); if (d["result"] != 'success') { Log.w(d); } return d["result"] == 'success'; } Future fetchThumbnail(int movieId) async { final base64str = await API.query("video", "readThumbnail", {'Movieid': movieId}); return base64Decode(base64str.substring(23)); }