|
|
@@ -87,34 +87,39 @@ module Agents
|
87
|
87
|
end
|
88
|
88
|
|
89
|
89
|
def check
|
90
|
|
- Array(interpolated['url']).each do |url|
|
91
|
|
- check_url(url)
|
92
|
|
- end
|
|
90
|
+ check_urls(Array(interpolated['url']))
|
93
|
91
|
end
|
94
|
92
|
|
95
|
93
|
protected
|
96
|
94
|
|
97
|
|
- def check_url(url)
|
98
|
|
- response = faraday.get(url)
|
99
|
|
- if response.success?
|
100
|
|
- feed = FeedNormalizer::FeedNormalizer.parse(response.body, loose: true)
|
101
|
|
- feed.clean! if boolify(interpolated['clean'])
|
102
|
|
- max_events = (interpolated['max_events_per_run'].presence || 0).to_i
|
103
|
|
- created_event_count = 0
|
104
|
|
- sort_events(feed_to_events(feed)).each.with_index do |event, index|
|
105
|
|
- break if max_events && max_events > 0 && index >= max_events
|
106
|
|
- entry_id = event.payload[:id]
|
107
|
|
- if check_and_track(entry_id)
|
108
|
|
- created_event_count += 1
|
109
|
|
- create_event(event)
|
|
95
|
+ def check_urls(urls)
|
|
96
|
+ new_events = []
|
|
97
|
+ max_events = (interpolated['max_events_per_run'].presence || 0).to_i
|
|
98
|
+
|
|
99
|
+ urls.each do |url|
|
|
100
|
+ begin
|
|
101
|
+ response = faraday.get(url)
|
|
102
|
+ if response.success?
|
|
103
|
+ feed = FeedNormalizer::FeedNormalizer.parse(response.body, loose: true)
|
|
104
|
+ feed.clean! if boolify(interpolated['clean'])
|
|
105
|
+ new_events += feed_to_events(feed)
|
|
106
|
+ else
|
|
107
|
+ error "Failed to fetch #{url}: #{response.inspect}"
|
110
|
108
|
end
|
|
109
|
+ rescue => e
|
|
110
|
+ error "Failed to fetch #{url} with message '#{e.message}': #{e.backtrace}"
|
|
111
|
+ end
|
|
112
|
+ end
|
|
113
|
+
|
|
114
|
+ created_event_count = 0
|
|
115
|
+ sort_events(new_events).each.with_index do |event, index|
|
|
116
|
+ entry_id = event.payload[:id]
|
|
117
|
+ if check_and_track(entry_id)
|
|
118
|
+ created_event_count += 1
|
|
119
|
+ create_event(event) unless max_events && max_events > 0 && index >= max_events
|
111
|
120
|
end
|
112
|
|
- log "Fetched #{url} and created #{created_event_count} event(s)."
|
113
|
|
- else
|
114
|
|
- error "Failed to fetch #{url}: #{response.inspect}"
|
115
|
121
|
end
|
116
|
|
- rescue => e
|
117
|
|
- error "Failed to fetch #{url} with message '#{e.message}': #{e.backtrace}"
|
|
122
|
+ log "Fetched #{urls.to_sentence} and created #{created_event_count} event(s)."
|
118
|
123
|
end
|
119
|
124
|
|
120
|
125
|
def get_entry_id(entry)
|