mod: update proto

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-04 23:32:22 +08:00
parent fb004a0bb9
commit a49caa871d
122 changed files with 93362 additions and 88733 deletions

View File

@@ -1,6 +1,8 @@
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show MainListReply, ReplyInfo;
import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/reply.dart';
import 'package:PiliPlus/http/user.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/dynamics/article_content_model.dart'
@@ -14,8 +16,6 @@ import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/url_utils.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:PiliPlus/http/reply.dart';
import 'package:fixnum/fixnum.dart' as $fixnum;
class ArticleController extends ReplyController<MainListReply> {
late String id;
@@ -170,13 +170,12 @@ class ArticleController extends ReplyController<MainListReply> {
@override
Future<LoadingState<MainListReply>> customGetData() {
return ReplyHttp.replyListGrpc(
return ReplyHttp.mainList(
type: commentType,
oid: commentId,
cursor: CursorReq(
next: cursor?.next ?? $fixnum.Int64(0),
mode: mode.value,
),
mode: mode.value,
offset: paginationReply?.nextOffset,
sessionId: sessionId,
antiGoodsReply: antiGoodsReply,
);
}

View File

@@ -1,19 +1,23 @@
import 'dart:math';
import 'package:PiliPlus/common/skeleton/video_reply.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/models/dynamics/result.dart' show DynamicStat;
import 'package:PiliPlus/pages/article/controller.dart';
import 'package:PiliPlus/pages/article/widgets/opus_content.dart';
import 'package:PiliPlus/pages/article/widgets/html_render.dart';
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo;
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/reply_sort_type.dart';
import 'package:PiliPlus/models/common/reply_type.dart';
import 'package:PiliPlus/models/dynamics/result.dart' show DynamicStat;
import 'package:PiliPlus/pages/article/controller.dart';
import 'package:PiliPlus/pages/article/widgets/html_render.dart';
import 'package:PiliPlus/pages/article/widgets/opus_content.dart';
import 'package:PiliPlus/pages/dynamics_repost/view.dart';
import 'package:PiliPlus/pages/video/reply/widgets/reply_item_grpc.dart';
import 'package:PiliPlus/pages/video/reply_reply/view.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/feed_back.dart';
import 'package:PiliPlus/utils/grid.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
@@ -24,9 +28,6 @@ import 'package:flutter/rendering.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart';
import 'package:PiliPlus/common/skeleton/video_reply.dart';
import 'package:PiliPlus/models/common/reply_type.dart';
import 'package:PiliPlus/utils/feed_back.dart';
import 'package:html/parser.dart' as parser;
class ArticlePage extends StatefulWidget {

View File

@@ -1,7 +1,9 @@
import 'dart:convert';
import 'dart:io';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show MainListReply, ReplyInfo, SubjectControl, Mode;
import 'package:PiliPlus/grpc/bilibili/pagination.pb.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/reply.dart';
import 'package:PiliPlus/models/common/reply_sort_type.dart';
@@ -22,7 +24,6 @@ import 'package:get/get.dart';
import 'package:get/get_navigation/src/dialog/dialog_route.dart';
abstract class ReplyController<R> extends CommonListController<R, ReplyInfo> {
String nextOffset = '';
RxInt count = (-1).obs;
Rx<ReplySortType> sortType = ReplySortType.time.obs;
@@ -32,7 +33,8 @@ abstract class ReplyController<R> extends CommonListController<R, ReplyInfo> {
late final bool isLogin = Accounts.main.isLogin;
dynamic upMid;
CursorReply? cursor;
FeedPaginationReply? paginationReply;
String? sessionId;
late Rx<Mode> mode = Mode.MAIN_LIST_HOT.obs;
late bool hasUpTop = false;
@@ -65,7 +67,7 @@ abstract class ReplyController<R> extends CommonListController<R, ReplyInfo> {
@override
void checkIsEnd(int length) {
if (length >= count.value) {
if (count.value != -1 && length >= count.value) {
isEnd = true;
}
}
@@ -73,7 +75,8 @@ abstract class ReplyController<R> extends CommonListController<R, ReplyInfo> {
@override
bool customHandleResponse(bool isRefresh, Success response) {
MainListReply data = response.response;
cursor = data.cursor;
paginationReply = data.paginationReply;
sessionId = data.sessionId;
count.value = data.subjectControl.count.toInt();
if (isRefresh) {
upMid ??= data.subjectControl.upMid;
@@ -88,8 +91,8 @@ abstract class ReplyController<R> extends CommonListController<R, ReplyInfo> {
@override
Future onRefresh() {
cursor = null;
nextOffset = '';
paginationReply = null;
sessionId = null;
return super.onRefresh();
}
@@ -107,7 +110,6 @@ abstract class ReplyController<R> extends CommonListController<R, ReplyInfo> {
mode.value = Mode.MAIN_LIST_TIME;
break;
}
nextOffset = '';
onReload();
});
}

View File

@@ -1,4 +1,4 @@
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
import 'package:PiliPlus/grpc/bilibili/community/service/dm/v1.pb.dart';
import 'package:PiliPlus/http/danmaku.dart';
import 'package:PiliPlus/plugin/pl_player/controller.dart';

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:convert';
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
import 'package:PiliPlus/grpc/bilibili/community/service/dm/v1.pb.dart';
import 'package:PiliPlus/pages/danmaku/controller.dart';
import 'package:PiliPlus/plugin/pl_player/controller.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_status.dart';

View File

@@ -1,4 +1,5 @@
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show MainListReply, ReplyInfo;
import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/reply.dart';
@@ -7,7 +8,6 @@ import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/common/reply_controller.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:get/get.dart';
class DynamicDetailController extends ReplyController<MainListReply> {
@@ -54,14 +54,12 @@ class DynamicDetailController extends ReplyController<MainListReply> {
}
@override
Future<LoadingState<MainListReply>> customGetData() =>
ReplyHttp.replyListGrpc(
Future<LoadingState<MainListReply>> customGetData() => ReplyHttp.mainList(
type: type,
oid: oid,
cursor: CursorReq(
next: cursor?.next ?? $fixnum.Int64(0),
mode: mode.value,
),
mode: mode.value,
offset: paginationReply?.nextOffset,
sessionId: sessionId,
antiGoodsReply: antiGoodsReply,
);
}

View File

@@ -4,7 +4,8 @@ import 'package:PiliPlus/common/skeleton/video_reply.dart';
import 'package:PiliPlus/common/widgets/custom_sliver_persistent_header_delegate.dart';
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo;
import 'package:PiliPlus/http/constants.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/reply_sort_type.dart';

View File

@@ -174,7 +174,7 @@ class MainController extends GetxController {
if (!isLogin.value || dynIndex == -1) {
return;
}
await GrpcRepo.dynRed().then((res) {
GrpcRepo.dynRed().then((res) {
if (res['status']) {
setCount(res['data']);
}

View File

@@ -4,7 +4,8 @@ import 'dart:ui';
import 'package:PiliPlus/common/widgets/button/icon_button.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo;
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/dynamic_panel.dart';
import 'package:PiliPlus/pages/video/introduction/pgc/controller.dart';

View File

@@ -1,9 +1,9 @@
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show MainListReply, ReplyInfo;
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/reply.dart';
import 'package:PiliPlus/pages/common/reply_controller.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:flutter/material.dart';
import 'package:get/get_state_manager/src/rx_flutter/rx_ticket_provider_mixin.dart';
@@ -41,13 +41,11 @@ class VideoReplyController extends ReplyController<MainListReply>
}
@override
Future<LoadingState<MainListReply>> customGetData() =>
ReplyHttp.replyListGrpc(
Future<LoadingState<MainListReply>> customGetData() => ReplyHttp.mainList(
oid: aid,
cursor: CursorReq(
next: cursor?.next ?? $fixnum.Int64(0),
mode: mode.value,
),
mode: mode.value,
offset: paginationReply?.nextOffset,
sessionId: sessionId,
antiGoodsReply: antiGoodsReply,
);

View File

@@ -2,7 +2,8 @@ import 'package:PiliPlus/common/skeleton/video_reply.dart';
import 'package:PiliPlus/common/widgets/custom_sliver_persistent_header_delegate.dart';
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo;
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/reply_sort_type.dart';
import 'package:PiliPlus/models/common/reply_type.dart';

View File

@@ -6,7 +6,8 @@ import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/dialog/report.dart';
import 'package:PiliPlus/common/widgets/image/image_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo, ReplyControl, Content;
import 'package:PiliPlus/http/init.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
@@ -615,11 +616,11 @@ class ReplyItemGrpc extends StatelessWidget {
}
// 构建正则表达式
final List<String> specialTokens = [
...content.emote.keys,
...content.topic.keys.map((e) => '#$e#'),
...content.emotes.keys,
...content.topics.keys.map((e) => '#$e#'),
...content.atNameToMid.keys.map((e) => '@$e'),
];
List<String> jumpUrlKeysList = content.url.keys.map<String>((String e) {
List<String> jumpUrlKeysList = content.urls.keys.map<String>((String e) {
return e;
}).toList();
specialTokens.sort((a, b) => b.length.compareTo(a.length));
@@ -645,15 +646,15 @@ class ReplyItemGrpc extends StatelessWidget {
pattern,
onMatch: (Match match) {
String matchStr = match[0]!;
if (content.emote.containsKey(matchStr)) {
if (content.emotes.containsKey(matchStr)) {
// 处理表情
final int size = content.emote[matchStr]!.size.toInt();
final int size = content.emotes[matchStr]!.size.toInt();
spanChildren.add(WidgetSpan(
child: ExcludeSemantics(
child: NetworkImgLayer(
src: content.emote[matchStr]?.hasGifUrl() == true
? content.emote[matchStr]?.gifUrl
: content.emote[matchStr]?.url,
src: content.emotes[matchStr]?.hasGifUrl() == true
? content.emotes[matchStr]?.gifUrl
: content.emotes[matchStr]?.url,
type: 'emote',
width: size * 20,
height: size * 20,
@@ -730,20 +731,20 @@ class ReplyItemGrpc extends StatelessWidget {
);
} else {
String appUrlSchema = '';
if (content.url[matchStr] != null &&
if (content.urls[matchStr] != null &&
!matchedStrs.contains(matchStr)) {
appUrlSchema = content.url[matchStr]!.appUrlSchema;
appUrlSchema = content.urls[matchStr]!.appUrlSchema;
if (appUrlSchema.startsWith('bilibili://search') && !enableWordRe) {
addPlainTextSpan(matchStr);
return "";
}
spanChildren.addAll(
[
if (content.url[matchStr]?.hasPrefixIcon() == true) ...[
if (content.urls[matchStr]?.hasPrefixIcon() == true) ...[
WidgetSpan(
child: CachedNetworkImage(
imageUrl: Utils.thumbnailImgUrl(
content.url[matchStr]!.prefixIcon),
content.urls[matchStr]!.prefixIcon),
height: 19,
color: theme.colorScheme.primary,
placeholder: (context, url) {
@@ -753,13 +754,13 @@ class ReplyItemGrpc extends StatelessWidget {
)
],
TextSpan(
text: content.url[matchStr]!.title,
text: content.urls[matchStr]!.title,
style: TextStyle(
color: theme.colorScheme.primary,
),
recognizer: TapGestureRecognizer()
..onTap = () async {
late final String title = content.url[matchStr]!.title;
late final String title = content.urls[matchStr]!.title;
if (appUrlSchema == '') {
if (RegExp(r'^(av|bv)', caseSensitive: false)
.hasMatch(matchStr)) {
@@ -801,7 +802,7 @@ class ReplyItemGrpc extends StatelessWidget {
// 只显示一次
matchedStrs.add(matchStr);
} else if (matchStr.length > 1 &&
content.topic[matchStr.substring(1, matchStr.length - 1)] !=
content.topics[matchStr.substring(1, matchStr.length - 1)] !=
null) {
spanChildren.add(
TextSpan(
@@ -845,25 +846,25 @@ class ReplyItemGrpc extends StatelessWidget {
},
);
if (content.url.keys.isNotEmpty) {
List<String> unmatchedItems = content.url.keys
if (content.urls.keys.isNotEmpty) {
List<String> unmatchedItems = content.urls.keys
.toList()
.where((item) => !content.message.contains(item))
.toList();
if (unmatchedItems.isNotEmpty) {
for (int i = 0; i < unmatchedItems.length; i++) {
String patternStr = unmatchedItems[i];
if (content.url[patternStr]?.extra.isWordSearch == true &&
if (content.urls[patternStr]?.extra.isWordSearch == true &&
enableWordRe.not) {
continue;
}
spanChildren.addAll(
[
if (content.url[patternStr]?.hasPrefixIcon() == true) ...[
if (content.urls[patternStr]?.hasPrefixIcon() == true) ...[
WidgetSpan(
child: CachedNetworkImage(
imageUrl: Utils.thumbnailImgUrl(
content.url[patternStr]!.prefixIcon),
content.urls[patternStr]!.prefixIcon),
height: 19,
color: theme.colorScheme.primary,
placeholder: (context, url) {
@@ -873,7 +874,7 @@ class ReplyItemGrpc extends StatelessWidget {
)
],
TextSpan(
text: content.url[patternStr]!.title,
text: content.urls[patternStr]!.title,
style: TextStyle(
color: theme.colorScheme.primary,
),

View File

@@ -1,4 +1,5 @@
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo;
import 'package:PiliPlus/http/reply.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/feed_back.dart';

View File

@@ -1,4 +1,5 @@
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo, DetailListReply, Mode;
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/reply.dart';
import 'package:PiliPlus/models/common/reply_type.dart';
@@ -51,7 +52,7 @@ class VideoReplyReplyController extends ReplyController
@override
Future onRefresh() {
cursor = null;
paginationReply = null;
return super.onRefresh();
}
@@ -65,8 +66,8 @@ class VideoReplyReplyController extends ReplyController
final data = response.response;
upMid ??= data.subjectControl.upMid.toInt();
cursor = data.cursor;
isEnd = cursor?.isEnd ?? false;
paginationReply = data.paginationReply;
isEnd = data.cursor?.isEnd ?? false;
// reply2Reply // isDialogue.not
if (data is DetailListReply) {
@@ -106,28 +107,22 @@ class VideoReplyReplyController extends ReplyController
@override
Future<LoadingState> customGetData() => isDialogue
? ReplyHttp.dialogListGrpc(
? ReplyHttp.dialogList(
type: replyType.index,
oid: oid,
root: rpid,
rpid: dialog!,
cursor: CursorReq(
next: cursor?.next,
mode: mode.value,
),
dialog: dialog!,
offset: paginationReply?.nextOffset,
antiGoodsReply: antiGoodsReply,
)
: ReplyHttp.replyReplyListGrpc(
: ReplyHttp.detailList(
type: replyType.index,
oid: oid,
root: rpid,
rpid: id ?? 0,
cursor: CursorReq(
next: cursor?.next,
mode: mode.value,
),
mode: mode.value,
offset: paginationReply?.nextOffset,
antiGoodsReply: antiGoodsReply,
page: currentPage,
);
@override

View File

@@ -1,7 +1,8 @@
import 'package:PiliPlus/common/skeleton/video_reply.dart';
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo, Mode;
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/reply_type.dart';
import 'package:PiliPlus/pages/common/common_slide_page.dart';

View File

@@ -5,7 +5,8 @@ import 'dart:ui';
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo;
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/main.dart';
import 'package:PiliPlus/models/bangumi/info.dart' as bangumi;