Sha256: c9ae46f4c5f6e764315069e36da392771f0095cf91f0190ddae2a2012c06c959

Contents?: true

Size: 1008 Bytes

Versions: 3

Compression:

Stored size: 1008 Bytes

Contents

module Mingle::Instagram

  def self.table_name_prefix
    "#{Mingle.table_name_prefix}instagram_"
  end

  def self.fetch hashtags = Mingle::Hashtag.all
    hashtags = Array(hashtags)

    hashtags.each.map do |hashtag|
      Instagram.tag_recent_media(hashtag.tag_name_without_hash).collect do |media|

        case media.type
        when 'image'
          photo = Photo.find_or_initialize_by photo_id: media.id
          photo.attributes = {
            created_at: Time.at(media.created_time.to_i),
            link: media.link,
            message: media.try(:caption).try(:text),
            url: media.images.standard_resolution.url,
            user_handle: media.user.username,
            user_id: media.user.id,
            user_image_url: media.user.profile_picture,
            user_name: media.user.full_name
          }

          photo.hashtags << hashtag unless photo.hashtags.include? hashtag

          photo.save!
          photo
        end
      end.compact
    end.flatten
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mingle-0.3.1 app/models/mingle/instagram.rb
mingle-0.3.0 app/models/mingle/instagram.rb
mingle-0.2.0 app/models/mingle/instagram.rb