Class: Calagator::Source::Parser::Meetup

Inherits:
Calagator::Source::Parser show all
Defined in:
app/models/calagator/source/parser/meetup.rb

Instance Attribute Summary

Attributes inherited from Calagator::Source::Parser

#source, #url

Instance Method Summary collapse

Methods inherited from Calagator::Source::Parser

<=>, inherited, labels, read_url, to_events

Instance Method Details

#to_eventsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/models/calagator/source/parser/meetup.rb', line 6

def to_events
  return fallback if Calagator.meetup_api_key.blank?
  return unless data = get_data

  start_time = Time.at(data['time'] / 1000).utc
  event = Event.new(
    source: source,
    title: "#{data['group']['name']} - #{data['name']}",
    description: data['description'],
    url: data['event_url'],
    venue: to_venue(data['venue']),
    tag_list: "meetup:event=#{data['event_id']}, meetup:group=#{data['group']['urlname']}#{group_topics(data)}",
    # Meetup sends us milliseconds since the epoch in UTC
    start_time: start_time,
    end_time: data['duration'] ? start_time + data['duration'] / 1000 : nil
  )

  [event_or_duplicate(event)]
end