[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
https://shunshun94.github.io/shared/sample/discordLogPicker.html で取得したログの扱い方の話。
これで取得したログを編集するときの色々を書いていく。
ダウンロードしてきたファイルは以下のような内容がたくさん並んだものである。
<p class="tab0 _302451274706583553" id="msgId_560307394102427653"> <span class="time"><span class="unixTime">1553658092762</span> <span class="readbleTime redableTime">12:41:32</span></span> <span class="name">ひよこ</span> <span class="message">よろしくお願いします。<br/> 落ち着いたらごりっといれます。</span> </p>
各行の説明をしていく。
<br/> と記入することで改行できる。これを入れずに改行しても表示上は改行されないので注意。ここを編集することで発言内容を編集できる。誤字とかを直すときはこここの tab0。これを tab1 にすると背景が黄色に、文字が小さくなりコメントっぽくなる。なお背景が黄色なのは身内には不評なのでどこかで変わるかもしれない。
<p class="tab0 _302451274706583553" id="msgId_560307394102427653"> <span class="time"><span class="unixTime">1553658092762</span> <span class="readbleTime redableTime">12:41:32</span></span> <span class="name">ひよこ</span> <span class="message">よろしくお願いします。<br/> 落ち着いたらごりっといれます。</span> </p>
tab0 の直後にあるこの数字の羅列。以下の例だと _302451274706583553。これは各発言の発言者ごとに付与される class となる。CSS を用いてこの class のフォントカラーを設定すればその人の発言すべてのフォントカラーが変わる。ログ取得の際に自動彩色するようにしていた場合は無効なので注意。
<p class="tab0 _302451274706583553" id="msgId_560307394102427653"> <span class="time"><span class="unixTime">1553658092762</span> <span class="readbleTime redableTime">12:41:32</span></span> <span class="name">ひよこ</span> <span class="message">よろしくお願いします。<br/> 落ち着いたらごりっといれます。</span> </p>
基本的な HTML の知識となるが、以下のようにすると見出しを出せる。
<h1>大見出し</h1> <h2>中見出し</h2> <h3>小見出し</h3> <h4>もっと小見出し</h4> <h5>さらに小見出し</h5> <h6>すごく小見出し</h6>
最近、こういう TRPG のセッションをやっている。
もっとゆりゆりしてほしい、という話が挙がったので「ゆりゆりした話について何も知らないので入門書とかホワイトペーパーとかよこせ」と返したら「とりあえず心と声を女の子にしてみろ」と言われたのでボイスチャットで女声を出せるようになってみる。
以下手順は 【趣味/PC】『Discord』で『恋声』を使う方法~今日から始めるネカマプレイ~:クラム本 - ブロマガ を参考にやった。
音声の変換およびリダイレクトを行ってくれるアプリ。
恋声 萌 のホームページ の http://koigoemoe.g2.xrea.com/koigoe/koigoe.html から最新版をダウンロードする。私が入手した時点で Version 2.87 が最新であった。
ダウンロード後、任意のディレクトリに解凍すればよい。
仮想の音声入力端末。
NETDUETTOラボ の https://www.netduetto.net/download/ から NETDUETTO β2 の適切なバージョンをダウンロードする。私は Windows 10 を使っているので「DOWNLOAD for Windows 64bit」を入手した。
ダウンロード後、NETDUETTO-JP-win-x64-2.1.0.msi (win-x64-2.1.0 の部分は多分ダウンロードしたバージョンごとに違う) を実行し、インストールを完了する。
Discord をブラウザから開き左下の歯車マークを押す。
画面左側の「画面アプリの設定」から「音声・ビデオ」を選択し、
入力デバイスを「ライン (Yamaha NETDUETTO Driver (WDM))」を変更する。
先に入手した恋声のディレクトリ内にある koigoe(x64).exe をダブルクリックして起動する。
起動したらまずウィンドウ右下の「設定」をクリックし、「再生デバイス」を「ライン (Yamaha NETDUETTO Driver (WDM))」を設定し「OK」を押す。
然る後に「M→W」(Man→Woman の略だろう) をクリックし、マイクのボタンをクリックする。
おそらく、これであなたの声が女性の声になったはずだ。あなたが女性なら「W→M」を押せば男性の声でやれるはずだ。
また、Discord の設定部分について他のアプリで同様のことを行えば他のアプリでも声を変更できるはずだ。
前に Apache2 からアクセスするようにゆとシート2 for SW2.5 を動かしたので、nginx 経由でなんとかする。
いろいろあって nginx 経由で cgi したくなったので実験台に過去に動かした実績があるゆとシート2が選ばれたのである。前に紹介した時に比較してさらに強力な機能がゆとシート2 for SW2.5 には増えているので各位も触ってみてほしい。
この記事自身は FCGI Wrapの公式ページを参考にセットアップしました。
と言っているので FCGI Wrap | NGINX を読んだ方が良かったか、と今更後悔している。
Ubuntu 16.04.6 を使っている。
nginx 1.10.3 を使っている。
sudo apt install fcgiwrap する。
なんか、以下のような便利なやつがあるので流用する。
$ cat /usr/share/doc/fcgiwrap/examples/nginx.conf
# Include this file on your nginx.conf to support debian cgi-bin scripts using
# fcgiwrap
location ~ \.cgi$ {
# Disable gzip (it makes scripts feel slower since they have to complete
# before getting gzipped)
gzip off;
# Set the root to /usr/lib (inside this location this means that we are
# giving access to the files under /usr/lib/cgi-bin)
root /usr/lib;
# Fastcgi socket
fastcgi_pass unix:/var/run/fcgiwrap.socket;
# Fastcgi parameters, include the standard ones
include /etc/nginx/fastcgi_params;
# Adjust non standard parameters (SCRIPT_FILENAME)
fastcgi_param SCRIPT_FILENAME /usr/lib$fastcgi_script_name;
}
$ cd /etc/nginx # もともとあったファイルを退避 /etc/nginx$ sudo mv fastcgi.conf fastcgi.conf_bk # 上述のファイルを複製 /etc/nginx$ sudo cp /usr/share/doc/fcgiwrap/examples/nginx.conf ./fastcgi.conf
適当なエディタで以下のようにいじる。太字部分がいじった部分。
/etc/nginx$ cat fastcgi.conf
# Include this file on your nginx.conf to support debian cgi-bin scripts using
# fcgiwrap
# なお、ここを /ytsheet とかにしてしまうと css とかが読めなくなる
# 拡張子が .cgi じゃないのであればまた設定は考えないといけない。
# TRPG 系なら .rb とか多いのでは?
location ~ \.cgi$ {
# Disable gzip (it makes scripts feel slower since they have to complete
# before getting gzipped)
gzip off;
# Set the root to /usr/lib (inside this location this means that we are
# giving access to the files under /usr/lib/cgi-bin)
# root /usr/lib;
# Fastcgi socket
fastcgi_pass unix:/var/run/fcgiwrap.socket;
# Fastcgi parameters, include the standard ones
include /etc/nginx/fastcgi_params;
# Adjust non standard parameters (SCRIPT_FILENAME)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
返す刃で nginx の config ファイルをいじる。太字部分がいじった部分。
server {
include /etc/nginx/fastcgi.conf;
# Apache2 で前に設定したときにここに入れたので
root /var/www/html;
また、ファイルのパーミッションが適切に設定されていないと 403 が返ってくる。リポジトリ記載のガイドとか、nginxで403を回避するために、パブリックファイルの権限についておさらい - Qiita とかを参考にしつついじる。
Apache2 で動かしたときの情報記載のものは以下の感じ。詳細はリンク先を。
こんな感じで動いた。
Discord のチャットログを取得する何か を 紹介していただいた (Discordのログを取得する – 8528)。この話をしていてわにゃわにゃ挙がった要望をいくつか反映したのである。
(雛´-`).。oO(Discord のチャットログを DL するツールに以下の変更を実施した
— しゅんしゅんひよこ (@Shunshun94) March 17, 2019
・発言者の名前をニックネームにした
・チャットに送ったファイルを表示する機能を追加
・フォントカラーを自動設定する機能を追加。ON/OFF はユーザが設定可能https://t.co/fcgKweaQJj )https://t.co/SW7k48OtcW
アプリそのものは https://shunshun94.github.io/shared/sample/discordLogPicker.html から利用できる。
Python を使っていたら次のように怒られた。
SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
割とよくあるエラーらしく。リンク先を日本語にしてみる。
SSL 証明書を検証する際、その検証方法に応じていくつかの警告を urllib3 は発します。各渓谷はそれぞれ異なる状況によって発され、それぞれの手段で解決が可能です。
HTTPS で接続する URL にリクエストを送る際に証明書の検証を行わない設定になっていると発生します。Certificate verification を参考にこの問題を解決してください。
もはや古いものとなった SSL モジュールを用いている Python2 を使っている場合に発生します。そういった古い SSL モジュールは失敗すべき安全ではないリクエストの送信を成功させたり、成功すべき安全なリクエストの送信を失敗させたりします。Certificate verification in Python 2 を参考にこの問題を解決してください。
2.7.9 未満の Python2 を利用している場合に発生します。古い Python2 は SNI をサポートしていません。そのため、クライアントはサーバから共有された有効な証明書を無効なものと判断することがあります。Certificate verification in Python 2 を参考にこの問題を解決してください。
検証されない HTTPS リクエストを送ることは まったくもって お勧めできません。しかしながら、そのリスクを理解したうえでこれらの警告を無視するには、disable_warnings() が利用できます。
>>> import urllib3 >>> urllib3.disable_warnings()
抑制した警告は標準の logging module で取得することが可能です。
>>> logging.captureWarnings(True)
また、環境変数をPYTHONWARNINGS を用いたり、-W フラグ を用いることでも警告の抑制が可能です。