Module: UserControl

Defined in:
lib/nehm/user_control.rb

Class Method Summary collapse

Class Method Details

.default_userObject



2
3
4
5
6
7
8
9
10
# File 'lib/nehm/user_control.rb', line 2

def self.default_user
  if UserControl.logged_in?
    User.new(Config[:default_id])
  else
    puts Paint["You didn't logged in", :red]
    puts "Input #{Paint['nehm configure', :yellow]} to login"
    exit
  end
end

.log_inObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/nehm/user_control.rb', line 16

def self.
  loop do
    permalink = HighLine.new.ask('Please enter your permalink (last word in your profile url): ')
    url = "https://soundcloud.com/#{permalink}"
    if user_exist?(permalink)
      user = Client.get('/resolve', url: url)
      Config[:default_id] = user.id
      Config[:permalink] = permalink
      puts Paint['Successfully logged in!', :green]
      break
    else
      puts Paint['Invalid permalink. Please enter correct permalink', :red]
    end
  end
end

.logged_in?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/nehm/user_control.rb', line 12

def self.logged_in?
  Config.key?(:default_id)
end

.user(permalink) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/nehm/user_control.rb', line 32

def self.user(permalink)
  if user_exist?(permalink)
    user = Client.get('/resolve', url: "https://soundcloud.com/#{permalink}")
    User.new(user.id)
  else
    puts Paint['Invalid permalink. Please enter correct permalink', :red]
    exit
  end
end

.user_exist?(permalink) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/nehm/user_control.rb', line 44

def user_exist?(permalink)
  Client.get('/resolve', url: "https://soundcloud.com/#{permalink}")

  rescue SoundCloud::ResponseError => e
    if e.message =~ /404/
      false
    else
      raise e
    end
  else
    true
end