mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: article: get user mid
Closes #615 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -70,8 +70,20 @@ class HtmlHttp {
|
||||
.split(' ')[1]
|
||||
.split('-');
|
||||
// List imgList = opusDetail.querySelectorAll('bili-album__preview__picture__img');
|
||||
|
||||
dynamic mid;
|
||||
try {
|
||||
final regex = RegExp(r'window\.__INITIAL_STATE__\s*=\s*(\{.*?\});');
|
||||
final match = regex.firstMatch(response.data);
|
||||
if (match != null) {
|
||||
final json = jsonDecode(match.group(1)!);
|
||||
mid = json['detail']['basic']['uid'];
|
||||
}
|
||||
} catch (_) {}
|
||||
|
||||
return {
|
||||
'status': true,
|
||||
'mid': mid,
|
||||
'avatar': avatar,
|
||||
'uname': uname,
|
||||
'updateTime': updateTime,
|
||||
@@ -115,12 +127,11 @@ class HtmlHttp {
|
||||
// String avatar =
|
||||
// authorHeader.querySelector('.bili-avatar-img')!.attributes['data-src']!;
|
||||
// 正则寻找形如"author":{"mid":\d+,"name":".*","face":"xxxx"的匹配项
|
||||
String avatar =
|
||||
RegExp(r'"author":\{"mid":\d+?,"name":".+?","face":"(.+?)"')
|
||||
.firstMatch(response.data)!
|
||||
.group(1)!
|
||||
.replaceAll(r'\u002F', '/')
|
||||
.split('@')[0];
|
||||
final match =
|
||||
RegExp(r'"author":\{"mid":(\d+)?,"name":".+?","face":"(.+?)"')
|
||||
.firstMatch(response.data)!;
|
||||
String mid = match.group(1)!;
|
||||
String avatar = match.group(2)!.replaceAll(r'\u002F', '/').split('@')[0];
|
||||
// debugPrint(avatar);
|
||||
String uname = authorHeader.querySelector('.up-name')!.text.trim();
|
||||
// 动态详情
|
||||
@@ -163,6 +174,7 @@ class HtmlHttp {
|
||||
String number = RegExp(r'\d+').firstMatch(id)!.group(0)!;
|
||||
return {
|
||||
'status': true,
|
||||
'mid': mid,
|
||||
'avatar': avatar,
|
||||
'uname': uname,
|
||||
'updateTime': '',
|
||||
|
||||
@@ -20,6 +20,7 @@ class HtmlRenderController extends ReplyController {
|
||||
RxInt oid = (-1).obs;
|
||||
late Map response;
|
||||
int? floor;
|
||||
dynamic mid;
|
||||
|
||||
Rx<DynamicItemModel> item = DynamicItemModel().obs;
|
||||
|
||||
@@ -77,6 +78,7 @@ class HtmlRenderController extends ReplyController {
|
||||
}
|
||||
if (res != null) {
|
||||
response = res;
|
||||
mid = res['mid'];
|
||||
oid.value = res['commentId'];
|
||||
if (Accounts.main.isLogin && !MineController.anonymity.value) {
|
||||
VideoHttp.historyReport(aid: oid.value, type: 5);
|
||||
|
||||
@@ -851,6 +851,12 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
|
||||
|
||||
Widget get _buildHeader => Padding(
|
||||
padding: const EdgeInsets.fromLTRB(12, 12, 12, 8),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
if (_htmlRenderCtr.mid != null) {
|
||||
Get.toNamed('/member?mid=${_htmlRenderCtr.mid}');
|
||||
}
|
||||
},
|
||||
child: Row(
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
@@ -866,14 +872,16 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
|
||||
Text(
|
||||
_htmlRenderCtr.response['uname'],
|
||||
style: TextStyle(
|
||||
fontSize: Theme.of(context).textTheme.titleSmall!.fontSize,
|
||||
fontSize:
|
||||
Theme.of(context).textTheme.titleSmall!.fontSize,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
_htmlRenderCtr.response['updateTime'],
|
||||
style: TextStyle(
|
||||
color: Theme.of(context).colorScheme.outline,
|
||||
fontSize: Theme.of(context).textTheme.labelSmall!.fontSize,
|
||||
fontSize:
|
||||
Theme.of(context).textTheme.labelSmall!.fontSize,
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -881,6 +889,7 @@ class _HtmlRenderPageState extends State<HtmlRenderPage>
|
||||
const Spacer(),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Widget get _buildContent => SliverPadding(
|
||||
|
||||
Reference in New Issue
Block a user