get_freaky 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: