diff --git a/lib/http/search.dart b/lib/http/search.dart index 8583b271..7b21c2cd 100644 --- a/lib/http/search.dart +++ b/lib/http/search.dart @@ -1,13 +1,16 @@ import 'dart:convert'; +import 'package:hive/hive.dart'; import 'package:pilipala/http/index.dart'; import 'package:pilipala/models/bangumi/info.dart'; import 'package:pilipala/models/common/search_type.dart'; import 'package:pilipala/models/search/hot.dart'; import 'package:pilipala/models/search/result.dart'; import 'package:pilipala/models/search/suggest.dart'; +import 'package:pilipala/utils/storage.dart'; class SearchHttp { + static Box setting = GStrorage.setting; static Future hotSearchList() async { var res = await Request().get(Api.hotSearchList); if (res.data is String) { @@ -78,6 +81,12 @@ class SearchHttp { try { switch (searchType) { case SearchType.video: + List blackMidsList = + setting.get(SettingBoxKey.blackMidsList, defaultValue: [-1]); + for (var i in res.data['data']['result']) { + // 屏蔽推广和拉黑用户 + i['available'] = !blackMidsList.contains(i['mid']); + } data = SearchVideoModel.fromJson(res.data['data']); break; case SearchType.live_room: diff --git a/lib/models/search/result.dart b/lib/models/search/result.dart index 7aec24dd..3d381ed9 100644 --- a/lib/models/search/result.dart +++ b/lib/models/search/result.dart @@ -6,6 +6,7 @@ class SearchVideoModel { List? list; SearchVideoModel.fromJson(Map json) { list = json['result'] + .where((e) => e['available'] == true) .map((e) => SearchVideoItemModel.fromJson(e)) .toList(); } @@ -17,7 +18,7 @@ class SearchVideoItemModel { this.id, this.cid, // this.author, - // this.mid, + this.mid, // this.typeid, // this.typename, this.arcurl, @@ -47,7 +48,7 @@ class SearchVideoItemModel { int? id; int? cid; // String? author; - // String? mid; + int? mid; // String? typeid; // String? typename; String? arcurl; @@ -80,6 +81,7 @@ class SearchVideoItemModel { arcurl = json['arcurl']; aid = json['aid']; bvid = json['bvid']; + mid = json['mid']; // title = json['title'].replaceAll(RegExp(r'<.*?>'), ''); title = Em.regTitle(json['title']); description = json['description'];