From a06d9bfee181e47f42c99705ac90dd647ad60ddd Mon Sep 17 00:00:00 2001 From: ebith Date: Thu, 3 Nov 2011 02:06:49 +0900 Subject: 動画も開けるようにした --- nicolist.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 16 deletions(-) (limited to 'nicolist.js') diff --git a/nicolist.js b/nicolist.js index 0e17719..ce1b9dd 100644 --- a/nicolist.js +++ b/nicolist.js @@ -3,9 +3,28 @@ * http://twitter.com/ebith */ +var INFO = + + ebith + + + :nicolist-add + :nicolist add mylist-id +

マイリストに動画を追加します

+
+ + :nicolist-open + :nicolist open mylist-id video-id +

mylist-idのみであればマイリストを、video-idの指定もあれば動画を開きます

+
+
; + commands.addUserCommand( ['nicolist'], - 'ニコニコ動画のマイリストを何かする', + 'ニコニコ動画のマイリストを操作する', function(args) { liberator.echoerr('nicolist : サブコマンドが足りない!'); }, @@ -28,14 +47,21 @@ commands.addUserCommand( } ), new Command( - ['j[ump]'], - 'マイリストのページに飛ぶ', + ['o[pen]'], + 'マイリストか動画を開く', function (args) { - let url = 'http://www.nicovideo.jp/mylist/' + args.literalArg; - liberator.open(url, liberator.NEW_TAB); + liberator.log(args); + let [mylist_id, video_id] = args; + if (video_id) { + let url = 'http://www.nicovideo.jp/watch/' + video_id; + liberator.open(url, liberator.NEW_TAB); + } else if (mylist_id) { + let url = 'http://www.nicovideo.jp/mylist/' + mylist_id; + liberator.open(url, liberator.NEW_TAB); + } }, { - literal: 0, + literal: 1, completer: mylistCompleter, } ), @@ -44,14 +70,30 @@ commands.addUserCommand( true ); -function mylistCompleter (context) { - let url = 'http://www.nicovideo.jp/api/mylistgroup/list'; - let mylistgroup = JSON.parse(util.httpGet(url).responseText).mylistgroup; - context.title = ["id", "title"]; - context.filters = [CompletionContext.Filter.textDescription]; - context.compare = void 0; - context.completions = [ - [v.id, v.name] - for ([k, v] in Iterator(mylistgroup)) - ]; +function mylistCompleter (context, args) { + if (args.completeArg == 0){ + let url = 'http://www.nicovideo.jp/api/mylistgroup/list'; + let mylistgroup = JSON.parse(util.httpGet(url).responseText).mylistgroup; + context.title = ["id", "title"]; + context.filters = [CompletionContext.Filter.textDescription]; + context.compare = void 0; + context.completions = [ + [v.id, v.name] + for ([k, v] in Iterator(mylistgroup)) + ]; + } else if (args.completeArg == 1){ + let url = 'http://www.nicovideo.jp/api/mylist/list?group_id=' + args[0]; + let mylistitem = JSON.parse(util.httpGet(url).responseText).mylistitem.sort(sorter); + context.title = ["id", "title"]; + context.filters = [CompletionContext.Filter.textDescription]; + context.compare = void 0; + context.completions = [ + [v.item_data.video_id, v.item_data.title] + for ([k, v] in Iterator(mylistitem)) + ]; + } +} + +function sorter (a, b) { + return - (a.create_time - b.create_time); } -- cgit v1.2.3