Giter Club home page Giter Club logo

butler's Issues

誕生日通知機能

誕生日を迎えると、それを通知する機能。

!birthday.set あこすけ 2020/07/07
!birthday.get あこすけ
!birthday.remove あこすけ
!birthday.list
  • 文章・文言はとりあえず固定
  • ランダムで誕生日イメージが表示できるとよいが、優先度は低い
    • DiscordのGIF画像機能みたいな感じのところからソース引っ張ってきたい
  • Amazonのほしい物リストを登録できるようにする?
    • インターフェース的に厳しい
    • これをするならば、誕生日の3日前に事前通知とかもほしい

ver-1000000/discord-bot-probably-akosuke#2 から移譲されたIssue。

アルバム機能

特定のチャンネルに投稿された画像を、サードパーティストレージに保存する。

できればビュワーみたいなのも提供したい。

サードパーティストレージいらんか?discordのcdnから引っ張ってしまってもよいだろうか なんか規約に引っかかるかな

詳しい人おしえて


ver-1000000/discord-bot-sabasabaserver#4 から移譲

!shiritoriコマンド

!shiritori 10
  • wikipediaをソースに、しりとりバトルを開始するコマンド
  • 三文字以上の言葉にしなければいけない
  • 数字を指定で制限時間
  • 連続で回答するとおてつき
  • おなじ尻文字に回答者が出た場合、先勝
    • つまり、実質回線の強さとタイピングの速さで勝負するゲーム

VoiceChannelRanking

音声チャットにインしてた時間を計測して、週末に発言するみたいなやつ。

おもしろそう。 サバ主と相談してTOPの人にはロールとかつけてもいいかも。

時間を計算して文字列でグラフ表現みたいなんしたい

■■■■■■■■■■■■■■■■■■■■■■■■■■■■       hoge
■■■■■■■■■■■■■■■■■■■■       foo
■■■■■■■■■■■■■■■■■       bar

みたいな?


ver-1000000/discord-bot-sabasabaserver#1 から移譲。

Botの導入手順をどこかにまとめる

以下のような流れ。 とりいそぎmemo。


https://discord.com/developers でボットを作成
左部メニュー Bot から Build-A-Bot > Add Bot
サブメニュー OAuth2 の OAuth2 URL Generator でBot登録用URLを作成するために、SCOPESからbotにチェック
BOT PERMISSIONSに必要そうな権限をチェックしていく 面倒ならAdministrator
多分 Send Messages Use External Emojis Add Reactions Use Slash Commands Connect Speak Mute Members Use Voice Activity
んでこれが生成される https://discord.com/api/oauth2/authorize?client_id=893258033726119958&permissions=2188642368&scope=bot
生成したURLからbotを追加し、トークンを利用して開発を行う

Webpackを利用してimportパスの解決を行いたい

/tsconfig.base.json

    "paths": {
      "@butler/*": ["./*/src"]
    }

を追加して、

/packages/worker/src/app.tsなどから

import { DISCORD_TOKEN, NOTIFY_TEXT_CHANNEL_ID } from '@butler/core';
import { MemosStore } from '@butler/worker/stores/memos.store';

のようにimportできるようにしたい……。

[Glitch] ffmpeg-staticが~/.cache配下に貯めるファイルが時間経過で大きくなりすぎてエラーが出る

しばらくサービングを続けると、途中でError: ENOSPC: no space left on device, writeみたいな
エラーが出てることに気づいた。(たしか)

Glitchの無料プランではディスクスペースに200MBしか利用できないのだが、
どうやら.cache配下に数十MB単位のキャッシュが作成されてしまうことが問題のようであった。

これをdu -hd 1などのコマンドで分析していくと、どうやら.cache/ffmpeg-static-nodejsがバカでかい。

消しても問題ないようなので、rimrafとかでガバッと削除してやれば動く気もするが、
どうやらGlitchのサーバーにはネイティブffmpegがインストールされているようなので、
npmからffmpeg-staticの利用をやめ、新たにffmpegの利用を試みてみる。

データ永続化の手法をHerokuとGlitchで共有できるものにする

元来、データ永続化の手法には、
Glitchで動作していたfor-sabasabaserverではdata-storeを利用し、
Herokuで動作していたprobably-akosukeはRedisを利用していた。

2つを統合する際、

  • data-storeは同期処理で型が古くメンテナンスもされていないっぽい
  • Redisは色々めんどくさいしGlitchとの統合がようわからん

という理由から、butlerでは新しくLevelDBというデータ永続化の手法を採用した。

しかし、統合を終え、実際にデプロイしてみると、 Herokuではローカルに保存するタイプのファイルベースDBは、データが破棄されるために利用できない ことが判明した。 いやほんとはなんとなくわかっていた。 なんかいけないかなって甘えて実装した。

Herokuで利用できる永続化サービスでなおかつGlitchでの実装に齟齬がないようなものに置き換える必要がある。

Glitchでの運用に無理が出てきた

#6の実装中、Glitch無料プランのディスク容量制限200MBがキツくて実現できなくなってきた。

  • Redisサーバーを別で立てればまだなんとかなりそう
  • 無料のRedisホスティングサービスに、Upstashというものがあり、かなり優秀に見えるが、無料枠は1つだけ
  • Herokuは相変わらず一人でRedisもWebページサービングも行える
  • 将来的には、Redisの設定はリポジトリ内に置かないようにする
  • GCEとHerokuでのセットアップドキュメントを整備する
  • っていうかRedisを除外したらGlitchでも動かすことができるのでは?

モノリポ化したbutlerのtscがglitch上で動かない

次のようなエラーが出てる。 意味がわからん。

> @butler/[email protected] build
> npx tsc -b .
                                                                               
                This is not the tsc command you are looking for                
                                                                               
To get access to the TypeScript compiler, tsc, from the command line either:
- Use npm install typescript to first add TypeScript to your project before using npx
- Use yarn to avoid accidentally running code from packages which haven't been installed
  • #12 を試してみたら副次的に解決しないか?
  • コンパイルをesbuildにしてみたらどうか?

12試してみて、そのあとesbuildにする?

スラッシュコマンドに対応する

2021年になんかスラッシュコマンドとかいうのが有効化されたじゃん?

あのへんの資料を集めてそっちに対応させる。

ビックリマークは廃止したいけど、スラッシュコマンドに対応してないサーバーとかが存在するんだったら廃止できないから残しとくことになるのかな? 誰か資料あつめてここに貼ってくれたらうれしいな……。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.