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 articleView = '/x/article/view';
|
||||||
|
|
||||||
static const String opusDetail = '/x/polymer/web-dynamic/v1/opus/detail';
|
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() {
|
static String getDevId() {
|
||||||
return Uuid().v4();
|
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/grpc/app/main/community/reply/v1/reply.pb.dart';
|
||||||
import 'package:PiliPlus/http/dynamics.dart';
|
import 'package:PiliPlus/http/dynamics.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
|
import 'package:PiliPlus/http/msg.dart';
|
||||||
import 'package:PiliPlus/http/user.dart';
|
import 'package:PiliPlus/http/user.dart';
|
||||||
import 'package:PiliPlus/http/video.dart';
|
import 'package:PiliPlus/http/video.dart';
|
||||||
import 'package:PiliPlus/models/dynamics/article_content_model.dart'
|
import 'package:PiliPlus/models/dynamics/article_content_model.dart'
|
||||||
@@ -141,7 +142,7 @@ class ArticleController extends ReplyController<MainListReply> {
|
|||||||
|
|
||||||
// stats
|
// stats
|
||||||
Future _getArticleInfo() async {
|
Future _getArticleInfo() async {
|
||||||
final res = await DynamicsHttp.articleInfo(cvId: id);
|
final res = await DynamicsHttp.articleInfo(cvId: commentId);
|
||||||
if (res['status']) {
|
if (res['status']) {
|
||||||
stats.value = ModuleStatModel(
|
stats.value = ModuleStatModel(
|
||||||
comment: DynamicStat(count: res['data']?['stats']?['reply']),
|
comment: DynamicStat(count: res['data']?['stats']?['reply']),
|
||||||
@@ -233,6 +234,19 @@ class ArticleController extends ReplyController<MainListReply> {
|
|||||||
SmartDialog.showToast(res['msg']);
|
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 {
|
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(
|
PopupMenuItem(
|
||||||
onTap: () {
|
onTap: () async {
|
||||||
try {
|
try {
|
||||||
|
if (_articleCtr.summary.cover == null) {
|
||||||
|
final res = await _articleCtr.getArticleCover();
|
||||||
|
if (res != true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
PageUtils.pmShare(
|
PageUtils.pmShare(
|
||||||
content: {
|
content: {
|
||||||
"id": _articleCtr.commentId,
|
"id": _articleCtr.commentId,
|
||||||
|
|||||||
Reference in New Issue
Block a user