したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

【生主ご用達ツール】NicoRequest専用スレ【魔改造・要望大歓迎】

357wata_z:2009/05/18(月) 21:15:35 ID:???
[main.js]

function dummyAdminCmdChg()
を以下に変更

function dummyAdminCmdChg(){
    if(document.getElementById("dummyAdminCmdCheck").checked){
        if (document.getElementById("dummyAdminName").value != ""){
            NicoLive.postComment(document.getElementById("dummyAdminName").value + "さん<br>に主コマンド権限を与えました", "big");
            dummyAdminSetCmdName = document.getElementById("dummyAdminName").value;
        }else{
            NicoLive.postComment("ID:" + document.getElementById("dummyAdminID").value + "<br>に主コマンド権限を与えました", "big");
            dummyAdminSetCmdName = "";
        }
        dummyAdminSetCmdID = document.getElementById("dummyAdminID").value;
    }else{
        if (dummyAdminSetCmdName != ""){
            NicoLive.postComment(dummyAdminSetCmdName + "さん<br>から主コマンド権限を奪いました", "big");
        }else{
            if (dummyAdminSetCmdID != ""){
                NicoLive.postComment("ID:" + dummyAdminSetCmdID + "<br>から主コマンド権限を奪いました", "big");
            }else{
                NicoLive.postComment("ID:" + document.getElementById("dummyAdminID").value + "<br>から主コマンド権限を奪いました", "big");
            }
        }
    }
}

358wata_z:2009/05/18(月) 21:20:30 ID:???
仕様の話

以前要望のあった、次から次へとコメント権限を付加するときに、さきにIDを変更してしまい、NGのままになるのを防止(IDを内部で保存)

で、今回の名前の件ですが、コマンド付加は単純に名前欄になにか入っているとIDの代わりに名前で表示されます
コメント付加についても同様ですが、コメント付加されたコメントの先頭に”名前:”がつくようになります
この名前も保存しているため、途中で変更して解除した場合も最初に付加した人の名前が表示されます
ただ、途中でコメントに付加される名前を変えたい・削除したい事もあると思うので、
コメントに付加される名前のみテキストボックスの名前を参照するようにしています。
よってテキストボックスの中を途中で変更すると付加される名前も変わるようになっています。

359wata_z:2009/05/18(月) 22:13:27 ID:???
コメントNoからIDを検索するの、なにか勘違いしていたようです

[NicoRequest.hta]

<div id="dummyAdmin">
の中を以下に変更(レイアウト変えました)

<div id="dummyAdmin">
<fieldset>
    <legend>副管理者</legend>
    <input type="checkbox" id="dummyAdminCmtCheck" onclick="dummyAdminCmtChg()"><label for="dummyAdminCmtCheck">コメントを受け付ける </label><br>
    <input type="checkbox" id="dummyAdminCmdCheck" onclick="dummyAdminCmdChg()"><label for="dummyAdminCmdCheck">コマンドを受け付ける </label><input type="checkbox" id="dummyAdminNGCheck"><label for="dummyAdminNGCheck">同時にNGリストに追加</label><br>
    <label>名前:</label><input id="dummyAdminName" type="text" size="6" value=""><br>
    <label>ID:</label><input id="dummyAdminID" type="text" size="32" value=""><label> ←</label><input id="dummyAdminNo" type="text" size="4" value=""><input type="button" value="取得" onclick="GetNotoID()">
</fieldset>

[main.js]

以下を最後に追加

//コメントNoよりIDを検索
function GetNotoID(){
    var findNo = document.getElementById("dummyAdminNo").value;

    document.getElementById("dummyAdminID").value = findNotoID(findNo);
}

[Comment.js]

以下を最後に追加


//コメントNoからID検索
function findNotoID(findNo){
    var CmtNum = __Comment__CommentLog.length;

    for(var i=CmtNum-1; i>=0; i--){
        if (__Comment__CommentLog[i].no == findNo){
            var userID = __Comment__CommentLog[i].user_id;
            if (userID != undefined) return userID;
        }
    }

    return "";
}

直接Comment.jsの関数を読んでも良かったのですが、なんとなく分けました

360SAMMA(TM):2009/05/19(火) 01:38:52 ID:???
なんかいろいろ仕様が変わってるので、どれに入れられるか分からないけど。
再生時間カウントダウンの表示を追加。

NicoRequest.htaを修正。
#divState{
 position:absolute;
 width:300px;
 left:expression(document.body.clientWidth-this.clientWidth-3);
 top:4px;
}

Main.jsを修正。
function convertTimeString(num0){
 if(num0<0){
sg = "-";
  num=-num0;
 }else{
  sg = "";
  num= num0;
 }
 mm=parseInt(num/60);
 if(mm<10) mm = "0"+mm;
 ss=parseInt(num%60);
 if(ss<10) ss = "0"+ss;
 return sg+mm+":"+ss;
}
のように書き換え。

361SAMMA(TM):2009/05/19(火) 01:39:29 ID:???
以下バージョンにより違います。
2.3.2.3以前の場合。
Main.js
function getTimeLeft()を修正。
document.getElementById("playState").innerHTML = tagF+convertTimeString(timeLeft)+"/"+convertTimeString(PlayTime)+tagT;

document.getElementById("playState").innerHTML = "再生/"+tagF+convertTimeString(timeLeft)+"/"+convertTimeString(PlayTime-timeLeft)+"/"+convertTimeString
に書き換え。

2.3.2.4以降の場合。
Videoinfomation.js
function __VideoInformation__showplayState(start_time,duration)を修正。

var str = convertTimeString(played_time)+"/"+convertTimeString(duration);

