mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
replace grpc to dio (#313)
* replace grpc to dio * load danmaku from grpc
This commit is contained in:
committed by
GitHub
parent
9e242fb902
commit
347a704b54
@@ -1,299 +0,0 @@
|
||||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: bilibili/app/dynamic/v1/dynamic.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 'dynamic.pb.dart' as $0;
|
||||
|
||||
export 'dynamic.pb.dart';
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.app.dynamic.v1.Dynamic')
|
||||
class DynamicClient extends $grpc.Client {
|
||||
static final _$dynVideo = $grpc.ClientMethod<$0.DynVideoReq, $0.DynVideoReqReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynVideo',
|
||||
($0.DynVideoReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynVideoReqReply.fromBuffer(value));
|
||||
static final _$dynDetails = $grpc.ClientMethod<$0.DynDetailsReq, $0.DynDetailsReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynDetails',
|
||||
($0.DynDetailsReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynDetailsReply.fromBuffer(value));
|
||||
static final _$sVideo = $grpc.ClientMethod<$0.SVideoReq, $0.SVideoReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/SVideo',
|
||||
($0.SVideoReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.SVideoReply.fromBuffer(value));
|
||||
static final _$dynTab = $grpc.ClientMethod<$0.DynTabReq, $0.DynTabReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynTab',
|
||||
($0.DynTabReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynTabReply.fromBuffer(value));
|
||||
static final _$dynOurCitySwitch = $grpc.ClientMethod<$0.DynOurCitySwitchReq, $0.NoReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynOurCitySwitch',
|
||||
($0.DynOurCitySwitchReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.NoReply.fromBuffer(value));
|
||||
static final _$dynOurCity = $grpc.ClientMethod<$0.DynOurCityReq, $0.DynOurCityReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynOurCity',
|
||||
($0.DynOurCityReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynOurCityReply.fromBuffer(value));
|
||||
static final _$dynVideoPersonal = $grpc.ClientMethod<$0.DynVideoPersonalReq, $0.DynVideoPersonalReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynVideoPersonal',
|
||||
($0.DynVideoPersonalReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynVideoPersonalReply.fromBuffer(value));
|
||||
static final _$dynUpdOffset = $grpc.ClientMethod<$0.DynUpdOffsetReq, $0.NoReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynUpdOffset',
|
||||
($0.DynUpdOffsetReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.NoReply.fromBuffer(value));
|
||||
static final _$dynRed = $grpc.ClientMethod<$0.DynRedReq, $0.DynRedReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynRed',
|
||||
($0.DynRedReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynRedReply.fromBuffer(value));
|
||||
static final _$dynMixUpListViewMore = $grpc.ClientMethod<$0.NoReq, $0.DynMixUpListViewMoreReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynMixUpListViewMore',
|
||||
($0.NoReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynMixUpListViewMoreReply.fromBuffer(value));
|
||||
static final _$dynMixUpListSearch = $grpc.ClientMethod<$0.DynMixUpListSearchReq, $0.DynMixUpListSearchReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/DynMixUpListSearch',
|
||||
($0.DynMixUpListSearchReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DynMixUpListSearchReply.fromBuffer(value));
|
||||
static final _$ourCityClickReport = $grpc.ClientMethod<$0.OurCityClickReportReq, $0.OurCityClickReportReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/OurCityClickReport',
|
||||
($0.OurCityClickReportReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.OurCityClickReportReply.fromBuffer(value));
|
||||
static final _$geoCoder = $grpc.ClientMethod<$0.GeoCoderReq, $0.GeoCoderReply>(
|
||||
'/bilibili.app.dynamic.v1.Dynamic/GeoCoder',
|
||||
($0.GeoCoderReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.GeoCoderReply.fromBuffer(value));
|
||||
|
||||
DynamicClient($grpc.ClientChannel channel,
|
||||
{$grpc.CallOptions? options,
|
||||
$core.Iterable<$grpc.ClientInterceptor>? interceptors})
|
||||
: super(channel, options: options,
|
||||
interceptors: interceptors);
|
||||
|
||||
$grpc.ResponseFuture<$0.DynVideoReqReply> dynVideo($0.DynVideoReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynVideo, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DynDetailsReply> dynDetails($0.DynDetailsReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynDetails, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.SVideoReply> sVideo($0.SVideoReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$sVideo, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DynTabReply> dynTab($0.DynTabReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynTab, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.NoReply> dynOurCitySwitch($0.DynOurCitySwitchReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynOurCitySwitch, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DynOurCityReply> dynOurCity($0.DynOurCityReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynOurCity, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DynVideoPersonalReply> dynVideoPersonal($0.DynVideoPersonalReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynVideoPersonal, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.NoReply> dynUpdOffset($0.DynUpdOffsetReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynUpdOffset, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DynRedReply> dynRed($0.DynRedReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynRed, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DynMixUpListViewMoreReply> dynMixUpListViewMore($0.NoReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynMixUpListViewMore, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DynMixUpListSearchReply> dynMixUpListSearch($0.DynMixUpListSearchReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dynMixUpListSearch, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.OurCityClickReportReply> ourCityClickReport($0.OurCityClickReportReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$ourCityClickReport, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.GeoCoderReply> geoCoder($0.GeoCoderReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$geoCoder, request, options: options);
|
||||
}
|
||||
}
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.app.dynamic.v1.Dynamic')
|
||||
abstract class DynamicServiceBase extends $grpc.Service {
|
||||
$core.String get $name => 'bilibili.app.dynamic.v1.Dynamic';
|
||||
|
||||
DynamicServiceBase() {
|
||||
$addMethod($grpc.ServiceMethod<$0.DynVideoReq, $0.DynVideoReqReply>(
|
||||
'DynVideo',
|
||||
dynVideo_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynVideoReq.fromBuffer(value),
|
||||
($0.DynVideoReqReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynDetailsReq, $0.DynDetailsReply>(
|
||||
'DynDetails',
|
||||
dynDetails_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynDetailsReq.fromBuffer(value),
|
||||
($0.DynDetailsReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.SVideoReq, $0.SVideoReply>(
|
||||
'SVideo',
|
||||
sVideo_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.SVideoReq.fromBuffer(value),
|
||||
($0.SVideoReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynTabReq, $0.DynTabReply>(
|
||||
'DynTab',
|
||||
dynTab_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynTabReq.fromBuffer(value),
|
||||
($0.DynTabReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynOurCitySwitchReq, $0.NoReply>(
|
||||
'DynOurCitySwitch',
|
||||
dynOurCitySwitch_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynOurCitySwitchReq.fromBuffer(value),
|
||||
($0.NoReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynOurCityReq, $0.DynOurCityReply>(
|
||||
'DynOurCity',
|
||||
dynOurCity_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynOurCityReq.fromBuffer(value),
|
||||
($0.DynOurCityReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynVideoPersonalReq, $0.DynVideoPersonalReply>(
|
||||
'DynVideoPersonal',
|
||||
dynVideoPersonal_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynVideoPersonalReq.fromBuffer(value),
|
||||
($0.DynVideoPersonalReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynUpdOffsetReq, $0.NoReply>(
|
||||
'DynUpdOffset',
|
||||
dynUpdOffset_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynUpdOffsetReq.fromBuffer(value),
|
||||
($0.NoReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynRedReq, $0.DynRedReply>(
|
||||
'DynRed',
|
||||
dynRed_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynRedReq.fromBuffer(value),
|
||||
($0.DynRedReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.NoReq, $0.DynMixUpListViewMoreReply>(
|
||||
'DynMixUpListViewMore',
|
||||
dynMixUpListViewMore_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.NoReq.fromBuffer(value),
|
||||
($0.DynMixUpListViewMoreReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DynMixUpListSearchReq, $0.DynMixUpListSearchReply>(
|
||||
'DynMixUpListSearch',
|
||||
dynMixUpListSearch_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DynMixUpListSearchReq.fromBuffer(value),
|
||||
($0.DynMixUpListSearchReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.OurCityClickReportReq, $0.OurCityClickReportReply>(
|
||||
'OurCityClickReport',
|
||||
ourCityClickReport_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.OurCityClickReportReq.fromBuffer(value),
|
||||
($0.OurCityClickReportReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.GeoCoderReq, $0.GeoCoderReply>(
|
||||
'GeoCoder',
|
||||
geoCoder_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.GeoCoderReq.fromBuffer(value),
|
||||
($0.GeoCoderReply value) => value.writeToBuffer()));
|
||||
}
|
||||
|
||||
$async.Future<$0.DynVideoReqReply> dynVideo_Pre($grpc.ServiceCall call, $async.Future<$0.DynVideoReq> request) async {
|
||||
return dynVideo(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynDetailsReply> dynDetails_Pre($grpc.ServiceCall call, $async.Future<$0.DynDetailsReq> request) async {
|
||||
return dynDetails(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.SVideoReply> sVideo_Pre($grpc.ServiceCall call, $async.Future<$0.SVideoReq> request) async {
|
||||
return sVideo(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynTabReply> dynTab_Pre($grpc.ServiceCall call, $async.Future<$0.DynTabReq> request) async {
|
||||
return dynTab(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.NoReply> dynOurCitySwitch_Pre($grpc.ServiceCall call, $async.Future<$0.DynOurCitySwitchReq> request) async {
|
||||
return dynOurCitySwitch(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynOurCityReply> dynOurCity_Pre($grpc.ServiceCall call, $async.Future<$0.DynOurCityReq> request) async {
|
||||
return dynOurCity(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynVideoPersonalReply> dynVideoPersonal_Pre($grpc.ServiceCall call, $async.Future<$0.DynVideoPersonalReq> request) async {
|
||||
return dynVideoPersonal(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.NoReply> dynUpdOffset_Pre($grpc.ServiceCall call, $async.Future<$0.DynUpdOffsetReq> request) async {
|
||||
return dynUpdOffset(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynRedReply> dynRed_Pre($grpc.ServiceCall call, $async.Future<$0.DynRedReq> request) async {
|
||||
return dynRed(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynMixUpListViewMoreReply> dynMixUpListViewMore_Pre($grpc.ServiceCall call, $async.Future<$0.NoReq> request) async {
|
||||
return dynMixUpListViewMore(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynMixUpListSearchReply> dynMixUpListSearch_Pre($grpc.ServiceCall call, $async.Future<$0.DynMixUpListSearchReq> request) async {
|
||||
return dynMixUpListSearch(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.OurCityClickReportReply> ourCityClickReport_Pre($grpc.ServiceCall call, $async.Future<$0.OurCityClickReportReq> request) async {
|
||||
return ourCityClickReport(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.GeoCoderReply> geoCoder_Pre($grpc.ServiceCall call, $async.Future<$0.GeoCoderReq> request) async {
|
||||
return geoCoder(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DynVideoReqReply> dynVideo($grpc.ServiceCall call, $0.DynVideoReq request);
|
||||
$async.Future<$0.DynDetailsReply> dynDetails($grpc.ServiceCall call, $0.DynDetailsReq request);
|
||||
$async.Future<$0.SVideoReply> sVideo($grpc.ServiceCall call, $0.SVideoReq request);
|
||||
$async.Future<$0.DynTabReply> dynTab($grpc.ServiceCall call, $0.DynTabReq request);
|
||||
$async.Future<$0.NoReply> dynOurCitySwitch($grpc.ServiceCall call, $0.DynOurCitySwitchReq request);
|
||||
$async.Future<$0.DynOurCityReply> dynOurCity($grpc.ServiceCall call, $0.DynOurCityReq request);
|
||||
$async.Future<$0.DynVideoPersonalReply> dynVideoPersonal($grpc.ServiceCall call, $0.DynVideoPersonalReq request);
|
||||
$async.Future<$0.NoReply> dynUpdOffset($grpc.ServiceCall call, $0.DynUpdOffsetReq request);
|
||||
$async.Future<$0.DynRedReply> dynRed($grpc.ServiceCall call, $0.DynRedReq request);
|
||||
$async.Future<$0.DynMixUpListViewMoreReply> dynMixUpListViewMore($grpc.ServiceCall call, $0.NoReq request);
|
||||
$async.Future<$0.DynMixUpListSearchReply> dynMixUpListSearch($grpc.ServiceCall call, $0.DynMixUpListSearchReq request);
|
||||
$async.Future<$0.OurCityClickReportReply> ourCityClickReport($grpc.ServiceCall call, $0.OurCityClickReportReq request);
|
||||
$async.Future<$0.GeoCoderReply> geoCoder($grpc.ServiceCall call, $0.GeoCoderReq request);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,259 +0,0 @@
|
||||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: bilibili/main/community/reply/v1/reply.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 'reply.pb.dart' as $0;
|
||||
|
||||
export 'reply.pb.dart';
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.main.community.reply.v1.Reply')
|
||||
class ReplyClient extends $grpc.Client {
|
||||
static final _$mainList = $grpc.ClientMethod<$0.MainListReq, $0.MainListReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/MainList',
|
||||
($0.MainListReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.MainListReply.fromBuffer(value));
|
||||
static final _$detailList = $grpc.ClientMethod<$0.DetailListReq, $0.DetailListReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/DetailList',
|
||||
($0.DetailListReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DetailListReply.fromBuffer(value));
|
||||
static final _$dialogList = $grpc.ClientMethod<$0.DialogListReq, $0.DialogListReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/DialogList',
|
||||
($0.DialogListReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.DialogListReply.fromBuffer(value));
|
||||
static final _$previewList = $grpc.ClientMethod<$0.PreviewListReq, $0.PreviewListReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/PreviewList',
|
||||
($0.PreviewListReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.PreviewListReply.fromBuffer(value));
|
||||
static final _$searchItemPreHook = $grpc.ClientMethod<$0.SearchItemPreHookReq, $0.SearchItemPreHookReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/SearchItemPreHook',
|
||||
($0.SearchItemPreHookReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.SearchItemPreHookReply.fromBuffer(value));
|
||||
static final _$searchItem = $grpc.ClientMethod<$0.SearchItemReq, $0.SearchItemReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/SearchItem',
|
||||
($0.SearchItemReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.SearchItemReply.fromBuffer(value));
|
||||
static final _$atSearch = $grpc.ClientMethod<$0.AtSearchReq, $0.AtSearchReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/AtSearch',
|
||||
($0.AtSearchReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.AtSearchReply.fromBuffer(value));
|
||||
static final _$replyInfo = $grpc.ClientMethod<$0.ReplyInfoReq, $0.ReplyInfoReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/ReplyInfo',
|
||||
($0.ReplyInfoReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.ReplyInfoReply.fromBuffer(value));
|
||||
static final _$userCallback = $grpc.ClientMethod<$0.UserCallbackReq, $0.UserCallbackReply>(
|
||||
'/bilibili.main.community.reply.v1.Reply/UserCallback',
|
||||
($0.UserCallbackReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.UserCallbackReply.fromBuffer(value));
|
||||
static final _$shareRepliesInfo = $grpc.ClientMethod<$0.ShareRepliesInfoReq, $0.ShareRepliesInfoResp>(
|
||||
'/bilibili.main.community.reply.v1.Reply/ShareRepliesInfo',
|
||||
($0.ShareRepliesInfoReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.ShareRepliesInfoResp.fromBuffer(value));
|
||||
static final _$suggestEmotes = $grpc.ClientMethod<$0.SuggestEmotesReq, $0.SuggestEmotesResp>(
|
||||
'/bilibili.main.community.reply.v1.Reply/SuggestEmotes',
|
||||
($0.SuggestEmotesReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.SuggestEmotesResp.fromBuffer(value));
|
||||
|
||||
ReplyClient($grpc.ClientChannel channel,
|
||||
{$grpc.CallOptions? options,
|
||||
$core.Iterable<$grpc.ClientInterceptor>? interceptors})
|
||||
: super(channel, options: options,
|
||||
interceptors: interceptors);
|
||||
|
||||
$grpc.ResponseFuture<$0.MainListReply> mainList($0.MainListReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$mainList, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DetailListReply> detailList($0.DetailListReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$detailList, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.DialogListReply> dialogList($0.DialogListReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$dialogList, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.PreviewListReply> previewList($0.PreviewListReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$previewList, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.SearchItemPreHookReply> searchItemPreHook($0.SearchItemPreHookReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$searchItemPreHook, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.SearchItemReply> searchItem($0.SearchItemReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$searchItem, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.AtSearchReply> atSearch($0.AtSearchReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$atSearch, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.ReplyInfoReply> replyInfo($0.ReplyInfoReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$replyInfo, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.UserCallbackReply> userCallback($0.UserCallbackReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$userCallback, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.ShareRepliesInfoResp> shareRepliesInfo($0.ShareRepliesInfoReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$shareRepliesInfo, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.SuggestEmotesResp> suggestEmotes($0.SuggestEmotesReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$suggestEmotes, request, options: options);
|
||||
}
|
||||
}
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.main.community.reply.v1.Reply')
|
||||
abstract class ReplyServiceBase extends $grpc.Service {
|
||||
$core.String get $name => 'bilibili.main.community.reply.v1.Reply';
|
||||
|
||||
ReplyServiceBase() {
|
||||
$addMethod($grpc.ServiceMethod<$0.MainListReq, $0.MainListReply>(
|
||||
'MainList',
|
||||
mainList_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.MainListReq.fromBuffer(value),
|
||||
($0.MainListReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DetailListReq, $0.DetailListReply>(
|
||||
'DetailList',
|
||||
detailList_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DetailListReq.fromBuffer(value),
|
||||
($0.DetailListReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.DialogListReq, $0.DialogListReply>(
|
||||
'DialogList',
|
||||
dialogList_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.DialogListReq.fromBuffer(value),
|
||||
($0.DialogListReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.PreviewListReq, $0.PreviewListReply>(
|
||||
'PreviewList',
|
||||
previewList_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.PreviewListReq.fromBuffer(value),
|
||||
($0.PreviewListReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.SearchItemPreHookReq, $0.SearchItemPreHookReply>(
|
||||
'SearchItemPreHook',
|
||||
searchItemPreHook_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.SearchItemPreHookReq.fromBuffer(value),
|
||||
($0.SearchItemPreHookReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.SearchItemReq, $0.SearchItemReply>(
|
||||
'SearchItem',
|
||||
searchItem_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.SearchItemReq.fromBuffer(value),
|
||||
($0.SearchItemReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.AtSearchReq, $0.AtSearchReply>(
|
||||
'AtSearch',
|
||||
atSearch_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.AtSearchReq.fromBuffer(value),
|
||||
($0.AtSearchReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.ReplyInfoReq, $0.ReplyInfoReply>(
|
||||
'ReplyInfo',
|
||||
replyInfo_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.ReplyInfoReq.fromBuffer(value),
|
||||
($0.ReplyInfoReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.UserCallbackReq, $0.UserCallbackReply>(
|
||||
'UserCallback',
|
||||
userCallback_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.UserCallbackReq.fromBuffer(value),
|
||||
($0.UserCallbackReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.ShareRepliesInfoReq, $0.ShareRepliesInfoResp>(
|
||||
'ShareRepliesInfo',
|
||||
shareRepliesInfo_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.ShareRepliesInfoReq.fromBuffer(value),
|
||||
($0.ShareRepliesInfoResp value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.SuggestEmotesReq, $0.SuggestEmotesResp>(
|
||||
'SuggestEmotes',
|
||||
suggestEmotes_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.SuggestEmotesReq.fromBuffer(value),
|
||||
($0.SuggestEmotesResp value) => value.writeToBuffer()));
|
||||
}
|
||||
|
||||
$async.Future<$0.MainListReply> mainList_Pre($grpc.ServiceCall call, $async.Future<$0.MainListReq> request) async {
|
||||
return mainList(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DetailListReply> detailList_Pre($grpc.ServiceCall call, $async.Future<$0.DetailListReq> request) async {
|
||||
return detailList(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.DialogListReply> dialogList_Pre($grpc.ServiceCall call, $async.Future<$0.DialogListReq> request) async {
|
||||
return dialogList(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.PreviewListReply> previewList_Pre($grpc.ServiceCall call, $async.Future<$0.PreviewListReq> request) async {
|
||||
return previewList(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.SearchItemPreHookReply> searchItemPreHook_Pre($grpc.ServiceCall call, $async.Future<$0.SearchItemPreHookReq> request) async {
|
||||
return searchItemPreHook(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.SearchItemReply> searchItem_Pre($grpc.ServiceCall call, $async.Future<$0.SearchItemReq> request) async {
|
||||
return searchItem(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.AtSearchReply> atSearch_Pre($grpc.ServiceCall call, $async.Future<$0.AtSearchReq> request) async {
|
||||
return atSearch(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.ReplyInfoReply> replyInfo_Pre($grpc.ServiceCall call, $async.Future<$0.ReplyInfoReq> request) async {
|
||||
return replyInfo(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.UserCallbackReply> userCallback_Pre($grpc.ServiceCall call, $async.Future<$0.UserCallbackReq> request) async {
|
||||
return userCallback(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.ShareRepliesInfoResp> shareRepliesInfo_Pre($grpc.ServiceCall call, $async.Future<$0.ShareRepliesInfoReq> request) async {
|
||||
return shareRepliesInfo(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.SuggestEmotesResp> suggestEmotes_Pre($grpc.ServiceCall call, $async.Future<$0.SuggestEmotesReq> request) async {
|
||||
return suggestEmotes(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.MainListReply> mainList($grpc.ServiceCall call, $0.MainListReq request);
|
||||
$async.Future<$0.DetailListReply> detailList($grpc.ServiceCall call, $0.DetailListReq request);
|
||||
$async.Future<$0.DialogListReply> dialogList($grpc.ServiceCall call, $0.DialogListReq request);
|
||||
$async.Future<$0.PreviewListReply> previewList($grpc.ServiceCall call, $0.PreviewListReq request);
|
||||
$async.Future<$0.SearchItemPreHookReply> searchItemPreHook($grpc.ServiceCall call, $0.SearchItemPreHookReq request);
|
||||
$async.Future<$0.SearchItemReply> searchItem($grpc.ServiceCall call, $0.SearchItemReq request);
|
||||
$async.Future<$0.AtSearchReply> atSearch($grpc.ServiceCall call, $0.AtSearchReq request);
|
||||
$async.Future<$0.ReplyInfoReply> replyInfo($grpc.ServiceCall call, $0.ReplyInfoReq request);
|
||||
$async.Future<$0.UserCallbackReply> userCallback($grpc.ServiceCall call, $0.UserCallbackReq request);
|
||||
$async.Future<$0.ShareRepliesInfoResp> shareRepliesInfo($grpc.ServiceCall call, $0.ShareRepliesInfoReq request);
|
||||
$async.Future<$0.SuggestEmotesResp> suggestEmotes($grpc.ServiceCall call, $0.SuggestEmotesReq request);
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: playeronline.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 'playeronline.pb.dart' as $0;
|
||||
|
||||
export 'playeronline.pb.dart';
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.app.playeronline.v1.PlayerOnline')
|
||||
class PlayerOnlineClient extends $grpc.Client {
|
||||
static final _$playerOnline = $grpc.ClientMethod<$0.PlayerOnlineReq, $0.PlayerOnlineReply>(
|
||||
'/bilibili.app.playeronline.v1.PlayerOnline/PlayerOnline',
|
||||
($0.PlayerOnlineReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.PlayerOnlineReply.fromBuffer(value));
|
||||
static final _$premiereInfo = $grpc.ClientMethod<$0.PremiereInfoReq, $0.PremiereInfoReply>(
|
||||
'/bilibili.app.playeronline.v1.PlayerOnline/PremiereInfo',
|
||||
($0.PremiereInfoReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.PremiereInfoReply.fromBuffer(value));
|
||||
static final _$reportWatch = $grpc.ClientMethod<$0.ReportWatchReq, $0.NoReply>(
|
||||
'/bilibili.app.playeronline.v1.PlayerOnline/ReportWatch',
|
||||
($0.ReportWatchReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.NoReply.fromBuffer(value));
|
||||
|
||||
PlayerOnlineClient($grpc.ClientChannel channel,
|
||||
{$grpc.CallOptions? options,
|
||||
$core.Iterable<$grpc.ClientInterceptor>? interceptors})
|
||||
: super(channel, options: options,
|
||||
interceptors: interceptors);
|
||||
|
||||
$grpc.ResponseFuture<$0.PlayerOnlineReply> playerOnline($0.PlayerOnlineReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$playerOnline, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.PremiereInfoReply> premiereInfo($0.PremiereInfoReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$premiereInfo, request, options: options);
|
||||
}
|
||||
|
||||
$grpc.ResponseFuture<$0.NoReply> reportWatch($0.ReportWatchReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$reportWatch, request, options: options);
|
||||
}
|
||||
}
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.app.playeronline.v1.PlayerOnline')
|
||||
abstract class PlayerOnlineServiceBase extends $grpc.Service {
|
||||
$core.String get $name => 'bilibili.app.playeronline.v1.PlayerOnline';
|
||||
|
||||
PlayerOnlineServiceBase() {
|
||||
$addMethod($grpc.ServiceMethod<$0.PlayerOnlineReq, $0.PlayerOnlineReply>(
|
||||
'PlayerOnline',
|
||||
playerOnline_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.PlayerOnlineReq.fromBuffer(value),
|
||||
($0.PlayerOnlineReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.PremiereInfoReq, $0.PremiereInfoReply>(
|
||||
'PremiereInfo',
|
||||
premiereInfo_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.PremiereInfoReq.fromBuffer(value),
|
||||
($0.PremiereInfoReply value) => value.writeToBuffer()));
|
||||
$addMethod($grpc.ServiceMethod<$0.ReportWatchReq, $0.NoReply>(
|
||||
'ReportWatch',
|
||||
reportWatch_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.ReportWatchReq.fromBuffer(value),
|
||||
($0.NoReply value) => value.writeToBuffer()));
|
||||
}
|
||||
|
||||
$async.Future<$0.PlayerOnlineReply> playerOnline_Pre($grpc.ServiceCall call, $async.Future<$0.PlayerOnlineReq> request) async {
|
||||
return playerOnline(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.PremiereInfoReply> premiereInfo_Pre($grpc.ServiceCall call, $async.Future<$0.PremiereInfoReq> request) async {
|
||||
return premiereInfo(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.NoReply> reportWatch_Pre($grpc.ServiceCall call, $async.Future<$0.ReportWatchReq> request) async {
|
||||
return reportWatch(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.PlayerOnlineReply> playerOnline($grpc.ServiceCall call, $0.PlayerOnlineReq request);
|
||||
$async.Future<$0.PremiereInfoReply> premiereInfo($grpc.ServiceCall call, $0.PremiereInfoReq request);
|
||||
$async.Future<$0.NoReply> reportWatch($grpc.ServiceCall call, $0.ReportWatchReq request);
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: bilibili/app/show/popular/v1/popular.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 'popular.pb.dart' as $0;
|
||||
|
||||
export 'popular.pb.dart';
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.app.show.v1.Popular')
|
||||
class PopularClient extends $grpc.Client {
|
||||
static final _$index = $grpc.ClientMethod<$0.PopularResultReq, $0.PopularReply>(
|
||||
'/bilibili.app.show.v1.Popular/Index',
|
||||
($0.PopularResultReq value) => value.writeToBuffer(),
|
||||
($core.List<$core.int> value) => $0.PopularReply.fromBuffer(value));
|
||||
|
||||
PopularClient($grpc.ClientChannel channel,
|
||||
{$grpc.CallOptions? options,
|
||||
$core.Iterable<$grpc.ClientInterceptor>? interceptors})
|
||||
: super(channel, options: options,
|
||||
interceptors: interceptors);
|
||||
|
||||
$grpc.ResponseFuture<$0.PopularReply> index($0.PopularResultReq request, {$grpc.CallOptions? options}) {
|
||||
return $createUnaryCall(_$index, request, options: options);
|
||||
}
|
||||
}
|
||||
|
||||
@$pb.GrpcServiceName('bilibili.app.show.v1.Popular')
|
||||
abstract class PopularServiceBase extends $grpc.Service {
|
||||
$core.String get $name => 'bilibili.app.show.v1.Popular';
|
||||
|
||||
PopularServiceBase() {
|
||||
$addMethod($grpc.ServiceMethod<$0.PopularResultReq, $0.PopularReply>(
|
||||
'Index',
|
||||
index_Pre,
|
||||
false,
|
||||
false,
|
||||
($core.List<$core.int> value) => $0.PopularResultReq.fromBuffer(value),
|
||||
($0.PopularReply value) => value.writeToBuffer()));
|
||||
}
|
||||
|
||||
$async.Future<$0.PopularReply> index_Pre($grpc.ServiceCall call, $async.Future<$0.PopularResultReq> request) async {
|
||||
return index(call, await request);
|
||||
}
|
||||
|
||||
$async.Future<$0.PopularReply> index($grpc.ServiceCall call, $0.PopularResultReq request);
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
//
|
||||
// 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);
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
import 'package:PiliPlus/grpc/app/dynamic/v1/dynamic.pbgrpc.dart' as v1;
|
||||
import 'package:PiliPlus/grpc/app/dynamic/v2/dynamic.pbgrpc.dart' as v2;
|
||||
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pbgrpc.dart';
|
||||
import 'package:PiliPlus/grpc/app/playeronline/v1/playeronline.pbgrpc.dart';
|
||||
import 'package:PiliPlus/grpc/app/show/popular/v1/popular.pbgrpc.dart';
|
||||
import 'package:grpc/grpc.dart';
|
||||
|
||||
class GrpcClient {
|
||||
ClientChannel? _channel;
|
||||
PlayerOnlineClient? _playerOnlineClient;
|
||||
PopularClient? _popularClient;
|
||||
ReplyClient? _replyClient;
|
||||
v2.DynamicClient? _dynamicClientV2;
|
||||
v1.DynamicClient? _dynamicClientV1;
|
||||
|
||||
GrpcClient._internal() {
|
||||
_channel = ClientChannel(
|
||||
'grpc.biliapi.net',
|
||||
port: 443,
|
||||
options: const ChannelOptions(
|
||||
credentials: ChannelCredentials.secure(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
static final GrpcClient _instance = GrpcClient._internal();
|
||||
static GrpcClient get instance => _instance;
|
||||
|
||||
PlayerOnlineClient get playerOnlineClient {
|
||||
_playerOnlineClient ??= PlayerOnlineClient(_channel!);
|
||||
return _playerOnlineClient!;
|
||||
}
|
||||
|
||||
PopularClient get popularClient {
|
||||
_popularClient ??= PopularClient(_channel!);
|
||||
return _popularClient!;
|
||||
}
|
||||
|
||||
ReplyClient get replyClient {
|
||||
_replyClient ??= ReplyClient(_channel!);
|
||||
return _replyClient!;
|
||||
}
|
||||
|
||||
v2.DynamicClient get dynamicClientV2 {
|
||||
_dynamicClientV2 ??= v2.DynamicClient(_channel!);
|
||||
return _dynamicClientV2!;
|
||||
}
|
||||
|
||||
v1.DynamicClient get dynamicClientV1 {
|
||||
_dynamicClientV1 ??= v1.DynamicClient(_channel!);
|
||||
return _dynamicClientV1!;
|
||||
}
|
||||
|
||||
Future<void> shutdown() async {
|
||||
await _channel?.shutdown();
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,48 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:PiliPlus/common/constants.dart';
|
||||
import 'package:PiliPlus/grpc/app/dynamic/v1/dynamic.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/dynamic/v2/dynamic.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/playeronline/v1/playeronline.pbgrpc.dart';
|
||||
import 'package:PiliPlus/grpc/app/playeronline/v1/playeronline.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/show/popular/v1/popular.pb.dart';
|
||||
import 'package:PiliPlus/grpc/device/device.pb.dart';
|
||||
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
|
||||
import 'package:PiliPlus/grpc/fawkes/fawkes.pb.dart';
|
||||
import 'package:PiliPlus/grpc/grpc_client.dart';
|
||||
import 'package:PiliPlus/grpc/locale/locale.pb.dart';
|
||||
import 'package:PiliPlus/grpc/metadata/metadata.pb.dart';
|
||||
import 'package:PiliPlus/grpc/network/network.pb.dart' as network;
|
||||
import 'package:PiliPlus/grpc/restriction/restriction.pb.dart';
|
||||
import 'package:PiliPlus/http/init.dart';
|
||||
import 'package:PiliPlus/http/constants.dart';
|
||||
import 'package:PiliPlus/utils/login.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:PiliPlus/utils/utils.dart';
|
||||
import 'package:archive/archive.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fixnum/src/int64.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:grpc/grpc.dart';
|
||||
import 'package:protobuf/protobuf.dart' show GeneratedMessage;
|
||||
|
||||
class GrpcUrl {
|
||||
static const playerOnline =
|
||||
'/bilibili.app.playeronline.v1.PlayerOnline/PlayerOnline';
|
||||
static const popular = '/bilibili.app.show.v1.Popular/Index';
|
||||
static const dialogList =
|
||||
'/bilibili.main.community.reply.v1.Reply/DialogList';
|
||||
static const detailList =
|
||||
'/bilibili.main.community.reply.v1.Reply/DetailList';
|
||||
static const replyInfo = '/bilibili.main.community.reply.v1.Reply/ReplyInfo';
|
||||
static const mainList = '/bilibili.main.community.reply.v1.Reply/MainList';
|
||||
static const dynSpace = '/bilibili.app.dynamic.v2.Dynamic/DynSpace';
|
||||
static const dynRed = '/bilibili.app.dynamic.v1.Dynamic/DynRed';
|
||||
static const dmSegMobile = '/bilibili.community.service.dm.v1.DM/DmSegMobile';
|
||||
}
|
||||
|
||||
class GrpcRepo {
|
||||
static const gzipEncoder = GZipEncoder();
|
||||
static const gzipDecoder = GZipDecoder();
|
||||
|
||||
static final bool _isLogin = GStorage.userInfo.get('userInfoCache') != null;
|
||||
static final int? _mid = GStorage.userInfo.get('userInfoCache')?.mid;
|
||||
static final String? _accessKey = GStorage.localCache
|
||||
@@ -35,7 +57,10 @@ class GrpcRepo {
|
||||
static final _traceId = Utils.genTraceId();
|
||||
static final _sessionId = Utils.generateRandomString(8);
|
||||
|
||||
static final Map<String, String> metadata = {
|
||||
static final Map<String, String> headers = {
|
||||
Headers.contentTypeHeader: 'application/grpc',
|
||||
'grpc-encoding': 'gzip',
|
||||
'gzip-accept-encoding': 'gzip,identity',
|
||||
'user-agent': '${Constants.userAgent} grpc-java-cronet/1.36.1',
|
||||
'x-bili-gaia-vtoken': '',
|
||||
'x-bili-aurora-eid': _isLogin ? _eId : '',
|
||||
@@ -46,108 +71,132 @@ class GrpcRepo {
|
||||
'buvid': _buvid,
|
||||
'bili-http-engine': 'cronet',
|
||||
'te': 'trailers',
|
||||
'x-bili-fawkes-req-bin': base64Encode((FawkesReq()
|
||||
..appkey = _mobiApp
|
||||
..env = 'prod'
|
||||
..sessionId = _sessionId)
|
||||
'x-bili-fawkes-req-bin': base64Encode(
|
||||
FawkesReq(appkey: _mobiApp, env: 'prod', sessionId: _sessionId)
|
||||
.writeToBuffer()),
|
||||
'x-bili-metadata-bin': base64Encode(Metadata(
|
||||
accessKey: _accessKey ?? '',
|
||||
mobiApp: _mobiApp,
|
||||
device: _phone,
|
||||
build: _build,
|
||||
channel: _biliChannel,
|
||||
buvid: _buvid,
|
||||
platform: _mobiApp,
|
||||
).writeToBuffer()),
|
||||
'x-bili-device-bin': base64Encode(Device(
|
||||
appId: 1,
|
||||
build: _build,
|
||||
buvid: _buvid,
|
||||
mobiApp: _mobiApp,
|
||||
platform: _mobiApp,
|
||||
device: _phone,
|
||||
channel: _biliChannel,
|
||||
brand: _phone,
|
||||
model: _phone,
|
||||
osver: '14',
|
||||
fpLocal: '',
|
||||
fpRemote: '',
|
||||
versionName: _build.toString(),
|
||||
fp: '',
|
||||
fts: Int64())
|
||||
.writeToBuffer()),
|
||||
'x-bili-metadata-bin': base64Encode((Metadata()
|
||||
..accessKey = _accessKey ?? ''
|
||||
..mobiApp = _mobiApp
|
||||
..device = _phone
|
||||
..build = _build
|
||||
..channel = _biliChannel
|
||||
..buvid = _buvid
|
||||
..platform = _mobiApp)
|
||||
'x-bili-network-bin': base64Encode(network.Network(
|
||||
type: network.NetworkType.WIFI,
|
||||
tf: network.TFType.TF_UNKNOWN,
|
||||
oid: '')
|
||||
.writeToBuffer()),
|
||||
'x-bili-device-bin': base64Encode((Device()
|
||||
..appId = 1
|
||||
..build = _build
|
||||
..buvid = _buvid
|
||||
..mobiApp = _mobiApp
|
||||
..platform = _mobiApp
|
||||
..device = _phone
|
||||
..channel = _biliChannel
|
||||
..brand = _phone
|
||||
..model = _phone
|
||||
..osver = '14'
|
||||
..fpLocal = ''
|
||||
..fpRemote = ''
|
||||
..versionName = _build.toString()
|
||||
..fp = ''
|
||||
..fts = Int64())
|
||||
'x-bili-restriction-bin': base64Encode(Restriction(
|
||||
teenagersMode: false,
|
||||
lessonsMode: false,
|
||||
mode: ModeType.NORMAL,
|
||||
review: false,
|
||||
disableRcmd: false,
|
||||
basicMode: false)
|
||||
.writeToBuffer()),
|
||||
'x-bili-network-bin': base64Encode((network.Network()
|
||||
..type = network.NetworkType.WIFI
|
||||
..tf = network.TFType.TF_UNKNOWN
|
||||
..oid = '')
|
||||
.writeToBuffer()),
|
||||
'x-bili-restriction-bin': base64Encode((Restriction()
|
||||
..teenagersMode = false
|
||||
..lessonsMode = false
|
||||
..mode = ModeType.NORMAL
|
||||
..review = false
|
||||
..disableRcmd = false
|
||||
..basicMode = false)
|
||||
.writeToBuffer()),
|
||||
'x-bili-locale-bin': base64Encode((Locale()
|
||||
..cLocale = LocaleIds(language: 'zh', region: 'CN')
|
||||
..sLocale = LocaleIds(language: 'zh', region: 'CN')
|
||||
..simCode = ''
|
||||
..timezone = 'Asia/Shanghai')
|
||||
'x-bili-locale-bin': base64Encode(Locale(
|
||||
cLocale: LocaleIds(language: 'zh', region: 'CN'),
|
||||
sLocale: LocaleIds(language: 'zh', region: 'CN'),
|
||||
simCode: '',
|
||||
timezone: 'Asia/Shanghai')
|
||||
.writeToBuffer()),
|
||||
'x-bili-exps-bin': '',
|
||||
};
|
||||
|
||||
static final CallOptions options = CallOptions(metadata: metadata);
|
||||
static final unprintableRegExp =
|
||||
RegExp(r"[^\0u0020-\u007e\u4e00-\u9fa5,。;!?]");
|
||||
|
||||
static Future _request(Function request) async {
|
||||
try {
|
||||
return await request();
|
||||
} catch (e) {
|
||||
dynamic defMsg() => {'status': false, 'msg': e.toString()};
|
||||
if (e is GrpcError) {
|
||||
try {
|
||||
String msg = utf8.decode(
|
||||
e.details?.firstOrNull?.getFieldOrNull(2),
|
||||
allowMalformed: true,
|
||||
);
|
||||
msg =
|
||||
msg.replaceAll(RegExp(r"[^a-zA-Z0-9\u4e00-\u9fa5,.;?,。;!?]"), '');
|
||||
if (msg.isNotEmpty) {
|
||||
return {'status': false, 'msg': msg};
|
||||
} else {
|
||||
return defMsg();
|
||||
}
|
||||
} catch (e1) {
|
||||
debugPrint(e1.toString());
|
||||
return defMsg();
|
||||
}
|
||||
}
|
||||
return defMsg();
|
||||
static Uint8List compressProtobuf(Uint8List proto) {
|
||||
proto = gzipEncoder.encodeBytes(proto, level: 0);
|
||||
var byteLength = ByteData(4);
|
||||
byteLength.setInt32(0, proto.length, Endian.big);
|
||||
var compressed = Uint8List(5 + proto.length);
|
||||
compressed[0] = 1;
|
||||
compressed.setRange(1, 5, byteLength.buffer.asUint8List());
|
||||
compressed.setAll(5, proto);
|
||||
return compressed;
|
||||
}
|
||||
|
||||
static Uint8List decompressProtobuf(Uint8List data) {
|
||||
var length = ByteData.sublistView(data, 1, 5).getInt32(0, Endian.big);
|
||||
|
||||
if (data[0] == 1) {
|
||||
return gzipDecoder.decodeBytes(data.sublist(5, length + 5));
|
||||
} else {
|
||||
return data.sublist(5, length + 5);
|
||||
}
|
||||
}
|
||||
|
||||
static Future<Map<String, dynamic>> _request(
|
||||
url, GeneratedMessage request, Function grpcParser,
|
||||
{Function? onSuccess}) async {
|
||||
final response = await Request().post(HttpString.appBaseUrl + url,
|
||||
data: compressProtobuf(request.writeToBuffer()),
|
||||
options: Options(headers: headers, responseType: ResponseType.bytes));
|
||||
|
||||
if (response.data is Map) {
|
||||
return {'status': false, 'msg': response.data['message']};
|
||||
}
|
||||
Uint8List data = response.data;
|
||||
|
||||
// if (int.tryParse(response.headers.value('grpc-status') ?? '0') == 0) {
|
||||
// try {
|
||||
data = decompressProtobuf(data);
|
||||
final grpcResponse = grpcParser(data);
|
||||
return {
|
||||
'status': true,
|
||||
'data': onSuccess == null ? grpcResponse : onSuccess(grpcResponse)
|
||||
};
|
||||
// } catch (e) {}
|
||||
// }
|
||||
|
||||
// if (data.isNotEmpty) {
|
||||
// try {
|
||||
// String msg = utf8
|
||||
// .decode(data, allowMalformed: true)
|
||||
// .replaceAll(unprintableRegExp, '');
|
||||
// if (msg.isNotEmpty) {
|
||||
// return {'status': false, 'msg': msg};
|
||||
// }
|
||||
// } catch (e1) {}
|
||||
// }
|
||||
|
||||
// return {'status': false, 'msg': response.headers.map.toString()};
|
||||
}
|
||||
|
||||
static Future playerOnline({
|
||||
int aid = 0,
|
||||
int cid = 0,
|
||||
}) async {
|
||||
return await _request(() async {
|
||||
final request = PlayerOnlineReq()
|
||||
..aid = Int64(aid)
|
||||
..cid = Int64(cid)
|
||||
..playOpen = true;
|
||||
final response = await GrpcClient.instance.playerOnlineClient
|
||||
.playerOnline(request, options: options);
|
||||
return {'status': true, 'data': response.totalNumberText};
|
||||
});
|
||||
return await _request(
|
||||
GrpcUrl.playerOnline,
|
||||
PlayerOnlineReq(aid: Int64(aid), cid: Int64(cid), playOpen: true),
|
||||
PlayerOnlineReply.fromBuffer,
|
||||
onSuccess: (response) => response.totalNumberText);
|
||||
}
|
||||
|
||||
static Future popular(int idx) async {
|
||||
return await _request(() async {
|
||||
final request = PopularResultReq()..idx = Int64(idx);
|
||||
final response = await GrpcClient.instance.popularClient
|
||||
.index(request, options: options);
|
||||
return await _request(GrpcUrl.popular, PopularResultReq(idx: Int64(idx)),
|
||||
PopularReply.fromBuffer, onSuccess: (response) {
|
||||
response.items.retainWhere((item) => item.smallCoverV5.base.goto == 'av');
|
||||
return {'status': true, 'data': response.items};
|
||||
});
|
||||
@@ -161,17 +210,15 @@ class GrpcRepo {
|
||||
required CursorReq cursor,
|
||||
DetailListScene scene = DetailListScene.REPLY,
|
||||
}) async {
|
||||
return await _request(() async {
|
||||
final request = DialogListReq()
|
||||
..oid = Int64(oid)
|
||||
..type = Int64(type)
|
||||
..root = Int64(root)
|
||||
..rpid = Int64(rpid)
|
||||
..cursor = cursor;
|
||||
final response = await GrpcClient.instance.replyClient
|
||||
.dialogList(request, options: options);
|
||||
return {'status': true, 'data': response};
|
||||
});
|
||||
return await _request(
|
||||
GrpcUrl.dialogList,
|
||||
DialogListReq(
|
||||
oid: Int64(oid),
|
||||
type: Int64(type),
|
||||
root: Int64(root),
|
||||
rpid: Int64(rpid),
|
||||
cursor: cursor),
|
||||
DialogListReply.fromBuffer);
|
||||
}
|
||||
|
||||
static Future detailList({
|
||||
@@ -182,29 +229,22 @@ class GrpcRepo {
|
||||
required CursorReq cursor,
|
||||
DetailListScene scene = DetailListScene.REPLY,
|
||||
}) async {
|
||||
return await _request(() async {
|
||||
final request = DetailListReq()
|
||||
..oid = Int64(oid)
|
||||
..type = Int64(type)
|
||||
..root = Int64(root)
|
||||
..rpid = Int64(rpid)
|
||||
..cursor = cursor
|
||||
..scene = scene;
|
||||
final response = await GrpcClient.instance.replyClient
|
||||
.detailList(request, options: options);
|
||||
return {'status': true, 'data': response};
|
||||
});
|
||||
return await _request(
|
||||
GrpcUrl.detailList,
|
||||
DetailListReq(
|
||||
oid: Int64(oid),
|
||||
type: Int64(type),
|
||||
root: Int64(root),
|
||||
rpid: Int64(rpid),
|
||||
cursor: cursor,
|
||||
scene: scene),
|
||||
DetailListReply.fromBuffer);
|
||||
}
|
||||
|
||||
static Future replyInfo({
|
||||
required int rpid,
|
||||
}) async {
|
||||
return await _request(() async {
|
||||
final request = ReplyInfoReq()..rpid = Int64(rpid);
|
||||
final response = await GrpcClient.instance.replyClient
|
||||
.replyInfo(request, options: options);
|
||||
return {'status': true, 'data': response.reply};
|
||||
});
|
||||
static Future replyInfo({required int rpid}) async {
|
||||
return await _request(GrpcUrl.replyInfo, ReplyInfoReq(rpid: Int64(rpid)),
|
||||
ReplyInfoReply.fromBuffer,
|
||||
onSuccess: (response) => response.reply);
|
||||
}
|
||||
|
||||
static Future mainList({
|
||||
@@ -212,40 +252,39 @@ class GrpcRepo {
|
||||
required int oid,
|
||||
required CursorReq cursor,
|
||||
}) async {
|
||||
return await _request(() async {
|
||||
final request = MainListReq()
|
||||
..oid = Int64(oid)
|
||||
..type = Int64(type)
|
||||
..rpid = Int64(0)
|
||||
..cursor = cursor;
|
||||
final response = await GrpcClient.instance.replyClient
|
||||
.mainList(request, options: options);
|
||||
return {'status': true, 'data': response};
|
||||
});
|
||||
return await _request(
|
||||
GrpcUrl.mainList,
|
||||
MainListReq(
|
||||
oid: Int64(oid), type: Int64(type), rpid: Int64(0), cursor: cursor),
|
||||
MainListReply.fromBuffer);
|
||||
}
|
||||
|
||||
static Future dynSpace({
|
||||
required int uid,
|
||||
required int page,
|
||||
}) async {
|
||||
return await _request(() async {
|
||||
final request = DynSpaceReq()
|
||||
..hostUid = Int64(uid)
|
||||
..localTime = 8
|
||||
..page = Int64(page)
|
||||
..from = 'space';
|
||||
final DynSpaceRsp response = await GrpcClient.instance.dynamicClientV2
|
||||
.dynSpace(request, options: options);
|
||||
return {'status': true, 'data': response};
|
||||
});
|
||||
return await _request(
|
||||
GrpcUrl.dynSpace,
|
||||
DynSpaceReq(
|
||||
hostUid: Int64(uid),
|
||||
localTime: 8,
|
||||
page: Int64(page),
|
||||
from: 'space'),
|
||||
DynSpaceRsp.fromBuffer);
|
||||
}
|
||||
|
||||
static Future dynRed() async {
|
||||
return await _request(() async {
|
||||
final request = DynRedReq()..tabOffset.add(TabOffset(tab: 1));
|
||||
final DynRedReply response = await GrpcClient.instance.dynamicClientV1
|
||||
.dynRed(request, options: options);
|
||||
return {'status': true, 'data': response.dynRedItem.count.toInt()};
|
||||
});
|
||||
return await _request(GrpcUrl.dynRed,
|
||||
DynRedReq(tabOffset: [TabOffset(tab: 1)]), DynRedReply.fromBuffer,
|
||||
onSuccess: (response) => response.dynRedItem.count.toInt());
|
||||
}
|
||||
|
||||
static Future dmSegMobile(
|
||||
{required int cid, required int segmentIndex, int type = 1}) async {
|
||||
return await _request(
|
||||
GrpcUrl.dmSegMobile,
|
||||
DmSegMobileReq(
|
||||
oid: Int64(cid), segmentIndex: Int64(segmentIndex), type: type),
|
||||
DmSegMobileReply.fromBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,7 +419,7 @@ class Api {
|
||||
// https://api.bilibili.com/x/player/online/total?aid=913663681&cid=1203559746&bvid=BV1MM4y1s7NZ&ts=56427838
|
||||
static const String onlineTotal = '/x/player/online/total';
|
||||
|
||||
static const String webDanmaku = '/x/v2/dm/web/seg.so';
|
||||
// static const String webDanmaku = '/x/v2/dm/web/seg.so';
|
||||
|
||||
// 发送视频弹幕
|
||||
//https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/danmaku/action.md
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
|
||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
||||
import 'package:PiliPlus/utils/extension.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'index.dart';
|
||||
@@ -11,20 +12,12 @@ class DanmakuHttp {
|
||||
required bool mergeDanmaku,
|
||||
}) async {
|
||||
// 构建参数对象
|
||||
Map<String, int> params = {
|
||||
'type': 1,
|
||||
'oid': cid,
|
||||
'segment_index': segmentIndex,
|
||||
};
|
||||
var response = await Request().get(
|
||||
Api.webDanmaku,
|
||||
queryParameters: params,
|
||||
options: Options(responseType: ResponseType.bytes),
|
||||
);
|
||||
if (response.statusCode != 200 || response.data == null) {
|
||||
final response =
|
||||
await GrpcRepo.dmSegMobile(cid: cid, segmentIndex: segmentIndex);
|
||||
if (!response['status']) {
|
||||
return DmSegMobileReply();
|
||||
}
|
||||
DmSegMobileReply data = DmSegMobileReply.fromBuffer(response.data);
|
||||
DmSegMobileReply data = response['data'];
|
||||
if (mergeDanmaku) {
|
||||
data.elems.unique((item) => item.content);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ class ApiInterceptor extends Interceptor {
|
||||
Api.bangumiInfo,
|
||||
Api.liveRoomInfo,
|
||||
Api.onlineTotal,
|
||||
Api.webDanmaku,
|
||||
Api.dynamicDetail,
|
||||
Api.aiConclusion,
|
||||
Api.getSeasonDetailApi,
|
||||
@@ -44,6 +43,11 @@ class ApiInterceptor extends Interceptor {
|
||||
}
|
||||
}
|
||||
|
||||
// app端不需要cookie
|
||||
if (options.uri.host == 'app.bilibili.com') {
|
||||
options.headers['cookie'] = '';
|
||||
}
|
||||
|
||||
if (options.extra['clearCookie'] == true) {
|
||||
onRemoveCookie();
|
||||
} else if (MineController.anonymity.value) {
|
||||
|
||||
@@ -3,7 +3,6 @@ import 'dart:io';
|
||||
|
||||
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
|
||||
import 'package:PiliPlus/common/widgets/tabs.dart';
|
||||
import 'package:PiliPlus/grpc/grpc_client.dart';
|
||||
import 'package:PiliPlus/pages/mine/controller.dart';
|
||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||
import 'package:PiliPlus/utils/utils.dart';
|
||||
@@ -161,7 +160,7 @@ class _MainAppState extends State<MainApp>
|
||||
void dispose() async {
|
||||
MainApp.routeObserver.unsubscribe(this);
|
||||
WidgetsBinding.instance.removeObserver(this);
|
||||
await GrpcClient.instance.shutdown();
|
||||
// await GrpcClient.instance.shutdown();
|
||||
await GStorage.close();
|
||||
EventBus().off(EventName.loginEvent);
|
||||
PiliScheme.listener?.cancel();
|
||||
|
||||
120
pubspec.lock
120
pubspec.lock
@@ -5,23 +5,23 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
|
||||
sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "72.0.0"
|
||||
version: "76.0.0"
|
||||
_macros:
|
||||
dependency: transitive
|
||||
description: dart
|
||||
source: sdk
|
||||
version: "0.3.2"
|
||||
version: "0.3.3"
|
||||
analyzer:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
|
||||
sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.7.0"
|
||||
version: "6.11.0"
|
||||
animations:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -71,13 +71,13 @@ packages:
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
archive:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: archive
|
||||
sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a"
|
||||
sha256: "528579c7e4579719f04b21eeeeddfd73a18b31dabc22766893b7d1be7f49b967"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.2"
|
||||
version: "4.0.3"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -98,10 +98,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
|
||||
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.11.0"
|
||||
version: "2.12.0"
|
||||
audio_service:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -147,10 +147,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "2.1.2"
|
||||
brotli:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -268,10 +268,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
|
||||
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
version: "1.4.0"
|
||||
chat_bottom_container:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -301,10 +301,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.1.2"
|
||||
code_builder:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -317,10 +317,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.18.0"
|
||||
version: "1.19.1"
|
||||
connectivity_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -518,10 +518,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
version: "1.3.2"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -815,22 +815,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
google_identity_services_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: google_identity_services_web
|
||||
sha256: "55580f436822d64c8ff9a77e37d61f5fb1e6c7ec9d632a43ee324e2a05c3c6c9"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.3"
|
||||
googleapis_auth:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: googleapis_auth
|
||||
sha256: befd71383a955535060acde8792e7efc11d2fccd03dd1d3ec434e85b68775938
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.6.0"
|
||||
graphs:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -839,14 +823,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
grpc:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: grpc
|
||||
sha256: "5b99b7a420937d4361ece68b798c9af8e04b5bc128a7859f2a4be87427694813"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.1"
|
||||
gt3_flutter_plugin:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -931,10 +907,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6"
|
||||
sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.5.2"
|
||||
version: "4.5.3"
|
||||
image_cropper:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -1059,18 +1035,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.5"
|
||||
version: "10.0.8"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.5"
|
||||
version: "3.0.9"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1123,10 +1099,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: macros
|
||||
sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
|
||||
sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.2-main.4"
|
||||
version: "0.1.3-main.0"
|
||||
mailer:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1147,10 +1123,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.16+1"
|
||||
version: "0.12.17"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1243,10 +1219,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.15.0"
|
||||
version: "1.16.0"
|
||||
mime:
|
||||
dependency: "direct overridden"
|
||||
description:
|
||||
@@ -1684,7 +1660,7 @@ packages:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.99"
|
||||
version: "0.0.0"
|
||||
source_gen:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1705,10 +1681,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.10.1"
|
||||
sprintf:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1761,10 +1737,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.1"
|
||||
version: "1.12.1"
|
||||
status_bar_control:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -1777,10 +1753,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.4"
|
||||
stream_transform:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1793,10 +1769,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
||||
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.4.1"
|
||||
synchronized:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1817,18 +1793,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
version: "1.2.2"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
|
||||
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.2"
|
||||
version: "0.7.4"
|
||||
timing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1985,10 +1961,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
|
||||
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.2.5"
|
||||
version: "14.3.1"
|
||||
volume_controller:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -2102,5 +2078,5 @@ packages:
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
sdks:
|
||||
dart: ">=3.5.0 <4.0.0"
|
||||
dart: ">=3.7.0-0 <4.0.0"
|
||||
flutter: ">=3.24.5"
|
||||
|
||||
@@ -173,7 +173,7 @@ dependencies:
|
||||
path: packages/chat_bottom_container
|
||||
image_picker: ^1.1.2
|
||||
intl: ^0.19.0
|
||||
grpc: ^4.0.1
|
||||
archive: ^4.0.0
|
||||
flutter_svg: ^2.0.14
|
||||
image_cropper: ^8.0.2
|
||||
#解压直播消息
|
||||
|
||||
Reference in New Issue
Block a user