mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: update dm data model
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
7242
lib/grpc/dm/v1/dm.pb.dart
Normal file
7242
lib/grpc/dm/v1/dm.pb.dart
Normal file
File diff suppressed because it is too large
Load Diff
231
lib/grpc/dm/v1/dm.pbenum.dart
Normal file
231
lib/grpc/dm/v1/dm.pbenum.dart
Normal file
@@ -0,0 +1,231 @@
|
|||||||
|
//
|
||||||
|
// Generated code. Do not modify.
|
||||||
|
// source: bilibili/community/service/dm/v1/dm.proto
|
||||||
|
//
|
||||||
|
// @dart = 2.12
|
||||||
|
|
||||||
|
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||||
|
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||||
|
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||||
|
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||||
|
|
||||||
|
import 'dart:core' as $core;
|
||||||
|
|
||||||
|
import 'package:protobuf/protobuf.dart' as $pb;
|
||||||
|
|
||||||
|
class AvatarType extends $pb.ProtobufEnum {
|
||||||
|
static const AvatarType AvatarTypeNone = AvatarType._(0, _omitEnumNames ? '' : 'AvatarTypeNone');
|
||||||
|
static const AvatarType AvatarTypeNFT = AvatarType._(1, _omitEnumNames ? '' : 'AvatarTypeNFT');
|
||||||
|
|
||||||
|
static const $core.List<AvatarType> values = <AvatarType> [
|
||||||
|
AvatarTypeNone,
|
||||||
|
AvatarTypeNFT,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, AvatarType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static AvatarType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const AvatarType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class BubbleType extends $pb.ProtobufEnum {
|
||||||
|
static const BubbleType BubbleTypeNone = BubbleType._(0, _omitEnumNames ? '' : 'BubbleTypeNone');
|
||||||
|
static const BubbleType BubbleTypeClickButton = BubbleType._(1, _omitEnumNames ? '' : 'BubbleTypeClickButton');
|
||||||
|
static const BubbleType BubbleTypeDmSettingPanel = BubbleType._(2, _omitEnumNames ? '' : 'BubbleTypeDmSettingPanel');
|
||||||
|
|
||||||
|
static const $core.List<BubbleType> values = <BubbleType> [
|
||||||
|
BubbleTypeNone,
|
||||||
|
BubbleTypeClickButton,
|
||||||
|
BubbleTypeDmSettingPanel,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, BubbleType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static BubbleType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const BubbleType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class CheckboxType extends $pb.ProtobufEnum {
|
||||||
|
static const CheckboxType CheckboxTypeNone = CheckboxType._(0, _omitEnumNames ? '' : 'CheckboxTypeNone');
|
||||||
|
static const CheckboxType CheckboxTypeEncourage = CheckboxType._(1, _omitEnumNames ? '' : 'CheckboxTypeEncourage');
|
||||||
|
static const CheckboxType CheckboxTypeColorDM = CheckboxType._(2, _omitEnumNames ? '' : 'CheckboxTypeColorDM');
|
||||||
|
|
||||||
|
static const $core.List<CheckboxType> values = <CheckboxType> [
|
||||||
|
CheckboxTypeNone,
|
||||||
|
CheckboxTypeEncourage,
|
||||||
|
CheckboxTypeColorDM,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, CheckboxType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static CheckboxType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const CheckboxType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 弹幕属性位值
|
||||||
|
class DMAttrBit extends $pb.ProtobufEnum {
|
||||||
|
static const DMAttrBit DMAttrBitProtect = DMAttrBit._(0, _omitEnumNames ? '' : 'DMAttrBitProtect');
|
||||||
|
static const DMAttrBit DMAttrBitFromLive = DMAttrBit._(1, _omitEnumNames ? '' : 'DMAttrBitFromLive');
|
||||||
|
static const DMAttrBit DMAttrHighLike = DMAttrBit._(2, _omitEnumNames ? '' : 'DMAttrHighLike');
|
||||||
|
|
||||||
|
static const $core.List<DMAttrBit> values = <DMAttrBit> [
|
||||||
|
DMAttrBitProtect,
|
||||||
|
DMAttrBitFromLive,
|
||||||
|
DMAttrHighLike,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, DMAttrBit> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static DMAttrBit? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const DMAttrBit._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class DmColorfulType extends $pb.ProtobufEnum {
|
||||||
|
static const DmColorfulType NoneType = DmColorfulType._(0, _omitEnumNames ? '' : 'NoneType');
|
||||||
|
static const DmColorfulType VipGradualColor = DmColorfulType._(60001, _omitEnumNames ? '' : 'VipGradualColor');
|
||||||
|
|
||||||
|
static const $core.List<DmColorfulType> values = <DmColorfulType> [
|
||||||
|
NoneType,
|
||||||
|
VipGradualColor,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, DmColorfulType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static DmColorfulType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const DmColorfulType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class ExposureType extends $pb.ProtobufEnum {
|
||||||
|
static const ExposureType ExposureTypeNone = ExposureType._(0, _omitEnumNames ? '' : 'ExposureTypeNone');
|
||||||
|
static const ExposureType ExposureTypeDMSend = ExposureType._(1, _omitEnumNames ? '' : 'ExposureTypeDMSend');
|
||||||
|
|
||||||
|
static const $core.List<ExposureType> values = <ExposureType> [
|
||||||
|
ExposureTypeNone,
|
||||||
|
ExposureTypeDMSend,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, ExposureType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static ExposureType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const ExposureType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class PostPanelBizType extends $pb.ProtobufEnum {
|
||||||
|
static const PostPanelBizType PostPanelBizTypeNone = PostPanelBizType._(0, _omitEnumNames ? '' : 'PostPanelBizTypeNone');
|
||||||
|
static const PostPanelBizType PostPanelBizTypeEncourage = PostPanelBizType._(1, _omitEnumNames ? '' : 'PostPanelBizTypeEncourage');
|
||||||
|
static const PostPanelBizType PostPanelBizTypeColorDM = PostPanelBizType._(2, _omitEnumNames ? '' : 'PostPanelBizTypeColorDM');
|
||||||
|
static const PostPanelBizType PostPanelBizTypeNFTDM = PostPanelBizType._(3, _omitEnumNames ? '' : 'PostPanelBizTypeNFTDM');
|
||||||
|
static const PostPanelBizType PostPanelBizTypeFragClose = PostPanelBizType._(4, _omitEnumNames ? '' : 'PostPanelBizTypeFragClose');
|
||||||
|
static const PostPanelBizType PostPanelBizTypeRecommend = PostPanelBizType._(5, _omitEnumNames ? '' : 'PostPanelBizTypeRecommend');
|
||||||
|
|
||||||
|
static const $core.List<PostPanelBizType> values = <PostPanelBizType> [
|
||||||
|
PostPanelBizTypeNone,
|
||||||
|
PostPanelBizTypeEncourage,
|
||||||
|
PostPanelBizTypeColorDM,
|
||||||
|
PostPanelBizTypeNFTDM,
|
||||||
|
PostPanelBizTypeFragClose,
|
||||||
|
PostPanelBizTypeRecommend,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, PostPanelBizType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static PostPanelBizType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const PostPanelBizType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class PostStatus extends $pb.ProtobufEnum {
|
||||||
|
static const PostStatus PostStatusNormal = PostStatus._(0, _omitEnumNames ? '' : 'PostStatusNormal');
|
||||||
|
static const PostStatus PostStatusClosed = PostStatus._(1, _omitEnumNames ? '' : 'PostStatusClosed');
|
||||||
|
|
||||||
|
static const $core.List<PostStatus> values = <PostStatus> [
|
||||||
|
PostStatusNormal,
|
||||||
|
PostStatusClosed,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, PostStatus> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static PostStatus? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const PostStatus._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class RenderType extends $pb.ProtobufEnum {
|
||||||
|
static const RenderType RenderTypeNone = RenderType._(0, _omitEnumNames ? '' : 'RenderTypeNone');
|
||||||
|
static const RenderType RenderTypeSingle = RenderType._(1, _omitEnumNames ? '' : 'RenderTypeSingle');
|
||||||
|
static const RenderType RenderTypeRotation = RenderType._(2, _omitEnumNames ? '' : 'RenderTypeRotation');
|
||||||
|
|
||||||
|
static const $core.List<RenderType> values = <RenderType> [
|
||||||
|
RenderTypeNone,
|
||||||
|
RenderTypeSingle,
|
||||||
|
RenderTypeRotation,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, RenderType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static RenderType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const RenderType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class SubtitleAiStatus extends $pb.ProtobufEnum {
|
||||||
|
static const SubtitleAiStatus None = SubtitleAiStatus._(0, _omitEnumNames ? '' : 'None');
|
||||||
|
static const SubtitleAiStatus Exposure = SubtitleAiStatus._(1, _omitEnumNames ? '' : 'Exposure');
|
||||||
|
static const SubtitleAiStatus Assist = SubtitleAiStatus._(2, _omitEnumNames ? '' : 'Assist');
|
||||||
|
|
||||||
|
static const $core.List<SubtitleAiStatus> values = <SubtitleAiStatus> [
|
||||||
|
None,
|
||||||
|
Exposure,
|
||||||
|
Assist,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, SubtitleAiStatus> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static SubtitleAiStatus? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const SubtitleAiStatus._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class SubtitleAiType extends $pb.ProtobufEnum {
|
||||||
|
static const SubtitleAiType Normal = SubtitleAiType._(0, _omitEnumNames ? '' : 'Normal');
|
||||||
|
static const SubtitleAiType Translate = SubtitleAiType._(1, _omitEnumNames ? '' : 'Translate');
|
||||||
|
|
||||||
|
static const $core.List<SubtitleAiType> values = <SubtitleAiType> [
|
||||||
|
Normal,
|
||||||
|
Translate,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, SubtitleAiType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static SubtitleAiType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const SubtitleAiType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class SubtitleType extends $pb.ProtobufEnum {
|
||||||
|
static const SubtitleType CC = SubtitleType._(0, _omitEnumNames ? '' : 'CC');
|
||||||
|
static const SubtitleType AI = SubtitleType._(1, _omitEnumNames ? '' : 'AI');
|
||||||
|
|
||||||
|
static const $core.List<SubtitleType> values = <SubtitleType> [
|
||||||
|
CC,
|
||||||
|
AI,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, SubtitleType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static SubtitleType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const SubtitleType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
class ToastFunctionType extends $pb.ProtobufEnum {
|
||||||
|
static const ToastFunctionType ToastFunctionTypeNone = ToastFunctionType._(0, _omitEnumNames ? '' : 'ToastFunctionTypeNone');
|
||||||
|
static const ToastFunctionType ToastFunctionTypePostPanel = ToastFunctionType._(1, _omitEnumNames ? '' : 'ToastFunctionTypePostPanel');
|
||||||
|
|
||||||
|
static const $core.List<ToastFunctionType> values = <ToastFunctionType> [
|
||||||
|
ToastFunctionTypeNone,
|
||||||
|
ToastFunctionTypePostPanel,
|
||||||
|
];
|
||||||
|
|
||||||
|
static final $core.Map<$core.int, ToastFunctionType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||||
|
static ToastFunctionType? valueOf($core.int value) => _byValue[value];
|
||||||
|
|
||||||
|
const ToastFunctionType._($core.int v, $core.String n) : super(v, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const _omitEnumNames = $core.bool.fromEnvironment('protobuf.omit_enum_names');
|
||||||
159
lib/grpc/dm/v1/dm.pbgrpc.dart
Normal file
159
lib/grpc/dm/v1/dm.pbgrpc.dart
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
//
|
||||||
|
// Generated code. Do not modify.
|
||||||
|
// source: bilibili/community/service/dm/v1/dm.proto
|
||||||
|
//
|
||||||
|
// @dart = 2.12
|
||||||
|
|
||||||
|
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||||
|
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||||
|
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||||
|
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||||
|
|
||||||
|
import 'dart:async' as $async;
|
||||||
|
import 'dart:core' as $core;
|
||||||
|
|
||||||
|
import 'package:grpc/service_api.dart' as $grpc;
|
||||||
|
import 'package:protobuf/protobuf.dart' as $pb;
|
||||||
|
|
||||||
|
import 'dm.pb.dart' as $0;
|
||||||
|
|
||||||
|
export 'dm.pb.dart';
|
||||||
|
|
||||||
|
@$pb.GrpcServiceName('bilibili.community.service.dm.v1.DM')
|
||||||
|
class DMClient extends $grpc.Client {
|
||||||
|
static final _$dmSegMobile = $grpc.ClientMethod<$0.DmSegMobileReq, $0.DmSegMobileReply>(
|
||||||
|
'/bilibili.community.service.dm.v1.DM/DmSegMobile',
|
||||||
|
($0.DmSegMobileReq value) => value.writeToBuffer(),
|
||||||
|
($core.List<$core.int> value) => $0.DmSegMobileReply.fromBuffer(value));
|
||||||
|
static final _$dmView = $grpc.ClientMethod<$0.DmViewReq, $0.DmViewReply>(
|
||||||
|
'/bilibili.community.service.dm.v1.DM/DmView',
|
||||||
|
($0.DmViewReq value) => value.writeToBuffer(),
|
||||||
|
($core.List<$core.int> value) => $0.DmViewReply.fromBuffer(value));
|
||||||
|
static final _$dmPlayerConfig = $grpc.ClientMethod<$0.DmPlayerConfigReq, $0.Response>(
|
||||||
|
'/bilibili.community.service.dm.v1.DM/DmPlayerConfig',
|
||||||
|
($0.DmPlayerConfigReq value) => value.writeToBuffer(),
|
||||||
|
($core.List<$core.int> value) => $0.Response.fromBuffer(value));
|
||||||
|
static final _$dmSegOtt = $grpc.ClientMethod<$0.DmSegOttReq, $0.DmSegOttReply>(
|
||||||
|
'/bilibili.community.service.dm.v1.DM/DmSegOtt',
|
||||||
|
($0.DmSegOttReq value) => value.writeToBuffer(),
|
||||||
|
($core.List<$core.int> value) => $0.DmSegOttReply.fromBuffer(value));
|
||||||
|
static final _$dmSegSDK = $grpc.ClientMethod<$0.DmSegSDKReq, $0.DmSegSDKReply>(
|
||||||
|
'/bilibili.community.service.dm.v1.DM/DmSegSDK',
|
||||||
|
($0.DmSegSDKReq value) => value.writeToBuffer(),
|
||||||
|
($core.List<$core.int> value) => $0.DmSegSDKReply.fromBuffer(value));
|
||||||
|
static final _$dmExpoReport = $grpc.ClientMethod<$0.DmExpoReportReq, $0.DmExpoReportRes>(
|
||||||
|
'/bilibili.community.service.dm.v1.DM/DmExpoReport',
|
||||||
|
($0.DmExpoReportReq value) => value.writeToBuffer(),
|
||||||
|
($core.List<$core.int> value) => $0.DmExpoReportRes.fromBuffer(value));
|
||||||
|
|
||||||
|
DMClient($grpc.ClientChannel channel,
|
||||||
|
{$grpc.CallOptions? options,
|
||||||
|
$core.Iterable<$grpc.ClientInterceptor>? interceptors})
|
||||||
|
: super(channel, options: options,
|
||||||
|
interceptors: interceptors);
|
||||||
|
|
||||||
|
$grpc.ResponseFuture<$0.DmSegMobileReply> dmSegMobile($0.DmSegMobileReq request, {$grpc.CallOptions? options}) {
|
||||||
|
return $createUnaryCall(_$dmSegMobile, request, options: options);
|
||||||
|
}
|
||||||
|
|
||||||
|
$grpc.ResponseFuture<$0.DmViewReply> dmView($0.DmViewReq request, {$grpc.CallOptions? options}) {
|
||||||
|
return $createUnaryCall(_$dmView, request, options: options);
|
||||||
|
}
|
||||||
|
|
||||||
|
$grpc.ResponseFuture<$0.Response> dmPlayerConfig($0.DmPlayerConfigReq request, {$grpc.CallOptions? options}) {
|
||||||
|
return $createUnaryCall(_$dmPlayerConfig, request, options: options);
|
||||||
|
}
|
||||||
|
|
||||||
|
$grpc.ResponseFuture<$0.DmSegOttReply> dmSegOtt($0.DmSegOttReq request, {$grpc.CallOptions? options}) {
|
||||||
|
return $createUnaryCall(_$dmSegOtt, request, options: options);
|
||||||
|
}
|
||||||
|
|
||||||
|
$grpc.ResponseFuture<$0.DmSegSDKReply> dmSegSDK($0.DmSegSDKReq request, {$grpc.CallOptions? options}) {
|
||||||
|
return $createUnaryCall(_$dmSegSDK, request, options: options);
|
||||||
|
}
|
||||||
|
|
||||||
|
$grpc.ResponseFuture<$0.DmExpoReportRes> dmExpoReport($0.DmExpoReportReq request, {$grpc.CallOptions? options}) {
|
||||||
|
return $createUnaryCall(_$dmExpoReport, request, options: options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@$pb.GrpcServiceName('bilibili.community.service.dm.v1.DM')
|
||||||
|
abstract class DMServiceBase extends $grpc.Service {
|
||||||
|
$core.String get $name => 'bilibili.community.service.dm.v1.DM';
|
||||||
|
|
||||||
|
DMServiceBase() {
|
||||||
|
$addMethod($grpc.ServiceMethod<$0.DmSegMobileReq, $0.DmSegMobileReply>(
|
||||||
|
'DmSegMobile',
|
||||||
|
dmSegMobile_Pre,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
($core.List<$core.int> value) => $0.DmSegMobileReq.fromBuffer(value),
|
||||||
|
($0.DmSegMobileReply value) => value.writeToBuffer()));
|
||||||
|
$addMethod($grpc.ServiceMethod<$0.DmViewReq, $0.DmViewReply>(
|
||||||
|
'DmView',
|
||||||
|
dmView_Pre,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
($core.List<$core.int> value) => $0.DmViewReq.fromBuffer(value),
|
||||||
|
($0.DmViewReply value) => value.writeToBuffer()));
|
||||||
|
$addMethod($grpc.ServiceMethod<$0.DmPlayerConfigReq, $0.Response>(
|
||||||
|
'DmPlayerConfig',
|
||||||
|
dmPlayerConfig_Pre,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
($core.List<$core.int> value) => $0.DmPlayerConfigReq.fromBuffer(value),
|
||||||
|
($0.Response value) => value.writeToBuffer()));
|
||||||
|
$addMethod($grpc.ServiceMethod<$0.DmSegOttReq, $0.DmSegOttReply>(
|
||||||
|
'DmSegOtt',
|
||||||
|
dmSegOtt_Pre,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
($core.List<$core.int> value) => $0.DmSegOttReq.fromBuffer(value),
|
||||||
|
($0.DmSegOttReply value) => value.writeToBuffer()));
|
||||||
|
$addMethod($grpc.ServiceMethod<$0.DmSegSDKReq, $0.DmSegSDKReply>(
|
||||||
|
'DmSegSDK',
|
||||||
|
dmSegSDK_Pre,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
($core.List<$core.int> value) => $0.DmSegSDKReq.fromBuffer(value),
|
||||||
|
($0.DmSegSDKReply value) => value.writeToBuffer()));
|
||||||
|
$addMethod($grpc.ServiceMethod<$0.DmExpoReportReq, $0.DmExpoReportRes>(
|
||||||
|
'DmExpoReport',
|
||||||
|
dmExpoReport_Pre,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
($core.List<$core.int> value) => $0.DmExpoReportReq.fromBuffer(value),
|
||||||
|
($0.DmExpoReportRes value) => value.writeToBuffer()));
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.DmSegMobileReply> dmSegMobile_Pre($grpc.ServiceCall call, $async.Future<$0.DmSegMobileReq> request) async {
|
||||||
|
return dmSegMobile(call, await request);
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.DmViewReply> dmView_Pre($grpc.ServiceCall call, $async.Future<$0.DmViewReq> request) async {
|
||||||
|
return dmView(call, await request);
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.Response> dmPlayerConfig_Pre($grpc.ServiceCall call, $async.Future<$0.DmPlayerConfigReq> request) async {
|
||||||
|
return dmPlayerConfig(call, await request);
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.DmSegOttReply> dmSegOtt_Pre($grpc.ServiceCall call, $async.Future<$0.DmSegOttReq> request) async {
|
||||||
|
return dmSegOtt(call, await request);
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.DmSegSDKReply> dmSegSDK_Pre($grpc.ServiceCall call, $async.Future<$0.DmSegSDKReq> request) async {
|
||||||
|
return dmSegSDK(call, await request);
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.DmExpoReportRes> dmExpoReport_Pre($grpc.ServiceCall call, $async.Future<$0.DmExpoReportReq> request) async {
|
||||||
|
return dmExpoReport(call, await request);
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.DmSegMobileReply> dmSegMobile($grpc.ServiceCall call, $0.DmSegMobileReq request);
|
||||||
|
$async.Future<$0.DmViewReply> dmView($grpc.ServiceCall call, $0.DmViewReq request);
|
||||||
|
$async.Future<$0.Response> dmPlayerConfig($grpc.ServiceCall call, $0.DmPlayerConfigReq request);
|
||||||
|
$async.Future<$0.DmSegOttReply> dmSegOtt($grpc.ServiceCall call, $0.DmSegOttReq request);
|
||||||
|
$async.Future<$0.DmSegSDKReply> dmSegSDK($grpc.ServiceCall call, $0.DmSegSDKReq request);
|
||||||
|
$async.Future<$0.DmExpoReportRes> dmExpoReport($grpc.ServiceCall call, $0.DmExpoReportReq request);
|
||||||
|
}
|
||||||
1620
lib/grpc/dm/v1/dm.pbjson.dart
Normal file
1620
lib/grpc/dm/v1/dm.pbjson.dart
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
|
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import '../models/danmaku/dm.pb.dart';
|
|
||||||
import 'index.dart';
|
import 'index.dart';
|
||||||
|
|
||||||
class DanmakaHttp {
|
class DanmakaHttp {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,347 +0,0 @@
|
|||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: dm.proto
|
|
||||||
//
|
|
||||||
// @dart = 2.12
|
|
||||||
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
|
|
||||||
|
|
||||||
// ignore_for_file: UNDEFINED_SHOWN_NAME
|
|
||||||
import 'dart:core' as $core;
|
|
||||||
import 'package:protobuf/protobuf.dart' as $pb;
|
|
||||||
|
|
||||||
class AvatarType extends $pb.ProtobufEnum {
|
|
||||||
static const AvatarType AvatarTypeNone = AvatarType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'AvatarTypeNone');
|
|
||||||
static const AvatarType AvatarTypeNFT = AvatarType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'AvatarTypeNFT');
|
|
||||||
|
|
||||||
static const $core.List<AvatarType> values = <AvatarType>[
|
|
||||||
AvatarTypeNone,
|
|
||||||
AvatarTypeNFT,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, AvatarType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static AvatarType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const AvatarType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class BubbleType extends $pb.ProtobufEnum {
|
|
||||||
static const BubbleType BubbleTypeNone = BubbleType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'BubbleTypeNone');
|
|
||||||
static const BubbleType BubbleTypeClickButton = BubbleType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'BubbleTypeClickButton');
|
|
||||||
static const BubbleType BubbleTypeDmSettingPanel = BubbleType._(
|
|
||||||
2,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'BubbleTypeDmSettingPanel');
|
|
||||||
|
|
||||||
static const $core.List<BubbleType> values = <BubbleType>[
|
|
||||||
BubbleTypeNone,
|
|
||||||
BubbleTypeClickButton,
|
|
||||||
BubbleTypeDmSettingPanel,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, BubbleType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static BubbleType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const BubbleType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class CheckboxType extends $pb.ProtobufEnum {
|
|
||||||
static const CheckboxType CheckboxTypeNone = CheckboxType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'CheckboxTypeNone');
|
|
||||||
static const CheckboxType CheckboxTypeEncourage = CheckboxType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'CheckboxTypeEncourage');
|
|
||||||
static const CheckboxType CheckboxTypeColorDM = CheckboxType._(
|
|
||||||
2,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'CheckboxTypeColorDM');
|
|
||||||
|
|
||||||
static const $core.List<CheckboxType> values = <CheckboxType>[
|
|
||||||
CheckboxTypeNone,
|
|
||||||
CheckboxTypeEncourage,
|
|
||||||
CheckboxTypeColorDM,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, CheckboxType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static CheckboxType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const CheckboxType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class DMAttrBit extends $pb.ProtobufEnum {
|
|
||||||
static const DMAttrBit DMAttrBitProtect = DMAttrBit._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'DMAttrBitProtect');
|
|
||||||
static const DMAttrBit DMAttrBitFromLive = DMAttrBit._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'DMAttrBitFromLive');
|
|
||||||
static const DMAttrBit DMAttrHighLike = DMAttrBit._(
|
|
||||||
2,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'DMAttrHighLike');
|
|
||||||
|
|
||||||
static const $core.List<DMAttrBit> values = <DMAttrBit>[
|
|
||||||
DMAttrBitProtect,
|
|
||||||
DMAttrBitFromLive,
|
|
||||||
DMAttrHighLike,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, DMAttrBit> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static DMAttrBit? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const DMAttrBit._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class ExposureType extends $pb.ProtobufEnum {
|
|
||||||
static const ExposureType ExposureTypeNone = ExposureType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'ExposureTypeNone');
|
|
||||||
static const ExposureType ExposureTypeDMSend = ExposureType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'ExposureTypeDMSend');
|
|
||||||
|
|
||||||
static const $core.List<ExposureType> values = <ExposureType>[
|
|
||||||
ExposureTypeNone,
|
|
||||||
ExposureTypeDMSend,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, ExposureType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static ExposureType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const ExposureType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class PostPanelBizType extends $pb.ProtobufEnum {
|
|
||||||
static const PostPanelBizType PostPanelBizTypeNone = PostPanelBizType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostPanelBizTypeNone');
|
|
||||||
static const PostPanelBizType PostPanelBizTypeEncourage = PostPanelBizType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostPanelBizTypeEncourage');
|
|
||||||
static const PostPanelBizType PostPanelBizTypeColorDM = PostPanelBizType._(
|
|
||||||
2,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostPanelBizTypeColorDM');
|
|
||||||
static const PostPanelBizType PostPanelBizTypeNFTDM = PostPanelBizType._(
|
|
||||||
3,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostPanelBizTypeNFTDM');
|
|
||||||
static const PostPanelBizType PostPanelBizTypeFragClose = PostPanelBizType._(
|
|
||||||
4,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostPanelBizTypeFragClose');
|
|
||||||
static const PostPanelBizType PostPanelBizTypeRecommend = PostPanelBizType._(
|
|
||||||
5,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostPanelBizTypeRecommend');
|
|
||||||
|
|
||||||
static const $core.List<PostPanelBizType> values = <PostPanelBizType>[
|
|
||||||
PostPanelBizTypeNone,
|
|
||||||
PostPanelBizTypeEncourage,
|
|
||||||
PostPanelBizTypeColorDM,
|
|
||||||
PostPanelBizTypeNFTDM,
|
|
||||||
PostPanelBizTypeFragClose,
|
|
||||||
PostPanelBizTypeRecommend,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, PostPanelBizType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static PostPanelBizType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const PostPanelBizType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class PostStatus extends $pb.ProtobufEnum {
|
|
||||||
static const PostStatus PostStatusNormal = PostStatus._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostStatusNormal');
|
|
||||||
static const PostStatus PostStatusClosed = PostStatus._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'PostStatusClosed');
|
|
||||||
|
|
||||||
static const $core.List<PostStatus> values = <PostStatus>[
|
|
||||||
PostStatusNormal,
|
|
||||||
PostStatusClosed,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, PostStatus> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static PostStatus? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const PostStatus._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class RenderType extends $pb.ProtobufEnum {
|
|
||||||
static const RenderType RenderTypeNone = RenderType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'RenderTypeNone');
|
|
||||||
static const RenderType RenderTypeSingle = RenderType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'RenderTypeSingle');
|
|
||||||
static const RenderType RenderTypeRotation = RenderType._(
|
|
||||||
2,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'RenderTypeRotation');
|
|
||||||
|
|
||||||
static const $core.List<RenderType> values = <RenderType>[
|
|
||||||
RenderTypeNone,
|
|
||||||
RenderTypeSingle,
|
|
||||||
RenderTypeRotation,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, RenderType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static RenderType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const RenderType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class SubtitleAiStatus extends $pb.ProtobufEnum {
|
|
||||||
static const SubtitleAiStatus None = SubtitleAiStatus._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'None');
|
|
||||||
static const SubtitleAiStatus Exposure = SubtitleAiStatus._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'Exposure');
|
|
||||||
static const SubtitleAiStatus Assist = SubtitleAiStatus._(
|
|
||||||
2,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'Assist');
|
|
||||||
|
|
||||||
static const $core.List<SubtitleAiStatus> values = <SubtitleAiStatus>[
|
|
||||||
None,
|
|
||||||
Exposure,
|
|
||||||
Assist,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, SubtitleAiStatus> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static SubtitleAiStatus? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const SubtitleAiStatus._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class SubtitleAiType extends $pb.ProtobufEnum {
|
|
||||||
static const SubtitleAiType Normal = SubtitleAiType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'Normal');
|
|
||||||
static const SubtitleAiType Translate = SubtitleAiType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'Translate');
|
|
||||||
|
|
||||||
static const $core.List<SubtitleAiType> values = <SubtitleAiType>[
|
|
||||||
Normal,
|
|
||||||
Translate,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, SubtitleAiType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static SubtitleAiType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const SubtitleAiType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class SubtitleType extends $pb.ProtobufEnum {
|
|
||||||
static const SubtitleType CC = SubtitleType._(0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CC');
|
|
||||||
static const SubtitleType AI = SubtitleType._(1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AI');
|
|
||||||
|
|
||||||
static const $core.List<SubtitleType> values = <SubtitleType>[
|
|
||||||
CC,
|
|
||||||
AI,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, SubtitleType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static SubtitleType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const SubtitleType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
class ToastFunctionType extends $pb.ProtobufEnum {
|
|
||||||
static const ToastFunctionType ToastFunctionTypeNone = ToastFunctionType._(
|
|
||||||
0,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'ToastFunctionTypeNone');
|
|
||||||
static const ToastFunctionType ToastFunctionTypePostPanel =
|
|
||||||
ToastFunctionType._(
|
|
||||||
1,
|
|
||||||
const $core.bool.fromEnvironment('protobuf.omit_enum_names')
|
|
||||||
? ''
|
|
||||||
: 'ToastFunctionTypePostPanel');
|
|
||||||
|
|
||||||
static const $core.List<ToastFunctionType> values = <ToastFunctionType>[
|
|
||||||
ToastFunctionTypeNone,
|
|
||||||
ToastFunctionTypePostPanel,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, ToastFunctionType> _byValue =
|
|
||||||
$pb.ProtobufEnum.initByValue(values);
|
|
||||||
static ToastFunctionType? valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const ToastFunctionType._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,74 +0,0 @@
|
|||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: dm.proto
|
|
||||||
//
|
|
||||||
// @dart = 2.12
|
|
||||||
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name, avoid_renaming_method_parameters
|
|
||||||
|
|
||||||
import 'dart:async' as $async;
|
|
||||||
|
|
||||||
import 'package:protobuf/protobuf.dart' as $pb;
|
|
||||||
|
|
||||||
import 'dart:core' as $core;
|
|
||||||
import 'dm.pb.dart' as $0;
|
|
||||||
import 'dm.pbjson.dart';
|
|
||||||
|
|
||||||
export 'dm.pb.dart';
|
|
||||||
|
|
||||||
abstract class DMServiceBase extends $pb.GeneratedService {
|
|
||||||
$async.Future<$0.DmSegMobileReply> dmSegMobile(
|
|
||||||
$pb.ServerContext ctx, $0.DmSegMobileReq request);
|
|
||||||
$async.Future<$0.DmViewReply> dmView(
|
|
||||||
$pb.ServerContext ctx, $0.DmViewReq request);
|
|
||||||
$async.Future<$0.Response> dmPlayerConfig(
|
|
||||||
$pb.ServerContext ctx, $0.DmPlayerConfigReq request);
|
|
||||||
$async.Future<$0.DmSegOttReply> dmSegOtt(
|
|
||||||
$pb.ServerContext ctx, $0.DmSegOttReq request);
|
|
||||||
$async.Future<$0.DmSegSDKReply> dmSegSDK(
|
|
||||||
$pb.ServerContext ctx, $0.DmSegSDKReq request);
|
|
||||||
$async.Future<$0.DmExpoReportRes> dmExpoReport(
|
|
||||||
$pb.ServerContext ctx, $0.DmExpoReportReq request);
|
|
||||||
|
|
||||||
$pb.GeneratedMessage createRequest($core.String method) {
|
|
||||||
switch (method) {
|
|
||||||
case 'DmSegMobile':
|
|
||||||
return $0.DmSegMobileReq();
|
|
||||||
case 'DmView':
|
|
||||||
return $0.DmViewReq();
|
|
||||||
case 'DmPlayerConfig':
|
|
||||||
return $0.DmPlayerConfigReq();
|
|
||||||
case 'DmSegOtt':
|
|
||||||
return $0.DmSegOttReq();
|
|
||||||
case 'DmSegSDK':
|
|
||||||
return $0.DmSegSDKReq();
|
|
||||||
case 'DmExpoReport':
|
|
||||||
return $0.DmExpoReportReq();
|
|
||||||
default:
|
|
||||||
throw $core.ArgumentError('Unknown method: $method');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$async.Future<$pb.GeneratedMessage> handleCall($pb.ServerContext ctx,
|
|
||||||
$core.String method, $pb.GeneratedMessage request) {
|
|
||||||
switch (method) {
|
|
||||||
case 'DmSegMobile':
|
|
||||||
return this.dmSegMobile(ctx, request as $0.DmSegMobileReq);
|
|
||||||
case 'DmView':
|
|
||||||
return this.dmView(ctx, request as $0.DmViewReq);
|
|
||||||
case 'DmPlayerConfig':
|
|
||||||
return this.dmPlayerConfig(ctx, request as $0.DmPlayerConfigReq);
|
|
||||||
case 'DmSegOtt':
|
|
||||||
return this.dmSegOtt(ctx, request as $0.DmSegOttReq);
|
|
||||||
case 'DmSegSDK':
|
|
||||||
return this.dmSegSDK(ctx, request as $0.DmSegSDKReq);
|
|
||||||
case 'DmExpoReport':
|
|
||||||
return this.dmExpoReport(ctx, request as $0.DmExpoReportReq);
|
|
||||||
default:
|
|
||||||
throw $core.ArgumentError('Unknown method: $method');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$core.Map<$core.String, $core.dynamic> get $json => DMServiceBase$json;
|
|
||||||
$core.Map<$core.String, $core.Map<$core.String, $core.dynamic>>
|
|
||||||
get $messageJson => DMServiceBase$messageJson;
|
|
||||||
}
|
|
||||||
@@ -1,893 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
|
|
||||||
package bilibili.community.service.dm.v1;
|
|
||||||
|
|
||||||
// 说明文档
|
|
||||||
// https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/danmaku/danmaku_proto.md
|
|
||||||
|
|
||||||
//弹幕
|
|
||||||
service DM {
|
|
||||||
// 获取分段弹幕
|
|
||||||
rpc DmSegMobile (DmSegMobileReq) returns (DmSegMobileReply);
|
|
||||||
// 客户端弹幕元数据 字幕、分段、防挡蒙版等
|
|
||||||
rpc DmView(DmViewReq) returns (DmViewReply);
|
|
||||||
// 修改弹幕配置
|
|
||||||
rpc DmPlayerConfig (DmPlayerConfigReq) returns (Response);
|
|
||||||
// ott弹幕列表
|
|
||||||
rpc DmSegOtt(DmSegOttReq) returns(DmSegOttReply);
|
|
||||||
// SDK弹幕列表
|
|
||||||
rpc DmSegSDK(DmSegSDKReq) returns(DmSegSDKReply);
|
|
||||||
//
|
|
||||||
rpc DmExpoReport(DmExpoReportReq) returns (DmExpoReportRes);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Avatar {
|
|
||||||
//
|
|
||||||
string id = 1;
|
|
||||||
//
|
|
||||||
string url = 2;
|
|
||||||
//
|
|
||||||
AvatarType avatar_type = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum AvatarType {
|
|
||||||
AvatarTypeNone = 0; //
|
|
||||||
AvatarTypeNFT = 1; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Bubble {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
string url = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum BubbleType {
|
|
||||||
BubbleTypeNone = 0; //
|
|
||||||
BubbleTypeClickButton = 1; //
|
|
||||||
BubbleTypeDmSettingPanel = 2; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message BubbleV2 {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
string url = 2;
|
|
||||||
//
|
|
||||||
BubbleType bubble_type = 3;
|
|
||||||
//
|
|
||||||
bool exposure_once = 4;
|
|
||||||
//
|
|
||||||
ExposureType exposure_type = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Button {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
int32 action = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message BuzzwordConfig {
|
|
||||||
//
|
|
||||||
repeated BuzzwordShowConfig keywords = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message BuzzwordShowConfig {
|
|
||||||
//
|
|
||||||
string name = 1;
|
|
||||||
//
|
|
||||||
string schema = 2;
|
|
||||||
//
|
|
||||||
int32 source = 3;
|
|
||||||
//
|
|
||||||
int64 id = 4;
|
|
||||||
//
|
|
||||||
int64 buzzword_id = 5;
|
|
||||||
//
|
|
||||||
int32 schema_type = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message CheckBox {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
CheckboxType type = 2;
|
|
||||||
//
|
|
||||||
bool default_value = 3;
|
|
||||||
//
|
|
||||||
bool show = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum CheckboxType {
|
|
||||||
CheckboxTypeNone = 0; //
|
|
||||||
CheckboxTypeEncourage = 1; //
|
|
||||||
CheckboxTypeColorDM = 2; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message CheckBoxV2 {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
int32 type = 2;
|
|
||||||
//
|
|
||||||
bool default_value = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message ClickButton {
|
|
||||||
//
|
|
||||||
repeated string portrait_text = 1;
|
|
||||||
//
|
|
||||||
repeated string landscape_text = 2;
|
|
||||||
//
|
|
||||||
repeated string portrait_text_focus = 3;
|
|
||||||
//
|
|
||||||
repeated string landscape_text_focus = 4;
|
|
||||||
//
|
|
||||||
RenderType render_type = 5;
|
|
||||||
//
|
|
||||||
bool show = 6;
|
|
||||||
//
|
|
||||||
Bubble bubble = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message ClickButtonV2 {
|
|
||||||
//
|
|
||||||
repeated string portrait_text = 1;
|
|
||||||
//
|
|
||||||
repeated string landscape_text = 2;
|
|
||||||
//
|
|
||||||
repeated string portrait_text_focus = 3;
|
|
||||||
//
|
|
||||||
repeated string landscape_text_focus = 4;
|
|
||||||
//
|
|
||||||
int32 render_type = 5;
|
|
||||||
//
|
|
||||||
bool text_input_post = 6;
|
|
||||||
//
|
|
||||||
bool exposure_once = 7;
|
|
||||||
//
|
|
||||||
int32 exposure_type = 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 互动弹幕条目信息
|
|
||||||
message CommandDm {
|
|
||||||
// 弹幕id
|
|
||||||
int64 id = 1;
|
|
||||||
// 对象视频cid
|
|
||||||
int64 oid = 2;
|
|
||||||
// 发送者mid
|
|
||||||
string mid = 3;
|
|
||||||
// 互动弹幕指令
|
|
||||||
string command = 4;
|
|
||||||
// 互动弹幕正文
|
|
||||||
string content = 5;
|
|
||||||
// 出现时间
|
|
||||||
int32 progress = 6;
|
|
||||||
// 创建时间
|
|
||||||
string ctime = 7;
|
|
||||||
// 发布时间
|
|
||||||
string mtime = 8;
|
|
||||||
// 扩展json数据
|
|
||||||
string extra = 9;
|
|
||||||
// 弹幕id str类型
|
|
||||||
string idStr = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕ai云屏蔽列表
|
|
||||||
message DanmakuAIFlag {
|
|
||||||
// 弹幕ai云屏蔽条目
|
|
||||||
repeated DanmakuFlag dm_flags = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕条目
|
|
||||||
message DanmakuElem {
|
|
||||||
// 弹幕dmid
|
|
||||||
int64 id = 1;
|
|
||||||
// 弹幕出现位置(单位ms)
|
|
||||||
int32 progress = 2;
|
|
||||||
// 弹幕类型 1 2 3:普通弹幕 4:底部弹幕 5:顶部弹幕 6:逆向弹幕 7:高级弹幕 8:代码弹幕 9:BAS弹幕(pool必须为2)
|
|
||||||
int32 mode = 3;
|
|
||||||
// 弹幕字号
|
|
||||||
int32 fontsize = 4;
|
|
||||||
// 弹幕颜色
|
|
||||||
uint32 color = 5;
|
|
||||||
// 发送者mid hash
|
|
||||||
string midHash = 6;
|
|
||||||
// 弹幕正文
|
|
||||||
string content = 7;
|
|
||||||
// 发送时间
|
|
||||||
int64 ctime = 8;
|
|
||||||
// 权重 用于屏蔽等级 区间:[1,10]
|
|
||||||
int32 weight = 9;
|
|
||||||
// 动作
|
|
||||||
string action = 10;
|
|
||||||
// 弹幕池 0:普通池 1:字幕池 2:特殊池(代码/BAS弹幕)
|
|
||||||
int32 pool = 11;
|
|
||||||
// 弹幕dmid str
|
|
||||||
string idStr = 12;
|
|
||||||
// 弹幕属性位(bin求AND)
|
|
||||||
// bit0:保护 bit1:直播 bit2:高赞
|
|
||||||
int32 attr = 13;
|
|
||||||
//
|
|
||||||
string animation = 22;
|
|
||||||
// 大会员专属颜色
|
|
||||||
DmColorfulType colorful = 24;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕ai云屏蔽条目
|
|
||||||
message DanmakuFlag {
|
|
||||||
// 弹幕dmid
|
|
||||||
int64 dmid = 1;
|
|
||||||
// 评分
|
|
||||||
uint32 flag = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 云屏蔽配置信息
|
|
||||||
message DanmakuFlagConfig {
|
|
||||||
// 云屏蔽等级
|
|
||||||
int32 rec_flag = 1;
|
|
||||||
// 云屏蔽文案
|
|
||||||
string rec_text = 2;
|
|
||||||
// 云屏蔽开关
|
|
||||||
int32 rec_switch = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕默认配置
|
|
||||||
message DanmuDefaultPlayerConfig {
|
|
||||||
bool player_danmaku_use_default_config = 1; // 是否使用推荐弹幕设置
|
|
||||||
bool player_danmaku_ai_recommended_switch = 4; // 是否开启智能云屏蔽
|
|
||||||
int32 player_danmaku_ai_recommended_level = 5; // 智能云屏蔽等级
|
|
||||||
bool player_danmaku_blocktop = 6; // 是否屏蔽顶端弹幕
|
|
||||||
bool player_danmaku_blockscroll = 7; // 是否屏蔽滚动弹幕
|
|
||||||
bool player_danmaku_blockbottom = 8; // 是否屏蔽底端弹幕
|
|
||||||
bool player_danmaku_blockcolorful = 9; // 是否屏蔽彩色弹幕
|
|
||||||
bool player_danmaku_blockrepeat = 10; // 是否屏蔽重复弹幕
|
|
||||||
bool player_danmaku_blockspecial = 11; // 是否屏蔽高级弹幕
|
|
||||||
float player_danmaku_opacity = 12; // 弹幕不透明度
|
|
||||||
float player_danmaku_scalingfactor = 13; // 弹幕缩放比例
|
|
||||||
float player_danmaku_domain = 14; // 弹幕显示区域
|
|
||||||
int32 player_danmaku_speed = 15; // 弹幕速度
|
|
||||||
bool inline_player_danmaku_switch = 16; // 是否开启弹幕
|
|
||||||
int32 player_danmaku_senior_mode_switch = 17; //
|
|
||||||
int32 player_danmaku_ai_recommended_level_v2 = 18; //
|
|
||||||
map<int32, int32> player_danmaku_ai_recommended_level_v2_map = 19; //
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕配置
|
|
||||||
message DanmuPlayerConfig {
|
|
||||||
bool player_danmaku_switch = 1; // 是否开启弹幕
|
|
||||||
bool player_danmaku_switch_save = 2; // 是否记录弹幕开关设置
|
|
||||||
bool player_danmaku_use_default_config = 3; // 是否使用推荐弹幕设置
|
|
||||||
bool player_danmaku_ai_recommended_switch = 4; // 是否开启智能云屏蔽
|
|
||||||
int32 player_danmaku_ai_recommended_level = 5; // 智能云屏蔽等级
|
|
||||||
bool player_danmaku_blocktop = 6; // 是否屏蔽顶端弹幕
|
|
||||||
bool player_danmaku_blockscroll = 7; // 是否屏蔽滚动弹幕
|
|
||||||
bool player_danmaku_blockbottom = 8; // 是否屏蔽底端弹幕
|
|
||||||
bool player_danmaku_blockcolorful = 9; // 是否屏蔽彩色弹幕
|
|
||||||
bool player_danmaku_blockrepeat = 10; // 是否屏蔽重复弹幕
|
|
||||||
bool player_danmaku_blockspecial = 11; // 是否屏蔽高级弹幕
|
|
||||||
float player_danmaku_opacity = 12; // 弹幕不透明度
|
|
||||||
float player_danmaku_scalingfactor = 13; // 弹幕缩放比例
|
|
||||||
float player_danmaku_domain = 14; // 弹幕显示区域
|
|
||||||
int32 player_danmaku_speed = 15; // 弹幕速度
|
|
||||||
bool player_danmaku_enableblocklist = 16; // 是否开启屏蔽列表
|
|
||||||
bool inline_player_danmaku_switch = 17; // 是否开启弹幕
|
|
||||||
int32 inline_player_danmaku_config = 18; //
|
|
||||||
int32 player_danmaku_ios_switch_save = 19; //
|
|
||||||
int32 player_danmaku_senior_mode_switch = 20; //
|
|
||||||
int32 player_danmaku_ai_recommended_level_v2 = 21; //
|
|
||||||
map<int32, int32> player_danmaku_ai_recommended_level_v2_map = 22; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message DanmuPlayerConfigPanel {
|
|
||||||
//
|
|
||||||
string selection_text = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕显示区域自动配置
|
|
||||||
message DanmuPlayerDynamicConfig {
|
|
||||||
// 时间
|
|
||||||
int32 progress = 1;
|
|
||||||
// 弹幕显示区域
|
|
||||||
float player_danmaku_domain = 14;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕配置信息
|
|
||||||
message DanmuPlayerViewConfig {
|
|
||||||
// 弹幕默认配置
|
|
||||||
DanmuDefaultPlayerConfig danmuku_default_player_config = 1;
|
|
||||||
// 弹幕用户配置
|
|
||||||
DanmuPlayerConfig danmuku_player_config = 2;
|
|
||||||
// 弹幕显示区域自动配置列表
|
|
||||||
repeated DanmuPlayerDynamicConfig danmuku_player_dynamic_config = 3;
|
|
||||||
//
|
|
||||||
DanmuPlayerConfigPanel danmuku_player_config_panel = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
// web端用户弹幕配置
|
|
||||||
message DanmuWebPlayerConfig {
|
|
||||||
bool dm_switch = 1; // 是否开启弹幕
|
|
||||||
bool ai_switch = 2; // 是否开启智能云屏蔽
|
|
||||||
int32 ai_level = 3; // 智能云屏蔽等级
|
|
||||||
bool blocktop = 4; // 是否屏蔽顶端弹幕
|
|
||||||
bool blockscroll = 5; // 是否屏蔽滚动弹幕
|
|
||||||
bool blockbottom = 6; // 是否屏蔽底端弹幕
|
|
||||||
bool blockcolor = 7; // 是否屏蔽彩色弹幕
|
|
||||||
bool blockspecial = 8; // 是否屏蔽重复弹幕
|
|
||||||
bool preventshade = 9; //
|
|
||||||
bool dmask = 10; //
|
|
||||||
float opacity = 11; //
|
|
||||||
int32 dmarea = 12; //
|
|
||||||
float speedplus = 13; //
|
|
||||||
float fontsize = 14; // 弹幕字号
|
|
||||||
bool screensync = 15; //
|
|
||||||
bool speedsync = 16; //
|
|
||||||
string fontfamily = 17; //
|
|
||||||
bool bold = 18; // 是否使用加粗
|
|
||||||
int32 fontborder = 19; //
|
|
||||||
string draw_type = 20; // 弹幕渲染类型
|
|
||||||
int32 senior_mode_switch = 21; //
|
|
||||||
int32 ai_level_v2 = 22; //
|
|
||||||
map<int32, int32> ai_level_v2_map = 23; //
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕属性位值
|
|
||||||
enum DMAttrBit {
|
|
||||||
DMAttrBitProtect = 0; // 保护弹幕
|
|
||||||
DMAttrBitFromLive = 1; // 直播弹幕
|
|
||||||
DMAttrHighLike = 2; // 高赞弹幕
|
|
||||||
}
|
|
||||||
|
|
||||||
message DmColorful {
|
|
||||||
DmColorfulType type = 1; // 颜色类型
|
|
||||||
string src = 2; //
|
|
||||||
}
|
|
||||||
|
|
||||||
enum DmColorfulType {
|
|
||||||
NoneType = 0; // 无
|
|
||||||
VipGradualColor = 60001; // 渐变色
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message DmExpoReportReq {
|
|
||||||
//
|
|
||||||
string session_id = 1;
|
|
||||||
//
|
|
||||||
int64 oid = 2;
|
|
||||||
//
|
|
||||||
string spmid = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message DmExpoReportRes {}
|
|
||||||
|
|
||||||
// 修改弹幕配置-请求
|
|
||||||
message DmPlayerConfigReq {
|
|
||||||
int64 ts = 1; //
|
|
||||||
PlayerDanmakuSwitch switch = 2; // 是否开启弹幕
|
|
||||||
PlayerDanmakuSwitchSave switch_save = 3; // 是否记录弹幕开关设置
|
|
||||||
PlayerDanmakuUseDefaultConfig use_default_config = 4; // 是否使用推荐弹幕设置
|
|
||||||
PlayerDanmakuAiRecommendedSwitch ai_recommended_switch = 5; // 是否开启智能云屏蔽
|
|
||||||
PlayerDanmakuAiRecommendedLevel ai_recommended_level = 6; // 智能云屏蔽等级
|
|
||||||
PlayerDanmakuBlocktop blocktop = 7; // 是否屏蔽顶端弹幕
|
|
||||||
PlayerDanmakuBlockscroll blockscroll = 8; // 是否屏蔽滚动弹幕
|
|
||||||
PlayerDanmakuBlockbottom blockbottom = 9; // 是否屏蔽底端弹幕
|
|
||||||
PlayerDanmakuBlockcolorful blockcolorful = 10; // 是否屏蔽彩色弹幕
|
|
||||||
PlayerDanmakuBlockrepeat blockrepeat = 11; // 是否屏蔽重复弹幕
|
|
||||||
PlayerDanmakuBlockspecial blockspecial = 12; // 是否屏蔽高级弹幕
|
|
||||||
PlayerDanmakuOpacity opacity = 13; // 弹幕不透明度
|
|
||||||
PlayerDanmakuScalingfactor scalingfactor = 14; // 弹幕缩放比例
|
|
||||||
PlayerDanmakuDomain domain = 15; // 弹幕显示区域
|
|
||||||
PlayerDanmakuSpeed speed = 16; // 弹幕速度
|
|
||||||
PlayerDanmakuEnableblocklist enableblocklist = 17; // 是否开启屏蔽列表
|
|
||||||
InlinePlayerDanmakuSwitch inlinePlayerDanmakuSwitch = 18; // 是否开启弹幕
|
|
||||||
PlayerDanmakuSeniorModeSwitch senior_mode_switch = 19; //
|
|
||||||
PlayerDanmakuAiRecommendedLevelV2 ai_recommended_level_v2 = 20; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message DmSegConfig {
|
|
||||||
//
|
|
||||||
int64 page_size = 1;
|
|
||||||
//
|
|
||||||
int64 total = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取弹幕-响应
|
|
||||||
message DmSegMobileReply {
|
|
||||||
// 弹幕列表
|
|
||||||
repeated DanmakuElem elems = 1;
|
|
||||||
// 是否已关闭弹幕
|
|
||||||
// 0:未关闭 1:已关闭
|
|
||||||
int32 state = 2;
|
|
||||||
// 弹幕云屏蔽ai评分值
|
|
||||||
DanmakuAIFlag ai_flag = 3;
|
|
||||||
repeated DmColorful colorfulSrc = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取弹幕-请求
|
|
||||||
message DmSegMobileReq {
|
|
||||||
// 稿件avid/漫画epid
|
|
||||||
int64 pid = 1;
|
|
||||||
// 视频cid/漫画cid
|
|
||||||
int64 oid = 2;
|
|
||||||
// 弹幕类型
|
|
||||||
// 1:视频 2:漫画
|
|
||||||
int32 type = 3;
|
|
||||||
// 分段(6min)
|
|
||||||
int64 segment_index = 4;
|
|
||||||
// 是否青少年模式
|
|
||||||
int32 teenagers_mode = 5;
|
|
||||||
//
|
|
||||||
int64 ps = 6;
|
|
||||||
//
|
|
||||||
int64 pe = 7;
|
|
||||||
//
|
|
||||||
int32 pull_mode = 8;
|
|
||||||
//
|
|
||||||
int32 from_scene = 9;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ott弹幕列表-响应
|
|
||||||
message DmSegOttReply {
|
|
||||||
// 是否已关闭弹幕
|
|
||||||
// 0:未关闭 1:已关闭
|
|
||||||
bool closed = 1;
|
|
||||||
// 弹幕列表
|
|
||||||
repeated DanmakuElem elems = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ott弹幕列表-请求
|
|
||||||
message DmSegOttReq {
|
|
||||||
// 稿件avid/漫画epid
|
|
||||||
int64 pid = 1;
|
|
||||||
// 视频cid/漫画cid
|
|
||||||
int64 oid = 2;
|
|
||||||
// 弹幕类型
|
|
||||||
// 1:视频 2:漫画
|
|
||||||
int32 type = 3;
|
|
||||||
// 分段(6min)
|
|
||||||
int64 segment_index = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕SDK-响应
|
|
||||||
message DmSegSDKReply {
|
|
||||||
// 是否已关闭弹幕
|
|
||||||
// 0:未关闭 1:已关闭
|
|
||||||
bool closed = 1;
|
|
||||||
// 弹幕列表
|
|
||||||
repeated DanmakuElem elems = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹幕SDK-请求
|
|
||||||
message DmSegSDKReq {
|
|
||||||
// 稿件avid/漫画epid
|
|
||||||
int64 pid = 1;
|
|
||||||
// 视频cid/漫画cid
|
|
||||||
int64 oid = 2;
|
|
||||||
// 弹幕类型
|
|
||||||
// 1:视频 2:漫画
|
|
||||||
int32 type = 3;
|
|
||||||
// 分段(6min)
|
|
||||||
int64 segment_index = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 客户端弹幕元数据-响应
|
|
||||||
message DmViewReply {
|
|
||||||
// 是否已关闭弹幕
|
|
||||||
// 0:未关闭 1:已关闭
|
|
||||||
bool closed = 1;
|
|
||||||
// 智能防挡弹幕蒙版信息
|
|
||||||
VideoMask mask = 2;
|
|
||||||
// 视频字幕
|
|
||||||
VideoSubtitle subtitle = 3;
|
|
||||||
// 高级弹幕专包url(bfs)
|
|
||||||
repeated string special_dms = 4;
|
|
||||||
// 云屏蔽配置信息
|
|
||||||
DanmakuFlagConfig ai_flag = 5;
|
|
||||||
// 弹幕配置信息
|
|
||||||
DanmuPlayerViewConfig player_config = 6;
|
|
||||||
// 弹幕发送框样式
|
|
||||||
int32 send_box_style = 7;
|
|
||||||
// 是否允许
|
|
||||||
bool allow = 8;
|
|
||||||
// check box 是否展示
|
|
||||||
string check_box = 9;
|
|
||||||
// check box 展示文本
|
|
||||||
string check_box_show_msg = 10;
|
|
||||||
// 展示文案
|
|
||||||
string text_placeholder = 11;
|
|
||||||
// 弹幕输入框文案
|
|
||||||
string input_placeholder = 12;
|
|
||||||
// 用户举报弹幕 cid维度屏蔽的正则规则
|
|
||||||
repeated string report_filter_content = 13;
|
|
||||||
//
|
|
||||||
ExpoReport expo_report = 14;
|
|
||||||
//
|
|
||||||
BuzzwordConfig buzzword_config = 15;
|
|
||||||
//
|
|
||||||
repeated Expressions expressions = 16;
|
|
||||||
//
|
|
||||||
repeated PostPanel post_panel = 17;
|
|
||||||
//
|
|
||||||
repeated string activity_meta = 18;
|
|
||||||
//
|
|
||||||
repeated PostPanelV2 post_panel2 = 19;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 客户端弹幕元数据-请求
|
|
||||||
message DmViewReq {
|
|
||||||
// 稿件avid/漫画epid
|
|
||||||
int64 pid = 1;
|
|
||||||
// 视频cid/漫画cid
|
|
||||||
int64 oid = 2;
|
|
||||||
// 弹幕类型
|
|
||||||
// 1:视频 2:漫画
|
|
||||||
int32 type = 3;
|
|
||||||
// 页面spm
|
|
||||||
string spmid = 4;
|
|
||||||
// 是否冷启
|
|
||||||
int32 is_hard_boot = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
// web端弹幕元数据-响应
|
|
||||||
// https://api.bilibili.com/x/v2/dm/web/view
|
|
||||||
message DmWebViewReply {
|
|
||||||
// 是否已关闭弹幕
|
|
||||||
// 0:未关闭 1:已关闭
|
|
||||||
int32 state = 1;
|
|
||||||
//
|
|
||||||
string text = 2;
|
|
||||||
//
|
|
||||||
string text_side = 3;
|
|
||||||
// 分段弹幕配置
|
|
||||||
DmSegConfig dm_sge = 4;
|
|
||||||
// 云屏蔽配置信息
|
|
||||||
DanmakuFlagConfig flag = 5;
|
|
||||||
// 高级弹幕专包url(bfs)
|
|
||||||
repeated string special_dms = 6;
|
|
||||||
// check box 是否展示
|
|
||||||
bool check_box = 7;
|
|
||||||
// 弹幕数
|
|
||||||
int64 count = 8;
|
|
||||||
// 互动弹幕
|
|
||||||
repeated CommandDm commandDms = 9;
|
|
||||||
// 用户弹幕配置
|
|
||||||
DanmuWebPlayerConfig player_config = 10;
|
|
||||||
// 用户举报弹幕 cid维度屏蔽
|
|
||||||
repeated string report_filter_content = 11;
|
|
||||||
//
|
|
||||||
repeated Expressions expressions = 12;
|
|
||||||
//
|
|
||||||
repeated PostPanel post_panel = 13;
|
|
||||||
//
|
|
||||||
repeated string activity_meta = 14;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message ExpoReport {
|
|
||||||
//
|
|
||||||
bool should_report_at_end = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum ExposureType {
|
|
||||||
ExposureTypeNone = 0; //
|
|
||||||
ExposureTypeDMSend = 1; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Expression {
|
|
||||||
//
|
|
||||||
repeated string keyword = 1;
|
|
||||||
//
|
|
||||||
string url = 2;
|
|
||||||
//
|
|
||||||
repeated Period period = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Expressions {
|
|
||||||
//
|
|
||||||
repeated Expression data = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 是否开启弹幕
|
|
||||||
message InlinePlayerDanmakuSwitch {
|
|
||||||
//
|
|
||||||
bool value = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Label {
|
|
||||||
//
|
|
||||||
string title = 1;
|
|
||||||
//
|
|
||||||
repeated string content = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message LabelV2 {
|
|
||||||
//
|
|
||||||
string title = 1;
|
|
||||||
//
|
|
||||||
repeated string content = 2;
|
|
||||||
//
|
|
||||||
bool exposure_once = 3;
|
|
||||||
//
|
|
||||||
int32 exposure_type = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Period {
|
|
||||||
//
|
|
||||||
int64 start = 1;
|
|
||||||
//
|
|
||||||
int64 end = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message PlayerDanmakuAiRecommendedLevel {bool value = 1;} // 智能云屏蔽等级
|
|
||||||
message PlayerDanmakuAiRecommendedLevelV2 {int32 value = 1;} //
|
|
||||||
message PlayerDanmakuAiRecommendedSwitch {bool value = 1;} // 是否开启智能云屏蔽
|
|
||||||
message PlayerDanmakuBlockbottom {bool value = 1;} // 是否屏蔽底端弹幕
|
|
||||||
message PlayerDanmakuBlockcolorful {bool value = 1;} // 是否屏蔽彩色弹幕
|
|
||||||
message PlayerDanmakuBlockrepeat {bool value = 1;} // 是否屏蔽重复弹幕
|
|
||||||
message PlayerDanmakuBlockscroll {bool value = 1;} // 是否屏蔽滚动弹幕
|
|
||||||
message PlayerDanmakuBlockspecial {bool value = 1;} // 是否屏蔽高级弹幕
|
|
||||||
message PlayerDanmakuBlocktop {bool value = 1;} // 是否屏蔽顶端弹幕
|
|
||||||
message PlayerDanmakuDomain {float value = 1;} // 弹幕显示区域
|
|
||||||
message PlayerDanmakuEnableblocklist {bool value = 1;} // 是否开启屏蔽列表
|
|
||||||
message PlayerDanmakuOpacity {float value = 1;} // 弹幕不透明度
|
|
||||||
message PlayerDanmakuScalingfactor {float value = 1;} // 弹幕缩放比例
|
|
||||||
message PlayerDanmakuSeniorModeSwitch {int32 value = 1;} //
|
|
||||||
message PlayerDanmakuSpeed {int32 value = 1;} // 弹幕速度
|
|
||||||
message PlayerDanmakuSwitch {bool value = 1; bool can_ignore = 2;} // 是否开启弹幕
|
|
||||||
message PlayerDanmakuSwitchSave {bool value = 1;} // 是否记录弹幕开关设置
|
|
||||||
message PlayerDanmakuUseDefaultConfig {bool value = 1;} // 是否使用推荐弹幕设置
|
|
||||||
|
|
||||||
//
|
|
||||||
message PostPanel {
|
|
||||||
//
|
|
||||||
int64 start = 1;
|
|
||||||
//
|
|
||||||
int64 end = 2;
|
|
||||||
//
|
|
||||||
int64 priority = 3;
|
|
||||||
//
|
|
||||||
int64 biz_id = 4;
|
|
||||||
//
|
|
||||||
PostPanelBizType biz_type = 5;
|
|
||||||
//
|
|
||||||
ClickButton click_button = 6;
|
|
||||||
//
|
|
||||||
TextInput text_input = 7;
|
|
||||||
//
|
|
||||||
CheckBox check_box = 8;
|
|
||||||
//
|
|
||||||
Toast toast = 9;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum PostPanelBizType {
|
|
||||||
PostPanelBizTypeNone = 0; //
|
|
||||||
PostPanelBizTypeEncourage = 1; //
|
|
||||||
PostPanelBizTypeColorDM = 2; //
|
|
||||||
PostPanelBizTypeNFTDM = 3; //
|
|
||||||
PostPanelBizTypeFragClose = 4; //
|
|
||||||
PostPanelBizTypeRecommend = 5; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message PostPanelV2 {
|
|
||||||
//
|
|
||||||
int64 start = 1;
|
|
||||||
//
|
|
||||||
int64 end = 2;
|
|
||||||
//
|
|
||||||
int32 biz_type = 3;
|
|
||||||
//
|
|
||||||
ClickButtonV2 click_button = 4;
|
|
||||||
//
|
|
||||||
TextInputV2 text_input = 5;
|
|
||||||
//
|
|
||||||
CheckBoxV2 check_box = 6;
|
|
||||||
//
|
|
||||||
ToastV2 toast = 7;
|
|
||||||
//
|
|
||||||
BubbleV2 bubble = 8;
|
|
||||||
//
|
|
||||||
LabelV2 label = 9;
|
|
||||||
//
|
|
||||||
int32 post_status = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum PostStatus {
|
|
||||||
PostStatusNormal = 0; //
|
|
||||||
PostStatusClosed = 1; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum RenderType {
|
|
||||||
RenderTypeNone = 0; //
|
|
||||||
RenderTypeSingle = 1; //
|
|
||||||
RenderTypeRotation = 2; //
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改弹幕配置-响应
|
|
||||||
message Response {
|
|
||||||
//
|
|
||||||
int32 code = 1;
|
|
||||||
//
|
|
||||||
string message = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum SubtitleAiStatus {
|
|
||||||
None = 0; //
|
|
||||||
Exposure = 1; //
|
|
||||||
Assist = 2; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum SubtitleAiType {
|
|
||||||
Normal = 0; //
|
|
||||||
Translate = 1; //
|
|
||||||
}
|
|
||||||
|
|
||||||
// 单个字幕信息
|
|
||||||
message SubtitleItem {
|
|
||||||
// 字幕id
|
|
||||||
int64 id = 1;
|
|
||||||
// 字幕id str
|
|
||||||
string id_str = 2;
|
|
||||||
// 字幕语言代码
|
|
||||||
string lan = 3;
|
|
||||||
// 字幕语言
|
|
||||||
string lan_doc = 4;
|
|
||||||
// 字幕文件url
|
|
||||||
string subtitle_url = 5;
|
|
||||||
// 字幕作者信息
|
|
||||||
UserInfo author = 6;
|
|
||||||
// 字幕类型
|
|
||||||
SubtitleType type = 7;
|
|
||||||
//
|
|
||||||
string lan_doc_brief = 8;
|
|
||||||
//
|
|
||||||
SubtitleAiType ai_type = 9;
|
|
||||||
//
|
|
||||||
SubtitleAiStatus ai_status = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum SubtitleType {
|
|
||||||
CC = 0; // CC字幕
|
|
||||||
AI = 1; // AI生成字幕
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message TextInput {
|
|
||||||
//
|
|
||||||
repeated string portrait_placeholder = 1;
|
|
||||||
//
|
|
||||||
repeated string landscape_placeholder = 2;
|
|
||||||
//
|
|
||||||
RenderType render_type = 3;
|
|
||||||
//
|
|
||||||
bool placeholder_post = 4;
|
|
||||||
//
|
|
||||||
bool show = 5;
|
|
||||||
//
|
|
||||||
repeated Avatar avatar = 6;
|
|
||||||
//
|
|
||||||
PostStatus post_status = 7;
|
|
||||||
//
|
|
||||||
Label label = 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message TextInputV2 {
|
|
||||||
//
|
|
||||||
repeated string portrait_placeholder = 1;
|
|
||||||
//
|
|
||||||
repeated string landscape_placeholder = 2;
|
|
||||||
//
|
|
||||||
RenderType render_type = 3;
|
|
||||||
//
|
|
||||||
bool placeholder_post = 4;
|
|
||||||
//
|
|
||||||
repeated Avatar avatar = 5;
|
|
||||||
//
|
|
||||||
int32 text_input_limit = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message Toast {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
int32 duration = 2;
|
|
||||||
//
|
|
||||||
bool show = 3;
|
|
||||||
//
|
|
||||||
Button button = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message ToastButtonV2 {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
int32 action = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
enum ToastFunctionType {
|
|
||||||
ToastFunctionTypeNone = 0; //
|
|
||||||
ToastFunctionTypePostPanel = 1; //
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
message ToastV2 {
|
|
||||||
//
|
|
||||||
string text = 1;
|
|
||||||
//
|
|
||||||
int32 duration = 2;
|
|
||||||
//
|
|
||||||
ToastButtonV2 toast_button_v2 = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 字幕作者信息
|
|
||||||
message UserInfo {
|
|
||||||
// 用户mid
|
|
||||||
int64 mid = 1;
|
|
||||||
// 用户昵称
|
|
||||||
string name = 2;
|
|
||||||
// 用户性别
|
|
||||||
string sex = 3;
|
|
||||||
// 用户头像url
|
|
||||||
string face = 4;
|
|
||||||
// 用户签名
|
|
||||||
string sign = 5;
|
|
||||||
// 用户等级
|
|
||||||
int32 rank = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 智能防挡弹幕蒙版信息
|
|
||||||
message VideoMask {
|
|
||||||
// 视频cid
|
|
||||||
int64 cid = 1;
|
|
||||||
// 平台
|
|
||||||
// 0:web端 1:客户端
|
|
||||||
int32 plat = 2;
|
|
||||||
// 帧率
|
|
||||||
int32 fps = 3;
|
|
||||||
// 间隔时间
|
|
||||||
int64 time = 4;
|
|
||||||
// 蒙版url
|
|
||||||
string mask_url = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 视频字幕信息
|
|
||||||
message VideoSubtitle {
|
|
||||||
// 视频原语言代码
|
|
||||||
string lan = 1;
|
|
||||||
// 视频原语言
|
|
||||||
string lanDoc = 2;
|
|
||||||
// 视频字幕列表
|
|
||||||
repeated SubtitleItem subtitles = 3;
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
|
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
|
||||||
import 'package:PiliPlus/http/danmaku.dart';
|
import 'package:PiliPlus/http/danmaku.dart';
|
||||||
import 'package:PiliPlus/models/danmaku/dm.pb.dart';
|
|
||||||
import 'package:PiliPlus/plugin/pl_player/controller.dart';
|
import 'package:PiliPlus/plugin/pl_player/controller.dart';
|
||||||
|
|
||||||
class PlDanmakuController {
|
class PlDanmakuController {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
|
||||||
import 'package:PiliPlus/utils/extension.dart';
|
import 'package:PiliPlus/utils/extension.dart';
|
||||||
import 'package:canvas_danmaku/canvas_danmaku.dart';
|
import 'package:canvas_danmaku/canvas_danmaku.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:PiliPlus/models/danmaku/dm.pb.dart';
|
|
||||||
import 'package:PiliPlus/pages/danmaku/index.dart';
|
import 'package:PiliPlus/pages/danmaku/index.dart';
|
||||||
import 'package:PiliPlus/plugin/pl_player/index.dart';
|
import 'package:PiliPlus/plugin/pl_player/index.dart';
|
||||||
import 'package:PiliPlus/utils/danmaku.dart';
|
import 'package:PiliPlus/utils/danmaku.dart';
|
||||||
|
|||||||
Reference in New Issue
Block a user