marukot-chの日記

弱小SEの雑記です

word wolf#4821が認証されました!

色々申請しておりよくわかりません*1が、去年の11月には申請したと思われるBotがDiscordによって認証されました!

来年までにはdiscord.pyのスラッシュコマンドに対応させないとまずそうなので、まったり考えています。

イラストリー的なものをいらすとやで表現した機能を作ろうかなぁと思いつつもあんまり進んでいません。

 

Botは下記から追加できます。

https://discord.com/api/oauth2/authorize?client_id=823034751945932841&permissions=2147511360&scope=bot%20applications.commands

認証されたword-wolf bot



 

今までの記事はコチラ

 

marukot-ch.hatenablog.com

 

marukot-ch.hatenablog.com

 

*1:Discordの申請の結果等はEメールできており、どれかどの申請かが全然分かりません。Discord開発者ポータル上でも全然分かりません。なにを書いたかも見れないです(審査中ということがかろうじて分かる)

DiscordとSlackのメッセージをやりとりできるやつ作りました

  • これはなに?
  • なぜ作ったの?
  • 注意点
  • こんな感じ
  • 動かすための流れ(けっこう面倒くさいです)
    • Discord
    • Slack
    • Botを動かす
  • GitHubリポジトリ
  • 参考(環境変数の説明)
  • 反省点

これはなに?

タイトルのとおりですが、Webhookを使って、Discordのメッセージ・写真をSlackの特定のチャンネルに投稿、SlackのメッセージをDiscordの特定のチャンネルに投稿するBotを作成できるツール?(DiscordのBot(discord.py)とSlackのBot(bolt製))を作りました。

 

何も考えてないので複数のサーバーとかに対応はできていません。そのため、1つBotを作ったら、1つのSlackワークスペースと1つのDiscordギルドに対応させる感じです(1つのBotで複数対応はできません)。

 

なぜ作ったの?

DiscordとSlackでコミュニティが分かれてしまっていて、知見が分散してしまうことがあって悲しいので作ってみました。

また、Slackは無料版を使っているのでデータが失われてしまうのことも悲しんでいたことを思い出しました。

続きを読む

田舎の教育と公共交通について(結論もなくつまらない話)

www3.nhk.or.jp

こちらの記事を読んだ。一部加筆の上、抜粋する。

 月に1度の定例記者会見でも“慎重に言葉を選ぶタイプの経営者”という印象だった長谷川社長。その長谷川社長が、これまで先送りにされてきた赤字路線の問題について「『輸送密度』が2000人に満たない路線はどのような形でも黒字化は難しい」「バスへの転換も含め検討」とはっきり口にしたことで、関係者に波紋が広がりました。
...
 鉄道会社、とりわけ旧国鉄から民営化したJRには、公共インフラとしての役割が強く求められています。このため「地域の移動の足」である地方路線は、たとえ赤字であっても存続させ、利用客が多い都市部や、新幹線で得た収益で赤字を補うというビジネスモデルを確立
...
 しかし、新型コロナの影響でリモートワークが定着するなど、ライフスタイルの変化によって、都市部でも鉄道需要が減少JR西日本の決算は、2020年度、2332億円の最終赤字となったのに続き、2021年度も最大1165億円の最終赤字になる見通しになっています。

 田舎は交通の便が悪いことが多い。自分の経験ではこんな感じだった。

  • 小学校は徒歩25分程度(2.5km)
  • 中学校は自転車15分程度(4km)
  • 高等学校は自転車25分程度(12km)

