Skip to content

Commit

Permalink
Cache the periscope session_id.
Browse files Browse the repository at this point in the history
  • Loading branch information
stefansundin committed Oct 31, 2018
1 parent c336eac commit 3f706a5
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions app/periscope.rb
Expand Up @@ -7,14 +7,23 @@ class Periscope < HTTP
BASE_URL = "https://api.periscope.tv/api/v2"
ERROR_CLASS = PeriscopeError

# The session_id is valid for one hour
@@session_id = nil

def self.get_broadcasts(user_id)
if @@session_id
response = get("/getUserBroadcastsPublic", query: { user_id: user_id, session_id: @@session_id })
if response.success?
return response
end
end
response = get("https://www.periscope.tv/cnn")
raise(ERROR_CLASS, response) if !response.success?
doc = Nokogiri::HTML(response.body)
data = doc.at("div#page-container")["data-store"]
json = JSON.parse(data)
session_id = json["SessionToken"]["public"]["broadcastHistory"]["token"]["session_id"]
get("/getUserBroadcastsPublic", query: { user_id: user_id, session_id: session_id })
@@session_id = json["SessionToken"]["public"]["broadcastHistory"]["token"]["session_id"]
get("/getUserBroadcastsPublic", query: { user_id: user_id, session_id: @@session_id })
end
end

Expand Down

0 comments on commit 3f706a5

Please sign in to comment.