1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- require 'yaml'
- require 'discordrb'
- require 'icunicode'
- require 'open-uri'
- require 'fileutils'
- require 'securerandom'
- require 'net/http'
- require 'json'
- settings = YAML.load(File.read "config.yaml")['settings']
- bot = Discordrb::Commands::CommandBot.new token: settings['token'], prefix: settings['prefix']
- bot.command(:translit) do |_event, script, *text|
- _event.message.mentions.each do |user|
- member = user.on(_event.channel.server)
- original_name = member.nick
- original_name ||= member.username
- transliterated = original_name.transliterate(script).force_encoding("UTF-8")
- member.nick = transliterated
- _event.send_message("Congratulations on your new nickname, #{member.mention}")
- end
- _event.send_message("Translitterated: #{text.join(' ').transliterate(script).force_encoding("UTF-8")}")
- "Finished translitting"
- end
- bot.command(:reset) do |_event|
- _event.message.mentions.each do |user|
- user.on(_event.channel.server).nickname = nil
- end
- "Finished resetting"
- end
- bot.command(:loli) do |_event|
- "https://tankernn.eu/~frans/files/loli_police_#{rand(1..3)}.png"
- end
- bot.command(:reap) do |_event, stop_id|
- next "No stop_id supplied" if stop_id == nil
- FileUtils::mkdir_p("/tmp/tankbot_images/")
- stop = false
- earliest_message_id = nil
- control_message = _event.send_message("Reaping images sent by #{_event.author.mention}. React to this message to stop.")
- until stop
- messages = _event.channel.history(100, earliest_message_id)
- messages.select{ |message| message.author === _event.author }.each do |message|
- puts "#{message.id}, #{stop_id}"
- if control_message.reactions? or message.id == stop_id
- stop = true
- break
- end
- message.attachments.select{ |attachment| attachment.image? }.each do |attachment|
- control_message.edit(control_message.content + "\nDownloading **#{attachment.filename}**... (#{message.timestamp.strftime("%F")})")
- open("/tmp/tankbot_images/#{attachment.id}-#{attachment.filename}", 'wb') do |file|
- file << open(attachment.url).read
- end
- end
- end
- stop = messages.length < 100
- earliest_message_id = messages.last.id
- end
- filename = "#{SecureRandom.uuid}.tar.gz"
- `tar -czf /var/www/scr/#{filename} /tmp/tankbot_images`
- FileUtils::rm_rf("/tmp/tankbot_images")
- control_message.edit("https://scr.tankernn.eu/#{filename}")
- end
- bot.command(:neko) do |_event, keyword|
- url = "https://nekos.life/api/v2/img/"
- options = ["cum", "les", "meow", "tickle", "lewd", "feed", "bj",
- "nsfw_neko_gif", "poke", "anal", "slap", "avatar", "pussy",
- "lizard", "classic", "kuni", "pat", "kiss", "neko", "cuddle",
- "fox_girl", "boobs", "random_hentai_gif", "hug"]
- if options.include? keyword then
- response = JSON.parse(Net::HTTP.get(URI("#{url}#{keyword}")))
- "Here's your lewds! °˖✧◝(⁰▿⁰)◜✧˖°\n#{response['url']}"
- else
- "No such tag. Please specify one of `#{options.join(", ")}`"
- end
- end
- bot.command(:lmgtfy) do |_event, *args|
- "http://lmgtfy.com/?s=d&q=#{args.join('+')}"
- end
- bot.command(:copypasta) do |_event, keyword|
- pastafile = "copypastas.json"
- file = File.read pastafile
- pastas = JSON.parse file
- if pastas.include? keyword then
- pastas[keyword]
- else
- "No such pasta. Available pastas include `#{pastas.keys.join(", ")}`"
- end
- end
- bot.run
|