*小学校のときは冬はバスがあった気がする。中学校、高等学校は忘れた

 高等学校のころ、よく祖父母に車で送ってもらった覚えがあるので冬でもスクールバス的なものはなかったか。もちろん、電車は通ってない。コンビニなんてものは高校の近くまで行かないとないし、遊ぶところなんてその辺の野山くらいしかなかった。自分語り終わり。

 

 はてなブックマークでは、下記のようなことが書かれていた

  • バス転換にするとどうなのか掘り下げられていない
  • 輸送密度が低いところで鉄道を維持する意義は?
  • 引導を渡すべき

 例えば「バス転換」したとする。それはあくまで、急遽廃線してしまったための救済措置でしかない。今まで電車を使っていて通学していた学生は助かるが、今後はないのではないか(これは完全な妄想/経験者に是非語ってもらいたい)。もしそうなると、通うことができる学校が極端に減ってしまう。

 田舎は大学がないので外に出る事が多いイメージがあるけれど、もしかすると今後は高校からそうなってしまうのかもしれない。しかし、コストが嵩むので高校にすら行かせなくなる可能性もある(田舎の就学率はどうだっけ?)。

 また、バス通学できた場合でも、帰宅時間がカッチリ決まってしまう気もする(何段階か用意されるのだろうか?)。
 そもそも電車がないような田舎はバスもあまり整備されておらず、生活には自家用車が必須。子供の場合は、家族に車で送ってもらうか、自転車か徒歩で頑張るしかない。都会だったら定期券を使ってどこへだって行ける。この差は悲しい。インターネットだったら世界中一瞬でいけるのに、自分ではせいぜい地元の都会?くらいしかいけない*1。田舎で通信回線がADSLWiMAXだったらもう地獄なのでは*2

 

 そう、田舎は滅ぶべきなんだなぁと思った。

(人口密度が低い→)輸送密度が低い→廃線(公共インフラが不便)→引っ越す→高齢者率が上がり限界集落へ→...→田舎は滅ぶ

 フットワークの軽いもの、愛着がないもの、そういう人たちからいなくなり、おそらく最後に残るのは高齢者たち。限界集落になり、廃村まっしぐら。そんなイメージ。このサイクルから抜け出す方法はあるのか?
 この問題、どういうふうに解決するべきだろうか。解決するに値する問題なのだろうか?

 

 教育の問題については、リモート通学が標準化すれば解決するかもしれない。ただ、コロナ禍ならまだしも、今後はどうなんだろう? つらい気持ちになったので、リモート通学つながりで、下記の漫画を読んでふて寝しよう。

 〜オチもなく終わり〜

to-ti.in

*1:駅のある場所まで移動し、そこから都会に行くことは可能だが、電車を使うということをやったことがないので思考が制限される

*2:NTT西日本はエリアごとに提供範囲を公開してて面白い→フレッツ 光ネクスト|次世代ネットワークで快適|NTT西日本公式

discord.pyの開発が復活したと聞いて嬉しい(追記あり/discord.py v1.7.3はたぶん2022年中は使えます)

毎日GitHubリポジトリを監視している方にとっては既知の情報かもしれないけれど、discord.pyの開発が再開したという話がdiscord.pyのサーバーで連絡された。

github.com

*Archiveが解除されている

 

凍結を発表してからの6ヶ月についてと、今後についてgistが公開されている。

dpy_development_plans.md · GitHub

開発を再開した理由だけ簡単にメモしておく。

何故開発を再開したか

  • 2022/5/1にdiscord.pyの安定版であるv1.7.3が使えなくなるため(v1.7.3ではdiscord API v7を使用しており、それが5/1から使用できなくなる)
    →これは当時の話です。後日、v7の廃止は2023年初頭へ変更されました!
     (discord.py v1.7.3でも2023年初頭まで使えます!)

     ただ、メッセージインテントは8月以降は申請必須という話もあるのでちょっと正確にはわかんないですけども(discord.py 1.7.3はメッセージインテントがない)
  • Discord Botのライブラリとしてdiscord.pyは2番めに人気があるため、このまま対応しない状態では壊滅的なダメージが発生してしまう。それを避けるため開発を再開した
  • discord.pyの開発中止により、PythonBotが断片化されたこと(discord.pyの代替ライブラリの出現に期待したが、そうならなかったこと)

 

後は、Discordが改善したか、discord.py v2.0での新しい機能の説明、今後について、謝辞について記載されている。

 

感想

一旦、discord.py v2.0aを使ってお茶を濁しつつ、discord API v9が廃止されたら別のライブラリを使うしかないかな〜と考えていたので、とても嬉しい。今は別のライブラリを使ってスラッシュコマンドを実装していたので、discord.pyに書き直さないとね。

Discordの情報収集にRSS利用するとどう嬉しいのか?

