get_freaky 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38a677bb3a53fc8e5093a881f947f485151bfb9a
4
- data.tar.gz: e975a4f21f7c8ae7d6d5e40464e37f37fbe2ddcf
3
+ metadata.gz: a8b8b0276b4246dbdd45894b4abb24c817ff989a
4
+ data.tar.gz: 0055740fab0f9d3be0caec06b4bfe52f1de3230b
5
5
  SHA512:
6
- metadata.gz: 37146d928120baff63483b3c75ad814e1a0ffe65cb022ed9ea3651bcbdf2cee4b1b059a474a12e88acbf507a7906e75913789575dcc01794b83ae1b1f944239b
7
- data.tar.gz: 0d1923a463f2549574666a0082b8a6d50c655838203d220ec3bb40c4b7b93fa1a299e0768a3ed7b88bcd0661af2956573bcd7210afba913cef1f951b4fcf64e5
6
+ metadata.gz: e182c7b8b7631cf8c05162310e3c3b84b89f4097a4e7f8c4045977b71d6ab812060e2e545ec85f94edad0a0c5467b70ec592d0832d718fcaf758b3d57842e437
7
+ data.tar.gz: fafae8df8da8c3cace62350abdff49e1ed0e789e08a30a1d77e60f296c47af8025fe2768ebaa818be348b208263cd65ecde760ba52062160bb2a66332fd4c190
@@ -10,9 +10,9 @@ class Conference
10
10
  end
11
11
 
12
12
  def self.find(name)
13
- response = get("/conferences/#{name}.json")
14
- # TODO: I need to figure out a better way of dealing with 404 errors
15
- if response["status"] == 404
13
+ slug = create_slug(name)
14
+ response = get("/conferences/#{slug}.json")
15
+ if response.not_found?
16
16
  NullConference.new("No conference was found with that name")
17
17
  elsif response.success?
18
18
  self.new(
@@ -21,8 +21,7 @@ class Conference
21
21
  response["events"]
22
22
  )
23
23
  else
24
- # this just raises the net/http response that was raised
25
- raise response.response
24
+ raise response.status
26
25
  end
27
26
  end
28
27
 
@@ -32,7 +31,7 @@ class Conference
32
31
  end
33
32
 
34
33
  def event_list
35
- if valid?
34
+ if valid?
36
35
  events.map { |event| event["short_code"] }
37
36
  else
38
37
  "There was no conference found by that name."
@@ -42,4 +41,12 @@ class Conference
42
41
  def valid?
43
42
  true
44
43
  end
44
+
45
+ def self.create_slug(title)
46
+ title.
47
+ downcase.
48
+ # we cannot use slugify method below, one conference name has `:` char which must exist in url name (slug)
49
+ gsub(/[ ._]/, "-").
50
+ gsub(/([|])/) { |match| CGI.escape(match) }
51
+ end
45
52
  end
@@ -1,4 +1,4 @@
1
1
  module GetFreaky
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  DATE = %q{2015-11-14}
4
4
  end
@@ -41,6 +41,25 @@ class Video
41
41
  def download
42
42
  puts "downloading #{title}"
43
43
  YoutubeDL.download url, { output: "#{title}.mp4" }
44
+ rescue Cocaine::ExitStatusError => e
45
+ regex_errors = [
46
+ /YouTube said\: This video does not exist\./,
47
+ /YouTube said\: Please sign in to view this video\./,
48
+ /Incomplete YouTube ID/,
49
+ /HTTP Error 404\: Not Found/, # for vimeo
50
+ ]
51
+
52
+ case e.message
53
+ when *regex_errors
54
+ puts $LAST_MATCH_INFO[0]
55
+ return
56
+ when /content too short/
57
+ puts "#{$LAST_MATCH_INFO[0]} - retry"
58
+ return download
59
+ end
60
+
61
+ # raise different uncaught exceptions
62
+ raise e
44
63
  end
45
64
 
46
65
  def event
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: get_freaky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Mariano Cabrera
@@ -126,16 +126,16 @@ dependencies:
126
126
  name: bundler
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: '1.9'
131
+ version: 1.6.5
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: '1.9'
138
+ version: 1.6.5
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rake
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -211,3 +211,4 @@ signing_key:
211
211
  specification_version: 4
212
212
  summary: Get Freaky!
213
213
  test_files: []
214
+ has_rdoc: