mod: protobuf编译文件生成
This commit is contained in:
10194
lib/models/danmaku/dm.pb.dart
Normal file
10194
lib/models/danmaku/dm.pb.dart
Normal file
File diff suppressed because it is too large
Load Diff
347
lib/models/danmaku/dm.pbenum.dart
Normal file
347
lib/models/danmaku/dm.pbenum.dart
Normal file
@ -0,0 +1,347 @@
|
||||
///
|
||||
// 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);
|
||||
}
|
2318
lib/models/danmaku/dm.pbjson.dart
Normal file
2318
lib/models/danmaku/dm.pbjson.dart
Normal file
File diff suppressed because it is too large
Load Diff
74
lib/models/danmaku/dm.pbserver.dart
Normal file
74
lib/models/danmaku/dm.pbserver.dart
Normal file
@ -0,0 +1,74 @@
|
||||
///
|
||||
// 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;
|
||||
}
|
893
lib/models/danmaku/dm.proto
Normal file
893
lib/models/danmaku/dm.proto
Normal file
@ -0,0 +1,893 @@
|
||||
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;
|
||||
}
|
@ -901,6 +901,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.5.1"
|
||||
protobuf:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: protobuf
|
||||
sha256: "4034a02b7e231e7e60bff30a8ac13a7347abfdac0798595fae0b90a3f0afe759"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
pub_semver:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -108,6 +108,7 @@ dependencies:
|
||||
# 进度条
|
||||
audio_video_progress_bar: ^1.0.1
|
||||
# auto_orientation: ^2.3.1
|
||||
protobuf: ^3.0.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
Reference in New Issue
Block a user