前回の記事を見てそんなんで最強になれるんかいな?と疑問に思った人がいると思うので、自分が主に使っているRSSについて書いておきます。

f:id:marukot-ch:20220223141423p:plain

強いロボットアーム(いらすとや)
続きを読む

Discordを最強の情報収集ツールにする256の方法(その1)

概要

 みなさま、Discordは使っているでしょうか? おそらくお友達等と使っているものと思います。今回、個人用のDiscordのサーバーに導入すると便利になるGoogle Apps Script付きのGoogle Spreadsheetについてお話しします(導入方法)。
 個人で(無料で)使う分にはSlackよりも断然Discordのほうが使いやすいので、ちょっと興味が湧いた方は是非導入してみてくださいっ!

導入するとどうなるか

  • Steamのフリーウィークエンドのゲームについて投稿されます
    Steamでは有料販売されているゲームを期間限定で無料プレイできるものがあります。その一つがフリーウィークエンドです。
  • 指定したキーワードを含むRadikoの番組について投稿されます
  • RSSで指定したキーワードを含む記事が投稿されます(キーワード指定なしも可)

列挙してたらしょぼくて挫けそうです...

目次

 

試してみる

Googleスプレッドシートをコピーする

RSS2Discord_webscr - Google スプレッドシート

 ファイル > コピーを作成 を行い、自分のGoogleドライブにコピーを作成する(GASもコピーされる)。

ドキュメントをコピー

f:id:marukot-ch:20220213221928p:plain

ドキュメントをコピー

 

Settingシートに設定を書き込む

  • webhooks: Discordで取得したWebhook URLを記載(デフォルトで使用されるもの)
  • userName: 投稿で使いたい名前を記載
  • token: 未使用なのでそのままで良いです(背景色紫のセルに入力するイメージ)

f:id:marukot-ch:20220213143314p:plain

Settingシート

RSSシートに設定を書き込む

  • Type: 
    RSSか、特殊なものを指定できます。
    RSSの場合、RSSを指定ください。
    STEAMの場合、フリーウィークエンドをなんとなく通知できます。
    RADIKOの場合、ラジコ番組表を検索します。
    ココにないのが欲しかったら、自分で追加しよう!
  • URL: 
    RSSのURLやRadikoで検索したい文字列
    Radikoの場合、「<検索したい文字列>;<futureかpastか未指定>;<都道府県名orJP+県コード>)」の形式で記載すること!
    例(RSS): https://www.nhk.or.jp/rss/news/cat1.xml
    例(Radiko): 青葉市子;;静岡県 または、青葉市子;;JP22
  • Title: 
    タイトルとして表示するものを記載します。
  • Webhook URL: 
    Webhook URLを記載します。デフォルトで良い場合は未記載でOK。
  • InterestingThingsFilter: 
    全部投稿したい場合は「FALSE」を指定します。基本的に興味ない記事が多いけれど、興味があるキーワードがある場合「TRUE」を指定します。興味のあるキーワードは「InterestingThingsシート」のA列に列挙します(静岡と同じような感じで)。

f:id:marukot-ch:20220213143527p:plain

RSSシート

 下記は投稿例です。Titleに「Radiko(青葉市子)」と書いてあるので、From:の部分がそうなっています。

f:id:marukot-ch:20220213144236p:plain

RADIKOの実行例

仮で実行してみる

 RSSDiscordというメニューが右端にあります。そちらから簡単に実行できます。
実行結果(ログやエラー)については、後述のApps Scriptから見ることができます。

 

f:id:marukot-ch:20220213143803p:plain

RSS取得実行
  • 初めて実行する時は承認が必要です
承認作業(ボタンぽちぽちして承認してください)

f:id:marukot-ch:20220213222326p:plain

最初に実行する際は承認が必要
  • 続行します

f:id:marukot-ch:20220213222641p:plain

自分のアカウントを選び、「詳細」を選択
  • 自分のアカウントを選択
  • Googleが確認したものではない旨表示されます
  • 詳細を選択します

f:id:marukot-ch:20220213222809p:plain

左下に現れたリンクを押下

f:id:marukot-ch:20220213222931p:plain

