# nlフィルタ定義(文字コード判定用なのでこの行は削除しないこと) # # /mylist_add/video/~ にUマイリストへ登録する機能を追加するnlFilterを作ってみました(Qと原宿の両方に対応) # Qの場合は.jsを書き換えるので、キャッシュクリアしてから使ってください [Replace] Name = umylist: add parameter to open mylist_add/video (Q) URL = res\.nimg\.jp/js/watch/watch\.js Multi = TRUE EachLine = TRUE Match< (c\("#videoHeader a\.mylistButton"\)\.attr\("href","/mylist_add/video/"\+a\.v)(\);) (a\.open\("/mylist_add/video/"\+x\.watchInfoModel\.v)(,) > Replace< $1+(a.v==a.id?"":("?"+a.id))$2 $1+(x.watchInfoModel.v==x.watchInfoModel.id?"":("?"+x.watchInfoModel.id))$2 > [Replace] Name = umylist: add parameter to open mylist_add/video (not Q) URL = www\.nicovideo\.jp/watch/ Match< (?=) > Replace< > [Replace] Name = mylist_add/video : load /umylist/ajax URL = www\.nicovideo\.jp/mylist_add/video/ Match< (?=) > Replace< > [Replace] Name = mylist_add/video : add umylist notice URL = www\.nicovideo\.jp/mylist_add/video/ Match< id="public_notice"[^>]+?>[^<]+? > Replace< $0 > [Replace] Name = mylist_add/video : change script 1 URL = www\.nicovideo\.jp/mylist_add/video/ Match< jQuery\("#select_group"\)\.change\(function \(\) \{ > Replace< var umylist_HTML = ''; for(var i=0,l=uMylist1.length;i' + uMylist1[i].name + ''; } umylist_HTML += ''; jQuery("#select_group").append(umylist_HTML); var video_id = location.pathname.replace(/^.+\\/([^/]+)\$/,function(m,s){ return location.search ? location.search.substring(1) : s; }); jQuery("#box_mylist_add").append(''); var descform; jQuery("div.mb8p4").each(function(){ var E = this; jQuery(E).find("p").each(function(){ if(jQuery(this).html()=="【マイリストコメント】省略可") descform = E; }); }); $0 jQuery("#umylist_notice").toggle( jQuery("option[value='" + this.value + "']", this) .hasClass("umylist_group") ); if (this.value=='umylist_new') { jQuery("#edit_description").focus(); jQuery(descform).find("p")[0].innerHTML = '【新規Uマイリスト名】 必須'; } else { jQuery(descform).find("p")[0].innerHTML = '【マイリストコメント】省略可'; } > [Replace] Name = mylist_add/video : change script 2 URL = www\.nicovideo\.jp/mylist_add/video/ Match< if \(params\.group_id == "new"\) \{ > Replace< var addUmylist = function (params) { jQuery.ajax({ url:"/umylist/add", type:"GET", data:{'mylist':params.group_id,'mid':params.video_id,'tid':params.item_id}, dataType:"text", timeout:10000, cache:false, async:false, success:function(data){ var text; switch(data){ case 'succeeded': afterAdded(); break; case 'overlap': text = '動画が重複しています'; break; case 'invalidID': text = '動画IDが不正です'; break; case 'invalidMylist': text = 'マイリストIDが不正です'; break; default: text = '?'; break; } if (text) { alert(text); processing = false; enables.attr("disabled", false); } }, error: function(){ alert("?"); processing = false; enables.attr("disabled", false); } }); }; if (params.group_id=="umylist_new") { var newName = jQuery("#edit_description").val(); if(!newName){ alert('マイリスト名を入力して下さい'); processing = false; enables.attr("disabled", false); return false; } jQuery.ajax({ url: "/umylist/madd", type:"GET", data:{'name':newName}, dataType:"text", timeout:10000, cache: false, success:function(data){ var msg; switch(data){ case 'succeeded': jQuery.ajax({ url: "/umylist/ajax", type: "GET", dataType: "text", cache: false, success: function(makeUmylistResult){ eval(makeUmylistResult); params.group_id = uMylist1[uMylist1.length-1].id; addUmylist(params); } }); break; case 'overlap': msg = '既に同名マイリストが存在します'; break; case 'invalidName': msg = 'マイリスト名を入力して下さい'; break; default: msg = "?"; break; } if(msg) { alert(msg); processing = false; enables.attr("disabled", false); } }, error: function(){ alert("?"); processing = false; enables.attr("disabled", false); } }); } else if ( jQuery("#select_group option:selected").hasClass("umylist_group") ) { addUmylist(params); } else $0 >