mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: 侧边栏、动态重构,排行改为首页分区,平板、折叠屏、竖屏视频新适配,播放页可隐藏黑边、截图、点踩,弹幕粗细调整,默认关闭后台播放,弹窗接受返回
This commit is contained in:
@@ -42,6 +42,12 @@ class Api {
|
||||
|
||||
// 视频点踩 web端不支持
|
||||
|
||||
// 点踩 Post(app端)
|
||||
/// access_key str APP登录Token 必要
|
||||
/// aid num 稿件avid 必要
|
||||
///
|
||||
static const String dislikeVideo = '${HttpString.appBaseUrl}/x/v2/view/dislike';
|
||||
|
||||
// 投币视频(web端)POST
|
||||
/// aid num 稿件avid 必要(可选) avid与bvid任选一个
|
||||
/// bvid str 稿件bvid 必要(可选) avid与bvid任选一个
|
||||
@@ -334,10 +340,26 @@ class Api {
|
||||
|
||||
static const String webDanmaku = '/x/v2/dm/web/seg.so';
|
||||
|
||||
//发送视频弹幕
|
||||
// 发送视频弹幕
|
||||
//https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/danmaku/action.md
|
||||
static const String shootDanmaku = '/x/v2/dm/post';
|
||||
|
||||
// 弹幕屏蔽查询(Get)
|
||||
static const String danmakuFilter = '/x/dm/filter/user';
|
||||
|
||||
// 弹幕屏蔽词添加(Post)
|
||||
// 表单内容:
|
||||
// type: 0(关键词)1(正则)2(用户)
|
||||
// filter: 屏蔽内容
|
||||
// csrf
|
||||
static const String danmakuFilterAdd = '/x/dm/filter/user/add';
|
||||
|
||||
// 弹幕屏蔽词删除(Post)
|
||||
// 表单内容:
|
||||
// ids: 被删除条目编号
|
||||
// csrf
|
||||
static const String danmakuFilterDel = '/x/dm/filter/user/del';
|
||||
|
||||
// up主分组
|
||||
static const String followUpTag = '/x/relation/tags';
|
||||
|
||||
|
||||
63
lib/http/danmaku_block.dart
Normal file
63
lib/http/danmaku_block.dart
Normal file
@@ -0,0 +1,63 @@
|
||||
import '../models/user/danmaku_block.dart';
|
||||
import 'index.dart';
|
||||
|
||||
class DanmakuFilterHttp {
|
||||
static Future danmakuFilter() async {
|
||||
var res = await Request().get(Api.danmakuFilter);
|
||||
if (res.data['code'] == 0) {
|
||||
return {
|
||||
'status': true,
|
||||
'data': DanmakuBlockDataModel.fromJson(res.data['data'])
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
'status': false,
|
||||
'data': [],
|
||||
'msg': res.data['message'],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
static Future danmakuFilterDel({required int ids}) async {
|
||||
var res = await Request().post(
|
||||
Api.danmakuFilterDel,
|
||||
queryParameters: {
|
||||
'ids': ids,
|
||||
'csrf': await Request.getCsrf(),
|
||||
},
|
||||
);
|
||||
if (res.data['code'] == 0) {
|
||||
return {
|
||||
'status': true,
|
||||
'msg': '操作成功',
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
'status': false,
|
||||
'msg': res.data['message'],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
static Future danmakuFilterAdd({required String filter, required int type}) async {
|
||||
var res = await Request().post(
|
||||
Api.danmakuFilterAdd,
|
||||
queryParameters: {
|
||||
'type': type,
|
||||
'filter': filter,
|
||||
'csrf': await Request.getCsrf(),
|
||||
},
|
||||
);
|
||||
if (res.data['code'] == 0) {
|
||||
return {
|
||||
'status': true,
|
||||
'data': Rule.fromJson(res.data['data']),
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
'status': false,
|
||||
'msg': res.data['message'],
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,15 +5,13 @@ import 'index.dart';
|
||||
class DynamicsHttp {
|
||||
static Future followDynamic({
|
||||
String? type,
|
||||
int? page,
|
||||
String? offset,
|
||||
int? mid,
|
||||
}) async {
|
||||
Map<String, dynamic> data = {
|
||||
'type': type ?? 'all',
|
||||
'page': page ?? 1,
|
||||
'timezone_offset': '-480',
|
||||
'offset': page == 1 ? '' : offset,
|
||||
'offset': offset,
|
||||
'features': 'itemOpusStyle'
|
||||
};
|
||||
if (mid != -1) {
|
||||
|
||||
@@ -10,6 +10,7 @@ import '../models/user/fav_folder.dart';
|
||||
import '../models/video/ai.dart';
|
||||
import '../models/video/play/url.dart';
|
||||
import '../models/video_detail_res.dart';
|
||||
import '../utils/id_utils.dart';
|
||||
import '../utils/recommend_filter.dart';
|
||||
import '../utils/storage.dart';
|
||||
import '../utils/wbi_sign.dart';
|
||||
@@ -319,6 +320,29 @@ class VideoHttp {
|
||||
}
|
||||
}
|
||||
|
||||
// (取消)点踩
|
||||
static Future dislikeVideo({required String bvid, required bool type}) async {
|
||||
String? accessKey = GStrorage.localCache
|
||||
.get(LocalCacheKey.accessKey, defaultValue: {})['value'];
|
||||
if (accessKey == null || accessKey == "") {
|
||||
return {'status': false, 'data': [], 'msg': "本操作使用app端接口,请前往【隐私设置】刷新access_key"};
|
||||
}
|
||||
var res = await Request().post(
|
||||
Api.dislikeVideo,
|
||||
queryParameters: {
|
||||
'aid': IdUtils.bv2av(bvid),
|
||||
'dislike': type ? 0 : 1,
|
||||
'access_key': accessKey,
|
||||
},
|
||||
);
|
||||
print(res);
|
||||
if (res.data is! String && res.data['code'] == 0) {
|
||||
return {'status': true, 'data': res.data['data']};
|
||||
} else {
|
||||
return {'status': false, 'data': [], 'msg': res.data['message']};
|
||||
}
|
||||
}
|
||||
|
||||
// (取消)收藏
|
||||
static Future favVideo(
|
||||
{required int aid, String? addIds, String? delIds}) async {
|
||||
|
||||
Reference in New Issue
Block a user