var str = "再生/"+convertTimeString(played_time)+"/"+convertTimeString(duration-played_time)+"/"+convertTimeString(duration);
に。
 }else if(duration - played_time > 0){
  document.getElementById("playState").style.cssText = "color:red;";

 }else if(duration - played_time > -20){
  if (document.getElementById("playState").innerHTML == "再生終了"){
   document.getElementById("playState").style.cssText = "color:WindowText;";
   str = "再生終了";
  }else{
  document.getElementById("playState").style.cssText = "color:red;";
  }
に書き換え。
2.3.2.5の場合、さらにその下、
 }else if(duration - played_time > -20){

 }else if(duration - played_time > -30){
に書き換え。

表示としては、
再生/再生時間/残り時間/動画の時間
例としては
再生/1:23/1:37/3:00 残り時間/12:34
のようになります。

362SAMMA(TM):2009/05/19(火) 01:41:35 ID:???
すみません。なんか抜けました。
>>361の2.3.2.3以前の分。
document.getElementById("playState").innerHTML = "再生:"+tagF+convertTimeString(timeLeft)+"/"+convertTimeString(PlayTime-timeLeft)+"/"+convertTimeString(PlayTime)+tagT;
になります。

363noroma:2009/05/19(火) 02:21:29 ID:???
>>353
名前追加仕様入れてみました。
とりあえず試したところ、名前入れるとコマンドが使えませんね。

364wata_z:2009/05/19(火) 08:55:40 ID:???
>>363
ああ、これ私もなりました
そういえば、書いてませんでしたね

どのバージョン使われているか分からないのですが、
元々のバージョンとw2kバージョンのコーディングがいろいろ変わっておりそれで動かなくなっている可能性あり

[Main.js]のfunction receiveComment_Request(Chat)の中

副管理者機能の下に

var text = Zen2Han(Chat.text);
checkJASCode(text);

という記述があると思いますが、この部分を副管理者機能の前に持って行ってください

365noroma:2009/05/19(火) 10:13:50 ID:???
うちは、EE版の最終バージョンに毛が生えた状態です。
名前入れると、行頭に/が来ないので動かないだけだと思いまーす。
この辺は、各自の用途に合わせてカスタマイズするのが良さそう。

366wata_z:2009/05/19(火) 10:59:05 ID:???
>>365
最初にコマンドを許可しているかどうか判定し、許可しているならばコメントがコマンドなのか判定し、コマンドを送信
次に、コメントを許可しているかどうか判断し、許可しているならばコメントがコマンドでない事を判定し、コメント送信

>名前入れると、行頭に/が来ないので動かないだけだと思いまーす
コマンドと認識されている場合は前に名前を付けないので、そういう動きはしないかと・・・

まあ、noromaさんが持っているソフトがどんなのかにもよりますけどね

367noroma:2009/05/19(火) 15:12:20 ID:???
うちのは↑でも書いた通り、巣のEE版に初代の修正入れてるだけですよ。

ま、今日帰ってから見てみます。
この辺が自己責任。

あと、昨日テストしてて思ったのですが、主をやってるときって、NG登録のコメも全部見えるんでしたっけ?
通常コメは消えないわ、NGリストに反映されないわで、効果が見えませんでした。
なんか間違えてる?

368wata_z:2009/05/19(火) 15:35:27 ID:???
>>367
コメントが2重で見えるのはNGされた本人だけです
よって、主からは2重で見えないはず
みたい場合は、ツールのコメントから見るしかないです

NGリストについては
コマンドを直接打ち込んだものに関してはNGリストに反映されません
ここからは予測になりますが、ニコ生の画面からNG指定をした後にコマンドで解除すると
一覧に残った状態で、NGあ解除されるはずです
つまり、NG・NG解除のコメントを受信してリストを更新している訳じゃないって事ですね(これはテストで確認済み)

369SAMMA(TM):2009/05/19(火) 16:00:46 ID:???
NGの動作ですが、
ブラウザでリロード、あるいは更新ボタンを押すと、設定が消えてしまうようで、NGされたはずのコメが見えたりします。
(ただし追試験の必要あり。)
ボーマスカタログのときに3窓で監視wしてるときに、一般ユーザで見てた2つのやつで確認しています。
ブラウザはsafariとChrome。ついでにfirefoxでも確認。
録画中だったのでie系ブラウザでは確認していませんが。

370SAMMA(TM):2009/05/19(火) 16:08:46 ID:???
ついでに・・・/disconnectコマンドですが、これはクライアント側の停止命令のようですね。
これもリロードすることにより生放送を再び見ることが出来ます。
ただし現実的には時間を過ぎる(配信停止になる)と入口に戻されちゃいますが。
生主画面では、放送する側の画面は生きてますが、下の生放送画面が停止します。
つまり配信停止、あるいはサーバがコネクションを切るまでは復活可能。

これで1つ分かったことは、放送主画面ではflashアプリが3つ(放送の設定パネル、主コメ、生放送クライアント)独立で動いていること。
例の数字ですが、ここから分かることは、bit0でユーザ種別、bit1でアプリ種別。
なんて置いてみると、2が存在しない理由がなんとなくわかりますね。
まぁ、あまり役に立たない知識ですが。
/disconnectを見たらツールを切断しようかと思ったんだけど・・・やめた方がよさそう?
再接続コマンド(同じ放送に繋ぎなおし)を作ればいいかな。

371wata_z:2009/05/19(火) 16:30:13 ID:???
>>369
パケットを見たところ、運営のNGリスト取得コマンドは有るんですが、主NGのリスト取得コマンドが無かったように思います
よって、クライアント側でNGリストを管理しているんじゃないでしょうか
だから、途中から入出&リロードした場合それまでのNGが反映されないのではないかと思ってます

まあ、あくまでも予測ですが・・・

>/disconnect
その仕組みを応用したのが、主途中退出によるロスタイム発生ですね
また、強制切断をしないことにより主画面を閉じてもコメントを見ることが出来るのでそのままでいいかと

#昔、放送終了10秒以内に/disconnectが来なかったら延長と見なし、自動延長機能を作ったんですが、
 上記ロスタイム発生により意味が無くなりましたw

372SAMMA(TM):2009/05/19(火) 17:04:03 ID:???
いや、/disconnectを見たら切断しようと思ったのは、
番組を早期終了したときに、ツールが繋がったままで30分以内に新しく放送が立ち上がったときに
自動接続やら何やらがうまく動かなかったことに由来しています。
もちろん、/disconnectが来なかったら自動延長と言うのも考えたりするんですけどね。
まぁ、主が自分で/disconnectとか打つことはないと思うのでw、それを見たら切断でも構わないとは思うんですけど。
それより、時間終了後に気づいて(ツールの)延長できない事態をなんとかしたいですけど、
私じゃさっぱり分かりませんw

373noroma:2009/05/19(火) 17:13:26 ID:???
あーなるほど。
あの画面のリストに反映される訳ではないのですね。

気になったのは、ボーマス企画の時にSHIKIさんのNGが最後まで解除されなかったことです。
リストに見えなきゃ分かりませんね。
それに、解除の方法がない。
リロードで全解除になるんですか?
それなら、対処のしようはありますが。

374wata_z:2009/05/19(火) 17:24:59 ID:???
>>373
リロードだと、リスト上解除されていますが、実際は解除されていません
NG処理をやっているのは視聴者側ですからね

解除の方法は・・・再度NG→解除するか、手動でコマンドを打ち込むぐらいかな
ログがないので分かりませんが、あの時って再NGやってましたよね?

ちなみに昨日アップしたソフトであれば、解除漏れがなくなるはずなので、お試しあれ

375noroma:2009/05/19(火) 17:49:54 ID:???
>>335で書いたNG解除漏れの件、対応してもらってますよね。
一つ心配なのは、ツールが落ちちゃった時のことなんです。
上の状況見る限り、そこまで対応するのは難しいですね。
落ちないように祈るしかないか。

376SAMMA(TM):2009/05/19(火) 17:55:28 ID:???
>>373-374
あの時は主コメでのNG削除は行われていないです。
当時のログで確認済み。手元には残ってないから今から確認は出来ませんけど。
同様に何人かはNGになったままのはずです。
クライアント側をリロードすることで、主によるNG指示はクリアされるようですが、
それを視聴者にお願いするのはちょっとねw
私とはつよさんの書き込みから、
 生放送パネル(生主)と視聴アプリ(クライアント)は別物
 NG指示は生放送パネルに反映されない
 視聴アプリでNG処理
とのことなので、指示処理を誤ってしまうとよく分からないことになってしまいますね。

2.3.2.5版の方でとりあえず私独自で副管理者部分を書き換えてNGID処理部分を改善してますのであとでうpします。
コメのユーザー名の部分は実装していません。
ついでにNGID処理を後でも指示出来る様に追加しています。
動作はしてますが、副作用などのチェックはしていません。
(たとえばコメとコマンド両方の権限を同じユーザに与えた場合)など。

377SAMMA(TM):2009/05/19(火) 18:06:42 ID:???
>>375
IDを外部保存しておくしかないですね。メモ帳とかw
自貼り第5回のときは、実際にそうしています。
名前(コメ番) 動画id ID
みたいなリストを随時作成しながら放送してました。
まぁ、自貼りの場合、確認と実際の紹介のときのタイミングが余りに離れすぎてて検索不能になったりすることもあるし、
事前にやれることは出来るだけ事前に準備してないと、混乱しまくりですからw

あの企画放送のあと、生放送でも言ったんですが、ツールのログで右クリックでID取れるんですが、コメ流れまくりだとスクロールしちゃってフォーカス合わなくて実は非常にとりにくいんですねw
生放送のコメからNGID設定ボタンから取ったほうが実は簡単だったりw(スクロールしないしフォーカスも一度クリックすればずれないし)
ということもあったりします。

378higumon:2009/05/19(火) 18:24:04 ID:???
あの時の話。
SHIKIさんの時に、何を勘違いしたのか、
ニコリクを私の方で一旦終了させてしまってます。
その後再起動したわけですが。

ログが必要なら提出した方がいいですか?

379noroma:2009/05/19(火) 19:11:54 ID:???
ログは必要ないと思いますよ。
今、話に参加されてる人は、状況を正確に把握しているようですので。
取り扱いの注意書が必要かな?

380SAMMA(TM):2009/05/19(火) 20:24:15 ID:???
お約束どおり、2.3.2.5での改造コード。
想定している使用にはなっていますが、副作用はチェックしてないので使用にはご注意ください。
変数名は、はつよさんの改造コードに準拠してます。ただし、「名前」は未実装です。

NicoRequest.hta
副管理者の設定部分の差し替え。
  <fieldset>
   <legend>副管理者</legend>
   <input type="checkbox" id="dummyAdminCmtCheck" onclick="dummyAdminCmtChg()" /><label for="dummyAdminCmtCheck">コメントを受け付ける</label>
   <input id="dummyAdminCmtID" type="text" size="32" value=""
    onchange="var e=document.getElementById;if(this.value==''){e('dummyAdminCmtCheck').checked=false;}">
   <input type="checkbox" id="dummyAdminCmtNGCheck" onclick="dummyAdminCmtNGChg()" /><label for="dummyAdminCmtNGCheck">同時にNGリストに追加</label><br />
   <input type="checkbox" id="dummyAdminCmdCheck" onclick="dummyAdminCmdChg()" /><label for="dummyAdminCmdCheck">コマンドを受け付ける</label>
   <input id="dummyAdminCmdID" type="text" size="32" value=""
    onchange="var e=document.getElementById;if(this.value==''){e('dummyAdminCmdCheck').checked=false;}">
   <input type="checkbox" id="dummyAdminCmdNGCheck" onclick="dummyAdminCmdNGChg()" /><label for="dummyAdminCmdNGCheck">同時にNGリストに追加</label><br />
  </fieldset>

main.js
先頭部分に追加。
var dummyAdminSetCmdID;  //副管理者設定ID(コマンド)
var dummyAdminSetCmdName; //副管理者設定名前(コマンド):未使用
var dummyAdminSetCmtID;  //副管理者設定ID(コメント)
var dummyAdminSetCmtName; //副管理者設定名前(コメント):未使用

function receiveComment_Request(Chat)の変更
副管理者機能の部分。
 if (Chat.user_id == document.getElementById("dummyAdminID").value){
    :    :    :    :    :
 }
を以下に差し替え。
 if (Chat.user_id == dummyAdminSetCmdID){
  if (document.getElementById("dummyAdminCmdCheck").checked
   && (
     &nbsp; (/^\/(play|playsound|swapandplay) (sm|nm)[0-9]+$/.test(text))
    || (/^\s+\/(play|playsound|swapandplay) (sm|nm)[0-9]+$/.test(text))
    || (/^\/(play|playsound|swapandplay) (sm|nm)[0-9]+ sub$/.test(text))
    || (/^\s+\/(play|playsound|swapandplay) (sm|nm)[0-9]+ sub$/.test(text))
    || (/^(sm|nm)[0-9]+$/.test(text))
    || (/^\s+(sm|nm)[0-9]+$/.test(text))
    || (/^\/(swap|soundonly (on|off)|stop)/.test(text))
    || (/^\s+\/(swap|soundonly (on|off)|stop)/.test(text))
   )
  ){
   NicoLive.postComment(Chat.text.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/\n/g,"<br>").replace(/\r/g,""), Chat.mail!=undefined?Chat.mail.replace("184",""):Chat.mail);
   return;
  }
 }else if (Chat.user_id == dummyAdminSetCmtID){
  if (document.getElementById("dummyAdminCmtCheck").checked
   && !(
     &nbsp; (/^\/.+$/.test(text))
    || (/^\s+\/.+$/.test(text))
    || (/^(sm|nm)[0-9]+$/.test(text))
    || (/^\s+(sm|nm)[0-9]+$/.test(text))
   )
  ){
   NicoLive.postComment(Chat.text.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/\n/g,"<br>").replace(/\r/g,""), Chat.mail!=undefined?Chat.mail.replace("184",""):Chat.mail);
   return;
  }
 }
