app_form.rb 838 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 }.members.count / 2) + 1
  20. end
  21. def self.star(event)
  22. stars = event.message.reacted_with(Emoji::STAR)
  23. stars.each do |star|
  24. member = event.server.member(star.id)
  25. return true if Util::Roles.admin?(member)
  26. end
  27. end
  28. def remove(event)
  29. crosses = event.message.reacted_with(Emoji::CROSS)
  30. crosses.each do |cross|
  31. member = event.server.member(cross.id)
  32. event.message&.delete unless member.current_bot?
  33. end
  34. end
  35. end