Skip to content

Instantly share code, notes, and snippets.

@tesths
Last active April 3, 2018 04:06
Show Gist options
  • Save tesths/24b211eeae5acd5097e3efd647057acb to your computer and use it in GitHub Desktop.
Save tesths/24b211eeae5acd5097e3efd647057acb to your computer and use it in GitHub Desktop.
A spide of instagram
require 'json'
require 'httparty'
require 'telegram/bot'
require 'byebug'
token = ''
bot = Telegram::Bot::Client.new(token)
def requestIns
begin
response = HTTParty.get('https://www.instagram.com/xxxxxxxx/?__a=1', timeout: 60)
rescue HTTParty::Error => e
# don´t do anything / whatever
puts "HTTParty::Error "
puts e
sleep(5)
requestIns
rescue StandardError => e
puts "StandardError "
puts e
sleep(5)
requestIns
end
# rescue instances of StandardError,
# i.e. Timeout::Error, SocketError etc
# response = HTTParty.get('https://www.instagram.com/xxxxxx/?__a=1', timeout: 60)
if !response.nil?
if response.code.between?(400, 600)
puts response.code
puts Time.now
puts "\n"
return 0
else
return response
end
else
return 0
end
end
if requestIns != 0
code0 = requestIns["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["shortcode"]
code1 = requestIns["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["shortcode"]
puts "already have code0 and code1"
end
i = 0
while 1
data = requestIns
if data != 0
begin
count = data["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"].count
rescue TypeError => e
puts "TypeError"
puts e
count = 0
end
if count != 0
if i % 2 == 0
begin
code0 = data["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["shortcode"]
rescue TypeError => e
puts "TypeError"
puts e
end
else
begin
code1 = data["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["shortcode"]
rescue TypeError => e
puts "TypeError"
puts e
end
end
i = i + 1
i = i % 2
sleep(5)
if code0 != code1
caption = data["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["edge_media_to_caption"]["edges"][0]["node"]["text"]
code = data["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["shortcode"]
ins_src = "https://www.instagram.com/p/" + code
bot.api.send_message(chat_id: , text: "#{caption}\n#{ins_src}")
end
end
else
sleep(5)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment