@@ -3,27 +3,32 @@ import { apiGet, payloadData, getSelfUid } from './utils.js';
33cli ( {
44 site : 'bilibili' ,
55 name : 'favorite' ,
6- description : '我的默认收藏夹 ' ,
6+ description : '我的收藏夹 ' ,
77 domain : 'www.bilibili.com' ,
88 strategy : Strategy . COOKIE ,
99 args : [
10+ { name : 'fid' , type : 'int' , required : false , help : 'Favorite folder ID (defaults to first folder)' } ,
1011 { name : 'limit' , type : 'int' , default : 20 , help : 'Number of results' } ,
1112 { name : 'page' , type : 'int' , default : 1 , help : 'Page number' } ,
1213 ] ,
1314 columns : [ 'rank' , 'title' , 'author' , 'plays' , 'url' ] ,
1415 func : async ( page , kwargs ) => {
15- const { limit = 20 , page : pageNum = 1 } = kwargs ;
16- // Get current user's UID
17- const uid = await getSelfUid ( page ) ;
18- // Get default favorite folder ID
19- const foldersPayload = await apiGet ( page , '/x/v3/fav/folder/created/list-all' , {
20- params : { up_mid : uid } ,
21- signed : true ,
22- } ) ;
23- const folders = payloadData ( foldersPayload ) ?. list ?? [ ] ;
24- if ( ! folders . length )
25- return [ ] ;
26- const fid = folders [ 0 ] . id ;
16+ const { fid : favoriteId , limit = 20 , page : pageNum = 1 } = kwargs ;
17+ let fid ;
18+ if ( favoriteId ) {
19+ fid = Number ( favoriteId ) ;
20+ } else {
21+ // Fall back to the default (first) favorite folder
22+ const uid = await getSelfUid ( page ) ;
23+ const foldersPayload = await apiGet ( page , '/x/v3/fav/folder/created/list-all' , {
24+ params : { up_mid : uid } ,
25+ signed : true ,
26+ } ) ;
27+ const folders = payloadData ( foldersPayload ) ?. list ?? [ ] ;
28+ if ( ! folders . length )
29+ return [ ] ;
30+ fid = folders [ 0 ] . id ;
31+ }
2732 // Fetch favorite items
2833 const payload = await apiGet ( page , '/x/v3/fav/resource/list' , {
2934 params : { media_id : fid , pn : pageNum , ps : Math . min ( Number ( limit ) , 40 ) } ,
0 commit comments