3.xtne6f EDCB-Work-Plus-sでTwitter連携編 - TS抜き環境構築

更新情報 | 2017-04-01 |
|
---|---|
2017-05-01 |
|
2017-06-01 |
|
2017-09-01 |
|
2017-10-01 |
|
2018-02-01 |
|
2018-03-01 |
|
2018-05-01 |
|
Twitterのアプリケーション登録 見出しにジャンプ
1.予め通知用のTwitterアカウントを作っておく。
2.↑と本垢等でFFになって、スマホで↑のプロフィールから投稿通知を受け取るように設定。
3.https://dev.twitter.com/apps でCreate New Appからアプリケーション登録を行う。
※アカウントに電話番号が登録され認証されている必要があります。
Nameはtwitterクライアント内でクライアント名として表示されるので中二病患者はお気をつけください。
Website、Callback URLは今回使わない情報なのでhttp://example.com/
とかでも構わない。
Access levelはRead and writeに設定。
Ruby環境を構築する 見出しにジャンプ
1.https://rubyinstaller.org/downloads/ のRubyInstallersからインストーラーをDL。
~2.3.xはWITHOUT DEVKITとDEVELOPMENT KIT (OLD)から。Ruby 2.3.3 (x64)で動作確認。
2.4~はWITH DEVKITから。Ruby+Devkit 2.5.1-1 (x64)で動作を確認。
2.インストーラ実行。「Rubyの実行ファイルへ環境変数PATHを設定する」「.rbと.rbwファイルをRubyに関連づける」(英語かもしれない)にチェック。
3.インストールされたかruby -v
で確認。rubyのバージョンみたいなのが出てくればおk
※ruby2.4~
4'.そのままRubyInstaller2が起動するので、「1」「2」「3」の順に入力する。
1 - MSYS2 base installation
2 - MSYS2 system update
3 - MSYS2 and MINGW development toolchain
Which components shall be installed? If unsure press ENTER [1,2,3] 1
…
Which components shall be installed? If unsure press ENTER [] 2
…
Which components shall be installed? If unsure press ENTER [] 3
…
Which components shall be installed? If unsure press ENTER [] (Enter)
※ruby~2.3.x
4.https://rubyinstaller.org/downloads/ のDEVELOPMENT KITから適切なDevelopmentKitをDL。
5.↑を実行.C:\devkit\
に展開すること。
6.以下のコマンドを実行してインストール。INFOっぽいのがちょろっと出てくればおk。
cd C:\devkit\
ruby dk.rb init
ruby dk.rb install
ツイート用Rubyスクリプト 見出しにジャンプ
1.gem install twitter
でTwitter API gemをインストールする。devkit必須。
2.https://curl.haxx.se/ca/cacert.pem からSSL証明書をDL。cacert.pem
という名前を付けてEpgTimerSrvと同じディレクトリに保存。
3.テキストエディタで以下コードを記述。https://dev.twitter.com/apps のKeys and Access Tokensからコピペしtweet.rb(拡張子.rb)でEpgTimerSrvと同じディレクトリに保存。
#180313
require 'twitter'
#キーとかトークンとか
client = Twitter::REST::Client.new do |config|
config.consumer_key = "Keys and Access Tokensからコピペ"
config.consumer_secret = "Keys and Access Tokensからコピペ"
config.access_token = "Keys and Access Tokensからコピペ"
config.access_token_secret = "Keys and Access Tokensからコピペ"
end
#ツイート
client.update(ENV['TWEET_CONTENT'].encode("utf-8"))
ツイート用バッチ 見出しにジャンプ
ファイル名 | 好みの名前.bat | PostHoge.bat/ps1 |
---|---|---|
実行条件 | 個別に録画後実行batにパスを設定 ※自動予約登録で既に予約一覧にあるものにもバッチのパスを適用させるには 1.自動予約登録ウィンドウ内の予約を一旦削除 2.batのパスを通す 3."自動予約登録条件を変更"を押下して再度予約一覧に追加 |
EpgTimerSrv.exeと同じディレクトリに設置 |
実行タイミング | 録画終了時 | PostAddReserve:予約追加 PostChgReserve:予約変更 PostRecStart:録画開始 PostRecEnd:録画終了 PostNotify:通知cf. |
途中から録画、録画中にキャンセルした場合 | EpgTimerSrv.iniのSETにErrEndBatRun=1を追加すれば実行cf. | 実行 |
番組によって処理を変えるには | 別のバッチを録画後実行bat登録する | バッチ内の処理で条件分岐する |
拡張命令cf. | 動作内容 |
---|---|
_EDCBX_BATMARGIN_={bat実行条件(分)} | このマージン以上録画予定がないときに実行(デフォルト:0) |
_EDCBX_HIDE_ | ウィンドウ非表示 |
_EDCBX_NORMAL_ | ウィンドウを最小化しない |
_EDCBX_DIRECT_ | マクロを$置換$ではなく%環境変数%で渡して直接実行する ※PowerShellスクリプトでは常に有効 ・EpgTimerSrv.exeのあるフォルダに"EpgTimer_Bon_RecEnd.bat"を作らない ・EpgTimer.exeを経由する間接実行はしない ・カレントディレクトリはそのバッチのあるフォルダ |
_EDCBX_FORMATTIME_ | 日時についてのマクロ($SDYY$など)をISO8601形式の$StartTime$と$DurationSecond$に単純化する ※PowerShellスクリプトでは常に有効 |
テキストエディタで以下スクリプトをコピーし、EpgTimerSrvと同じディレクトリにPostRecStart.batで保存。
環境変数設定でパスを自分の環境に合わせること。rubyのパスはユーザ環境変数にあると思うので、echo %path%
とかで調べる(EpgTimerSrvをサービス登録して実行する環境に対応)。
set tweet_content=
に続くEpgTimerから受け渡されるマクロについてはcf.。
rem _EDCBX_DIRECT_
で$
->%
、rem _EDCBX_HIDE_
で非表示(指定しなければ最小化)。確認するために止まってほしい場合はexit
の一つ前の行にpause
。
↓ハッシュタグ自動判別無し
rem 180316
rem _EDCBX_DIRECT_
rem _EDCBX_HIDE_
rem 視聴予約なら終了
if "%RecMode%" == "4" (
goto :eof
)
rem ====================環境変数設定====================
rem ruby.exeのパス
set "ruby_path=C:\Ruby24-x64\bin\ruby.exe"
rem tweet.rbのパス
set "tweet_rb_path=C:\DTV\EDCB\tweet.rb"
rem SSL証明書のパス
set "ssl_cert_file=C:\DTV\EDCB\cacert.pem"
rem ====================ツイート====================
set "tweet_content=%SDYY%/%SDM%/%SDD%(%SDW%) %STHH%:%STMM%~%ETHH%:%ETMM% %Title% %ServiceName%"
"%ruby_path%" "%tweet_rb_path%"
exit
↓ハッシュタグ自動判別機能有り
if not defined HASHTAG set HASHTAG=%ServiceName%
でリストにない場合はハッシュタグではなくそのままチャンネル名がツイートされる。
rem 180316
rem _EDCBX_DIRECT_
rem _EDCBX_HIDE_
rem 視聴予約なら終了
if "%RecMode%" == "4" (
goto :eof
)
rem ====================環境変数設定====================
rem ruby.exeのパス
set "ruby_path=C:\Ruby24-x64\bin\ruby.exe"
rem tweet.rbのパス
set "tweet_rb_path=C:\DTV\EDCB\tweet.rb"
rem SSL証明書のパス
set "ssl_cert_file=C:\DTV\EDCB\cacert.pem"
rem ====================ハッシュタグ判別====================
rem 環境変数ServiceNameはChSet5.txt参照
rem 環境変数hashtagはTwitter参照
rem BS
if "%ServiceName%" == "NHKBS1" (
set hashtag=#nhkbs1
) else if "%ServiceName%" == "NHKBSプレミアム" (
set hashtag=#nhkbsp
) else if "%ServiceName%" == "BS日テレ" (
set hashtag=#bsntv
) else if "%ServiceName%" == "BS朝日1" (
set hashtag=#bsasahi
) else if "%ServiceName%" == "BS-TBS" (
set hashtag=#bstbs
) else if "%ServiceName%" == "BSジャパン" (
set hashtag=#bsjapan
) else if "%ServiceName%" == "BSフジ・181" (
set hashtag=#bsfuji
) else if "%ServiceName%" == "BS11イレブン" (
set hashtag=#bs11
) else if "%ServiceName%" == "BS12トゥエルビ" (
set hashtag=#bs12
)
rem 地デジ
if "%ServiceName%" == "NHK総合1・東京" (
set hashtag=#nhk
) else if "%ServiceName%" == "NHKEテレ1東京" (
set hashtag=#etv
) else if "%ServiceName%" == "tvk1" (
set hashtag=#tvk
) else if "%ServiceName%" == "チバテレ1" (
set hashtag=#chibatv
) else if "%ServiceName%" == "日テレ1" (
set hashtag=#ntv
) else if "%ServiceName%" == "テレビ朝日" (
set hashtag=#tvasahi
) else if "%ServiceName%" == "TBS1" (
set hashtag=#tbs
) else if "%ServiceName%" == "テレビ東京1" (
set hashtag=#tvtokyo
) else if "%ServiceName%" == "フジテレビ" (
set hashtag=#fujitv
) else if "%ServiceName%" == "TOKYO MX1" (
set hashtag=#tokyomx
)
rem その他
if not defined hashtag (
set "hashtag=%ServiceName%"
)
rem ====================ツイート====================
set "tweet_content=%SDYY%/%SDM%/%SDD%(%SDW%) %STHH%:%STMM%~%ETHH%:%ETMM% %Title% %hashtag%"
"%ruby_path%" "%tweet_rb_path%"
exit
こんな感じ
18/3/15(木) 01:00~01:30 魔法使いの嫁 第22話「As you sow, so shall you reap.」 #bs11
— shibanyan_edcb (@shibanyan_edcb) 2018年3月14日