&ltと&gtは半角にしてください。
あと、全角SPはTABに変換です。
続きます。

381SAMMA(TM):2009/05/19(火) 20:26:28 ID:???
副管理者機能変更部分を差し替え。
// 副管理者機能変更(コメント)
から
function NicoCookieImporter(flag, browserType, cookieLifeSpan){
直前までを差し替え。
// 副管理者機能変更(コメント)
function dummyAdminCmtChg(){
 if(document.getElementById("dummyAdminCmtCheck").checked){
  if(!CheckdummyAdminCmtIDValue()) return;
  if(dummyAdminSetCmtID!=null){
   NicoLive.postComment("ID:" + dummyAdminSetCmtID + "<br>のコメント権限を解除しました", "big red");
   NicoLive.postComment("/ngdel ID " + dummyAdminSetCmtID , "");
   dummyAdminSetCmtID=null
  }
  dummyAdminSetCmtID=document.getElementById("dummyAdminCmtID").value
  NicoLive.postComment("ID:" + dummyAdminSetCmtID + "<br>にコメント権限を設定しました", "big red");
  if(document.getElementById("dummyAdminCmtNGCheck").checked) NicoLive.postComment("/ngadd ID " + dummyAdminSetCmtID + " 0 0", "");
 }else{
  NicoLive.postComment("ID:" + dummyAdminSetCmtID + "<br>のコメント権限を解除しました", "big red");
  NicoLive.postComment("/ngdel ID " + dummyAdminSetCmtID , "");
  dummyAdminSetCmtID=null
 }
}

// 副管理者機能変更(コメントNGIDのみ)
function dummyAdminCmtNGChg(){
 if(document.getElementById("dummyAdminCmtNGCheck").checked){
  if(!CheckdummyAdminCmtIDValue()) return;
  NicoLive.postComment("/ngadd ID " + dummyAdminSetCmtID + " 0 0", "");
 }else{
  NicoLive.postComment("/ngdel ID " + dummyAdminSetCmtID , "");
 }
}

// 副管理者機能変更(コマンド)
function dummyAdminCmdChg(){
 if(document.getElementById("dummyAdminCmdCheck").checked){
  if(!CheckdummyAdminCmdIDValue()) return;
  if(dummyAdminSetCmdID!=null){
   NicoLive.postComment("ID:" + dummyAdminSetCmdID + "<br>のコマンド権限を解除しました", "big red");
   NicoLive.postComment("/ngdel ID " + dummyAdminSetCmdID , "");
   dummyAdminSetCmdID=null
  }
  dummyAdminSetCmdID=document.getElementById("dummyAdminCmdID").value
  NicoLive.postComment("ID:" + dummyAdminSetCmdID + "<br>にコマンド権限を設定しました", "big red");
  if(document.getElementById("dummyAdminCmdNGCheck").checked) NicoLive.postComment("/ngadd ID " + dummyAdminSetCmdID + " 0 0", "");
 }else{
  NicoLive.postComment("ID:" + dummyAdminSetCmdID + "<br>のコマンド権限を解除しました", "big red");
  NicoLive.postComment("/ngdel ID " + dummyAdminSetCmdID , "");
  dummyAdminSetCmdID=null
 }
}

// 副管理者機能変更(コマンドNGIDのみ)
function dummyAdminCmdNGChg(){
 if(document.getElementById("dummyAdminCmdNGCheck").checked){
  if(!CheckdummyAdminCmdIDValue()) return;
  NicoLive.postComment("/ngadd ID " + dummyAdminSetCmdID + " 0 0", "");
 }else{
  NicoLive.postComment("/ngdel ID " + dummyAdminSetCmdID , "");
 }
}

382SAMMA(TM):2009/05/19(火) 20:26:59 ID:???
つづき。
function CheckdummyAdminCmdIDValue(){
 if(document.getElementById("dummyAdminCmdID").value==""){
  document.getElementById("dummyAdminCmdCheck").checked=false;
  document.getElementById("dummyAdminCmdNGCheck").checked=false;
  document.getElementById("dummyAdminCmdID").focus();
  return false;
 }else{
  return true;
 }
}
function CheckdummyAdminCmtIDValue(){
 if(document.getElementById("dummyAdminCmtID").value==""){
  document.getElementById("dummyAdminCmtCheck").checked=false;
  document.getElementById("dummyAdminCmtNGCheck").checked=false;
  document.getElementById("dummyAdminCmtID").focus();
  return false;
 }else{
  return true;
 }
}

function setSelectedUseridToDummyAdmin(UserId){
 document.getElementById("Tab").selectedIndex = 4;
 document.getElementById("dummyAdminCmtID").value = UserId;
}

以上です。全角SPはTABに変換。
なお、想定している動きは確認していますが、想定外の動作をする可能性があるのでそのつもりで組み込んでください。
追加機能としては、
・コメ機能とコマンド機能のUSERIDの分離と記憶。
・機能付与時にそれ以前に設定していたユーザーの機能を外す告知。(NGも外す)
 基本はチェック外した時に設定も外れるはずなので必要ないはず。
・NGIDのチェックを独立動作。あとでNG入れたり外したりが可能。
 つまりNGチェック入れ忘れてもあとで追加できる。
ユーザー名機能は入れてません。

383wata_z:2009/05/19(火) 21:30:09 ID:???
個人的に、今のリクツールは機能を詰め込みすぎている気がする
で、動作ももっさりになってるわけで・・・

今w2kさんがいろいろな機能を付加したパッケージをアップされていますが
当然視聴者にとって便利な機能も付加されています。

で、生主に限定した機能のみのツールが有れば軽くていいかなーと思ってたり
誰か作りませんか?w

仕様としては・・・
①動画情報タブの廃止。ただし、現在の動画が分かるように、リクエストタブの最上位に現在放送中の情報表示。
 また、放送中動画情報も放送情報からでは無く、再生コマンド押による情報取得に変更。
 これにより、動画再生時の動画情報・マイリスト取得ロジック不要による負荷軽減

②自動接続機能の削除
 便利なんですが、確実に接続する為には手動が一番かと。
 あと、たまにエラーが出ることがあるので、これによる動作不良の防止

③逆に、副管理者機能による主NGが、ツールの再起動でも対応できるように・・・等の不測時の処理の作り込み。

ようは通信を減らして安定性をアップさせたいって事ですね。

あ、言い出しっぺの法則は無しですよーw

384noroma:2009/05/19(火) 22:23:36 ID:???
>>383
詰め込みすぎて起動しない人もいるわけで・・・

まあ自分の場合、リク迎撃はおろか、連続コメ機能もまだ入れることが出来ないでいますからね
なにが起動の邪魔をしているのやら・・・

385wata_z:2009/05/19(火) 22:35:43 ID:???
>>384
そういえば、昔会社のPCwでリクツールを動かしたことが有るんですが、少し間にw2k版を動かしてみると動かなかった事あり
なにかの機能が邪魔してるのかな?
ちなみにその時は起動する度になにかプロセスは動くんですが、リクツール自体は表示されませんでした

386noroma:2009/05/19(火) 22:53:44 ID:???
>>385
mshta.exeですね。
確か通信のプロセスだとか。
それは動いてるらしいんですが、だんまりを決め込むんですよね。
多分、通信のタイミングがずれて、受信待ちで止まってるんじゃないかと思ってますけど。

387w2k:2009/05/22(金) 13:21:30 ID:???
/ngadd実行時に、/ngdel〜をファイルに書き出すようにして、
次回起動・接続時にそのファイルがあればそのコマンドを実行できるようにする。

というのはどうでしょうか。

いきなり自動実行というのもアレなので、
ダイアログを出して許可したときのみ実行、みたいな感じで。

388w2k:2009/05/22(金) 13:22:53 ID:???
>>386
うちでもたまにありますね。
そういうときは、mshta.exeを一旦終了させてから再度やってみるといいようです。

389SAMMA(TM):2009/05/22(金) 13:55:36 ID:???
2.3.2.5で再生時のリクリスト削除でたまにエラーが出ますね。
RequestManeger.jsの340行付近かな。
再現理由がトンと不明なので原因がつかめませんが・・・。

390SAMMA(TM):2009/05/22(金) 14:03:34 ID:???
>>387
また機能拡張になってしまいますがw
NGリスト・・・と言うより、副管理者リストをローカルで持っちゃうというのも1つの手かもしれません。
副管理者機能をタブで1つ追加。
その中に、名前、ID、NGチェックボックス、権限チェックボックス(コメ、コマンド)
これでID管理できてれば、見通しはよくなりますよね。
保存と復帰機能があれば不慮の事故でも安心ですし。
複数人で主コメを使うことを想定するのであれば、必要になってくるかもしれません。
現状は該当者一人というのが想定される使用条件だと思うので。

えっと、htaとかjavascriptとかさっぱりなので、言いだしっぺの法則は適用除外でw

391wata_z:2009/05/22(金) 14:29:12 ID:???
>>390
IDは定期的に変わるので管理するのは難しそう
まあ、企画の支援目的であれば、予め規格主には184でない番号を教えてもらい、
それをリスト化するってのは出来るかもしれません

ただ、いまいち複数人を副管理者に設定するシチュエーションが浮かばない

>>388
終了後、再度実行してもmsha.exeが裏で動くのみです
ちなみにEEさんの最終版だと動いたりします
というか、いろいろソフトをコメントにして試してみましたが、原因分かりません
onloadの最初にalerを入れてもダイアログが出てこないので、もっと根本的な原因の様な気がする


・・・というか、昼間からみなで書き込みしてますが、休日ですか?w

392SAMMA(TM):2009/05/22(金) 15:09:13 ID:???
>>391
そうですか?w
ちょっと企画枠で話が出てましたけど、企画主が枠を取れなくて、支援主が生主。
そこにゲストというのでこの3人が主コメを使いそうな感じ。
そうではなくて、何も同時に使うというわけでもなく、過去の自貼り枠、higumonさんの企画なんかは複数ID機能があるとかなり楽できます。
あと、作品にPが一人というわけでなく、楽曲師さんと絵師さんが一緒に現れたりとかもありましたし。
まぁ、多少は実装方法を考えないと、主コメの取り合いになりそうですがw
自貼り枠なんかは、場の雰囲気もあって、わりと主の気ままで運営してますけど、
この前のボーマス告知企画はかなり大変そうでしたね。操作慣れしてないこともあったみたいだけど。
まぁ、たくさんのゲストを抱えるとそれだけで大忙しなわけですw

ところで、ニコリク起動しない件。
2.3.2.5を最初に起動したときには・・・1〜2分かかった気がw
今は10秒ぐらいで起動しますけど。
あれ、外部ファイル(logファイルとか保存ファイルとか)がいっぱいあるので、そのファイルがないと検索に時間がかかるのかな?
あと、デフォルトでテストコミュに自動接続になってたりしてたはずなので、それで起動しないのかもw

金曜日の昼間なのに書き込みいぱーいw
はつよさんも、今日は休日なんですね?w
わたし?クラインの壷にはまって、逃避中〜w。upsidedown insideout(謎

393w2k:2009/05/22(金) 15:27:59 ID:???
副管理人が複数いると、発言のタイミングがかぶったときえらいことになりそうなw

ってか、自分でもたまに
起動しないor起動しても接続できないorマイリス一覧が取得できない
などと色々な不具合があったりして、ちょっと躓き中だったりorz<改造

え、俺? 普段夜勤の俺にとっては普通なんですがw

394higumon:2009/05/22(金) 16:53:09 ID:???
>>392

>この前のボーマス告知企画はかなり大変そうでしたね。操作慣れしてないこともあったみたいだけど。
>まぁ、たくさんのゲストを抱えるとそれだけで大忙しなわけですw
副管理人機能をあんなに使ったのは、今回はじめてですし、
なかなか慣れなかったですね。正直。

裏でskype、MSNメッセンジャーで打合せ(3つ先の出演者ぐらいまで)
してましたので、放送中全く余裕がなかったです。
少しでも負担が減ってくれると助かるわけですが。

今日はもう仕事は手仕舞い。
どうせ送別会(自分のではない)で残業ないし。
・・・いつものとおり職場な訳ですがw

395higumon:2009/05/22(金) 17:01:45 ID:???
あ、あと。

複数ID機能あると、自分の企画の場合助かりますね。
AさんからBさんへゲストが変わる場合
これまでですと、Aさんに一度でてもらってからBさんに入ってもらう必要が
ありますが、
複数あれば Aさん→Bさんin→A・Bさん混在→Aさんout→Bさん
というような、引渡しが可能になりますからね。

396wata_z:2009/05/22(金) 17:22:52 ID:???
なるほど、企画の種類によっては需要がありそうですね

ってことで・・・

(ノ・∀・)ノ =====[副管理者機能パワーアップ要望]))゚Д゚)・∵.<397

