Commit 4cef2763 authored by gm's avatar gm

修正:存储文件的时间不对

parent b64cb29b
...@@ -63,14 +63,14 @@ def get_dev_events_response ...@@ -63,14 +63,14 @@ def get_dev_events_response
events = HTTParty.get("http://wiki.wanmeizhensuo.com/rest/calendar-services/1.0/calendar/events.json?#{event_query}", $event_headers) events = HTTParty.get("http://wiki.wanmeizhensuo.com/rest/calendar-services/1.0/calendar/events.json?#{event_query}", $event_headers)
end end
class Deliver # 类似于“7.11开发”这样的事件名,用于对比记录邮件是否已经发送
attr_accessor :title $dev_title = ""
attr_accessor :date # 类似于“7.11客户端提交”这样的事件名,用于稍后发邮件
def initialize(title, date) $title = ""
@title = title # 类似于“7.11客户端提交”这样的事件的时间,用于稍后发邮件
@date = date $date = ""
end # 用来存储全局变量$dev_title的文件名
end STORE_KEY = "sprintEmailHistory.log"
# 返回值:Deliver # 返回值:Deliver
def get_deliver_info def get_deliver_info
...@@ -84,18 +84,33 @@ def get_deliver_info ...@@ -84,18 +84,33 @@ def get_deliver_info
for event in obj.events for event in obj.events
deploy_date = Date.parse(event.start) deploy_date = Date.parse(event.start)
if deploy_date > today if deploy_date > today
return Deliver.new(event.title, deploy_date) $title = event.title
$date = deploy_date
end end
end end
end end
def get_store_value(key)
# sprintEmailHistory.log
filePath = File.dirname(__FILE__) + '/' + key
file = File.open(filePath, "a+", external_encoding: Encoding::UTF_8, internal_encoding: Encoding::UTF_8)
return file.read()
end
def set_store_value(key, value)
filePath = File.dirname(__FILE__) + '/' + key
file = File.open(filePath, "a+", external_encoding: Encoding::UTF_8, internal_encoding: Encoding::UTF_8)
file.truncate(0)
count = file.write(value)
end
# 如果今天是开发第一天,并且之前没有发送过,则允许发送邮件;
def should_send_email_today def should_send_email_today
response = get_dev_events_response response = get_dev_events_response
obj = JSON.parse(response.body, object_class: OpenStruct) obj = JSON.parse(response.body, object_class: OpenStruct)
# 读取历史记录,如果以前发送过,则不需要再次发送 # 读取历史记录,如果以前发送过,则不需要再次发送
filePath = File.dirname(__FILE__) + '/sprintEmailHistory.log' history = get_store_value(STORE_KEY)
file = File.open(filePath, "a+", external_encoding: Encoding::UTF_8, internal_encoding: Encoding::UTF_8)
history = file.read()
puts "history #{history}" puts "history #{history}"
for event in obj.events for event in obj.events
...@@ -107,9 +122,7 @@ def should_send_email_today ...@@ -107,9 +122,7 @@ def should_send_email_today
puts "#{event.title} 版本已经发过邮件" puts "#{event.title} 版本已经发过邮件"
return false return false
else else
file.truncate(0) $dev_title = event.title
count = file.write(event.title)
file.close
puts "可以发送邮件" puts "可以发送邮件"
return true return true
end end
...@@ -120,7 +133,7 @@ def should_send_email_today ...@@ -120,7 +133,7 @@ def should_send_email_today
end end
def send_email(deliver_info) def send_email()
mail = Mail.defaults do mail = Mail.defaults do
delivery_method :smtp, { delivery_method :smtp, {
:port => 465, :port => 465,
...@@ -136,18 +149,18 @@ def send_email(deliver_info) ...@@ -136,18 +149,18 @@ def send_email(deliver_info)
mail = Mail.deliver do mail = Mail.deliver do
# 其实下面都是方法调用,不要被迷惑了 # 其实下面都是方法调用,不要被迷惑了
to ['hualu@igengmei.com', 'wangjun@igengmei.com', 'sunwenhui@igengmei.com', 'tanchenshuai@igengmei.com', 'zhucuicui@igengmei.com', 'huchunhe@igengmei.com', 'dongqiang@igengmei.com', 'SJ-liuxiao@igengmei.com', 'client-rd@igengmei.com'] to ['hualu@igengmei.com', 'wangjun@igengmei.com', 'sunwenhui@igengmei.com', 'zhucuicui@igengmei.com', 'huchunhe@igengmei.com', 'dongqiang@igengmei.com', 'SJ-liuxiao@igengmei.com', 'client-rd@igengmei.com']
# to ['jaguar@igengmei.com'] # to ['jaguar@igengmei.com']
bcc 'jaguar@igengmei.com' # 抄送 bcc 'jaguar@igengmei.com' # 抄送
from 'jaguar@igengmei.com' # 发件人 from 'jaguar@igengmei.com' # 发件人
subject "更美app#{deliver_info.title}商店物料信息" subject "更美app#{$title}商店物料信息"
text_part do text_part do
content_type "text/plain; charset=utf-8" content_type "text/plain; charset=utf-8"
body <<-EOF body <<-EOF
Hi,All Hi,All
#{deliver_info.title}时间为#{deliver_info.date.to_s},请准备商店相关的物料信息(是否更换APP icon和商店海报),谢谢~ #{$title}时间为#{$date.to_s},请准备商店相关的物料信息(是否更换APP icon和商店海报),谢谢~
EOF EOF
end end
end end
...@@ -156,17 +169,21 @@ end ...@@ -156,17 +169,21 @@ end
login login
if should_send_email_today if should_send_email_today
deliver = get_deliver_info get_deliver_info
begin begin
send_email deliver # 邮件发送成功后,再存储数据
send_email
set_store_value(STORE_KEY, $dev_title)
puts "邮件已发送" puts "邮件已发送"
rescue Exception => e rescue Exception => e
puts "邮件发送失败"
puts e.message puts e.message
DingBot.endpoint = 'https://oapi.dingtalk.com/robot/send' DingBot.endpoint = 'https://oapi.dingtalk.com/robot/send'
DingBot.access_token = '8142e051fe21d101b7e619c179741b0502f99b66ede221e164c2c1643122378d' DingBot.access_token = '8142e051fe21d101b7e619c179741b0502f99b66ede221e164c2c1643122378d'
message = DingBot::Message::Text.new( message = DingBot::Message::Text.new(
'sprintEmail 迭代发版时间邮件发送失败', "sprintEmail 迭代发版时间邮件发送失败.\n#{e.message}",
['15811315780'], ['15811315780'],
false false
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment