From 535eb8fde654e3f830341a6b4ba372e757b8bb4a Mon Sep 17 00:00:00 2001 From: tsukumijima Date: Thu, 3 Oct 2019 15:38:30 +0900 Subject: [PATCH] release v1.2.1 --- README.md | 26 +++--- data/ch_sid.txt | 2 + data/version.txt | 2 +- header.php | 2 +- htdocs/files/account_default.jpg | Bin 0 -> 4438 bytes htdocs/files/common.js | 13 ++- htdocs/files/script.js | 46 ++++++++++- htdocs/files/style.css | 76 +++++++++++++++++- htdocs/index.php | 14 +++- htdocs/setting.php | 6 +- htdocs/tweet/callback.php | 20 ++++- htdocs/tweet/logout.php | 3 + htdocs/tweet/tweet.php | 3 +- .../tweet/twitteroauth/src/TwitterOAuth.php | 3 +- 14 files changed, 183 insertions(+), 33 deletions(-) create mode 100644 htdocs/files/account_default.jpg diff --git a/README.md b/README.md index 951597a6..af68495c 100644 --- a/README.md +++ b/README.md @@ -328,14 +328,14 @@ TVRemotePlus は、PWA に対応しています。 また、PWA は Windows・Mac・Android は Chrome 、iOS では Safari が対応しています。 ### インストール手順 - - まず、PWAを利用したい端末で **http://( TVRemotePlus の動いている PC のローカル IP アドレス):8000/server.crt** にアクセスし、証明書をダウンロードします。 - - その後、ダウンロードした証明書を開き、端末にインストールします(この時、表示が「CA 証明書」になっているかどうかを確認してください)。 - - インストール後、Chrome または Safari が立ち上がっていれば一旦タスクを切ってからブラウザをもう一度起動します。 - - **https://( TVRemotePlus の動いている PC のローカル IP アドレス):8100/** にアクセスし、アドレスバーに鍵マークが正常についていれば、証明書の導入は完了です。 - - この時に必ず https:// を付けてアクセスしてください( https:// を付けないと http:// と判定されてしまいエラーが出ます) - - ブラウザのメニュー等から **「ホーム画面に追加」または「 TVRemotePlus をインストール」すると、ネイティブアプリのように利用できるようになるはずです。** - - Android の場合、何故かスプラッシュ画面のアイコンが小さい場合がありますが、原因は不明です( Chrome の自動推定のせいらしいですが…) - - iPhone・iPad の場合、Safari であれば自己署名証明書をインストールしなくても http://( TVRemotePlus の動いている PC のローカル IP アドレス):8000/ から「ホーム画面に追加」する事でインストールできるみたいです… + 1. まず、PWAを利用したい端末で **http://( TVRemotePlus の動いている PC のローカル IP アドレス):8000/server.crt** にアクセスし、証明書をダウンロードします。 + 2. その後、ダウンロードした証明書を開き、端末にインストールします(この時、表示が「CA 証明書」になっているかどうかを確認してください)。 + 3. インストール後、Chrome または Safari が立ち上がっていれば一旦タスクを切ってからブラウザをもう一度起動します。 + 4. **https://( TVRemotePlus の動いている PC のローカル IP アドレス):8100/** にアクセスし、アドレスバーに鍵マークが正常についていれば、証明書の導入は完了です。 + - この時に必ず https:// を付けてアクセスしてください( https:// を付けないと http:// と判定されてしまいエラーが出ます) + 5. ブラウザのメニュー等から **「ホーム画面に追加」または「 TVRemotePlus をインストール」すると、ネイティブアプリのように利用できるようになっているはずです。** + 6. Android の場合、何故かスプラッシュ画面のアイコンが小さい場合がありますが、原因は不明です( Chrome の自動推定のせいらしいですが…) + 7. iPhone・iPad の場合、Safari であれば自己署名証明書をインストールしなくても http://( TVRemotePlus の動いている PC のローカル IP アドレス):8000/ から「ホーム画面に追加」する事でインストールできるみたいです… ## TwitterAPI 開発者アカウントの取得について 長くなるため別ページにまとめています。 @@ -357,16 +357,14 @@ TVRemotePlus は、PWA に対応しています。 - 字幕自体の表示はプレイヤーの設定で切り替えられます。字幕が要らない場合はオフにしてください。 - 配信準備中…からストリームにうまく移らない・再生が止まった などの時は、時計表示をクリック・タップしてください。リロードされます。 - TSTask は後述の無理やり taskkill させる関係上、クライアントプログラムを起動させないオプションで起動させています。 - - 立ち上がってるか心配な場合、タスクマネージャーで調べるか別途 TSTaskCentre を起動させるといいとおもいます。 + - 立ち上がってるか心配な場合、タスクマネージャーで調べるか別途 TSTaskCentre を起動させるといいと思います。 - ffmpeg・QSVEncC・NVEncC は独立ウインドウにて最小化した状態で起動します。 - ニコニコ実況にコメントを投稿する場合、数秒遅延している事を念頭に入れた上でコメントしてください…(それほど気にならないとは思いますが…) - 同梱している動作に必要なソフトウェア(後述)は全て TVRemotePlus 向けに設定やフォルダ構成等を最適化してあります。 - - ストリームを終了させる際、ffmpeg・QSVEncC・NVEncC・TSTask 等を taskkill で強制終了させる雑な仕様なため、ストリーム起動時にffmpegなど別のソフトを利用している場合は突然ブッチされたりします… - - ストリーム配信/終了時は安全のため、同じPCにて ffmpeg 等のソフトを利用しない事をおすすめします… ## 利用ソフトウェア 動作に必要なソフトウェアをお借りしています。この場で御礼申し上げます。 -全て配布アーカイブの中に組み込んでいますが、一部設定が必要な箇所があります。 +全て配布アーカイブの中に組み込んでいますが、BonDriver 周りは各自で用意し、別途 (TVRemotePlusをインストールしたフォルダ)\bin\TSTask\BonDriver\ に入れてください。 また、QSVEncC を利用する場合は Intel QSV に対応した CPU が、NVEncC を利用する場合は NVIDIA GPU が必要です。 - Apache( v2.4.39・Webサーバ) @@ -392,8 +390,8 @@ TVRemotePlus は、PWA に対応しています。 - キャプチャ付きツイートの投稿機能は、**Android 版 Firefox・Mac 版 Safari では対応していません。**(ブラウザのバグによるエラーでキャプチャに失敗します) - 動画のキャプチャはブラウザの仕様に依存する上、ブラウザ側のバグが非常に多いため、基本的に最新の Chrome を利用してください。 - 古い Android 端末では、コメント描画が重くなる場合があります。 - - このため、コメント描画中にキャプチャする場合、キャプチャ画像の取得に時間がかかる場合があります。 - - 最新の端末でも、(スペックにもよりますが)コメントが多い場合はキャプチャ画像の取得に時間がかかる場合があります。 + - コメント描画中にキャプチャする場合、キャプチャ画像の取得に時間がかかる場合があります。 + - 最新の端末でも、(スペックにもよりますが)コメントが多く流れているとキャプチャに少し時間がかかります。 ## 動作確認 - サーバー:Windows7 Professional 64bit + PLEX PX-Q3PE4 diff --git a/data/ch_sid.txt b/data/ch_sid.txt index 8e88204c..e64c860f 100644 --- a/data/ch_sid.txt +++ b/data/ch_sid.txt @@ -20,7 +20,9 @@ 2 15 0x0C08 中京広域 NHKEテレ名古屋 8 15 0x0C10 中京広域 東海テレビ 6 15 0x0C18 中京広域 CBC +6 15 0x0C18 中京広域 CBCテレビ 5 15 0x0C20 中京広域 メ~テレ +5 15 0x0C20 中京広域 メ〜テレ 4 15 0x0C28 中京広域 中京テレビ 6 15 0x1010 北海道域 HBC北海道放送 4 15 0x1018 北海道域 STV札幌テレビ diff --git a/data/version.txt b/data/version.txt index 0408c30b..24e56e03 100644 --- a/data/version.txt +++ b/data/version.txt @@ -1 +1 @@ -v1.2.0 \ No newline at end of file +v1.2.1 \ No newline at end of file diff --git a/header.php b/header.php index ec774a75..4e0689a3 100644 --- a/header.php +++ b/header.php @@ -27,7 +27,7 @@ - + diff --git a/htdocs/files/account_default.jpg b/htdocs/files/account_default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5cf82f447d24d1059454045a7b47bc2bbe1ad4a GIT binary patch literal 4438 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 1024){ + $(this).toggleClass('open'); + } + }); + // パスワード開閉 $('.password-box-input').click(function(){ - $('.password-box-input').toggleClass('fa-eye'); $('.password-box-input').toggleClass('fa-eye-slash'); + $('.password-box-input').toggleClass('fa-eye'); var input = $(this).prev("input"); // type切替 if (input.attr("type") == "password") { @@ -55,6 +62,10 @@ // 上までスクロールで戻る $(window).scroll(function() { + // アカウント情報ボックスを非表示 + $('#tweet-account-box').css('opacity', 0); + $('#tweet-account-box').css('visibility', 'hidden'); + // スクロール位置を取得 var topPos = $(this).scrollTop(); diff --git a/htdocs/files/script.js b/htdocs/files/script.js index 1ce8c76c..f357044b 100644 --- a/htdocs/files/script.js +++ b/htdocs/files/script.js @@ -13,13 +13,23 @@ } else { $("#tweet-status").html('ログイン'); } + + // Twitterアカウント情報を読み込み + twitter = {account_name:'ログインしていません', account_id:'', account_icon:'/files/account_default.jpg'}; + if (Cookies.get('twitter') != undefined){ + twitter = JSON.parse(Cookies.get('twitter')); + $('#tweet-account-icon').attr('src', twitter['account_icon']); + $('#tweet-account-name').text(twitter['account_name']); + $('#tweet-account-name').attr('href', 'https://twitter.com/' + twitter['account_id']); + $('#tweet-account-id').text('@' + twitter['account_id']); + } // ***** 視聴数カウント・ストリーム状態把握 ***** setInterval((function status(){ $.ajax({ - url: "/api/watchnow.php", - dataType: "json", + url: '/api/watchnow.php', + dataType: 'json', cache: false, success: function(data) { @@ -111,8 +121,8 @@ setInterval((function status(){ $.ajax({ - url: "/api/epgguide.php", - dataType: "json", + url: '/api/epgguide.php', + dataType: 'json', cache: false, success: function(data) { @@ -260,6 +270,30 @@ } } }); + + // アカウント情報ボックスを表示する + var clickEventType = ((window.ontouchstart!==null) ? 'mouseenter mouseleave' : 'touchstart'); + $('#tweet-title').on(clickEventType, function(event) { + if ($('#tweet-account-box').css('visibility') === 'hidden' && (event.type === 'mouseenter' || event.type === 'touchstart')){ + $('#tweet-account-box').css('visibility', 'visible'); + $('#tweet-account-box').css('opacity', 1); + console.log('visible') + } else { + $('#tweet-account-box').css('visibility', 'hidden'); + $('#tweet-account-box').css('opacity', 0); + console.log('hidden') + } + }); + + $('#tweet-account-box').on(clickEventType, function(event) { + if (event.type === 'mouseenter'){ + $('#tweet-account-box').css('visibility', 'visible'); + $('#tweet-account-box').css('opacity', 1); + } else { + $('#tweet-account-box').css('visibility', 'hidden'); + $('#tweet-account-box').css('opacity', 0); + } + }); // スマホの場合にTwitterだけ下にフロート表示 $('#tweet').focusin(function(event) { @@ -314,6 +348,10 @@ }) .done(function(data) { $("#tweet-status").html(data); + $('#tweet-account-icon').attr('src', '/files/account_default.jpg'); + $('#tweet-account-name').text('ログインしていません'); + $('#tweet-account-name').removeAttr('href'); + $('#tweet-account-id').text('Not Login'); }) .fail(function(data){ $("#tweet-status").html('ログアウト中にエラーが発生しました…'); diff --git a/htdocs/files/style.css b/htdocs/files/style.css index 66565788..6252a0b1 100644 --- a/htdocs/files/style.css +++ b/htdocs/files/style.css @@ -234,6 +234,7 @@ select:-moz-focusring { display: inline-block; width: 320px; } + .select-wrap:before { z-index: 1; position: absolute; @@ -247,6 +248,10 @@ select:-moz-focusring { pointer-events: none; } +.select-wrap.open:before { + content: "\f077"; +} + @media screen and (max-width : 500px){ select{ width: 100%; @@ -947,6 +952,69 @@ td { /* ツイート関連 */ +#tweet-account-box { + display: block; + position: relative; + float: left; + width: 275px; + height: 67px; + left: 3vw; + margin-top: -65px; + border-radius: 10px; + background-color: #ffffff; + box-shadow: rgba(101, 119, 134, 0.2) 0px 0px 15px, rgba(101, 119, 134, 0.15) 0px 0px 3px 1px; + transition: 0.15s ease-in-out; + opacity: 0; + visibility: hidden; + z-index: 5; +} + +#tweet-account { + display: flex; + align-items: center; + padding: 10px; + height: 100%; + box-sizing: border-box; +} + +#tweet-account-icon { + height: 100%; + border-radius: 20%; +} + +#tweet-account-info { + display: flex; + flex-direction: column; + width: 100%; + margin-left: 15px; +} + +#tweet-account-name { + display: block; + width: 190px; + color: #272727; + font-weight: bold; + font-size: 17px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-decoration: none; +} + +#tweet-account-name:hover { + text-decoration: underline; +} + +#tweet-account-id { + display: block; + width: 190px; + color: #657786; + font-size: 15px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + #tweet-box { padding-left: 3vw; padding-right: 3vw; @@ -992,16 +1060,20 @@ td { } #tweet-title { + display: block; + position: relative; + width: 30px; padding-top: 1px; color: #1da1f2; font-size: 111%; float: left; - display: block; + text-align: center; + cursor: pointer; } #tweet-status { display: block; - width: calc(100% - 25px); + width: calc(100% - 30px); color: #1da1f2; float: right; text-align: right; diff --git a/htdocs/index.php b/htdocs/index.php index ded58523..025aa8f2 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -79,9 +79,21 @@ +
+
+ + +
+
+
-
+
+ +
diff --git a/htdocs/setting.php b/htdocs/setting.php index 67853cdf..8e9be796 100644 --- a/htdocs/setting.php +++ b/htdocs/setting.php @@ -264,7 +264,7 @@

