HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0616
黒ノ巣ニコニコ動画の配置はできたけどコメントって...3未解決


黒ノ巣

リンク

2017/6/16(Fri) 19:27:08|NO.80248

こんにちは。
ニコニコ動画の配置はできたけど
inputで入力してコメントをだすことって出来ますか?
是非教えてください。



この記事に返信する


MIZUSHIKI

リンク

2017/6/16(Fri) 22:30:22|NO.80252

質問がよくわかりません。

「ニコニコ動画の配置はできた」とありますが、以下のどちらでしょうか。
 ・ieコンポーネントでニコニコ動画のページを表示させた。
 ・ウィンドウにmci等を用いて動画を表示させた。
また、「inputで入力してコメントをだす」とは、
 ・ウィンドウに表示した動画(又はWebぺージ)の上で文字を移動させたい(※1)
 ・HSPからニコニコ動画にコメントを投稿したい。
のどちらでしょうか。

※1の場合は、
http://hsp.tv/play/pforum.php?mode=pastwch&num=68871
こちらのページの レイヤードな子ウィンドウを作成する方法で出来ます。
(ただし、Windows8以降かつ、スクリプトウィンドウ上では動作せず、exeファイルにしてResource Hackerでマニフェストを書き換える必要があります。)

まずは、黒ノ巣さんが作った「ニコニコ動画の配置」ができたスクリプト(テスト用に最小限)を張って頂くのと、もう少し詳しく質問を説明して頂くことで問題解決に近づくと思います。



黒ノ巣

リンク

2017/6/17(Sat) 09:29:48|NO.80255

>質問がよくわかりません。
質問がよく分からなく申し訳ございません。
>「ニコニコ動画の配置はできた」とありますが、以下のどちらでしょうか。
ieコンポーネントでニコニコ動画のページを表示させた。かな?
>また、「inputで入力してコメントをだす」とは、
「HSPからニコニコ動画にコメントを投稿したい」です。
>黒ノ巣さんが作った「ニコニコ動画の配置」ができたスクリプト
まぁそのsampleを拾ってそれを改良したソースです。
*comment はどのように入力すれば出来ますか?

//必要となるAPIや関数の定義 #uselib "user32.dll" #func SetProcessDPIAware "SetProcessDPIAware" //変数宣言 sdim sm sm = "sm78839" sdim comment //ウィンドウの作成や設定 SetProcessDPIAware screen 0, 640*2, 480*2, 0 onexit *exit title "ニコニコ動画" //背景の色 color 0, 0, 0 : boxf gosub *nicosm //一時停止 stop //====================================== // ニコニコ動画の配置処理 //====================================== *nico_start //====================================== // ActiveXコントロールの配置 //====================================== pos 0, 20*2 axobj ie, "Shell.Explorer.2", 640*2, 430*2 if stat == -1 { dialog "ActiveXコントロールの配置に失敗しました。", 1 end } //====================================== // ニコニコ動画の設置 // 小さかったらズームでデカくできる //====================================== ie -> "Navigate" "about:blank" doc = ie("Document") doc -> "close" html == "<html><body bgcolor=$000000>" html += "<script type=\"text/javascript\" src=\"http://ext.nicovideo.jp/thumb_watch/"+sm+"\"></script>" html += "</body></html>" notesel html notesave "niconico_move_dat_backup.html" doc -> "write" html //オブジェクトの設定 font "メイリオ", 35 objmode 2 //コメントを入力 pos 0, 450*2 input comment, (640-100)*2, 30*2, 100 pos (640-100)*2, 450*2+1 objsize 100*2, 30*2-2 button gosub "コメント", *nico_comment //一時停止 stop //ニコニコ動画検索ボックス(sm形式) *nicosm clrobj ; 一回、オブジェクトを消去 pos 0, 1 input sm, (640-40)*2, 20*2 objsize 40*2, 20*2 pos (640-40)*2,0 button "Go", *nico_start return //コメントの処理 *nico_comment return //ウィンドウの終了 *exit onexit 0 exist "niconico_move_dat_backup.html" if strsize != -1 { delete "niconico_move_dat_backup.html" } end



MIZUSHIKI

リンク

2017/6/17(Sat) 16:54:46|NO.80263

な・・・んと、そっちでしたか。
自分で書いといてそっちだとは思ってませんでした。。。

