app_form.rb 845 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. class ApplicationForm
  2. def self.name
  3. process.name
  4. end
  5. def self.call(event)
  6. process.call(event)
  7. end
  8. def self.process
  9. raise 'NYI'
  10. end
  11. def self.approve
  12. raise 'NYI'
  13. end
  14. def self.deny
  15. raise 'NYI'
  16. end
  17. def self.majority(event)
  18. # The total number of voters, divided by 2, +1
  19. (event.server.roles.find{ |r| r.id == ENV['ADMINS'].to_i }.
  20. members.count / 2) + 1
  21. end
  22. def self.star(event)
  23. stars = event.message.reacted_with(Emoji::STAR)
  24. stars.each do |star|
  25. member = event.server.member(star.id)
  26. return true if Util::Roles.admin?(member)
  27. end
  28. end
  29. def remove(event)
  30. crosses = event.message.reacted_with(Emoji::CROSS)
  31. crosses.each do |cross|
  32. member = event.server.member(cross.id)
  33. event.message&.delete unless member.current_bot?
  34. end
  35. end
  36. end