個人設定はブラウザ・端末ごとに反映されます。

-

表示

+

表示

Twitter 投稿フォーム @@ -642,7 +642,7 @@
- +
@@ -755,7 +755,7 @@
- +
diff --git a/htdocs/tweet/callback.php b/htdocs/tweet/callback.php index 8594ed8e..967b9f83 100644 --- a/htdocs/tweet/callback.php +++ b/htdocs/tweet/callback.php @@ -27,11 +27,25 @@ $connection = new TwitterOAuth($CONSUMER_KEY, $CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); // APIのアクセスに必要なトークンを取得 - $access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier'])); + $access_token = $connection->oauth('oauth/access_token', array('oauth_verifier' => $_REQUEST['oauth_verifier'])); // セッション関数に入れておいたコールバック用トークンを差し替える - $_SESSION['oauth_token'] = $access_token["oauth_token"]; - $_SESSION['oauth_token_secret'] = $access_token["oauth_token_secret"]; + $_SESSION['oauth_token'] = $access_token['oauth_token']; + $_SESSION['oauth_token_secret'] = $access_token['oauth_token_secret']; + + // 取得したトークンでもう一度接続 + $_connection = new TwitterOAuth($CONSUMER_KEY, $CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); + + // 情報取得 + $info = $_connection->get("account/verify_credentials"); + + // アカウント情報をCookieに登録しておく + $cookie = json_encode(array( + 'account_name' => $info->name, + 'account_id' => $info->screen_name, + 'account_icon' => str_replace('_normal', '', $info->profile_image_url_https), + ), JSON_UNESCAPED_UNICODE); + setcookie('twitter', $cookie, time() + 7776000, '/'); // トップページにリダイレクト header('Location: '.$BASEURL); diff --git a/htdocs/tweet/logout.php b/htdocs/tweet/logout.php index b5ffa1e6..a5c21a77 100644 --- a/htdocs/tweet/logout.php +++ b/htdocs/tweet/logout.php @@ -27,6 +27,9 @@ setcookie(session_name(), '', time()-42000, '/'); //Cookieを削除 } + // アカウント情報が入ったCookieを削除 + setcookie('twitter', '', -1, '/'); + // 最終的に、セッションを破壊する session_destroy(); diff --git a/htdocs/tweet/tweet.php b/htdocs/tweet/tweet.php index e4e95bb5..fec3e794 100644 --- a/htdocs/tweet/tweet.php +++ b/htdocs/tweet/tweet.php @@ -131,7 +131,7 @@ } // 情報取得 - $info = $connection->get("account/verify_credentials"); + $info = $connection->get('account/verify_credentials'); if($result and !isset($result->errors) and !isset($info->errors)){ echo $tweet_type.':投稿に成功しました。'; @@ -156,4 +156,3 @@ } else { //セッションがない場合 echo 'ツイートするにはTwitterでログインして下さい'; } - diff --git a/htdocs/tweet/twitteroauth/src/TwitterOAuth.php b/htdocs/tweet/twitteroauth/src/TwitterOAuth.php index a2739eec..e9eab736 100644 --- a/htdocs/tweet/twitteroauth/src/TwitterOAuth.php +++ b/htdocs/tweet/twitteroauth/src/TwitterOAuth.php @@ -474,6 +474,7 @@ private function curlOptions() CURLOPT_CONNECTTIMEOUT => $this->connectionTimeout, CURLOPT_HEADER => true, CURLOPT_RETURNTRANSFER => true, + CURLOPT_FOLLOWLOCATION => true, CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->timeout, @@ -493,7 +494,7 @@ private function curlOptions() $options[CURLOPT_PROXYUSERPWD] = $this->proxy['CURLOPT_PROXYUSERPWD']; $options[CURLOPT_PROXYPORT] = $this->proxy['CURLOPT_PROXYPORT']; $options[CURLOPT_PROXYAUTH] = CURLAUTH_BASIC; - $options[CURLOPT_PROXYTYPE] = CURLPROXY_HTTP; + $options[CURLOPT_PROXYTYPE] = $this->proxy['CURLOPT_PROXYTYPE']; } return $options;