Compare commits
No commits in common. "main" and "feature/punctuation-sentence" have entirely different histories.
main
...
feature/pu
15
README.md
15
README.md
@ -1,25 +1,16 @@
|
|||||||
# potomark is a simple bookmarking and pinning discord bot.
|
# potomark is a simple bookmarking discord bot.
|
||||||
there's no configuration besides a `.env` file with two keys:
|
there's no configuration besides a `.env` file that stores the bot's token.
|
||||||
|
|
||||||
- the bot's token `DISCORD_TOKEN`,
|
|
||||||
- channel id for a sentence game `SENTENCE_CHANNEL`. if you don't want to enable the sentence game, set the key to `-1`.
|
|
||||||
|
|
||||||
## why?
|
## why?
|
||||||
because we needed a tiny, self hostable bot to remember things of importance for our equally tiny discord server.
|
because we needed a tiny, self hostable bot to remember things of importance for our equally tiny discord server.
|
||||||
|
|
||||||
## what it do?
|
## what it do?
|
||||||
- DMs a user a link to any message they react with 🔖 to (tip: you can change the `BOOKMARK_EMOJI` constant in `bot.rb` to any built-in emoji). this also sends part of the message for quick access,
|
DMs a user a link to any message they reacte with 🔖 to (tip: you can change the `EMOJI` constant in `bot.rb` to any built-in emoji). also sends part of the message for quick access. that's it.
|
||||||
- lets users pin messages to the channel by reacting with 📌 on that message (change `PIN_EMOJI` to change the emoji). if there are no more of that emoji reactions on the message, it gets unpinned.
|
|
||||||
- lets users make sentences one word (or more) at a time in `SENTENCE_CHANNEL`. to finish a sentence, send either of these as a message: `?`, `!`, `.`, `...`, `?!`
|
|
||||||
|
|
||||||
## how?
|
## how?
|
||||||
requires [ruby](https://www.ruby-lang.org/) >= 3.0 and [bundler](https://bundler.io) >= 2.3.19. the only two dependencies are `dotenv` and `discordrb`, as specified in the `Gemfile`.
|
requires [ruby](https://www.ruby-lang.org/) >= 3.0 and [bundler](https://bundler.io) >= 2.3.19. the only two dependencies are `dotenv` and `discordrb`, as specified in the `Gemfile`.
|
||||||
|
|
||||||
quick setup:
|
|
||||||
```bash
|
```bash
|
||||||
$ git clone https://git.poto.cafe/yagich/potomark-bot-rb.git && cd potomark-bot-rb
|
|
||||||
$ echo 'DISCORD_TOKEN=YOUR.DISCORD.TOKEN.HERE' > .env
|
$ echo 'DISCORD_TOKEN=YOUR.DISCORD.TOKEN.HERE' > .env
|
||||||
$ echo 'SENTENCE_CHANNEL=SENTENCE_GAME_CHANNEL_ID' >> .env
|
|
||||||
$ bundle install
|
$ bundle install
|
||||||
$ ruby bot.rb
|
$ ruby bot.rb
|
||||||
```
|
```
|
||||||
|
25
bot.rb
25
bot.rb
@ -6,11 +6,6 @@ bot = Discordrb::Bot.new token: ENV['DISCORD_TOKEN']
|
|||||||
BOOKMARK_EMOJI = '🔖'
|
BOOKMARK_EMOJI = '🔖'
|
||||||
PIN_EMOJI = '📌'
|
PIN_EMOJI = '📌'
|
||||||
|
|
||||||
ADMIN_PASTA = 'Thats not how it works, thats an abuse of power and if you keep doing that you will quickly find yourself no longer a moderator at some point.'
|
|
||||||
ADMIN_PASTER = 'tahts not how itwh orksm, thas and buse fo bpower and ify oyu keep y doing that oyu woubll qucikyl find you slefo no l ogner a nmoderarort at so meo poitn.'
|
|
||||||
YUM = 'completely consequences'
|
|
||||||
AULT = '# IN VR'
|
|
||||||
|
|
||||||
TRIM_MESSAGE_LENGTH = 500
|
TRIM_MESSAGE_LENGTH = 500
|
||||||
|
|
||||||
$sentence = {}
|
$sentence = {}
|
||||||
@ -65,11 +60,11 @@ bot.reaction_remove do |event|
|
|||||||
end
|
end
|
||||||
|
|
||||||
bot.message(in: Integer(ENV['SENTENCE_CHANNEL'])) do |event|
|
bot.message(in: Integer(ENV['SENTENCE_CHANNEL'])) do |event|
|
||||||
if ['?', '!', '.', '...', '?!'].include? event.message.content
|
if ['?', '!', '.', '...'].include? event.message.content
|
||||||
if $sentence.empty?
|
if $sentence.empty?
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
event << "Congratulations, your sentence is: #{$sentence.values.join(" ").gsub(/\s([^\w\s])/, '\1')}#{event.message.content}"
|
event << "Congratulations, your sentence is: #{$sentence.values.join(" ")}${event.message.content}"
|
||||||
$sentence.clear
|
$sentence.clear
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
@ -85,20 +80,4 @@ bot.message_edit(in: Integer(ENV['SENTENCE_CHANNEL'])) do |event|
|
|||||||
$sentence[event.message.id] = event.message.content
|
$sentence[event.message.id] = event.message.content
|
||||||
end
|
end
|
||||||
|
|
||||||
bot.message(with_text: '!abuse') do |event|
|
|
||||||
event << ADMIN_PASTA
|
|
||||||
end
|
|
||||||
|
|
||||||
bot.message(with_text: '!abue') do |event|
|
|
||||||
event << ADMIN_PASTER
|
|
||||||
end
|
|
||||||
|
|
||||||
bot.message(with_text: '!yum') do |event|
|
|
||||||
event << YUM
|
|
||||||
end
|
|
||||||
|
|
||||||
bot.message(with_text: '!ault') do |event|
|
|
||||||
event << AULT
|
|
||||||
end
|
|
||||||
|
|
||||||
bot.run
|
bot.run
|
||||||
|
Loading…
Reference in New Issue
Block a user