この広告は365日以上更新がないブログに表示されます。

Posted by 滋賀咲くブログ at

マストドンを楽しむためにやってみたあれこれ

2017年12月09日

この記事はMastodon Advent Calendorの9日目の記事です

過去記事とかぶる内容もありますが、自分がマストドンを4月から半年以上やってきて、「もっと楽しむにはどうしたらいいか」を考えてやってきたあれこれを主なものに絞って書いていきます。



対話botびわこ@びわ湖丼




機能


・「びわ湖の水位は?」と質問すると当日朝のびわ湖の水位を答えます。

・URLを含んだトゥートを送るとその本文を解析し、要約してくれます(重要文の抽出)。
画像中の対象ページ:https://internet.watch.impress.co.jp/docs/imreboot/column/1094016.html

・その他、適当な対話をします。
・地域ニュースを発信します。

動機


自動対話botの西郷どんのつんを見つけて面白いと思い、管理人の臣さんに実装を教えていただいたところから自分も作ってみたくなりました。ちょうどその頃ほしかどよぞらさんびわ湖丼を擬人化していただいて、アイコンとして使わせていただくお願いをしたところぴったりな画像を作っていただきました。これは機能としても面白いbotにしなければならないと思い、現在もそのアイデアを探したりしているところです。

実装


応答の種類の振り分けにはDialogflow(旧API.AI)を使っています。そこから「びわ湖の水位」を返すか、「リンク先の本文の要約」を返すか、「対話」を返すかに分かれて、それぞれ処理しています。

・びわ湖の水位を返す
国土交通省のページから本文の水位部分を抽出しています。 http://www.kkr.mlit.go.jp/biwako/

・リンク先の本文の要約
リンク先のページから「本文」をreadabilityで取り出し、summpyで要約(重要文の抽出)を行っています。

・対話
Docomoの雑談対話APIを使っています(関西弁バージョン)。一応、対話相手を覚えていて、同じ人との対話には過去の内容が反映されて受け答えが変わってくるらしいです。

(多分過去に滋賀に台風が近づいている話をしたのを引きずっている)

・地域ニュースの発信
これは先日の7_nanaさんの記事でも説明されたマストどすのちどりと仕組み的には同じです。ただし「滋賀」タグの更新頻度が低いため、検索条件をタイトルに「滋賀」「琵琶湖」「びわ湖」のいずれかが含まれることにしています。




じゃんけんでデスゲームするMastodon




機能


定期的にbotがじゃんけんをします。じゃんけんに負けるとこのインスタンス内のアカウントが凍結(suspended)になります。@megamiをリモートフォローで外部インスタンスからも参加が可能です。その場合負けてもアカウント本体が凍結することはありませんが、参加はできなくなります。



動機


「デスゲーム×SNSの組み合わせ」というアイデアが以前からあって、マストドンという存在を知って実際に形にしてみました。

実装


cronで定期イベントを発生させています。アカウントの凍結は直接SQLを走らせています。
じゃんけんは「ぐー」「ちょき」「ぱー」の他に絵文字でもいけます。
バランス調整として「復活」のイベントも実装してみました。倒したモンスターも定期的に復活してきます。複数人でどこまでモンスターを倒し続けることができるかに挑戦する感じになっていると思います(挑戦者求むです)。




位置情報を付加するTootmap



GitHubのAppsのリストに載せてもらえました。

機能


ハッシュタグ付きトゥートに位置情報を付加します。地図上ではハッシュタグTLをインスタンスから取得し、位置情報の付加されているトゥートをマッピングします。また地図上の任意の位置、もしくは端末の現在位置を付加したトゥートが可能です。



動機


自分のトゥート内容の傾向(〜でこれ食べた、〜でここに来た)や、フォローしてる人のアカウントの方向性を見るに、位置情報の実装があればもっと楽しめるんじゃないかと思いました。ツイッターでは近辺の施設や端末自身の位置情報を付加することが可能です。

実装


調布丼(2017/12/09現在SSL期限切れ中)の方で位置情報の実装が独自で行われており、その実装が公開されていました。ただし当時の自分はRuby on Railsの知識に乏しく、頻繁に発生するマストドンのバージョンアップの追随が厳しくなるだろうという予感と、他のインスタンスの人でも利用できるような実装が望ましいと思いこれを見合わせました。

