mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: share article
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -786,4 +786,6 @@ class Api {
|
||||
static const String articleView = '/x/article/view';
|
||||
|
||||
static const String opusDetail = '/x/polymer/web-dynamic/v1/opus/detail';
|
||||
|
||||
static const String feedInfoWeb = '${HttpString.tUrl}/x/im/feed/infoweb';
|
||||
}
|
||||
|
||||
@@ -570,4 +570,26 @@ class MsgHttp {
|
||||
static String getDevId() {
|
||||
return Uuid().v4();
|
||||
}
|
||||
|
||||
static Future feedInfoWeb({
|
||||
List? aids,
|
||||
List? epIds,
|
||||
List? articleIds,
|
||||
}) async {
|
||||
var res = await Request().get(
|
||||
Api.feedInfoWeb,
|
||||
queryParameters: {
|
||||
if (aids != null) 'aids': aids.join(','),
|
||||
if (epIds != null) 'ep_ids': epIds.join(','),
|
||||
if (articleIds != null) 'article_ids': articleIds.join(','),
|
||||
'build': 0,
|
||||
'mobi_app': 'web',
|
||||
},
|
||||
);
|
||||
if (res.data['code'] == 0) {
|
||||
return {'status': true, 'data': res.data['data']};
|
||||
} else {
|
||||
return {'status': false, 'msg': res.data['message']};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
|
||||
import 'package:PiliPlus/http/dynamics.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/http/msg.dart';
|
||||
import 'package:PiliPlus/http/user.dart';
|
||||
import 'package:PiliPlus/http/video.dart';
|
||||
import 'package:PiliPlus/models/dynamics/article_content_model.dart'
|
||||
@@ -141,7 +142,7 @@ class ArticleController extends ReplyController<MainListReply> {
|
||||
|
||||
// stats
|
||||
Future _getArticleInfo() async {
|
||||
final res = await DynamicsHttp.articleInfo(cvId: id);
|
||||
final res = await DynamicsHttp.articleInfo(cvId: commentId);
|
||||
if (res['status']) {
|
||||
stats.value = ModuleStatModel(
|
||||
comment: DynamicStat(count: res['data']?['stats']?['reply']),
|
||||
@@ -233,6 +234,19 @@ class ArticleController extends ReplyController<MainListReply> {
|
||||
SmartDialog.showToast(res['msg']);
|
||||
}
|
||||
}
|
||||
|
||||
Future getArticleCover() async {
|
||||
final res = await MsgHttp.feedInfoWeb(articleIds: [commentId]);
|
||||
if (res['status']) {
|
||||
summary.cover = ((res['data']?['article'] as List?)
|
||||
?.firstOrNull?['image_urls'] as List?)
|
||||
?.firstOrNull;
|
||||
// debugPrint('cover: ${summary.cover}');
|
||||
return summary.cover != null;
|
||||
} else {
|
||||
SmartDialog.showToast(res['msg']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Summary {
|
||||
|
||||
@@ -620,10 +620,17 @@ class _ArticlePageState extends State<ArticlePage>
|
||||
],
|
||||
),
|
||||
),
|
||||
if (_articleCtr.type == 'read' && _articleCtr.stats.value != null)
|
||||
if (_articleCtr.commentType == 12 &&
|
||||
_articleCtr.stats.value != null)
|
||||
PopupMenuItem(
|
||||
onTap: () {
|
||||
onTap: () async {
|
||||
try {
|
||||
if (_articleCtr.summary.cover == null) {
|
||||
final res = await _articleCtr.getArticleCover();
|
||||
if (res != true) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
PageUtils.pmShare(
|
||||
content: {
|
||||
"id": _articleCtr.commentId,
|
||||
|
||||
Reference in New Issue
Block a user