xkcd 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/xkcd.rb +48 -54
  3. metadata +10 -16
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fa947e7bf08d1f3f0599731f01a15f6cfc208dfe
4
+ data.tar.gz: f3642a40560a81b75d982921645c877ff89c910a
5
+ SHA512:
6
+ metadata.gz: 3d530ae60f796b3743c6fbbe05eaaf3456da4d6125b72d7c643f8c6283386b4a99c163cbd3a66349a45c8f25ef1585cfb3c6c9478104c4eabfb521b029c63460
7
+ data.tar.gz: 140a6ea25180ddd19e4adc31b962b5a7c44fd1b507fa3b03993f7827c22f5ec8f07b4da5c7a63204673199b25635d0ee37b2d2cd5496fdcb7ad9302cf6d7d8d1
@@ -1,62 +1,56 @@
1
1
  #!/usr/bin/env ruby
2
- require 'nokogiri'
3
- require 'open-uri'
4
- require 'json'
5
- require 'google-search'
6
- require 'uri'
2
+ # frozen_string_literal: true
3
+
4
+ require "nokogiri"
5
+ require "open-uri"
6
+ require "json"
7
+ require "google-search"
8
+ require "uri"
7
9
 
8
10
  # The main XKCD driver
9
11
  class XKCD
10
- # Get img/comic URL from xkcd
11
- #
12
- # Example:
13
- # >> XKCD.img
14
- # => "http://imgs.xkcd.com/comics/hell.png"
15
- #
16
- # >> XKCD.comic
17
- # => "http://xkcd.com/891/"
18
-
19
- def self.comic
20
- open('http://dynamic.xkcd.com/random/comic/').base_uri.to_s
21
- end
22
-
23
- def self.search(query)
24
- comic_id = 149 #Default to make me a sandwich if nothing can be found
25
- Google::Search::Web.new(:query => "xkcd " + query).each do |result|
26
- current_url = URI(result.uri) #Parse the search result URL
27
- if current_url.hostname == "xkcd.com" #Ignore all of URLs which are not from XKCD.com
28
- id = current_url.path.gsub(/\//, "").to_i #Checking to make sure that only a URL with a comic strip ID is taken
29
- if id != 0
30
- comic_id = id
31
- break
32
- end
33
- end
12
+ # Get img/comic URL from xkcd
13
+ #
14
+ # Example:
15
+ # >> XKCD.img
16
+ # => "https://imgs.xkcd.com/comics/hell.png"
17
+ #
18
+ # >> XKCD.comic
19
+ # => "https://xkcd.com/891/"
20
+
21
+ def self.comic
22
+ open("https://dynamic.xkcd.com/random/comic/").base_uri.to_s
23
+ end
24
+
25
+ def self.search(query)
26
+ comic_id = 149 # Default to make me a sandwich if nothing can be found
27
+ Google::Search::Web.new(query: "xkcd " + query).each do |result|
28
+ current_url = URI(result.uri) # Parse the search result URL
29
+ next unless current_url.hostname == "xkcd.com" # Ignore all of URLs which are not from XKCD.com
30
+
31
+ id = current_url.path.gsub(/\//, "").to_i # Checking to make sure that only a URL with a comic strip ID is taken
32
+ if id != 0
33
+ comic_id = id
34
+ break
34
35
  end
35
-
36
- self.get_comic(comic_id)
37
- end
38
-
39
- class << XKCD
40
- alias_method :get, :comic
41
36
  end
42
37
 
43
- =begin
44
- def self.img
45
- img = Nokogiri::HTML(open('http://dynamic.xkcd.com/random/comic/')).css('#comic img')[0]
46
- img_url = img.attributes["src"].value
47
- img_title = img.attributes["title"].value
48
- "#{img_title} : #{img_url}"
49
- end
50
- =end
51
- def self.img
52
- max = JSON.parse(open('http://xkcd.com/info.0.json').read)["num"]
53
- comic_num = 1 + rand(max-1)
54
- comic_num = 1 if comic_num == 404 # Avoid 404th comic ;)
55
- self.get_comic(comic_num)
56
- end
57
-
58
- def self.get_comic(id)
59
- comic = JSON.parse(open("http://xkcd.com/#{id}/info.0.json").read)
60
- "#{comic['alt']} : #{comic['img']}"
61
- end
38
+ get_comic(comic_id)
39
+ end
40
+
41
+ class << XKCD
42
+ alias get comic
43
+ end
44
+
45
+ def self.img
46
+ max = JSON.parse(open("https://xkcd.com/info.0.json").read)["num"]
47
+ comic_num = 1 + rand(max - 1)
48
+ comic_num = 1 if comic_num == 404 # Avoid 404th comic ;)
49
+ get_comic(comic_num)
50
+ end
51
+
52
+ def self.get_comic(id)
53
+ comic = JSON.parse(open("https://xkcd.com/#{id}/info.0.json").read)
54
+ "#{comic["alt"]} : #{comic["img"]}"
55
+ end
62
56
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xkcd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
5
- prerelease:
4
+ version: 1.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Hemanth.HM
@@ -14,33 +13,29 @@ dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: nokogiri
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.5.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.5.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: google-search
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: A simple gem to get random img/comic url from xkcd
@@ -51,30 +46,29 @@ extensions: []
51
46
  extra_rdoc_files: []
52
47
  files:
53
48
  - Rakefile
54
- - lib/xkcd.rb
55
49
  - bin/xkcd
50
+ - lib/xkcd.rb
56
51
  - test/test_karam.rb
57
52
  homepage: http://rubygems.org/gems/xkcd
58
53
  licenses: []
54
+ metadata: {}
59
55
  post_install_message:
60
56
  rdoc_options: []
61
57
  require_paths:
62
58
  - lib
63
59
  required_ruby_version: !ruby/object:Gem::Requirement
64
- none: false
65
60
  requirements:
66
- - - ! '>='
61
+ - - ">="
67
62
  - !ruby/object:Gem::Version
68
63
  version: '0'
69
64
  required_rubygems_version: !ruby/object:Gem::Requirement
70
- none: false
71
65
  requirements:
72
- - - ! '>='
66
+ - - ">="
73
67
  - !ruby/object:Gem::Version
74
68
  version: '0'
75
69
  requirements: []
76
70
  rubyforge_project:
77
- rubygems_version: 1.8.23
71
+ rubygems_version: 2.6.14
78
72
  signing_key:
79
73
  specification_version: 3
80
74
  summary: XCKD random img urls!