マストドンに手を加えず位置情報を付加する方法として「トゥート内に呪文を埋め込む」のが手っ取り早いと思いました。これであればコピペでスマホアプリからも投稿が可能です。その呪文を埋め込まれたトゥートを抽出してマッピングする外部ページを作る必要がありますが、呪文がその外部ページへのリンクを兼ねれば誘導はしやすくなります。さらに地図側では呪文中の位置情報を初期表示位置にすれば無駄の無い実装になりそうだと思いました。

(呪文の例)

呪文の埋め込まれたトゥートを取得する効率を考えた時にハッシュタグTLを対象にするのが良いと考えました。ハッシュタグTLであれば連合に流れてくる外部インスタンスのトゥートも拾えますし、ハッシュタグを切り替える事で取得するTLが切り替わり、多様な地図を表示できる事になります。

当初は地図上に表示される呪文をコピペしてマストドンの投稿フォームに貼り付けという手順での利用でしたが、マストドンに実装されたshare機能を利用して呪文付き投稿を行えるようにしています。




メディアTLを公開するTootpic



機能


ハッシュタグTLに含まれる添付ファイル、Youtube等のリンクを抽出してそれらを個別に表示します。

動機


#写真部 #ラーメン #紅葉狩りバトルロワイヤル で写真が流れてきたり、 #pubg #np で動画が来たりします。マストドンのTL中では動画が埋め込まれなかったり写真がトリミングされて表示される等、あまり表示に恵まれていません。では写真・動画をメインで見せるページがあればまた違う楽しみがあるんじゃないかと思って作ってみました。

実装


ハッシュタグTLに対して添付ファイルがあるか、Youtube、ニコニコ動画等の埋め込みリンクが本文中に含まれているかを判定してそれらを個別に抽出しています。
・Youtube
・Twitch
・ニコニコ動画(sm○○○)
・SoundCloud
が埋め込みリンクの対象です。

ドメイン+ハッシュタグの組み合わせを指定してページを開く呪文も使えます。
https://tootpic.net/?domain=mastodon.art?tag=mastoart
https://tootpic.net/?domain=pawoo.net&tag=ワンドロ

shareボタンも一応付けています。




ハッシュタグブーストアカウント


こんなのあれば便利かなと思って作ったものです。アイデア紹介です。

@biwakodon.com#関西連合
@biwakodon.com#写真部

LTLのハッシュタグつきトゥートをブーストします。通常外部インスタンスのハッシュタグTLには、外部インスタンスからフォローされているアカウントのトゥートしか届きません。しかしこのアカウントを外からフォローしてもらえれば、ブーストによってびわ湖丼LTLのハッシュタグトゥートが全て拾い上げられます(もちろん「公開」範囲であることが条件になります)。

実装にはStreamingAPIを使っています。このエンドポイントの一覧にはありませんが、ソースを見ると/api/v1/streaming/hashtag/localなるエンドポイントがあるので、これを見ています。




~何か作る上での方針的なもの~


自分は自身の管理しているマストドンに対して「これは自分が運営しているSNSだ」という意識が、もしかしたら薄いかもしれません。どちらかと言えば「みんながやってるマストドンに参加している」になります。なので、作るものの基本方針は「どのインスタンスからでも使える事」になります。
例えば誰かが面白いbotを作ったとします。インスタンス内での利用を想定されたものだったとしても、リモートフォローで他のインスタンスにもトゥートが拡散する可能性があります。つまりはインスタンス内で楽しむものだったのが実はマストドン(あるいは同じプロトコルを使ったSNS)全体に対しての実装になるという事です。自分はそうなるのが面白いと思っています。


とは言え例外


例外でマストドンに直接手を入れたカスタマイズを紹介しておきます。




トゥートにドメインクラスを追加してカスタムデザインに利用



機能


ホームや連合に出てくる外部インスタンスのトゥートに、インスタンス毎に独自スタイルを適用できるようHTMLのクラスを埋め込みます。

実装


カスタマイズ部分はGitHubで公開しています
例えば「biwakodon.com」から発信されたトゥートなら「biwakodon-com」というクラス名がトゥートのHTMLに埋め込まれます。これを利用してマストドン本家の機能であるカスタムデザインでインスタンス毎にトゥートに独自スタイルを適用できます。