コメントの投稿の仕方は
http://qiita.com/tor4kichi/items/be55e177f0e4a0753f5d
http://qiita.com/tor4kichi/items/2f19f533763fe6e3e479#%E5%8F%82%E8%80%83
http://blog.livedoor.jp/mgpn/archives/51968685.html
http://blog.livedoor.jp/mgpn/archives/51886270.html
あたりを参考にすれば良さそうです。

コメント投稿までの流れとしては、1つ目の参考URLを見ると
 1. 動画情報取得
 2. コメントのスレッドキーを取得
 3. コメントリストを取得
 4. コメントの送信準備(PostKeyの取得)
 5. コメントの送信
とすれば良いそうです。
ということは hspinet等を使って、ニコニコ動画と通信(ニコニコのAPIを叩く)をする必要があると思います。

とりあえず、"3.コメントリストの取得"までを hspinets.dll を使って試しにスクリプトを書いてみました。
その先は、各URL先を参考にして黒ノ巣さんが書いてみて下さい。

また、下記スクリプトには以下の注意点があります。
 ・ニコニコ動画から情報を取得したりコメントを投稿したりするには、ニコニコ動画にログインする必要がります。
 ・ニコニコ動画のログインはhttpsに接続する必要があるので
    http://hsp.tv/play/pforum.php?mode=all&num=79435
  から、inoviaさんが投稿してくださっている hsp35_hspinet_binary.zip から hspinets.dll, hspinets.as を入手して下さい。


#include "hspinets.as" #include "mod_regexp.as" sm="sm78839" nico_mail="" ;ニコニコアカウント:メールアドレス nico_pass="" ;ニコニコアカウント:パスワード ;メッセージ表示 準備 mbox="" mesbox mbox,640,480,1,0 id_mbox=stat ;処理ID #enum _STOP_ =0 #enum LOGIN #enum GETFLV #enum GETCOMMENTLIST step = LOGIN netinit if stat : dialog "ネット接続できません。" : end //各処理 *routine switch step ;ニコニコログイン case LOGIN: mbox = "ログイン\n---\n"+mbox objprm id_mbox, mbox neturl "https://secure.nicovideo.jp/secure/" ; POST形式でパラメーターを渡す prm = "site=niconico&mail="+nico_mail+"&password="+nico_pass netrequest_post "login",prm step = GETFLV ;次 swbreak ;情報取得 case GETFLV: mbox = "情報取得\n---\n"+mbox objprm id_mbox, mbox neturl "http://www.nicovideo.jp/api/getflv/" ; GET形式でアクセス netrequest_get sm step = GETCOMMENTLIST ;次 swbreak ;コメントリスト取得 case GETCOMMENTLIST: ; responseDataから各情報を切り分け threadId = submatch(responseData,"thread_id=(.*?)&") ;スレッドID取得 messageServerUrlenc = submatch(responseData,"&ms=(.*?)&") ;メッセージサーバURL取得 urldecode messageServerUrl, messageServerUrlenc ;URLデコード mbox = strf("取得情報 -> %s, %s, %s",threadId, messageServerUrlenc, messageServerUrl)+"\n---\n"+mbox ;確認 mbox = "コメントリスト取得\n"+mbox objprm id_mbox, mbox neturl messageServerUrl ; ?POSTでうまく行かなかったのでGETで。 netrequest_get "thread?thread="+threadId+"&version=20061206&res_from=-1&scores=1" ;コメント1件取得 objprm id_mbox, mbox step = _STOP_ ;次終わり swbreak default stop swbreak swend *main ; 結果待ちのためのループ netexec res if res > 0 : goto *comp if res < 0 : goto *bad await 50 goto *main *bad ; エラー neterror estr dialog "ERROR "+estr stop *comp ; "DOWNLOAD 完了" netgetv responseData mbox = responseData+"\n---\n"+mbox objprm id_mbox, mbox goto *routine ;次の処理へ stop

試みとしては面白いと思います。
ただ、ちょっと杞憂かもしれませんが、黒ノ巣さんのスクリプトで動画の再生に外部プレイヤーを用いているので、恐らくコメントを投稿しても再生している動画の画面には新規投稿したコメントは流れてこないのでは無いかなと思います。。。



ONION software Copyright 1997-2018(c) All rights reserved.