397SAMMA(TM):2009/05/22(金) 17:32:17 ID:???
>>395
ああ、それがありましたねw
あのコメ権限を引き抜くタイミングって難しいんですよねw
あまり待ってもいられないから、そこそこに引き抜いちゃったりしてw
意外に気を使うシーンですよねw

ちょっとかんがえてみ・・・
===[副管理者機能パワーアップ要望]))゚Д゚)・∵.
ぐはっ

ちょwwwどこかで食らったからっていって、やめてくださいwww
というか、こんなくネタを引っ張るのは9月まで禁止w(8月でも可w

398noroma:2009/05/22(金) 17:39:46 ID:???
華麗にスルーw

一つ機能要望が。
今のツールは、リクエスト収集、つまり動画番号を集めるためのツールです。
これをちょっといじって、特定の語句をカウントするような機能ができないかな?と考えています。
用途は「ネタ曲選手権」
みんなでネタ曲を持ち寄って、鑑賞及び審査をしてもらおうと。
この時の審査基準が「w」の数、というのを考えてます。
自分で考えようとも思ったのですが、ここで聞くのもありだなと思って、ネタバレ覚悟で聞いてみました。

399wata_z:2009/05/24(日) 01:00:30 ID:???
ちょいと質問というか、アンケート?

生放送で公開しましたが、複数人対応の副管理者機能について
途中でツールを落とした場合の話ですが、
ソフトの作りやすさもあって、登録した管理者設定は残さないようにしようと思っています
そのかわり、終了時に主NGだけ解除するようにして最低限どうにもならない状態だけは回避しようと思っています。

それともやはり副管理者設定情報保持(名前、ID、コメントON/OFF、コマンドON/OFF、NG ON/OFF)は必要ですか?

400noroma:2009/05/24(日) 01:15:12 ID:???
>>399
主NGだけ回避していれば問題ないと思います。
それ以外の場合はかなり特殊な状況かと思われますので、切り捨てても構わないかと。

401noroma:2009/05/24(日) 01:17:01 ID:???
しいて言うなら、NG登録IDをファイルに書き出しておくくらいの機能があればいいかなとは思いました。
それを使っての復旧は手作業任せ。

402noroma:2009/05/24(日) 01:18:36 ID:???
もしくは、復旧専用ツールを別途用意する。

連投すみませんm(_ _)m

403w2k:2009/05/24(日) 06:45:33 ID:???
>>401に1票ノ

ツール以前にPCそのものが落ちてしまう場合もあるかもなので、
PCを再度起動して復帰できれば、
あらかじめファイルに書き出しておくことで
復旧できるようになる・・・というのが理由です。

404SAMMA(TM):2009/05/24(日) 16:50:37 ID:???
>>401案に再起動時にこのファイルを読んで解除コメを実行・・・というところかな。
リセットされた状態に戻すところまで。
主NG設定でなく解除だから、何もなかったとしてもとりあえず問題ないかな?という感じ。
自動化できるならの話。
自動実行まではしなくても、NG削除コマンドまで含めて書いてくれてればそれでいいかも。
基本的には非公開コマンドの類なので、コマンド探してやってくれとはいえない状況かと。

405noroma:2009/05/24(日) 17:53:47 ID:???
>>404
それは>>402で書いてある通り、あえて別で用意するべきかと。
詰め込みすぎて重いんですがら、普段使わない機能は別にすればいいんじゃないかと。

確かに、手動ならコマンド含めてテキストにあるとありがたいですね。

406トーン:2009/05/24(日) 23:01:07 ID:???
 Main.js

 リクナンバーのlv表示の自分で出来たので書き込んでおきます。
 多分もう需要があって不必要だと思いますが自分で組み込みたい方用に。

 上の方(グローバル変数部分)に
var LVID;
 を追加。

 connect関数(function connect(PS))内
PlayLog += "lv"+PS.lv+"\n";
 の下に
LVID = "lv"+PS.lv;
 を追加。

 複数行あるであろう
RequestManager.addRequestQueue(new RequestQueue(sms[0], "C", Chat.no));
 を
RequestManager.addRequestQueue(new RequestQueue(sms[0], LVID, Chat.no));
 に変更。

 これでlvxxxxxx-smxxxxxxxと表示されるはず……です。

407トーン:2009/06/05(金) 14:06:24 ID:???
 急用が入りました。
 30分程度で済むのでPart6161をを23分で切り上げ、Part6162はリクエストを受け付けない自動放送ということにします。
 万一事故が起こったら申し訳ないです

408トーン:2009/06/06(土) 19:04:19 ID:???
 遅れました。誤爆です。

409なまはいさん@お腹いっぱい。:2009/06/18(木) 22:01:48 ID:???
すみません。色々考えたのですが分からないので相談させてください…orz
JASコードのついているものとそうでないものをソートで分けられますでしょうか?
順番は気にしません。コードのあるものと無いものが分けられればおkなのですが…

410なまはいさん@お腹いっぱい。:2009/06/18(木) 23:33:01 ID:???
>>409
自分でやる気にはならないのですが、できると思いますよ。
JASコードは動画単位で持ってる情報の筈(動画番号や再生数と同じ)なので、普通にソート対象にするか、
空白のもので不具合起きそうなら、「000000000」みたいな適当な初期値持たせてやれば大丈夫だと思います。

411w2k:2009/07/04(土) 14:33:46 ID:???
俺がうpした改造ニコリクをご利用の皆様へ

特殊なコードがコメントされると、ニコリクが使い物にならなくなる脆弱性が発見されました。
解決法としては、Main.jsやComment.jsをメモ帳で開き、
.replace(/&lt;/g,"<")
.replace(/&gt;/g,">")
を全削除&上書き保存でとりあえず問題ないことを確認しました。
(「&」は半角です)

取り急ぎ報告まで。

ご迷惑をかけてしまい、まことに申し訳ありませんが、よろしくお願いします。

なお、後ほど様々な機能を追加したVerをうpする予定です。

# 機能面は満足のいくところまで来ているんですが、りどみをどうするか悩む;;

412w2k:2009/07/04(土) 16:16:32 ID:???
まだまだ検証不足の感は否めませんが、自分が使ってる最新Verをうpしました。
http://www1.axfc.net/uploader/He/so/233042.lzh&amp;key=vocaloid
バグ報告はこのスレでお願いします。

ちなみに、
 動作確認環境
  Win2k+IE6(VirtualPC上)
  Vista+IE8+NCI(実機)

うん、ぜんぜん足りないねorz

413小ネタ:2009/07/13(月) 17:07:00 ID:???
再生した動画が鯖にアクセスすることなくマイリスに登録済みかどうか分かるようにしてみたので書いてみる。

【VideoInformation.js】

function __VideoInformation__getMylistIDs(){
 (略)
 for(var i=0,l=Options.length; i<l; i++){
  Options[i].match(/ href="mylist\/(.+?)">(.+?)<\/a><\/strong>/ig);
  var id = Number(RegExp.$1);
  var name = RegExp.$2;
  if(!isNaN(id)){
   xmlhttp.open("GET","http://www.nicovideo.jp/mylist/&quot; + id, false);
   xmlhttp.send();
   var Options2 = xmlhttp.responseText.match(/<h3><a class="video" href="watch\/([^\"]+?)">([^<]+?)<\/a><\/h3>/ig);
   if(Options2){
    var VideoIDs = new Array();
    for(j=0;j<Options2.length;j++){
     Options2[j].match(/<h3><a class="video" href="watch\/([^\"]+?)">([^<]+?)<\/a><\/h3>/ig);
     VideoIDs.push(RegExp.$1);
    }
    if(Options2.length<500) {
     result.push({id: id, name: name, VideoIDs: VideoIDs, flag: true});
    }else{
     result.push({id: id, name: name, VideoIDs: VideoIDs, flag: false});
    }
   }
  }
 }
 return result;
}

function __VideoInformation__receiveComment(Chat, flag){
 (略)
    for(var i=0,l=__VideoInformation__MylistIDs.length; i<l; i++){
     if(settings["CheckPlayedVideoIdIsAdd2Mylists"]){
      // マイリスに登録されてるかどうか調査
      for(j=0;j<__VideoInformation__MylistIDs[i].VideoIDs.length;j++){
       if(__VideoInformation__MylistIDs[i].VideoIDs[j]==VideoID){
        document.getElementById("checkMylistResult").innerHTML += VideoID+'はマイリスト「'+__VideoInformation__MylistIDs[i].name+'」に登録されています。<br>';
        AllreadyExist = true;
       }
      }
     }
     if(!(settings["CheckPlayedVideoIdIsAdd2Mylists"] && __VideoInformation__MylistIDs[i].flag==false)){
      var opt = document.createElement("option");
      (略)

414小ネタ:2009/07/13(月) 17:14:27 ID:???
>>413の処置により、ストックにある動画がマイリスに登録されてるかどうかが分かるようになったのでこちらも。

【Request.js】

function Request(){

this.mylist = new Array();
を追加

Request.prototype = {
 initialize: function(id, xmldom){

  for(var i=0,l=__VideoInformation__MylistIDs.length; i<l; i++){
   for(var j=0;j<__VideoInformation__MylistIDs[i].VideoIDs.length;j++){
    if(__VideoInformation__MylistIDs[i].VideoIDs[j]==this.id){
     this.mylist.push({id: __VideoInformation__MylistIDs[i].id, name: __VideoInformation__MylistIDs[i].name});
    }
   }
  }
を追加

【RequestManager.js】
 _replaceHTML: function(str, R){

  return str
のreplaceに
   .replace(/{#Mylist}/g,function(){
    var tmp = "";
    for(i=0;i<R.mylist.length;i++){
     tmp += "["+R.mylist[i].name + "] ";
    }
    return tmp.replace(/ $/,"");
   })
を追加

【settings.js】
settings["ItemHTML"]に
<b>登録済みマイリスト/</b>{#Mylist}
のように追加

415なまはいさん@お腹いっぱい。:2009/07/16(木) 21:51:50 ID:???
>>413を修正して、マイリスに登録されている動画の数を視認できるようにしてみた

【VideoInformation.js】

function __VideoInformation__getMylistIDs(){
 (略)
   if(Options2){
    var VideoIDs = new Array();
    var l2=Options2.length;
    for(var j=0;j<l2;j++){
     Options2[j].match(/<h3><a class="video" href="watch\/([^\"]+?)">([^<]+?)<\/a><\/h3>/ig);
     VideoIDs.push(RegExp.$1);
    }
    result.push({id: id, name: name, VideoIDs: VideoIDs, count: new String(l2)});
   }else{
    result.push({id: id, name: name, VideoIDs: [], count: "0"});
   }
  }
 }
 return result;
}

function __VideoInformation__receiveComment(Chat, flag){
 (略)
    for(var i=0,l=__VideoInformation__MylistIDs.length; i<l; i++){
     if(settings["CheckPlayedVideoIdIsAdd2Mylists"]){
      // マイリスに登録されてるかどうか調査
      for(j=0;j<__VideoInformation__MylistIDs[i].VideoIDs.length;j++){
       if(__VideoInformation__MylistIDs[i].VideoIDs[j]==VideoID){
        document.getElementById("checkMylistResult").innerHTML += VideoID+"はマイリスト「"+__VideoInformation__MylistIDs[i].name+"」に登録されています。<br>";
        AllreadyExist = true;
       }
      }
     }
     if(!(settings["CheckPlayedVideoIdIsAdd2Mylists"] && __VideoInformation__MylistIDs[i].count=="500")){
      var opt = document.createElement("option");
      opt.appendChild(document.createTextNode(__VideoInformation__MylistIDs[i].name+"(登録数:"+__VideoInformation__MylistIDs[i].count+")"));
      opt.setAttribute("value", __VideoInformation__MylistIDs[i].id);
      sel.appendChild(opt);
     }
    }
    (略)
}

416なまはいさん@お腹いっぱい。:2009/07/16(木) 21:52:25 ID:???
// 続き
function __VideoInformation__addMylist(VideoID){
 (略)
  if(result && result.result=="success"){
   document.getElementById("addMylistResult").innerHTML += VideoID + "をマイリスト「" + addMylistSel.options[addMylistI].text.replace(/(.+/,"")+"」に登録しました";
   if(document.getElementById("checkMylistResult").innerHTML.match("はどのマイリストにも登録されていません。")){
    document.getElementById("checkMylistResult").innerHTML = VideoID+"はマイリスト「"+addMylistSel.options[addMylistI].text.replace(/(.+/,"")+"」に登録されています。<br>";
   }else{
    document.getElementById("checkMylistResult").innerHTML += VideoID+"はマイリスト「"+addMylistSel.options[addMylistI].text.replace(/(.+/,"")+"」に登録されています。<br>";
   }
   for(var i=0,l=__VideoInformation__MylistIDs.length; i<l; i++){
    if(__VideoInformation__MylistIDs[i].id==mylistID){
     __VideoInformation__MylistIDs[i].VideoIDs.push(VideoID);
     __VideoInformation__MylistIDs[i].count = new String(Number(__VideoInformation__MylistIDs[i].count)+1);
     addMylistSel.options[addMylistI].text = addMylistSel.options[addMylistI].text.replace(/(.+/,"(登録数:"+__VideoInformation__MylistIDs[i].count+")");
     break;
    }
   }
  }else if(result.result=="duperror"){
   document.getElementById("addMylistResult").innerHTML += VideoID + "は既にマイリスト「" + addMylistSel.options[addMylistI].text.replace(/(.+/,"") + "」に登録されています。";
  }else if(result.result=="maxerror"){
   alert("マイリスト「" + addMylistSel.options[addMylistI].text.replace(/(.+/,"") + "」はすでに満杯なので追加できません。\n他のマイリストを指定してください。");
  }else{
   alert("想定外のエラー:"+result.result);
  }
 (略)
}

417noroma:2009/07/18(土) 04:47:45 ID:???
副管理者機能にて登録告知をOFFにしている場合、NG登録コマンドが出ていない様子。
登録・変更・削除、いずれのチェックボックスがOFFになってもNG登録されないようです。

まだまだ検証不足なのでもう少し調べますが、今のところわかっているのはこれだけです。

418w2k:2009/07/23(木) 21:23:22 ID:???
一部に興味ある方がいらしたようなので、今日のミクライブで使ってたツールをちょっと手直ししてうpしてみました。

http://www1.axfc.net/uploader/Sc/so/20194.lzh&amp;key=vocaloid

はっきり言っておいら仕様なので、環境によっては不具合出るかも;;

419なまはいさん@お腹いっぱい。:2009/08/03(月) 22:09:15 ID:???
NicoRequest w2k式VorcaloidArrange_2327α4不具合報告
りどみの「このスレ」がどこかわからなかったのでこちらへ
OS:XP Pro SP3
コメからリクを拾ってくるが動画情報取得中...と表示されたところでエラーダイアログがでます

ライン:19
文字:27021
エラー:書き込みできません。
コード:0
URL:file:///C:/Documents%20and%20Settings/ユーザー名/デスクトップ/NicoRequest%20w2k式VorcaloidArrange_2327α4/NicoRequest%20w2k式VorcaloidArrange_2327α4/System/jquery.min.js

こちらの環境のせいかもしれませんが一応ご報告まで

420なまはいさん@お腹いっぱい。:2009/08/09(日) 20:13:51 ID:???
w2k VA_2327&alpha;を改造したいのですが、
どこをどういじればいいのかわからないため
みるべき場所を教えていただけないでしょうか。

改造したい点は以下の通りです。
・タブの順序の入れ替え
・「コメントフィルター」「連続コメント」タブを「コメント管理」として統合
・「リクエスト」タブのサムネイルを、クリックして表示に戻す
・「リクエスト」タブの、聞き入り度/マイリス率/正義値を削除
・「動画情報」タブの、聞き入り度/マイリス率/正義値を削除

421蒼空碧葉:2009/08/12(水) 14:03:46 ID:???
>>420
今この場でわかるだけ
①・② NicoRequest.hta
④・⑤ settings.js
たしか、③ リクタブのサムネイル表示は、
settings.jsとRequestManager.jsをいじるんだったと思います。
回答になったかどうかはわかりませんが、一応

422トーン:2009/08/15(土) 19:32:43 ID:???
 自動接続のメンバーオンリー放送の件ですが

  //放送ID抽出
  rep = new RegExp("<img src=\"http://icon.nicovideo.jp/community.*/co&quot; + document.getElementById("autoConnectComm").value + "\.jpg.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+<a href=\"http://live.nicovideo.jp/watch/lv\(\[0-9\]+\)","g");
  tmp = xmldom.match(rep);

 の下に

  if(!tmp){
   rep = new RegExp("<img src=\"http://icon.nicovideo.jp/community.*/co&quot; + document.getElementById("autoConnectComm").value + "\.jpg.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+<a href=\"http://live.nicovideo.jp/watch/lv\(\[0-9\]+\)","g");
   tmp = xmldom.match(rep);
  }

 をつけることでとりあえず動作を確認しました。

423なまはいさん@お腹いっぱい。:2009/08/16(日) 02:15:20 ID:???
>>421
ありがとうございます
何とか改良に励んでみようと思います

424bd_(5代目):2009/09/20(日) 08:32:27 ID:???
延長機能APIの経緯をまとめてみました→http://fushizen.net/~bd/enchou-desc.txt
うちはLinuxを使っているので直接ツールの開発に参加できませんが、とりあえず
誰かの役に立てるかなと思って作ってみました。あと、ツール開発とかに関しては新参なので、
もしかして情報が被っちゃったら無視してくださいw

425なまはいさん@お腹いっぱい。:2009/10/06(火) 12:37:52 ID:???
ニコリクでSocketManagerなんたらのエラーに悩んでる方へ

SocketManager.js の

alert("SocketManager.receiveComment/〜

の行頭に

//

を入れると幸せになれるかも?

426蒼空微風涼輝碧葉 ◆cIzCbmvzRI:2009/11/02(月) 22:43:44 ID:???
http://www1.axfc.net/uploader/Sc/so/51619.lzh&amp;key=mirrorsound
NicoRequest VorcaloidArrange蒼空碧葉式_232SH-β-A-0800
ニコニコ動画9式のマイリスト系に対応しました。
あと、動画情報開いたりするのをサムネイルに移動しました。
コメントログ出力を調整しました。
etc
以上に重たいですが・・・

427null:2009/12/15(火) 11:48:23 ID:???
ちょっとテストしますよ

428なまはいさん@お腹いっぱい。:2009/12/15(火) 15:16:53 ID:???
ボカロ曲垂れ流し兼ニコリクテスト lv8190253 2009/12/15(火) 13:06:56開始
sm3381792 鏡音リン オリジナル曲『Dolls』
sm6131948 【がくっぽいど】暴君三三七拍子【オリジナル】
nm4383186 【KAITO】「卑怯戦隊うろたんだー」(a cappella version)
sm6044481 【巡音ルカ】月の浜辺
nm6416879 【KAITO】ROAD AHEAD【オリジナルだよ
sm4399506 【鏡音リン・レン】 Type ACT.2! ??新しいセカイへ?? 【オリジナル曲】
nm3382581 【初音ミク】【KAITO】ソラアオイヤ【オリジナル】
nm7601701 【メグッポイド】カントリーガール【オリジナル曲】

ボカロ曲垂れ流し兼ニコリクテスト lv8190847 2009/12/15(火) 13:37:23開始
nm7823295 【めぐっぽいど】 少年カミカゼ-改 【オリジナルRe:master】
sm6607299 【KAITO,レン】さかしま少年アリス【オリジナル】
sm1755938 MEIKO姉さんオリジナル曲「Palette」
nm6475122 【巡音ルカ】could be/could be 【オリジナル】
nm4752749 【KAITO】鳥獣戯画 (修正版)【オリジナル】
sm5265960 【MEIKO】 オリジナル曲 ??鉄巨人より?? 『仮想現実』 修正版
nm6271514 【巡音ルカ】 graduation 【オリジナル】
nm6005634 【巡音ルカ】Time for happiness??【オリジナル】

ボカロ曲垂れ流し兼ニコリクテスト lv8191534 2009/12/15(火) 14:07:44開始
sm4016347 【鏡音リンACT2】Time&Space【オリジナル曲】
nm6049209 【巡音ルカ】ダブルラリアット【オリジナル】
sm5587040 【MEIKO】Close My Eyes (dGOS Remix)【ReMaster】
sm5599781 【がくぽ】既成事実 -full.ver【カバー】
sm3528388 【リンオリジナル曲】運命の時の少女【作ったんDA☆】
nm4136946 【がくっぽいど】 喪失モノクローム 【オリジナル】

ボカロ曲垂れ流し兼ニコリクテスト lv8192316 2009/12/15(火) 14:38:05開始
sm2914634 「Decayed to the tooth」 オリジナル曲 feat. 鏡音リン
sm6243085 【MEIKO】So-La 【巡音ルカ】
sm9023529 【初音ミク】某〇×△□より【オリジナル曲】
sm7552114 【巡音ルカ】『滅菌都市』
nm5809204 瑠璃の涙 鏡音リン・レンオリジナル
sm2117793 鏡音リン・レンがFCの拡張音源チップに搭載!【ステレオツインズ】
nm7539204 鏡音リンオリジナル Noiz are Nel

4291行で200字投稿できるかテスト:2009/12/23(水) 16:41:00 ID:???
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

430なまはいさん@お腹いっぱい。:2009/12/23(水) 16:45:32 ID:???
この掲示板、1行で何文字まで行けるんだろう?
ニコのコミュ掲示板では192文字までが限界らしいけど、
ここでは200でもいけるみたいだし、ちょっと謎・・・
1行で何文字までなのか、何行までなのか、全部で何文字までなのか、
これらが分かると開発上助かるなぁ・・・w

4316だ@掲示板管理人:2009/12/23(水) 17:04:36 ID:KwLBiU7o
>>430
参考になるかな。
http://2353.up.seesaa.net/image/A4B7A4BFA4E9A4D0C0DFC4EA.jpg
一行の制限という設定項目は存在しません。
多分一レス最多文字数そのままじゃないかな?

432430:2009/12/23(水) 17:31:11 ID:???
>>431
DLしますた、参考にさせてもらいますね。

というか、さすがに1行で数千字とかはプログラム的にダメな気がするw

433なまはいさん@お腹いっぱい。:2009/12/24(木) 12:54:45 ID:???
test

434なまはいさん@お腹いっぱい。:2009/12/24(木) 12:55:34 ID:???
test2

435なまはいさん@お腹いっぱい。:2009/12/24(木) 12:56:43 ID:XwKyUJZA
test3

436なまはいさん@お腹いっぱい。:2009/12/24(木) 12:59:05 ID:???
test4

437みっくみくにされました:みっくみくにされました
みっくみくにされました

438437:2009/12/24(木) 16:51:49 ID:???
ちょww1行1000文字もいけるのかwwwww

439みっくみくにされました:みっくみくにされました
みっくみくにされました

440みっくみくにされました:みっくみくにされました
みっくみくにされました

441test:2009/12/24(木) 17:03:05 ID:???
まじか・・・どこまでいけるんだ?(荒らしまがいなことしてスマソ

442管理人:2009/12/24(木) 22:10:13 ID:XwKyUJZA
>>437
>>439
>>440
TOPページにあると表示が崩れるから削除しとくよ

443なまはいさん@お腹いっぱい。:2009/12/26(土) 19:12:57 ID:???
生主、改造者のみなさんありがとうございます。
要望も受付けているとの事なので検討お願いします。

殿堂入り間近の動画を生放送で流さないような改造はできますか?
一気に10万再生を超えないように99500〜10万の間は再生しないという風にできればいいと思います。
早々ない事とは思いますが、以前殿堂入り直後の曲が放送された事はあります。
本家の動画で1再生ずつ増えるのを見守ってる人達にとっては大事な事だと思うので。
それでは失礼しました。

444なまはいさん@お腹いっぱい。:2009/12/26(土) 19:51:26 ID:???
リクがあった瞬間に動画情報を取り込む仕組みになってたと思うので、
その時点での再生数をチェックして、何らかの処理(注意マークの表示やリク拒否)を組み込めば良いのかな。
チェック内容を入力ボックスでも用意していじれるようにしておけば、リクの基準による自動排除もできるかな。

最近いじってないのでやらないけど、できそうな人はチャレンジしてみてくらはい。

445なまはいさん@お腹いっぱい。:2009/12/26(土) 22:29:29 ID:???
>>443 こんな感じ?(文字の色が変わるだけですが・・・)

RequestManager.js 115行目付近

.replace(/{#View}/g, R.view)



.replace(/{#View}/g, function(){
var vnum = R.view;
if((vnum>=99500) && (vnum<100000)){
return "<font color=red>殿堂入直前 "+vnum+"</font>";
}else{return vnum;}})

自動除外とかについてはわからんので,できる方お願いします.

446445:2009/12/27(日) 15:57:00 ID:???
もう少し改造してみた.
確認ダイアログ表示後にリクエストを自動削除するようにしてみました.

.replace(/{#View}/g, function(){
if((R.view>=99500) && (R.view<100000)){
var delreq=window.confirm(R.id +"は殿堂入直前です。\n リクエストから除外しますか?");
if (delreq==1){
delreqid=R.id;
setTimeout("RequestManager.deleteRequestQueueById(delreqid)",100);}}
return R.view})

447443:2009/12/30(水) 16:08:10 ID:???
>>445
早速ありがとうございます。
自動削除されるなら見落としもないと思います。
数値を変えれば、来場者数によって変更もできて便利そうですね。

448なまはいさん@お腹いっぱい。:2010/03/01(月) 08:29:51 ID:???
なんか見つけたので保守ageしつつペタペタ
http://d.hatena.ne.jp/rallus/searchdiary?word=%2A%5B%A5%CB%A5%B3%A5%EA%A5%AF%A5%A8%A5%B9%A5%C8%5D

449w2k:2010/03/25(木) 17:27:11 ID:???
メンテで運営コメ投稿の仕様が変わったので、対処法を書いておきます。
なお、ニコリク2.3.2をベースとしていますのでアシカラズ。

【Main.js】
 冒頭
  var token = "";//追加

 __VideoInformation__onConnect(PS.lv);
 の後に
  NicoLive.getXML("http://live.nicovideo.jp/api/getpublishstatus?v=lv&quot;+PS.lv, function(xmldom){
   if(!xmldom&&!xmldom.getElementsByTagName("token")) return false;
   token = xmldom.getElementsByTagName("token")[0].text;
  });
 を追加

【NicoLive.js】
 postComment: function(body, mail){
 の
 xmlhttp.Open("GET", "http://watch.live.nicovideo.jp/api/broadcast/lv&quot;+lv+&quot;?body=&quot;+encodeURIComponent(body)+&quot;&amp;mail=&quot;+encodeURIComponent(mail), true);
 を
 xmlhttp.Open("GET", "http://watch.live.nicovideo.jp/api/broadcast/lv&quot;+lv+&quot;?body=&quot;+encodeURIComponent(body)+&quot;&amp;mail=&quot;+encodeURIComponent(mail)+&quot;&amp;token=&quot;+token, true);
 に差し替え。

以上です。

ちなみに、getpublishstatusは放送主以外がアクセスするとエラーを返してきます。
なので、接続時のgetplayerstatusのAPIでis_ownerを診断するようにしておいたほうがいいかも。

450w2k:2010/03/25(木) 17:33:15 ID:???
追記
NicoLive.jsのほうですが、
if(token=="") return;
を入れておくと、無駄なアクセスを抑制できます。

一例:
 postComment: function(body, mail){
  if(!SocketManager.connected||token=="") return;
  <以下略>

451w2k:2010/03/25(木) 20:24:05 ID:???
NicoRequest2.3.2をほんの少しいじって、仕様変更に対応させてみました。
http://w2k.choitoippuku.com/live/tools/NicoRequest_custom/

不具合がありましたら、こちらのスレにて報告していただけると幸い。

※先読みなど、主の動画IDコメをリクとして処理してしまうのもそのままになってますw

452なまはいさん@お腹いっぱい。:2010/11/04(木) 15:28:20 ID:???
マイリストの取得でこけるようになってしまったので、
VideoInformation.js(co7642で公開してる0325版の場合はMylist.js)の
ttp://ext.nicovideo.jp/api/deflist/list
ttp://ext.nicovideo.jp/api/mylist/list?group_id=

ttp://www.nicovideo.jp/api/deflist/list
ttp://www.nicovideo.jp/api/mylist/list?group_id=
に書き換えてみてください

453なまはいさん@お腹いっぱい。:2011/06/24(金) 08:26:18 ID:14AM6Lkw
マイリスト取得でエラーが出るようになったんですが、
何が原因かさっぱりわからないので対処出来ません。
Mylist.jsのあるタイプがエラー出るようです。

「自分で解析しろ」「古いバージョン使え」「違うツール使え」
以外の方法があったら教えていただきたいです。

454saihane:2011/06/24(金) 13:19:40 ID:???
私の使っている(いじっている)ニコリクには Mylist.js というファイルがないため
まったく参考にならない可能性はありますが、マイリストグループのデータが
うまく取得できない点に関して私は暫定で次のように修正しました。

https://github.com/ryochin/nicoreq_mikunopop/commit/a7bcbd6e52ffe9d1d2d20a43d7eed0198056955b

html 内から JSON を抜き出すのではなく、API から直接データを得ています。

もし全く違うお話をされているのならごめんなさい。参考まで。

455w2k:2011/06/25(土) 17:27:40 ID:???
>>453
失礼ながら、

>>452
> マイリストの取得でこけるようになってしまったので、
> VideoInformation.js(co7642で公開してる0325版の場合はMylist.js)の
> ttp://ext.nicovideo.jp/api/deflist/list
> ttp://ext.nicovideo.jp/api/mylist/list?group_id=
> を
> ttp://www.nicovideo.jp/api/deflist/list
> ttp://www.nicovideo.jp/api/mylist/list?group_id=
> に書き換えてみてください

の処理はお済ですか?

やっているのにエラーになる場合、ブラウザのCookieが拾えていないかもしれません。

NicoCookieImporterをお使いでしたら、ブラウザのバージョンアップによって
Cookieの共有ができなくなってしまった可能性があります。

現状、自PCはVista32bit+IE9ですが、一応Cookie共有ツールなしで使えていますが・・・。



NicoCacheが使えるのであれば、、こういうのもあるので紹介しておきます。

複数のブラウザでニコニコ動画にログインし直さなくていい NicoCache_nl の Extension 作ってみた
http://d.hatena.ne.jp/edvakf/20110308/1299605635

実際に使ってみましたが、任意のブラウザ&ニコリクで放送できました。
試してみる価値はあると思いますが、いかがでしょうか。

456hamasuho:2013/05/11(土) 23:14:22 ID:2UQLJ8KQ
>>451 :w2k:2010/03/25(木) 20:24:05 ID:???
>>NicoRequest2.3.2をほんの少しいじって、仕様変更に対応させてみました。
>>http://w2k.choitoippuku.com/live/tools/NicoRequest_custom/
>>
>>不具合がありましたら、こちらのスレにて報告していただけると幸い。
>>
>>※先読みなど、主の動画IDコメをリクとして処理してしまうのもそのままになってますw

こちらをieの保護モード下などに対応した近代化改修バージョンを作成しました。

http://nicorerun.com/otherdata/NicoRequest_custom_modrepair201305.zip

内容は

http://nicorerun.com/blog/?date=20130101

こちらを参照下さい。


近代化改修の内容はみればわかりますが、場当たり的なものです。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板