このコミットが含まれているのは:
@@ -1,8 +1,9 @@
|
||||
class PostMetadataFetcher
|
||||
TIMESTAMP_PATTERN =
|
||||
/\A(\d{4})-(\d{2})-(\d{2})T(\d{2})/ \
|
||||
/(?::(\d{2})(?::(\d{2})(?:\.(\d+))?)?)?/ \
|
||||
/(Z|[+-]\d{2}:?\d{2})?\z/
|
||||
Regexp.new(
|
||||
'\A(\d{4})-(\d{2})-(\d{2})T(\d{2})' \
|
||||
'(?::(\d{2})(?::(\d{2})(?:\.(\d+))?)?)?' \
|
||||
'(Z|[+-]\d{2}:?\d{2})?\z')
|
||||
|
||||
def self.fetch raw_url
|
||||
uri, = Preview::UrlSafety.validate(raw_url)
|
||||
@@ -80,9 +81,14 @@ class PostMetadataFetcher
|
||||
minute = match[5]&.to_i || 0
|
||||
second = match[6]&.to_i || 0
|
||||
fraction = match[7]
|
||||
offset = parse_offset(match[8])
|
||||
from = Time.new(year, month, day, hour, minute, second + fractional_seconds(fraction), offset)
|
||||
.in_time_zone
|
||||
offset = match[8]
|
||||
whole_second = second + fractional_seconds(fraction)
|
||||
from =
|
||||
if offset.present?
|
||||
Time.new(year, month, day, hour, minute, whole_second, parse_offset(offset)).in_time_zone
|
||||
else
|
||||
Time.zone.local(year, month, day, hour, minute, whole_second)
|
||||
end
|
||||
before =
|
||||
if fraction.present?
|
||||
from + (10**(-fraction.length))
|
||||
@@ -97,7 +103,6 @@ class PostMetadataFetcher
|
||||
end
|
||||
|
||||
def self.parse_offset value
|
||||
return Time.zone.formatted_offset if value.blank?
|
||||
return '+00:00' if value == 'Z'
|
||||
|
||||
value.match?(/\A[+-]\d{2}:\d{2}\z/) ? value : "#{ value[0, 3] }:#{ value[3, 2] }"
|
||||
|
||||
新しい課題から参照
ユーザをブロックする