許可する
  • 注意書きを読み、許可します(Google Driveやら使うよって意味です。ファイル削除などは行いませんので安心してください)

 最初の実行はキャンセルされてしまう気がするので、ダイアログがあったら一度キャンセルしてもう一度実行します。Webhookが適切に登録されている場合、Discordに投稿されたはずです(なにも登録されていない場合、ReaderシートのE列に赤字で記載されます)。

Apps Scriptを開く

  • スクリプトの編集
  • トリガーの設定(スクリプトを実行するタイミング等を指定)
  • 実行結果の確認(実行数, ログ, エラー等)

 Google Spreadsheetのメニューの右側にある、拡張機能の「App Script」を選択します(読み込みが遅い場合があります。右下のデータ探索が表示されたら大体アクセスできます)

 今回、1時間に1回起動するようなトリガーを設定してみます。

f:id:marukot-ch:20220213143722p:plain

拡張機能>Apps Script

 上から3つめの「トリガー」を選択肢、右下の「トリガーを追加」ボタンを押します。

f:id:marukot-ch:20220213145553p:plain

Apps Script(トリガー)

 実行する関数は「debugStart」がオススメです(実行時間やログが出力されるため)。

 「イベントのソースを選択」で「時間主導型」を選択肢、「時間ベースのタイマー」を選択し、「1時間おき」を選択。保存します。

f:id:marukot-ch:20220213145652p:plain

 以下のように表示されると思います。これで1時間毎に実行されるはずです。

f:id:marukot-ch:20220213145710p:plain

その他細かい情報

  • TitleシートのA列に正規表現で文字を書いておくと、投稿対象外にできます
  • UrlシートのA列に正規表現で文字を書いておくと、投稿対象外にできます
  • InterestingThingsシートのA列に正規表現で文字を書いておき、
    RSSシートのE列が「TRUE]にすると、InterestingThingsに該当するものが存在する場合のみ、
    投稿されます

終わりに

 このツールを作って3年以上経過していますが、便利に使っているので記事にしようかなぁと思っていました。Radikoで好きなアーティストが番組に参加しているかチェックするのが簡単になり、とても良いと思います。同じようなノリで機能を拡充していけば何でもできそうでいい感じです。是非この記事を読んだあなたがDiscordを最強の情報収集ツールにする256の方法のうちの1つを実装してみてください。こちらからは以上です。

どうでも情報

  • RSSについてはDiscord以外で有名なチャットツールでは普通に登録できます
  • Slackの場合は/feed subscribe <URL> で登録
  • Teamsの場合はチャンネルにコネクタを追加(RSSを選択/解除方法知らない...)

無料版SlackとDiscordの機能比較(個人の意見です!)

 

関連記事

  • RSSを利用するとどういい感じなのか書きました。

marukot-ch.hatenablog.com

参考

imabari.hateblo.jp

  • このブログが無かったらこの記事作らなかったと思います
  • RSS部分については上記記事に9割依存しています

www.yururito.net

  • Slack面白いなぁと思ったのと同時に、無料版だと10,000件までしか使えないのでDiscordのほうが便利ではないかと思いました

reminder-bot#6040が認証されました!

去年の12月くらい?に多分申請したと思うBotがDiscordによって認証されました!

ただ、運用していた感じ1,000サーバーとかに追加されたらすぐにおかしなことになりそうな気がしますが。。。

今後はデータの削除機能について拡充しようかなぁと思っています(2022時点で実装済/Discord開発者サイト上でBotを作成した人のみ実行可能)。

replitやHerokuで動かす場合はDiscordにデータ添付することで保管しているのですが、8MBがMAXだったはず。今、3MBくらいになってしまっているのですよね。。

過去のデータを削除する管理者用コマンドの追加と、自分のデータを一気に削除するような機能を作ろうかなぁとぽやーっと考えているところです。

 

下記から追加できます。

https://discord.com/api/oauth2/authorize?client_id=873515660674756639&permissions=2147723280&scope=bot%20applications.commands


 

f:id:marukot-ch:20220204203411p:plain

認証Botになったreminder-bot

今までの記事はコチラ

marukot-ch.hatenablog.com