class Snapcat::Client
Attributes
user[R]
Public Class Methods
new(username)
click to toggle source
# File lib/snapcat/client.rb, line 5 def initialize(username) @user = User.new @requestor = Requestor.new(username) end
Public Instance Methods
add_friend(username)
click to toggle source
# File lib/snapcat/client.rb, line 53 def add_friend(username) @requestor.request_with_username( 'friend', action: 'add', friend: username ) end
auth_token()
click to toggle source
# File lib/snapcat/client.rb, line 10 def auth_token @requestor.auth_token end
auth_token=(auth_token)
click to toggle source
# File lib/snapcat/client.rb, line 14 def auth_token=(auth_token) @requestor.auth_token = auth_token end
block(username)
click to toggle source
# File lib/snapcat/client.rb, line 18 def block(username) @requestor.request_with_username( 'friend', action: 'block', friend: username ) end
clear_feed()
click to toggle source
# File lib/snapcat/client.rb, line 26 def clear_feed @requestor.request_with_username('clear') end
delete_friend(username)
click to toggle source
# File lib/snapcat/client.rb, line 45 def delete_friend(username) @requestor.request_with_username( 'friend', action: 'delete', friend: username ) end
fetch_updates(update_timestamp = 0)
click to toggle source
# File lib/snapcat/client.rb, line 30 def fetch_updates(update_timestamp = 0) set_user_data_with(@requestor.request_with_username( 'updates', update_timestamp: update_timestamp )) end
get_stories()
click to toggle source
# File lib/snapcat/client.rb, line 37 def get_stories @requestor.request_with_username('stories') end
login(password)
click to toggle source
# File lib/snapcat/client.rb, line 70 def login(password) set_user_data_with( @requestor.request_with_username('login', password: password) ) end
logout()
click to toggle source
# File lib/snapcat/client.rb, line 76 def logout @requestor.request_with_username('logout') end
media_for(snap_id)
click to toggle source
# File lib/snapcat/client.rb, line 41 def media_for(snap_id) @requestor.request_media(snap_id) end
register(password, birthday, email)
click to toggle source
# File lib/snapcat/client.rb, line 80 def register(password, birthday, email) result = @requestor.request( 'register', birthday: birthday, email: email, password: password ) unless result.success? return result end result_two = @requestor.request_with_username( 'registeru', email: email ) set_user_data_with(result_two) end
screenshot(snap_id, view_duration = 1)
click to toggle source
# File lib/snapcat/client.rb, line 99 def screenshot(snap_id, view_duration = 1) snap_data = { snap_id => { c: Snap::Status::SCREENSHOT, sv: view_duration, t: Timestamp.float } } events = [ { eventName: 'SNAP_SCREENSHOT', params: { id: snap_id }, ts: Timestamp.macro - view_duration } ] @requestor.request_with_username( 'update_snaps', events: events.to_json, json: snap_data.to_json ) end
send_media(data, recipients, options = {})
click to toggle source
# File lib/snapcat/client.rb, line 122 def send_media(data, recipients, options = {}) result = @requestor.request_upload(data, options[:type]) unless result.success? return result end media_id = result.data[:media_id] @requestor.request_with_username( 'send', media_id: media_id, recipient: prepare_recipients(recipients), time: options[:view_duration] || 3 ) end
send_story(data, options = {})
click to toggle source
# File lib/snapcat/client.rb, line 139 def send_story(data, options = {}) @requestor.request_upload_story(data, options[:time], options[:caption_text], options[:type]) end
set_display_name(username, display_name)
click to toggle source
# File lib/snapcat/client.rb, line 61 def set_display_name(username, display_name) @requestor.request_with_username( 'friend', action: 'display', display: display_name, friend: username ) end
unblock(username)
click to toggle source
# File lib/snapcat/client.rb, line 143 def unblock(username) @requestor.request_with_username( 'friend', action: 'unblock', friend: username ) end
update_email(email)
click to toggle source
# File lib/snapcat/client.rb, line 175 def update_email(email) @requestor.request_with_username( 'settings', action: 'updateEmail', email: email ) end
update_privacy(code)
click to toggle source
# File lib/snapcat/client.rb, line 183 def update_privacy(code) @requestor.request_with_username( 'settings', action: 'updatePrivacy', privacySetting: code ) end
view(snap_id, view_duration = 1)
click to toggle source
# File lib/snapcat/client.rb, line 151 def view(snap_id, view_duration = 1) snap_data = { snap_id => { t: Timestamp.float, sv: view_duration } } events = [ { eventName: 'SNAP_VIEW', params: { id: snap_id }, ts: Timestamp.macro - view_duration }, { eventName: 'SNAP_EXPIRED', params: { id: snap_id }, ts: Timestamp.macro } ] @requestor.request_with_username( 'update_snaps', events: events.to_json, json: snap_data.to_json ) end
Private Instance Methods
prepare_recipients(recipients)
click to toggle source
# File lib/snapcat/client.rb, line 193 def prepare_recipients(recipients) if recipients.is_a? Array recipients.join(',') else recipients end end
request_events(events, snap_data)
click to toggle source
# File lib/snapcat/client.rb, line 201 def request_events(events, snap_data) @requestor.request_with_username( 'update_snaps', events: events, json: snap_data ) end
set_user_data_with(result)
click to toggle source
# File lib/snapcat/client.rb, line 209 def set_user_data_with(result) if result.success? @user.data = result.data end result end