こんな感じで、
.mastodon-nara-jp{ background-color:#28372a }
.mstdn-osaka{ background-color:#352837 }
.mastodos-com{ background-color:#283637 }

うっすら背景色を変えています。




最後に


今日12/9は19:30からブラタモリで彦根です


Posted by wakin at 03:09 Comments( 0 ) mastodon

びわ湖丼3ヶ月目

2017年07月15日

びわ湖丼を始めて3ヶ月になります。

色々あったこと、やってきたことなどをまとめます。最初の1ヶ月は前回まとめているので、それ以降の2ヶ月分です。


お天気bot、びわ湖の水位bot

滋賀の天気をトゥートするbotと、びわ湖の水位や瀬田川洗堰の放流量をトゥートするbotを作りました。毎朝1回トゥートしています。
https://biwakodon.com/@wakin/42100

https://biwakodon.com/@wakin/42322

これに合わせてびわ湖丼でのbotアカウントの事についてのルールを作りました。
びわ湖の水位は下流の人も気になるそう。


関西連合インスタンスを色分け表示

うっすらとですが、トゥートの背景に色を付けました。連合TLで繰り広げられているやり取りが少しでも可視化できればと思ってマストドンのカスタマイズをしました。
https://biwakodon.com/@wakin/76518



その後追加。
https://biwakodon.com/@wakin/97459



マストドン会議4

マストドンの火付け役の人たちが主催するマストドン会議が大阪であったので行ってきました。
http://osaka-mastodon.peatix.com/?lang=ja
すでにこの時に会場間違えてる。
https://biwakodon.com/@wakin/111357

無事たどり着いて、ステッカーいただきました〜。
https://biwakodon.com/@wakin/112149


ニコ生のURL。プレミアム会員はタイムシフト見れるのかな?
http://live.nicovideo.jp/watch/lv299499733


びわ湖丼マップ

マストドン会議4に間に合わせるべく作りました。

当初の構想。
https://biwakodon.com/@wakin/87015

アプリからも使えたら良い。
https://biwakodon.com/@wakin/91778

ひとまずマストドン会議4に間に合う。
https://biwakodon.com/@wakin/109846

びわ湖丼マップは連合のハッシュタグTLをマップ表示してるだけなんで、いろんな地図が作れます。びわ湖丼の連合に載るアカウントであれば、他のインスタンスからも掲載可能です。
https://biwakodon.com/@wakin/127040

使い方を記載しました。


擬人化

ほしかどよぞらさんがびわ湖丼を擬人化されました。マストドン会議の配信を見て、色々とマストドンの擬人化をされておられるようです
https://pawoo.net/@AM0300lain/20786591

その後もこのキャラクターの画像を描かれています。

写真部。
https://pawoo.net/@AM0300lain/21532976

花火。
https://pawoo.net/@AM0300lain/26759928

とても可愛らしいと思います。

対話AIbot

鹿児島の人にご教示いただいて対話AIbot作りました。びわ湖の水位も答えてくれます。
https://biwakodon.com/@wakin/206803

ニュースの要約とかさせてみたい。
https://biwakodon.com/@wakin/203342

その後、よぞらさんにアイコン作っていただく。
https://biwakodon.com/@wakin/224588


https://biwakodon.com/@biwako/224573

どちらかというと水位とか滋賀の情報をトゥートする方をメインにして、それ以外の例外的なやり取りを対話AIに任せる、という方向でやりたいなあと思っています。


ハッシュタグブーストbot

びわ湖丼と他のインスタンスの人とでやりとりの行き違いが少しでも減ればと思って作りました。
https://biwakodon.com/@wakin/245296

こちらをフォローすれば、びわ湖丼内でハッシュタグの付いたトゥートが自動的にフォローした人のホームに流れこんでくるという寸法です。


状態監視グラフ表示

https://biwakodon.com/@wakin/266120

zabbixの監視です。
https://biwakodon.com/@wakin/263736

こちらはびわ湖丼のページの応答時間がどれくらいかかっているかを1分おきに確認しているグラフです。

こちらはびわ湖丼がトゥートとかをやりとりした実績のグラフです。



花火大会背景変更

夏はびわ湖の周りで結構花火大会があります。花火大会のある夕方〜夜は背景に花火を打ち上げてみることにします(手動)。
https://biwakodon.com/@wakin/275051

花火大会情報はこの辺参考に。


埋め込みツール

これが無いとブログ書く気になれなかったんで自作しました。
https://biwakodon.com/@wakin/273207

https://biwakodon.com/@wakin/305338

ご自由に使っていただければと思います。(動作確認はほとんどしていませんが…)



以上。




Posted by wakin at 11:45 Comments( 0 ) mastodon

これまでの自分のMastodonの事まとめ

2017年05月21日

びわ湖丼立ち上げて約1ヶ月。Mastodonのサーバ構築の経緯とか、現状についてまとめておこうと思います。




4月15日。平日のうちに何かのネットの記事を見ていて、休日ということで早速試しました。このときはまだ自分のローカル内。


次の日、つまづいた原因をなんとなく把握。


dockerを使わない手順で初めてMastodonの構築に成功します(以降、自分の中ではdocker無しがデフォルト)。でもこれをインターネットに晒す気はさらさら無し。


一旦はこれで満足しました。


立ち上げてからそう言えば使ったことなかったと思い、適当なインスタンスに参加しています。そこで初めてだいたいこういうものかと把握。トゥートはせず、ひたすらROM。他にどんなインスタンスがあるのかと調べたりします。


4月20日、突然さくらVPSを借りてお名前.comで初めてドメインの取得を行ってびわ湖丼を立ち上げます。


多分、地域系としては10番目以内には載せてもらえてました。

自分がMastodonを立ち上げて公開したきっかけとしては、このMastodon一覧の中に「びわ湖」ってあったら面白いなという事だったと思います。まだ全体的に数も少なく、「東京」や「大阪」といった都市圏だけがある中で、突然地方の「びわ湖(滋賀)」が来る事の意外さ。きっといつかは他の誰かが立ち上げるんだろうけど、このタイミングで載せられるのは今しかないと思い、自分で立ち上げました。

実は「びわ湖に暮らす人」なんで、正確には「滋賀丼」ではありません。しかしまあ、滋賀を流れる川は大体がびわ湖に注いでいるはずなんで、甲賀の人も東近江の人も何も問題はありません。
「滋賀」でなく「びわ湖」としたのは、概念より実体のある方が写真を撮ったり話題にしやすいんじゃないかとなんとなく思ったからです。あと湖とか山とか、その土地にある何かで集まれるのってもしかしたらびわ湖くらいなんじゃないか?という気もしたからです。(「富士山」もそのうち立つといいな)

「マストドン 一覧」で出てくる大体の一覧サイトに載るようになり、ここで一区切りつきました。


初めて人が来て喜んでいます。


Mastodonの構成要素について全く知識・経験が無かったため、慌てて検証環境を構築しています。

自分の経験値。

Ruby on Rails → ほぼ無し
Sidekiq → 初耳
React → ほぼ無し
Redis → 初耳
Git → コマンドベースはほぼ無し(これが痛い)
Postgres → 経験あり(唯一の救い)


普段VMWareだったので、VirtualBoxの使い勝手の良さに喜んでいます。



わからないことだらけなのに何故かカスタマイズに手を出します。
びわ湖丼では、「:biwako:」と打つことで絵文字に変換されるカスタマイズを行っています。無駄にカラフルです。



Twitterとの差別化、Mastodonの使い方を模索しています。


じゃんけん丼のコンセプト。


実は過去に「SNS上で負けたら退場のデスゲーム」は人狼やった時にふと思ってました。最後の「揮発性を持ったゲーム」っていうのはちょっと違いますが、要は「いつまでもずっと参加できると思うなよゲーム」です。


一つ転換期が来ました。鎖国されていた鹿トドンの管理人さんから、近隣の地域系インスタンスということでお誘いを受けます。びわ湖丼はあっさり陥落しました。



5月19日、さくらVPSでもうひとつサーバを借りてふたつ目のインスタンスを実験中ということですが立ち上げました。

じゃんけん丼の詳細についてはこちら。まだまだ実験途中で、これから色々と改良予定です。

登場人物色々作れた面白いな。

…いまにいたる。


Posted by wakin at 12:07 Comments( 0 ) mastodon

biwakodon.com立ち上げました

2017年04月22日

マストドンが話題になって2週間ほど。

地域系のマストドンも人口の多い都市を中心にいくつか立っているのを見て、思いました。

今のうちに滋賀のマストドン立ててしまおうか?

ということで立ち上げました。 biwakodon.com

私の個人運用です。参加される場合、他のサービスのアカウント情報(パスワード)を使いまわすのはなるべく避けてください。

このインスタンスでは、地域系の話題を中心にしていきたいと思います。

みなさんの参加をお待ちしています。




そういえば、なんか西川兄貴が野洲に帰ってきてるようですね。





Posted by wakin at 19:12 Comments( 0 ) mastodon