Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
退屈なことはDiscord.pyにやらせよう -学籍認証とかその他もろもろ
Search
あすなろわさび
April 04, 2021
Programming
0
220
退屈なことはDiscord.pyにやらせよう -学籍認証とかその他もろもろ
LTerry 1stで話した内容です。主にDiscord.pyのおはなし。
参考文献にあるはこだて未来大学のスライドには本当に助けられました。Atriaさまにはこの場を借りて御礼申し上げます。
あすなろわさび
April 04, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
Metaprogramming isn't real, it can't hurt you
okuramasafumi
0
100
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
390
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
高速開発のためのコード整理術
sutetotanuki
1
410
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
750
CSC307 Lecture 06
javiergs
PRO
0
690
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
510
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
Speed Design
sergeychernyshev
33
1.5k
How STYLIGHT went responsive
nonsquared
100
6k
The Language of Interfaces
destraynor
162
26k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
Skip the Path - Find Your Career Trail
mkilby
0
60
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
The SEO identity crisis: Don't let AI make you average
varn
0
330
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
エンジニアに許された特別な時間の終わり
watany
106
230k
Transcript
退屈なことはDiscord.pyにやらせよう -学籍認証とかその他もろもろ 2021/4/4 LTerry会 1st あすなろわさび
自己紹介 名前:あすなろわさび Ⅱ類情報通信プログラム所属三年次 他のLTだと旅行やプログラム分けの話とかしてた 開発経験:そんなものはない
作ったもの UEC Discord 電気通信大学・大学院学生専用Discord 授業情報とか履修相談とか ここで共有したい 他にもボイスチャットやサークル勧誘など 思いついたやつは片っ端から実装
電通大Discordについて 今までも学年ごとにDiscordサーバーはあった 授業情報は基本受け継げない 他学年間で繋がる場所がない(凸勢はいるけど) 大学生活できてねえ!!!コロナこの野郎!!!!!!!!!!!! →じゃあそういう場所作ればいっか
認証どうすんの UEC19ではTwitter人脈による手動認証 →だいたい150人、しんどいものはしんどい(お疲れ様です) →単純に4倍すると600人、新規層とか院生考えると… 流石に自動でやらな…でもどうやって…?
認証どうするの はこだて未来大学の人が既にやってた(参考文献にリンクあり) 学番を受け取って学内メールを使えばいい、入力中は他の人に見えないように こんなシステム構成にした 学籍番号 照合システム (入力検知でイベント発火)
学番:A1010111 その学番おるで 認証完了処理します
認証システム設計図 @client.event async def on_typing(): 他の人に見えないようにする 学籍暗号受け取り 番号認証、トークンを学内メールへ送信 トークン確認 認証完了処理(role付与など)
投稿全削除、他の人に見えるようにする ライブラリで殴ればどうにかなる、Discord.pyも機能豊富 on_typingは入力を検知して発火するイベント コマンド方式ならon_messageで文頭文字判定(今から作るなら絶対こっち、理由は後述)
学籍番号認証システム 学籍番号そのものはsol(学内サーバー)のディレクトリ名で容易に取得できる 照合どうする?メール送信?DB管理?作るの無理! →こういうときは素直に強い人に頼りましょう やれ はい… (ごっちさん:二年次。つよい。)
いざ稼働! 案の定バグる Discord.pyはイベント駆動 使いやすいと思って入力検知をトリガー(on_typing)にしたがコピペは検知できない コマンド方式ならほんの一瞬全体に見えちゃうけど確実に発火する 認証が詰まる:1チャンネルを一人で数分占領するのでとにかく遅い、学内メール遅すぎ Botで招待URL発行できるが
(jipさん:四年次。つよい。)
その後のお話 潔くDiscord内認証システムを停止させました →代わりにブラウザベースの招待URL発行式に変更、やることはそんなに変わらない Botは他にもいろいろ機能があるので稼働は継続 今のところある機能 ・ボイチャ専用テキストチャット機能(他の人に見えない&ボイチャ終わると消える) ・休講情報スクレイピング(三年次のBさんに外注、BeautifulSoup使ってた気がする)
・年次選択(チャンネルが多すぎるので整理用) ・にゃーん(/neko) 折角サークル勧誘チャンネルも用意したし、 ここで新歓やって飛び入り歓迎とかも面白いんじゃないでしょうか 変わった人もいます
参考文献 Discordユーザー認証botを作った話/Atriaさま https://speakerdeck.com/atria/the-discord-user-authentication-bot Pythonで実用Discord Bot(discordpy解説)/Shun Tannaiさま https://qiita.com/1ntegrale9/items/9d570ef8175cf178468f
Discord.py公式ドキュメント https://discordpy.readthedocs.io/ja/latest/index.html Pythonにおける非同期処理: asyncio逆引きリファレンス/icoxfog417さま https://qiita.com/icoxfog417/items/07cbf5110ca82629aca0