約 4,515,195 件
https://w.atwiki.jp/japanesehiphop/pages/3451.html
Format Title Artist Label Model Number Release Press 7 RECORD PLAYERS 2 やけのはら × CHABE KIT GALLERY,JET SET JS7S126 2016/04/16 730 235616751_624.v1460983989.jpg Side Track Title Produce A 1 RECORD PLAYERS 2 feat.JxJx,MANTASCHOOL YAKENOHARA,CHABE B 2 RECORD PLAYERS 2(ACID夢芝居 REMIX) ACID夢芝居 ※RECORD STORE DAY 2016 RELEASE TITLE PERTAIN CD SELF-PORTRAIT
https://w.atwiki.jp/rosakage/pages/12.html
ニコニコ動画外部プレイヤー(nicovideo2)に対応しました。 http //www1.atwiki.jp/guide/pages/1316.html ニコニコ動画で動画を見る際は通常「NICO NICO PLAYER VER.RC2」を使います しかしこの通常プレイヤーだと NG登録が20件までしかできない コマンドボタンでの選択が少ない 一部の動画ではリピート設定しても止まる 下に書かれたコメントが邪魔で歌詞が見えない 動画が暗すぎて見えない 等 何かしら不満を持ったことがあると思います その問題点を解消するために作られたニコニコ動画専用のプレイヤーです オミトロンでプレイヤーを差し替えて使用します niconicoplayer wrapper
https://w.atwiki.jp/v2cwiki/pages/59.html
目次 マウスオーバーからスクリプトを起動する 上記機能の使用例ニコニコ動画の動画情報をマウスオーバーでポップアップ Youtubeの動画情報をマウスオーバーでポップアップ Twitterのつぶやきをマウスオーバーでポップアップ マウスオーバーからスクリプトを起動する URLExec2.datを導入することにより、リンクをマウスオーバーする際、V2Cのスクリプトを実行することができるようになりました。(V2C独自拡張) URLExec2.datの概要については こちら を参照してください。 上記機能の使用例 ニコニコ動画の動画情報をマウスオーバーでポップアップ Youtubeの動画情報をマウスオーバーでポップアップ Twitterのつぶやきをマウスオーバーでポップアップ ニコニコ動画の動画情報をマウスオーバーでポップアップ +PopupStatusNicovideo.js を展開 概要 備考 [T20110217]以降でポップアップのリンク先を開く場合、ネットワーク接続の許可が必要になりました。${V2CSCRIPT Fr}を、${V2CSCRIPT SFr}に変更してください。 元レス http //yy61.60.kg/test/read.cgi/v2cj/1252074124/352 http //yy61.60.kg/test/read.cgi/v2cj/1365215326/307 設定方法 1.こちらの移動先から PopupStatusNicovideo.js をダウンロードする。 2.ファイルを解凍しスクリプトとフォルダすべてをV2C保存用フォルダのscriptフォルダに入れる。(scriptフォルダがなければ作成する。) 3.V2C保存用フォルダのURLExec2.datの任意の箇所に下記のような内容を記述する。(URLExec2.datがなければメモ帳等のテキストエディタを利用し文字コードをshift-jisにして作成する。) http //(www\.|tw\.|es\.|de\.|)nicovideon?\.jp/(? (? watch|thumb)(? _naisho|_result)?(? \?v=|/)|\?p=)(\w+)http //$1nicovideo.jp/watch/$2${V2CSCRIPT SFr} PopupStatusNicovideo.js http //tn-skr\.smilevideo\.jp/smile\?i=(\d+)http //www.nicovideo.jp/watch/sm$1${V2CSCRIPT SFr} PopupStatusNicovideo.js http //(? www\.)?smilevideo\.jp/view/(\d+)http //www.nicovideo.jp/watch/sm$1${V2CSCRIPT SFr} PopupStatusNicovideo.js http //(? (? nicopon\.jp|home\.1555\.info)/(? video/(? player|src)|getflv)|nicosns\.inventor\.jp/download|(? www\.)?nicometer\.net/video|nicosen\.net|niconail\.info)/(\w+)http //www.nicovideo.jp/watch/$1${V2CSCRIPT SFr} PopupStatusNicovideo.js http //(? nico\.webdeki-hp\.com|jbbs\.livedoor\.jp/auto/5849)/\?(\w{2}\d+)$http //www.nicovideo.jp/watch/$1${V2CSCRIPT SFr} PopupStatusNicovideo.js 4.V2Cを再起動、または「メインメニュー」→「ファイル」→「再読み込み」→「URLExec2.dat」から、設定ファイルを再読み込み。 これでスレに貼られたニコニコ動画のURLにマウスオーバーするとその動画の情報がポップアップされるはずです。 URL判定の正規表現は配布されているImageViewURLReplace.datやURLExec.dat等を参考にしましょう。 コメント 名前 コメント ↓解決済み -- 名無しさん (2013-12-29 02 45 15) ニコニコ動画:GINZAになってからエラーが出るようです 下記を参照して修正して下さい http //yy61.60.kg/test/read.cgi/v2cj/1365215326/307 -- GINZAによる仕様変更 (2013-12-19 02 53 11) Youtubeの動画情報をマウスオーバーでポップアップ +PopupStatusYoutube.js を展開 概要 Youtube動画情報のポップアップ ※この画像は初期のもので現在は表示が異なります 備考 フォルダ内の「使い方.txt」参照 他細かい設定は、スクリプトファイル内「//設定」行以下にあります。 元レス http //yy61.60.kg/test/read.cgi/v2cj/1252074124/408 http //yy61.60.kg/test/read.cgi/v2cj/1304861674/11,103,117 http //yy61.60.kg/test/read.cgi/v2cj/1365215326/131 設定方法 1. こちらの移動先にある『PopupStatusYoutube.js』から同ファイルをダウンロードします。 2. ファイルを解凍しスクリプトをV2C保存用フォルダのscriptフォルダに入れる。(フォルダがなければ作成する。) 外部コマンドを使用する場合 3. スクリプトの「設定方法」 を参考にしてください。 URLExec2.datを使用する場合 3. V2C保存用フォルダのURLExec2.datの任意の箇所に下記のような内容を記述する。(URLExec2.datがなければメモ帳等のテキストエディタを利用し文字コードをshift-jisにして作成する。) https? //(? \w+\.)?youtube\.(? \w+|co\.\w+)/.*?v=[\-_\w]{11}.*【TAB】$ 【TAB】${V2CSCRIPT FrxS} PopupStatusYoutube.js 短縮URLの場合は以下を記述する。 http //youtu\.be/[\-_\w]{11}【TAB】$ 【TAB】${V2CSCRIPT FrxS} PopupStatusYoutube.js ※【TAB】はTABキーで置換 4. V2Cを再起動、または「メインメニュー」→「ファイル」→「再読み込み」→「URLExec2.dat」から、設定ファイルを再読み込み。 URL判定の正規表現は配布されているImageViewURLReplace.datやURLExec.dat等を参考にしましょう。 【登録場所】 リンク・URLExec コメント 名前 コメント Twitterのつぶやきをマウスオーバーでポップアップ +popupTweet.js を展開 概要 下記のようなURLにマウスオーバーすると内容をポップアップします。 http //twitter.com/n_or_a/status/21318031826 設定方法 1.こちらの移動先から popupTweet(HTML版) popupTweetAPI.js(API版) をダウンロードする。 API版は以下の制限がありますが、html版より多少高速です。 時間辺りのアクセス回数制限がある(150回/h 今後仕様変更される可能性あり) リツイート人数がうまく反映されない(ポップアップ上では0と表示される) 2.ファイルを解凍しスクリプトをV2C保存用フォルダのscriptフォルダに入れる。(フォルダがなければ作成する。) 両者に同梱されているpopupTweetフォルダの中身は同じなので、両方のスクリプトを導入する場合はどちらかのフォルダだけで構いません。 3.V2C保存用フォルダのURLExec2.datの任意の箇所に下記のような内容を記述する。(URLExec2.datがなければメモ帳等のテキストエディタを利用し文字コードをshift-jisにして作成する。) HTML版 https? //twitter\.com/(? #!/)?[^/]+?/status/\d+ $ ${V2CSCRIPT Fr} popupTweet.js API版 https? //twitter\.com/(? #!/)?[^/]+?/status/\d+ $ ${V2CSCRIPT FrS} popupTweetAPI.js 4.V2Cを再起動、または「メインメニュー」→「ファイル」→「再読み込み」→「URLExec2.dat」から、設定ファイルを再読み込み。 元レス popuptTweet.js(HTML版) :http //yy61.60.kg/test/read.cgi/v2cj/1252074124/375 popupTweetAPI.js(API版):http //yy61.60.kg/test/read.cgi/v2cj/1252074124/396 備考 popupTwitterInfo.jsとの違い 参照: popupTwitterInfo.jsの備考 コメント 名前 コメント +popupTwitterInfo.js を展開 目次 概要URLがツイートの場合 URLがユーザーアカウントの場合 設定方法外部コマンド(URL上右クリックメニューから選択して起動)で使用する場合【登録場所】 【ラベル】 【コマンド】 URLExec(該当URLをマウスクリック/マウスオーバーでポップアップ)で使用する場合ユーザーポップアップを設定する場合の注意 元レス 備考 コメント 概要 リンク先のTwitterアドレスから情報を取得し、ポップアップで表示します。 URLがツイートの場合 URLがユーザーアカウントの場合 設定方法 外部コマンド(URL上右クリックメニューから選択して起動)で使用する場合 こちらの移動先にある『popupTwitterInfo.js』から同ファイルをダウンロードします。 その後の設定方法については スクリプトの「設定方法」 を参考にしてください。 【登録場所】 リンク 【ラベル】 Twitter情報ポップアップ 【コマンド】 デフォルトのテンプレートで表示する場合 ${SCRIPT FrS} popupTwitterInfo.js popupTweetフォルダ内の任意のテンプレートファイルを指定する場合 ${SCRIPT FrS} popupTwitterInfo.js テンプレートのファイル名 URLExec(該当URLをマウスクリック/マウスオーバーでポップアップ)で使用する場合 クリックでの起動の場合はURLExec.dat、マウスオーバーでの起動の場合はURLExec2.datを使用します。 (参考:URLExec.dat,マウスオーバー) 下記説明を見て必要な方を作成してください。 1.scriptフォルダへ本スクリプト配置(ここまでは外部コマンドと同様) 2.V2C保存用フォルダのURLExec.dat/URLExec2.datの任意の箇所に下記のような内容を記述する。(URLExec.dadt/URLExec2.datがなければメモ帳等のテキストエディタを利用し文字コードをshift-jisにして作成する Twitter ユーザーポップアップ https? //(? \w+\.)?twitter\.com/(? #!/)?(\w+)[#/]?$【TAB】http //twitter.com/$1【TAB】${V2CSCRIPT FrS} popupTwitterInfo.js Twitter ステータスポップアップ https? //(? (? \w+\.)?twitter\.com|twtr.jp/user)/(? #!/)?([^/])+/status(? es)?/(\d+)(?!/photo)【TAB】http //twitter.com/$1/status/$2[TAB}${V2CSCRIPT FrS} ※【TAB】はTABキーで置換して下さい 3.V2Cを再起動、または「メインメニュー」→「ファイル」→「再読み込み」→「URLExec.dat/URLExec2.dat」から、設定ファイルを再読み込み。 ユーザーポップアップを設定する場合の注意 V2Cでの下記デフォルト動作が本スクリプトによるポップアップ動作に置き換えられます。 URLExec.datに設定した場合、クリックによるUserTimeLine表示が本スクリプト動作に置き換えられる。 URLExec2.datに設定した場合、Twitterタブにおけるメンション(@username)のマウスオーバーが本スクリプト動作に置き換えられる。 元レス http //yy61.60.kg/test/read.cgi/v2cj/1252074124/667 http //yy61.60.kg/test/read.cgi/v2cj/1365215326/111 備考 時間辺りのアクセス回数制限がある(150回/h 今後仕様変更される可能性あり)スクリプト内の19行目のvar showRemainingHits = false;のfalseをtrueにするとステータスバーに残り回数が表示されます。(余計な通信を行うので設定しない場合と比較して動作が遅くなる可能性があります) popupTweet.jsとの違いユーザー情報の表示が可能、ツイート情報表示時にもユーザー情報が表示される APIによる取得に失敗した場合、html経由での再取得は行わない テンプレート格納用のpopupTweetフォルダはpopupTweet.jsと共用。また、popupTweet.jsのテンプレートも使用可能。 コメント 名前 コメント
https://w.atwiki.jp/xbox360score/pages/2115.html
Contrast 項目数:22 総ポイント:400 難易度:★☆☆☆☆ 製品情報:http //marketplace.xbox.com/en-US/Product/Contrast/66acd000-77fe-1000-9115-d8025841141a 配信日:2013年11月15日 DL費用:$14.99→9.99ドルに価格改定 ジャンル:Action Adventure ☆国内未配信 ※2018年11月末頃、配信終了(今のところOne版だけはストアに残っています) 動画を見ながら3~4時間でコンプ可能。 CONTRAST Gameplay Walkthrough(収集物・実績あり) To The Heroes Among Us Unlocked when the player finds the hidden Extra Life 2012 Logo.隠されたExtra Life 2012のロゴを見つける。 20 A Carousel Of Broken Dreams Unlocked when the player completes Act I.Act Iをクリアする。 20 A New Dimension Unlocked when the player shifts for the first time.初めてshiftする。 20 FIN Unlocks when the player completes the game.ゲームをクリアする。 30 GroundsKeeper Unlocked when the player discovers all collectibles in Act II.Act IIですべての収集物を発見する。 30 Illuminated Unlocked after the player gets their second luminary.二つめのluminaryを取得する。 20 Just Like Harry Unlocked when the player makes it over the crocodiles on their first attempt in the Shadow Theater.Shadow Theaterでワニ達を最初の挑戦で越える。 10 No Backpack Bird Needed Unlocked when the player jumps into the treasure chest in the Pirate Ride.Pirate Rideで宝箱の中に飛び込む。 10 Not That Kind Of Game! Unlocked when the player tries to enter the XXX door.XXXなドアから中に入ろうとする。 10 Now That s Thinking With Shadows Unlocked when the player clears the Void Jump on their first attempt.奈落越えを最初の挑戦で成功させる。 10 My God, It s Full Of Stars! Unlocked when the player falls into the void on the way to the Cinema.映画館への道中にある奈落に落ちる。 10 Streets Sweeper Unlocked after the player discovers all collectibles in Act I.Act Iですべての収集物を発見する。 30 The Family Life Unlocked when the player examines Didi s family pictures.Didiの家族の写真を調べる。 10 BookKeeper Unlocked when the player discovers all collectibles in Act III.Act IIIですべての収集物を発見する。 30 秘密の実績 The Cyclops Bottle Unlocked when the player finds the Cyclops bottle in the Carousel area.回転木馬エリアで一つ目巨人のビンを見つける。 10 Handy Person Unlocked when the player repairs the three attractions.三つのアトラクションを修理する。 20 How d You Get In? Unlocked when the player completes the Workshop.ワークショップをクリアする。 20 Let There Be Light Unlocked when the player completes the Lighthouse.灯台をクリアする。 20 Room 529 Unlocked when the player leaves the Cabaret.キャバレーを出る。 20 This Circus Is A Disaster! Unlocked when the player goes through the circus tent toward the attractions.サーカスのテントを通り抜けアトラクションへと向かう。 20 You Broke My Finger! Unlocked when the player leaves the Cinema.映画館を出る。 20 Punching Bag Unlocked when the player lets the gangsters beat up Johnny.ギャングにJohnnyを殴らせる。 10 収集系実績 収集品を取りこぼしても、チェックポイントに戻るか、チャプターセレクトから補完可能。 なお、Luminary(道中に浮かぶ光球)は仕掛けを動かすのに必要なぶんだけ集めれば良い。 To The Heroes Among Us ゲーム開始直後、GHOST NOTEに入らず奥にある蓄音機に触れ、出現する影をのぼって 路地の先に進み、奥の倉庫にある電灯のスイッチを入れると解除。 Just Like Harry 失敗したらチェックポイントに戻ることで再挑戦可能。 No Backpack Bird Needed Act IIの海賊のアトラクション二つ目のエリアで、開閉している大きな宝箱に入る。 Not That Kind Of Game! ゲーム開始直後、GHOST NOTEの左側にある「Dirty 24h」と書かれた店のドアの前に立つ。 Now That s Thinking With Shadows Act Iで、奈落を越えて映画館へと向かう際初回に向こう岸に渡れれば解除。 失敗したらチェックポイントに戻れば良い。 The Family Life Act II開始直後、廊下にある写真を調べる。ムービーをスキップすると解除されないので注意。 The Cyclops Bottle Act IIの回転木馬エリアで、木馬の影を伝っていった先のテラスにあるビンを調べる。
https://w.atwiki.jp/vocaloidchly/pages/7058.html
作詞:DJ A.Q. 作曲:DJ A.Q. 歌:初音ミク 翻譯:kyroslee Sweet Cat Dreaming 大白天什麼的也沒關係 感覺昏昏欲睡快要倒下 不禁覺得小貓真的很可愛呢 吶,為何這片藍天 會有着白色的雲呢 想要將這段美妙的時光停下來 帶着香甜的睡臉酣睡 忘卻時間的流逝 如同在作夢的小貓一樣 我逐漸沉睡於夢境之中 帶着香甜的睡臉酣睡 忘卻時間的流逝 如同在作夢的小貓一樣 我逐漸沉睡於夢境之中 帶着香甜的睡臉酣睡 忘卻時間的流逝 如同在作夢的小貓一樣 我逐漸沉睡於夢境之中 沉睡其中 Uhh --- Sweet Cat Dreaming 作詞:DJ A.Q. 作曲:DJ A.Q. 唄:初音ミク 中文翻譯:Alice Sweet Cat Dreaming(甜美小貓美夢) 大白天的也沒有關係 睡眼惺忪就快要倒下 總覺得小貓可愛得太犯規 吶、藍藍天空中 為什麼會有白白的雲呢 好想停下這美妙時光 甜美的睡顏睡得香甜 連時間的流逝也忘記 像那正作著美夢的小貓般 我也漸漸墜入夢裡 幸福沉睡的笑臉 被溫柔清風吹拂 小貓的耳朵可愛地擺動 吶、時間為什麼 不會停下來呢? 伸展縮成一團的身體 可愛的睡顏睡得香甜 在暖呼呼的白天 像那正作著美夢的小貓般 我也墜入夢裡 甜美的睡顏睡得香甜 連時間的流逝也忘記 像那正作著美夢的小貓般 我也漸漸墜入夢裡 可愛的睡顏睡得香甜 在暖呼呼的白天 像那正作著美夢的小貓般 我也墜入夢裡 漸漸墜入夢裡~ Wo~hu~ 甜美的睡顏睡得香甜 連時間的流逝也忘記 像那正作著美夢的小貓般 我也漸漸墜入夢裡 漸漸墜入夢裡
https://w.atwiki.jp/atria241/pages/13.html
Main ActiveMembers 太陽と影 - Master さぼTENエース - Officer ぴんだお - Officer Jager* かわたん Cl0wn(二代目ボンバーマン) AKnot 熊野プーさん らくすでらっくす ギャルキラー Inactive Members Hisou
https://w.atwiki.jp/jubeat/pages/1260.html
Romancing Layer 2d99722.png KAC2013予選Cグループ課題曲。 BASIC ADVANCED EXTREME LEVEL 3 9.4 10.2 Notes 200 558 717 BPM 150 Time Artist TAG ジャンル オリジナル Version saucer この曲で手に入る称号 【全難易度クリア】Romancing TAGer 【全難易度フルコンボ】ペラッとめくったらあら不思議 解禁方法 2013.11.02 12 00~2013.11.25 18 00の間いまだけ楽曲として登場 動画 +譜面動画 譜面動画 譜面動画 EXTREME (シャッター+ハンドクラップ) 譜面動画 EXTREME (シャッター同時色分け+ハンドクラップ) 譜面動画 EXTREME (シャッター+ハンドクラップ+数字) 譜面動画 EXTREME (シャッター+ハンドクラップ+BPM80%) 譜面動画 EXTREME (シャッター+ハンドクラップ+BPM60%) +プレー動画 プレー動画 攻略・解説 各譜面の攻略に関する情報はこちらへ。 [ADV]縦二連、スライドが多くかなりのスコア難。終わってみたらEXTよりスコアが低いという有様だった。-- 名無しさん (2013-11-02 14 49 35) [EXT]後半の縦連地帯がやや難しいが、それ以外は易し目。10弱~逆詐称 -- 名無しさん (2013-11-02 15 25 04) [EXT]逆詐称にするほど簡単ではない。全体的にリズム難で、グレグドが多発する。また、後半の縦2連も不規則で、急に向きが変わったりするため、光らせづらい。最後の大回転でシャッター全開も維持しにくい。 -- 名無しさん (2013-11-02 18 16 07) [EXT]717ノーツなのでシャッター重め。上にもあるように最後の大回転でやられてシャッターが閉まることも少なくない。また、後半の乱打は完全に交互ではないのでとりづらい。混フレも右手が忙しく、全体的に10中程度。 -- 名無しさん (2013-11-02 22 50 44) [EXT]押しやすいように見えて結構押しづらいうえにグレグド多発しやすい。クリアはさほどでもないがスコアがやや厳しいか。 -- 名無しさん (2013-11-03 02 04 55) ↑3 1,2,13,14の4分打ちコンフレ -- 名無しさん (2013-11-03 11 48 14) [BSC]レベル3らしい配置とノート数。4分うちがメインでところどころシンセ合わせの付点8分がある。 -- 名無しさん (2013-11-03 21 47 40) [ADV]曲合わせだが後半はシナジー黄みたいな横3連と縦スライドがあり、それ以外も縦二連の影響でスコアを伸ばしづらい。ラストはいつものTより大きなT押しがある。(⑤⑥⑦⑧⑩⑪⑬⑭) -- 名無しさん (2013-11-03 21 51 42) [BSC]付点8分リズムはサビに1回のみ。ただしラストに付点4分がある。 -- 名無しさん (2013-11-03 23 34 23) [EXT]後半サビの中に一か所出張必須配置(③+⑮)がある。 -- 名無しさん (2013-11-04 03 12 33) [ADV]しつこい上下2連、横スライド、16分交互4連続、横3連+縦スライド等、スコア難の要素がこれでもかと言うほど詰まっている。BPMが遅めなのが救いだが、それでもスコア難度はレベル9上位。EXTよりスコアが出ない人も少なくないだろう -- 名無しさん (2013-11-06 19 43 30) ↑4 ⑤⑥⑦⑧⑩⑪⑬⑭じゃなくて⑤⑥⑦⑧⑩⑪⑭⑮ -- 名無しさん (2013-11-10 01 20 48) [ADV] 終盤の長い16分は罠がたくさんある。SSSを狙う場合は研究必須。 -- 名無しさん (2014-11-19 20 39 51) [EXT]clanで降格しても良かったと思う -- 名無しさん (2017-08-24 16 42 17) 名前 コメント ※攻略の際は、文頭に[BSC] [ADV] [EXT] のいずれかを置くと、どの譜面に関する情報かが分かりやすいです。 ※体感難易度を書き記す際は、クリア難度・スコア難度のどちらかなのかを明記してください。 また、攻略と関係ない投稿・重複した内容は削除の対象になります 攻略とは無関係の話は該当する欄(情報交換&雑談) にてどうぞ。
https://w.atwiki.jp/nico_player/pages/51.html
スクリプトによる機能拡張検索・マイリスト・ランキングをTubePlayerっぽく一覧表示しつつ画像の一覧表示もする ローカルファイルを検索し表示 マイページに登録されているうち、ダウンロード済みアイテムのプレイリストを作成し開く プレイリストウィンドウにプレイリストファイルをドラッグ&ドロップする(Cランタイム使用) コメント スクリプトによる機能拡張 検索・マイリスト・ランキングをTubePlayerっぽく一覧表示しつつ画像の一覧表示もする ソースファイルをメモ帳などに貼り付け、拡張子(.hta)でNicoPlayerのインストールフォルダに保存し実行してください(同じ場所にprototype.jsも置いてください)。もし他の場所に起きたい場合はpathOfDownloadとpathOfNicoPlayerをそれぞれの環境に合わせて編集してください(セパレータはスラッシュ/もしくはダブルバックスラッシュ\\です)。タイトルや再生数などのパラメタを表形式・及び画像で一覧表示します。フィードバックを強化しました。青字はダウンロード済みでクリックすると再生、赤字はまだでクリックすると該当行を強調してダウンロードを開始します。この強調は再表示で解除されます。TitleやPなどヘッダをクリックすると該当項目でソートします(基本降順以後トグル)。 hta application maximizebutton="no" selection="yes" navigable="no" scroll="no" singleinstance="yes"/ html head meta http-equiv="MSThemeCompatible" content="yes" style #display { border 3px double red; color red; text-align center; } #target { width 100%; height 90%; overflow-y scroll; } body { background-color #f7f7f7; } div { border solid 1px #ccc; } table { font-size 9pt; width 100%; } th { background-color black; color white; cursor pointer; } img { width 98%; margin 3px; cursor pointer; } .even { background-color #f7f7f7; cursor pointer; } .odd { background-color #ffffff; cursor pointer; } .omo { background-color #e0ffe0; } .download { color red; } .play { color blue; } .downloaded { color blue; background-color #b7ffb7; } .downloading{ color red; background-color #ffb7b7; } .playing { color blue; background-color #b7b7ff; } .activet { background-color #ccc; } /style script type="text/javascript" src="prototype.js" /script script type="text/javascript" var pathOfDownload = ""; // ダウンロードパス(任意) var pathOfNicoPlayer = ""; // NicoPlayerインストールパス(任意) var width = 800, height = 800; var lastSortKey = "", download = {}; var fileTemplate = "#{title}(#{name}).flv"; var $_ = function( target, key ) { return $A( target.getElementsByTagName( key ) ); } window.onload = function() { resizeTo( width, height ); var display = document.getElementById( "display" ); try { Prototype } catch( e ) { display.innerHTML = "prototype.jsが見つかりません。 a href= http //www.prototypejs.org/ " + "こちら /a よりダウンロードして同じフォルダにおいてください。"; return; } if( !pathOfNicoPlayer ) { unescape( window.location ).match( /file \/\/\/(.+)\// ); pathOfNicoPlayer = RegExp.$1; } if( !ini.load( pathOfNicoPlayer + "/nicoplayer.ini" ) ) { display.innerHTML = "NicoPlayerが見つかりません。同じフォルダにおいてください。"; return; } if( !pathOfDownload ) { pathOfDownload = ini.download.SavePath; } display.innerHTML = "起動中です。しばらくお待ちください。"; movies.load( pathOfDownload ); Element.hide( "display" ); resizeTo( width, height ); setInterval( "interval();", 5000 ); } // 周期的(5000ms)にダウンロードリストを走査 interval = function() { for( name in download ) { if( movies.exist( name ) ) { movies[name].className = "downloaded"; var target = $( name ); if( target ) { with( Element ) { target.className = target.className.replace( /downloading/g, "" ); target.className += " downloaded"; } } delete download[name]; } } } movies = { init function() { init( this, "^(init|load|exist)$" ); }, load function( path ) { this.init(); var fs = new ActiveXObject( "Scripting.FileSystemObject" ); var files = new Enumerator( fs.GetFolder( path ).Files ); while( !files.atEnd() ) { if( files.item().Name.match( /((sm|ax)\d+).*\.flv$/ ) ) { this[RegExp.$1] = { path files.item().Path, exist true, className "play" }; } files.moveNext(); } }, exist function( name ) { var fs = new ActiveXObject( "Scripting.FileSystemObject" ); if( fs.FileExists( this[name].path ) ) { this[name].exist = true; return true; } } } init = function( node, mask ) { for( var key in node ) { if( !RegExp( mask, "" ).test( key ) ) { delete node[key]; } } } // nicoplayer.iniが対象(一般的なiniファイルにも有効) ini = { // 読み込み済み項目があれば削除(操作プロパティinit/loadを除く) init function() { init( this, "^(init|load)$" ); }, // iniファイルのパスを引数に取りini以下にセクションと値の組を展開 load function( path ) { this.init(); try { var file = ( new ActiveXObject( "Scripting.FileSystemObject" ) ).OpenTextFile( path ); } catch ( e ) { return; } var buffer, section; while( !file.AtEndOfLine ) { var line = file.ReadLine(); // セクション取得 if( line.match( /^\[(.+)\]$/ ) ) { var newSection = RegExp.$1; if( section !section.match( /^(init|load)$/ ) ) { this[section] = buffer; } buffer = {}; section = newSection; } // 設定値取得 if( buffer line.match( /^([^=]+)=(.*)$/ ) ) { buffer[RegExp.$1] = RegExp.$2; } } file.Close(); return this; } } list = { list [], index -1, load function( newlist ) { if( 0 = this.index ) { this.list = this.list.slice( 0, this.index + 1 ); } this.list.push( newlist ); this.index++; }, add function( addlist ) { ( !this.list[this.index] ) ? ( this.load( addlist ) ) ( this.list[this.index] = this.list[this.index].concat( addlist ) ); }, reverse function() { if( !this.list[this.index] ) { return; } this.list[this.index] = this.list[this.index].reverse(); }, back function() { if( 0 this.index ) { this.index--; } }, forward function() { if( this.index this.list.length - 1 ) { this.index++; } }, active function() { return this.list[this.index]; }, sort function( key, order ) { if( !this.list[this.index] ) { return; } if( key == lastSortKey ) { this.reverse(); } else { this.list[this.index] = this.list[this.index].sortBy( function( items ) { var value = items[key] + ""; if( key == "title" ) { return value; } else { value = value.gsub( "[^0-9]", "" ) - 0; } return ( order == "desc" ) ? value -value; } ); lastSortKey = key; } } } EscapeUTF8=function(str){ return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){ var c=s.charCodeAt(0); return (c 16?"%0"+c.toString(16) c 128?"%"+c.toString(16) c 2048?"%"+(c 6|192).toString(16)+"%"+(c 63|128).toString(16) "%"+(c 12|224).toString(16)+"%"+(c 6 63|128).toString(16)+"%" +(c 63|128).toString(16)).toUpperCase() }) }; search = function() { list.load( [] ); lastSortKey = ""; this.index = 0; this.timer = setInterval( "search.exec();", 1000 ); this.request = function() { if( 3 = ++this.index ){ clearInterval( this.timer ); search.instance = null; } var key = EscapeUTF8( $F( "keyword" ) ); var option = $( "sort" ).value + " page=" + this.index; var url = "http //www.nicovideo.jp/search/" + key + "?" + option; new Ajax.Request( url, { method "get", onSuccess function( response ) { var buffer = document.createElement( "div" ); buffer.innerHTML = response.responseText; var pageGuides = { root { tag "table", index 7 }, blocks { tag "td" } }; var blocksGuides = [ ["time", "strong", 0], ["play", "strong", 1], ["src", "img", 1, "src"] , ["comment", "strong", 2], ["mylist", "strong", 3] , ["title", "a", 1], ["name", "a", 1, "href", "((sm|ax)\[0-9]+)"] ]; var blocks = parsePage( buffer, pageGuides ); var items = parseBlocks( blocks, blocksGuides ); list.add( items ); refreshTable(); } } ); } this.request(); } search.instance; search.exec = function() { if( !this.instance ) { this.instance = new this(); } else { this.instance.request(); } } ranking = function() { lastSortKey = ""; var option = [$F( "rsort" ), $F( "rspan" ), $F( "rgenre" )]; var url = "http //www.nicovideo.jp/ranking/" + option.join( "/" ); new Ajax.Request( url, { method "get", onSuccess function( response ) { var buffer = document.createElement( "div" ); buffer.innerHTML = response.responseText; var pageGuides = { root { tag "table", index 7 }, blocks { tag "tr" } }; var blocksGuides = [ ["time", "strong", 0], ["date", "strong", 1], ["play", "strong", 2] , ["comment", "strong", 3], ["target", "p", 1, "([0-9,]+)" ], ["src", "img", 1, "src"] , ["title", "a", 1], ["name", "a", 1, "href", "((sm|ax)\[0-9]+)"] ]; var blocks = parsePage( buffer, pageGuides ); blocks = blocks.findAll( function( block, index ) { return ( index % 2 ) == 0; } ); var items = parseBlocks( blocks, blocksGuides ); list.load( items ); refreshTable(); } } ); } mylist = function() { lastSortKey = ""; var url = "http //www.nicovideo.jp/mylist/" + $F( "mylistkeyword" ); new Ajax.Request( url, { method "get", onSuccess function( response ) { var buffer = document.createElement( "div" ); buffer.innerHTML = response.responseText; var pageGuides = { root { tag "table", index 6 }, blocks { tag "tr" } }; var blocksGuides = [ ["date", "strong", 0], ["time", "strong", 1] , ["play", "strong", 2], ["comment", "strong", 3], ["src", "img", 1, "src"] , ["title", "a", 1], ["name", "a", 1, "href", "((sm|ax)\[0-9]+)"] ]; var blocks = parsePage( buffer, pageGuides ); var items = parseBlocks( blocks, blocksGuides ); list.load( items ); refreshTable(); } } ); } parsePage = function( buffer, guides ) { with( guides ) { return $_( $_( buffer, root.tag )[root.index], blocks.tag ) } } parseBlocks = function( blocks, guides ) { var items = []; blocks.each( function( block ) { var buffer = {}; guides.each( function( g ) { with( { key g[0], tag g[1], index g[2], param g[3], regex g[4] } ) { var value = $_( block, tag )[index][param ? param "innerHTML"]; if( regex ) { new RegExp( regex, "" ).exec( value ); value = RegExp.$1; } buffer[key] = value; } } ); items.push( buffer ); if( !movies[buffer.name] ) { var fileName = ( new Template( fileTemplate ) ).evaluate( buffer ); movies[buffer.name] = { path pathOfDownload + "\\" + fileName, className "download" }; } } ); return items; } lastMode = "string"; var refreshTable = function( mode ) { switch( mode ) { case "string" $( "rstring" ).className = "activet"; $( "rimage" ).className = ""; refreshStringTable(); lastMode = mode; break; case "image" $( "rstring" ).className = ""; $( "rimage" ).className = "activet"; refreshImageTable(); lastMode = mode; break; default refreshTable( lastMode ); break; } } var header = [ ["■", "index", "asc"], ["Title", "title", "desc"], ["P", "play", "asc"] , ["C", "comment", "asc"], ["M", "mylist", "asc"] , ["Time", "time", "asc"], ["ID", "name", "desc"] ]; refreshStringTable = function() { var ths = ""; header.each( function( item, index ) { ths += ( new Template( " th onclick= list.sort(\"#{key}\", \"#{order}\");refreshTable(); " + " onmouseover= this.style.cssText=\"background-color white; color black\" " + " onmouseout= this.style.cssText=\"\" #{label} /th " ) ).evaluate( { label item[0], key item[1], order item[2] } ); } ); var thead = " thead tr " + ths + " /tr /thead "; var trs = ""; list.active().each( function( items, index ) { if( !items.index ){ items.index = index + 1; } var tds = ""; header.each( function( value, index ) { tds += " td " + ( items[value[1]] ? items[value[1]] "-" ) + " /td "; } ); var trsvalue = { c1 ( index % 2 ) ? "odd" "even" //, c2 movies[items.name].exist ? " play" " download" , className movies[items.name].className , omover "this.className += \" omo\";" , omout "this.className = this.className.replace(/ omo/g, \"\");" , oc "action( this );", id items.name }; trs += ( new Template( " tr class= #{c1} #{c2} #{className} onclick= #{oc} " + "onmouseover= #{omover} onmouseout= #{omout} id= #{id} " ) ).evaluate( trsvalue ) + tds + " /tr "; } ); var tbody = " tbody " + trs + " /tbody "; $( "target" ).innerHTML = " table " + thead + tbody + " /table "; } refreshImageTable = function() { var trs = " tr "; var tds = ""; list.active().each( function( items, index ) { if( !( index % 5 ) ) { trs += tds + " /tr "; tds = " tr "; } items.state = movies[items.name].exist ? "playing" "downloading"; tds += ( new Template( " td id= #{name} align= center class= #{state} onclick= action( this ) " + " img src= #{src} title= #{title}\n再生 #{play} コメント #{comment} / /td " ) ).evaluate( items ); if( index == list.active().length - 1 ) { trs += tds + " /tr "; } } ); var tbody = " tbody " + trs + " /tbody "; $( "target" ).innerHTML = " table " + tbody + " /table "; } execBuildupCommand = function( argument ) { var shell = new ActiveXObject( "WScript.Shell" ); shell.Run( "\"" + pathOfNicoPlayer + "\\NicoPlayer.exe\" " + argument + " -inactive", 0, true ); shell = null; } playingBefore = undefined; action = function( node ) { var movieName = node.id; if( movies[movieName].exist ) { if( playingBefore ) { movies[playingBefore].className = "play"; var bnode = $( playingBefore ); if( bnode ) { bnode.className = bnode.className.replace( / playing/g, "" ); bnode.className += " play"; } } movies[movieName].className = "playing"; node.className = node.className.replace( / downloaded/g, "" ); node.className = node.className.replace( / play/g, "" ); node.className += " playing"; playingBefore = movieName; execBuildupCommand( "\"" + movies[movieName].path + "\"" ); } else { movies[movieName].className = "downloading"; node.className.replace( / download/g ); node.className += " downloading"; download[movieName] = false; execBuildupCommand( "http //www.nicovideo.jp/watch/" + movieName ); } } /script /head body div id="display" JavaScriptを有効にしてください。 /div table id="controller" tr form onsubmit="search.exec();return false;" td input type="text" id="keyword" value="初音ミク" select id="sort" option value="" 投稿日時が新しい /option option value="order=a" 投稿日時が古い /option option value="sort=v" selected 再生が多い /option option value="sort=v order=a" 再生が少ない /option option value="sort=n" コメントが新しい /option option value="sort=n order=a" コメントが古い /option option value="sort=r" コメントが多い /option option value="sort=r order=a" コメントが少ない /option /select input type="submit" value="検索" / /td /form form onsubmit="mylist();return false;" td input type="text" id="mylistkeyword" value="2949389/2632878" / input type="submit" value="マイリスト" / /td /form form onsubmit="ranking();return false;" td select id="rsort" option value="view" 再生 /option option value="res" コメント /option option value="mylist" selected マイリスト /option /select select id="rspan" option value="newarrival" 新着 /option option value="daily" selected 本日 /option option value="weekly" 週間 /option option value="monthly" 月間 /option option value="total" 合計 /option /select select id="rgenre" option value="all" すべて /option option value="music" selected 音楽 /option option value="game" ゲーム /option /select input type="submit" value="ランキング" / /td /form /tr /table table id="selector" cellspacing="0" style="border solid 1px #ccc; border-bottom 0px" tr td id="rstring" width="45%" align="center" style="cursor pointer;" onclick="refreshTable( string );" class="activet" 一覧 /td td id="rimage" width="45%" align="center" style="cursor pointer;" onclick="refreshTable( image );" 画像一覧 /td td align="center" style="cursor pointer;" onclick="list.back();refreshTable();" 戻る /td td align="center" style="cursor pointer;" onclick="list.forward();refreshTable();" 進む /td /tr /table div id="target" /div /body /html ローカルファイルを検索し表示 最上部のテキストボックスにキーワードを入力してTabキーを押すと、ローカルファイルを検索しマッチするファイルをリストアップします。お好きなファイルをクリックして再生してください。onchangeではなくonkeyupを使うとインクリメンタル検索になるのですが、このロジックだと重すぎて実用的ではないのでやめました。 hta application maximizebutton="no" selection="yes" navigable="no" scroll="yes" singleinstance="yes"/ html head meta http-equiv="MSThemeCompatible" content="yes" style ul { list-style-type none; margin 1px; } li { cursor pointer; width 100%; border 3px double; margin 3px; font-size 12px } /style script type="text/javascript" src="prototype.js" /script script type="text/javascript" var pathOfDownload = "ダウンロードパス"; // ex) D \\Download var pathOfNicoPlayer = "NicoPlayerインストールパス"; var localFlvFiles; $_ = function( target, key ) { return $A( target.getElementsByTagName( key ) ); } $_A = function( target, key ) { return target.getAttribute( key ); } onLoad = function( link ) { resizeTo( 500, 800 ); showList(); } showList = function() { searchFlvFiles(); // 検索 var keyword = $F( "keyword" ); if( keyword ) { localFlvFiles = localFlvFiles.findAll( function( file ) { return RegExp( keyword, "i" ).test( file.Name ); } ); } // リストクリア var ul = $( "target" ); $A( ul.childNodes ).each( function( child ) { ul.removeChild( child ); } ); // リスト追加 localFlvFiles.each( function( file, index ) { var li = document.createElement( "li" ); li.setAttribute( "onclick", new Function( "play( \ " + index + "\ );" ) ); file.Name.match( /(.*)\.flv$/ ); var text = document.createTextNode( RegExp.$1 ); li.appendChild( text ); ul.appendChild( li ); } ); } searchFlvFiles = function() { if( !localFlvFiles ) { localFlvFiles = $A(); } else { localFlvFiles.clear(); } var fs = new ActiveXObject( "Scripting.FileSystemObject" ); var files = new Enumerator( fs.GetFolder( pathOfDownload ).Files ); while( !files.atEnd() ) { if( files.item().Name.match( /(sm\d+).*\.flv$/ ) ) { localFlvFiles.push( files.item() ); } files.moveNext(); } } execBuildupCommand = function( argument ) { var shell = new ActiveXObject( "WScript.Shell" ); shell.Run( "\"" + pathOfNicoPlayer + "\\NicoPlayer.exe\" " + argument, 0, true ); shell = null; } play = function( index ) { execBuildupCommand( "\"" + localFlvFiles[index].Path + "\"" ); } /script /head body onload="onLoad();" input type="text" id="keyword" onchange="showList();" / ul id="target" / /body /html マイページに登録されているうち、ダウンロード済みアイテムのプレイリストを作成し開く ソースファイルをメモ帳などに貼り付け、拡張子(.js)で保存してください。 pathOfNicoPlayerとpathOfDownloadをそれぞれの環境にあったパスに変更してください。 使う時はクリップボードにマイページのアドレス(http //~/0000000/000000 省略不可)を コピーしてダブルクリックしてください。 またNicoPlayerのプレイリストウィンドウが表示されていれば、自動的に開きます。 // 環境設定 var pathOfNicoPlayer = "NicoPlayerのインストールパス(パスセパレータ \\)"; var pathOfDownload = "動画ファイルのダウンロードパス(同上)"; // クリップボードからマイページのアドレスを取得 var ieObject = new ActiveXObject( "InternetExplorer.Application" ); ieObject.Navigate( "about blank" ); while ( ieObject.Busy ) { WScript.Sleep( 100 ); } var addressOfMypage = ieObject.Document.parentWindow.clipboardData.getData( "text" ); ieObject.Quit(); // マイページアドレスが取得できなかった場合入力ウィンドウを表示(Excelのインストールが必要) if( !addressOfMypage.match( /.*\/([0-9]+)\/([0-9]+)/ ) ) { var excelObject = WScript.CreateObject( "Excel.Application" ); if( excelObject != null ) { addressOfMypage = excelObject.InputBox( "マイページのアドレスを入力してください" ); excelObject.Quit(); } } // Msxml2(IE6標準)によりマイページのGETリクエスト送出 var httpObject = WScript.CreateObject( "Msxml2.XMLHTTP" ); httpObject.onreadystatechange = function() { if( httpObject.readyState == 4 ) { getRequestPage( httpObject ); } } // open( , , false )は同期指定(さもないと取得前にプログラムが終了する) httpObject.open( "GET", addressOfMypage, false ); httpObject.send( "" ); function getRequestPage( httpObject ) { // マイページのテキストを検索しID(sm[0-9]+)をリストアップ var requestPageText = httpObject.responseText; var mypageIdList = requestPageText.match( /sm[0-9]+/g ); if( mypageIdList == null ) { return; // IDが見つからず } // ダウンロードフォルダを検索し.flvファイルをIDに基づいてリストアップ var filesHash = {}; var fsoObject = WScript.CreateObject( "Scripting.FileSystemObject" ); var filesCollection = fsoObject.GetFolder( pathOfDownload ).Files; for( var file = new Enumerator( filesCollection ); !file.atEnd(); file.moveNext() ) { var fileName = file.item().Name; if( fsoObject.GetExtensionName( fileName ) == "flv" ) { filesHash[fileName.match( /sm[0-9]+/ )] = file.item().Path; } } // マイページのIDとローカルファイルを紐付けプレイリスト形式にする var newPlaylistText = "", newDownloadListText = ""; for( var i = 0; i mypageIdList.length; i += 2 ) { if( filesHash[mypageIdList[i] ] != undefined ) { newPlaylistText += filesHash[mypageIdList[i] ] + "\n"; } } // プレイリストファイル(.m3u)に落とす addressOfMypage.match( /.*\/([0-9]+)\/([0-9]+)/ ); var newPlylistFileName = RegExp.$1 + "_" + RegExp.$2 + ".m3u"; // OpenTextFile( , 2, true )の2は書出指定(読込1・追記8)、trueは新規作成あり var pathOfNewPlaylistFile = pathOfNicoPlayer + "\\" + newPlylistFileName; var newPlaylistFile = fsoObject.OpenTextFile( pathOfNewPlaylistFile, 2, true ); newPlaylistFile.Write( newPlaylistText ); newPlaylistFile.Close(); // NicoPlayerが.m3uファイルのD&Dに対応すると、以下の全ては次の1行になります // shellObject.Run( "\"" + pathOfNicoPlayer + "\\NicoPlayer.exe\" \"" + pathOfNewPlaylistFile + "\"" ); // プレイリストファイルパスをクリップボードへコピー var ieObject = new ActiveXObject( "InternetExplorer.Application" ); ieObject.Navigate( "about blank" ); while ( ieObject.Busy ) { WScript.Sleep( 100 ); } ieObject.Document.parentWindow.clipboardData.setData( "text", pathOfNewPlaylistFile ); ieObject.Quit(); // NicoPlayerのプレイリストウィンドウに登録する var shellObject = WScript.CreateObject( "WScript.Shell" ); shellObject.AppActivate( "NicoPlayer - プレイリスト" ); WScript.Sleep( 100 ); shellObject.SendKeys( "^O" ); WScript.Sleep( 100 ); shellObject.SendKeys( "^V" ); WScript.Sleep( 100 ); shellObject.SendKeys( "%O" ); } プレイリストウィンドウにプレイリストファイルをドラッグ&ドロップする(Cランタイム使用) 使い勝手向上のためぜひともD&Dを実装したかったが、スクリプトのみでは実装できなかった。 WindowsAPIをVBAでラップすれば可能だが、あまりに煩雑なので断念した。 [マイページに登録されているうち、ダウンロード済みアイテムのプレイリストを作成し開く]の \// NicoPlayerが.m3uファイルのD&Dに対応すると、以下の全ては次の1行になります 以下を次のように置き換える。 var shellObject = new ActiveXObject( "WScript.Shell" ); shellObject.Run( "\"ランタイム名.exe\" \"CWndPlayList\" \"NicoPlayer - プレイリスト\" \"" + pathOfNewPlaylistFile + "\"", 0 ); shellObject = null; ランタイム(正確には違うが)のコードは以下の通り。 開発環境はMicrosoft公式を参考にしてください。 #define STRICT #include windows.h #include cstring // DnD操作におけるOS領域のメモリ構造定義 typedef struct drop_files{ DWORD pFiles; POINT pt; bool fNC; bool fWide; } DropFiles; int main( int argc, char *argv[] ) { // パラメータが3個([0]は実行ファイルのパス)未満なら終了 if( argc 4 ) { return 0; } // 指定窓が見つからなければ終了 // ([1] クラス名・[2]タイトル、空文字列も検索条件、無効にするにはNULL) HWND hWndTarget = FindWindowExA( NULL, NULL, argv[1], argv[2] ); if( !hWndTarget ) { return 0; } // D&D操作のための情報を作成 DropFiles df = { sizeof( DropFiles ), { 0, 0 }, false, false }; char *file = argv[3]; // OS領域のメモリリソースを確保し情報を転送 HGLOBAL hGlobalMemory = GlobalAlloc( GHND, sizeof( DropFiles ) + strlen( file ) + 1 ); void *p = GlobalLock( hGlobalMemory ); memcpy( p, ( void * ) df, sizeof( DropFiles ) ); memcpy( ( char * )p + sizeof( DropFiles ), ( void * )file, strlen( file ) + 1 ); GlobalUnlock( hGlobalMemory ); // 指定窓に通知 PostMessageA( hWndTarget, WM_DROPFILES, ( WPARAM )hGlobalMemory, 0 ); // OS領域のメモリリソースを開放 GlobalFree( hGlobalMemory ); return 0; } コメント スクリプト実行時の制約を軽減(マウス・キーボードを触ると失敗しやすい等)したが、敷居が大幅に高くなってしまった。やはり本家に特定拡張子(.m3u / .lst等)のD D対応をお願いしたいところ。 - 名無しさん 2007-11-24 17 58 53 [ローカルファイルを検索し表示]を追加。こちらはサイズ制限が先の話なので調子に乗ってます(^-^。膨張したライブラリの任意再生にどうぞ。 - 名無しさん 2008-01-15 02 54 44 [検索を表示する]を追加。パーサをシンプルにしようとしたら余計にカオスに…。 - 名無しさん 2008-01-19 16 33 52 [検索・ランキング・マイページをTubePlayerっぽく一覧表示する]でNicoPlayer以外で開くにはactionの中を書き換えるといいです。ブラウザで開くならwindow.open("~watch/" + movieName,"","");、HTAからSleipnirを開くなら(new ActiveXObject("Sleipnir.API")).NewWindow("~watch/"+movieName,true);でいけます。ちなみに拡張子を.htaではなく.htm[l]で保存してもブラウザでほぼ動きます(ただし警告でまくり、この場合Sleipnirでもwindow.open()で開ける)。 - 名無しさん 2008-01-26 17 29 21 [TubePlayerっぽく一覧表示]のフィードバック他を変更しました。テキストボックスでEnterがきくようになり、ソートの不具合が改善されました。 - 名無しさん 2008-01-27 11 01 14 [TubePlayerっぽく一覧表示]にランキングの画像表示を統合しました(マイリスト・検索にも対応)。一覧と画像一覧の作りこみの差が手に取るように分かりますがネ(。ω。 - 名無しさん 2008-01-27 19 20 31 [TubePlayerっぽく一覧表示]のpathOf~を自動取得するようにしてみました(NicoPlayerと同じフォルダにあることが前提)。任意に設定すればスルーするので、好きな場所におきたい方はそちらで。ini以下にnicoplayer.iniを階層維持のまま展開しているので何かに使えるかも。ini.main.RecentOpen0とかini.playlist.ListPathとかとか。 - 名無しさん 2008-01-30 23 08 16 [TubePlayerっぽく一覧表示]にエラー処理(prototype.jsがない/NicoPlayerが見つからない/JavaScriptが無効)を追加。iniを拡張して全域から参照可能にしました。ini.load(ファイルパス)で読み込み、ini.initで初期化。構造上init/loadセクションはあっても読み飛ばします。必要ならプロパティ名と例外判定/^(init|load)$/2箇所をいじってください。 - 名無しさん 2008-01-31 21 06 54 [TubePlayerっぽく一覧表示]のリスト管理を整理。ついでに戻ると進むを追加。検索・マイページ・ランキングを開くと進み、ソートは最後の並びが残ります。戻った状態で新たに開くと、それより先の記録はリセットされます。ブラウザの戻る・進むと同じ挙動です。listに格納する情報を追加すれば、履歴一覧とかも楽にいけます。 - 名無しさん 2008-02-02 02 24 59 [TubePlayerっぽく一覧表示]のバグバグを修正(検索時ページが更新されない・同じ動画を複数表示するとインデックスが狂う・他)。ダウンロードパスの全検索を起動時のみにし、以後はファイル名きめうちの二段構えにしてファイル数が多い場合体感で分かるほど軽く(ダウンロードが終了すると数秒以内に赤背景 緑背景になりますが、タイトルとファイル名が違う場合(*が含まれる場合など)は再起動するまで認識しません)。フィードバックをページ横断式に変更(同じ動画ならページを切り替えても強調が維持されます)。結果としてデザインとロジックが融合した素敵コードに…行数も500間近…そろそろ分離しないと。 - 名無しさん 2008-02-02 09 13 34 名前
https://w.atwiki.jp/arsenalbbs/pages/69.html
error ウィジェットIDの形式に誤りがあります。
https://w.atwiki.jp/nextgenerationps/pages/24.html
ユーザーの皆様は、Ustream(ユーストリーム)などのインターネット中継サービスを通じてゲームプレイを友人に手軽に生中継することが可能です。中継されている動画には友人がコメントを投稿できるほか、ネットワークを通じて、ゲームをプレイしている人にキャラクターの体力を回復させるアイテムや特別な武器などを提供して進行を助けるなど、今までにない方法でゲームに参加することができます。さらに、FacebookアカウントとSony Entertainment Networkアカウントを紐づけることにより、PS4™ユーザーの皆様は、協力プレイやクロスゲームチャット機能を通じて、つながりを一層深めることができます。