Skip to content

Commit

Permalink
refactoring/1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Hentioe committed Apr 17, 2019
1 parent 1ba45d2 commit ae34f58
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 21 deletions.
23 changes: 2 additions & 21 deletions src/policr/bot.cr
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ module Policr
handlers[:join_bot] = JoinBotHandler.new self
handlers[:unverified_message] = UnverifiedMessage.new self
handlers[:halal_message] = HalalMessageHandler.new self
handlers[:from_setting] = FromSettingHandler.new self
handlers[:verify_time_setting] = VerifyTimeSettingHandler.new self

cmd "ping" do |msg|
reply msg, "pong"
Expand Down Expand Up @@ -335,31 +337,10 @@ module Policr
end

def handle(msg : TelegramBot::Message)
role = DB.trust_admin?(msg.chat.id) ? :admin : :creator

handlers.each do |_, handler|
handler.registry(msg)
end

# 回复消息设置来源调查列表
if (user = msg.from) && (reply_msg = msg.reply_to_message) && (reply_msg_id = reply_msg.message_id) && Cache.from_setting_msg?(reply_msg_id) && has_permission?(msg.chat.id, user.id, role)
logger.info "Enable From Investigate for ChatID '#{msg.chat.id}'"
DB.put_chat_from(msg.chat.id, msg.text)
reply msg, "已完成设置。"
end

# 回复消息设置验证时间
if (user = msg.from) && (text = msg.text) && (reply_msg = msg.reply_to_message) && (reply_msg_id = reply_msg.message_id) && (time_type = Cache.torture_time_msg?(reply_msg_id)) && has_permission?(msg.chat.id, user.id, role)
sec = case time_type
when TortureTimeType::Sec
text.to_i
when TortureTimeType::Min
(60 * (text.to_f)).to_i
end
DB.set_torture_sec(msg.chat.id, sec)
reply msg, "已完成设置。"
end

super
end

Expand Down
15 changes: 15 additions & 0 deletions src/policr/handler/from_setting.cr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module Policr
class FromSettingHandler < Handler
def match(msg)
role = DB.trust_admin?(msg.chat.id) ? :admin : :creator

(user = msg.from) && (reply_msg = msg.reply_to_message) && (reply_msg_id = reply_msg.message_id) && Cache.from_setting_msg?(reply_msg_id) && bot.has_permission?(msg.chat.id, user.id, role)
end

def handle(msg)
bot.log "Enable From Investigate for ChatID '#{msg.chat.id}'"
DB.put_chat_from(msg.chat.id, msg.text)
bot.reply msg, "已完成设置。"
end
end
end
30 changes: 30 additions & 0 deletions src/policr/handler/verify_time_setting.cr
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
module Policr
class VerifyTimeSettingHandler < Handler
alias TortureTimeType = Cache::TortureTimeType

@time_type : TortureTimeType?
@text : String?

def match(msg)
role = DB.trust_admin?(msg.chat.id) ? :admin : :creator

if (user = msg.from) && (text = msg.text) && (reply_msg = msg.reply_to_message) && (reply_msg_id = reply_msg.message_id) && (time_type = Cache.torture_time_msg?(reply_msg_id)) && bot.has_permission?(msg.chat.id, user.id, role)
@time_type = time_type
@text = text
end
end

def handle(msg)
if (time_type = @time_type) && (text = @text)
sec = case time_type
when TortureTimeType::Sec
text.to_i
when TortureTimeType::Min
(60 * (text.to_f)).to_i
end
DB.set_torture_sec(msg.chat.id, sec)
bot.reply msg, "已完成设置。"
end
end
end
end

0 comments on commit ae34f58

Please sign in to comment.