module Backupmypics

Constants

VERSION

Public Class Methods

download(items) click to toggle source
# File lib/backupmypics.rb, line 27
def self.download(items)
  items[:pictures].each do |item|
    name = item.keys.first
    url = item.values.first

    Dir.chdir("#{Dir.home}/backupmypics")
    
    puts "Trying to save #{name} to #{Dir.home}/backupmypics"
    File.open("#{name}.jpg", "wb") do |fo|
      fo.write open(URI(url)).read
    end
  end
end
extract_pictures(user_data) click to toggle source
# File lib/backupmypics.rb, line 14
def self.extract_pictures(user_data)
    pictures = Array.new

    user_data["user"]["media"]["nodes"].each do |node|
        pictures.push({node["code"] => node["display_src"]})
    end

    if user_data["user"]["media"]["page_info"]["has_next_page"]
        return {:pictures => pictures, :next_id => user_data["user"]["media"]["page_info"]["end_cursor"]}
    end
    {:pictures => pictures, :next_id => nil}
end
fetch_user_data(user) click to toggle source
# File lib/backupmypics.rb, line 8
def self.fetch_user_data(user)
    doc = Nokogiri::HTML(open(URI("https://instagram.com/#{user}")))
    scripts = doc.css("body > script")[2].text
    JSON.parse(scripts[21..-2])["entry_data"]["ProfilePage"][0]
end