distraction 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +5 -13
  2. data/bin/distraction +31 -29
  3. data/lib/distraction.rb +107 -107
  4. metadata +5 -5
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OWYzNzkwODJlNDhiNWE1ZjFlYTZkNTkyNGU1OTU1OWUxMmI1MTE2MQ==
5
- data.tar.gz: !binary |-
6
- MjVlNjczOTc2OTZmZjBiYWY5MjBmODlmOTJhZmJmZjMwOTBmZWU2MQ==
2
+ SHA1:
3
+ metadata.gz: 4651bc861438ecc5f2c05b9b8b6efed46be8a49d
4
+ data.tar.gz: 0fa69d8ca9551366735c4a9d824bcd0e19e0ad0e
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- M2Y1YzYxMTI4M2FmMjgwYTUxNzRlYTcxNWZhZDAzYzY2YjgxYTZmZWVlNGIz
10
- MjQ3YTFjYzAxY2E5NTU5NWYzZDgyN2M1ZmIwNzdlNDY1ZTMzMzI1NzdlYzg3
11
- ZGZlMDYwMGVhMGNkYmNhZTBkMjY1NDM5YWMxOGEyNjkwN2MxYzU=
12
- data.tar.gz: !binary |-
13
- NGEwODc2Y2MwMzdiODY3OTQ3Mjg2ZGU2OWJjOTY0ZWRhYzQzODgxODY4ZDJh
14
- MjgzYjc2MmUzZmI2NTU2M2RhNzZhZmE3MGY0ZmI0OTA5N2U1YjM4ZTI4Yjhm
15
- OGMxY2RkOTU4MWEzM2NkOGQyOWI2MjM4ODQwNWEyNzUzOWQ3YjM=
6
+ metadata.gz: dc4b13cb6b79e5be6b80a4798767f41b9485d20ef14b854d1f13b3df34a3d7cd9bba0f8ace311757bcfe68502b1ce8d70a56236a3f9c8f5ad2b555d06c853ccf
7
+ data.tar.gz: 463299f0ea7288df57939e044407be2eadce07448cc840e4e2d90474b624de7487aee48876bfaad9d1e3ada2756fb8fa826a66f6f75489dc43973a5b2068b468
@@ -3,37 +3,39 @@
3
3
  require 'distraction'
4
4
  require 'rubygems'
5
5
 
6
+ VERSION = "0.0.3"
7
+
6
8
  begin
7
- # get arguments
8
- args = ARGV.join(" ")
9
- abort(Gem::Specification::load("distraction.gemspec").version.to_s) if args == "--version" || args == "-v"
9
+ # get arguments
10
+ args = ARGV.join(" ")
11
+ abort(VERSION) if args == "--version" || args == "-v"
10
12
 
11
- case args
12
- when /^reddit/
13
- args = args.split(" ")
14
- if args[1]
15
- Distraction.reddit_top(args[1])
16
- else
17
- Distraction.reddit_top("all")
18
- end
19
- when "fact"
20
- Distraction.reddit_fact(false)
21
- when "fact open"
22
- Distraction.reddit_fact(true)
23
- when /^vid/
24
- Distraction.reddit_vid()
25
- when "hn"
26
- Distraction.hn()
27
- else
28
- puts "I can't do that! But I can do the following:\n\n"\
29
- " distraction reddit Displays the top ten posts on the Reddit homepage\n"\
30
- " distraction reddit [subreddit] Displays the top ten posts in [subreddit]\n"\
31
- " distraction fact Displays an interesting fact\n"\
32
- " distraction fact open Displays a fact and opens up a URL with more information\n"\
33
- " distraction vid Displays a random video\n"\
34
- " distraction hn Displays the top ten posts on Hacker News"\
35
- end
13
+ case args
14
+ when /^reddit/
15
+ args = args.split(" ")
16
+ if args[1]
17
+ Distraction.reddit_top(args[1])
18
+ else
19
+ Distraction.reddit_top("all")
20
+ end
21
+ when "fact"
22
+ Distraction.reddit_fact(false)
23
+ when "fact open"
24
+ Distraction.reddit_fact(true)
25
+ when /^vid/
26
+ Distraction.reddit_vid()
27
+ when "hn"
28
+ Distraction.hn()
29
+ else
30
+ puts "I can't do that! But I can do the following:\n\n"\
31
+ " distraction reddit Displays the top ten posts on the Reddit homepage\n"\
32
+ " distraction reddit [subreddit] Displays the top ten posts in [subreddit]\n"\
33
+ " distraction fact Displays an interesting fact\n"\
34
+ " distraction fact open Displays a fact and opens up a URL with more information\n"\
35
+ " distraction vid Displays a random video\n"\
36
+ " distraction hn Displays the top ten posts on Hacker News"\
37
+ end
36
38
 
37
39
  rescue Interrupt => e # handle CTRL + C cleanly
38
- puts ""
40
+ puts ""
39
41
  end
@@ -2,120 +2,120 @@ require 'net/http'
2
2
  require 'json'
3
3
 
4
4
  class Distraction
5
- # display the top link from TIL
6
- def self.reddit_fact(open)
7
- begin
8
- ping = Net::HTTP.get(URI('http://www.reddit.com/r/todayilearned.json?limit=5'))
9
- listing = JSON.parse(ping)
10
- listing = listing['data']['children']
5
+ # display the top link from TIL
6
+ def self.reddit_fact(open)
7
+ begin
8
+ ping = Net::HTTP.get(URI('http://www.reddit.com/r/todayilearned/top.json?t=day&limit=5'))
9
+ listing = JSON.parse(ping)
10
+ listing = listing['data']['children']
11
11
 
12
- # check if NSFW
13
- result = listing.each do |l|
14
- break l['data'] if (!l['data']['over_18'])
15
- end
16
- result_title = result['title'].gsub('TIL', 'Did you know...')
17
- result_domain = result['domain']
18
- result_url = result['url']
12
+ # check if NSFW
13
+ result = listing.each do |l|
14
+ break l['data'] if (!l['data']['over_18'])
15
+ end
16
+ result_title = result['title'].gsub('TIL', 'Did you know...')
17
+ result_domain = result['domain']
18
+ result_url = result['url']
19
19
 
20
- case open
21
- when true
22
- puts result_title + "\n\nOpening link from (#{result_domain}) in 10 seconds... CTRL + C to quit."
23
- sleep(10)
24
- `open #{result_url}`
25
- when false
26
- puts result_title + "\n\nYou can type 'distraction fact open' to open the link in a browser."
27
- end
20
+ case open
21
+ when true
22
+ puts result_title + "\n\nOpening link from (#{result_domain}) in 10 seconds... CTRL + C to quit."
23
+ sleep(10)
24
+ `open #{result_url}`
25
+ when false
26
+ puts result_title + "\n\nYou can type 'distraction fact open' to open the link in a browser."
27
+ end
28
28
 
29
- rescue
30
- puts "Reddit isn't responding right now. Let's try again later."
31
- end
32
- end
29
+ rescue
30
+ puts "Reddit isn't responding right now. Let's try again later."
31
+ end
32
+ end
33
33
 
34
- # display the top ten links on Reddit frontpage
35
- def self.reddit_top(subreddit)
36
- begin
37
- ping = Net::HTTP.get(URI('http://www.reddit.com/r/' + subreddit + '.json?limit=10'))
38
- listing = JSON.parse(ping)
39
- listing = listing['data']['children']
34
+ # display the top ten links on Reddit frontpage
35
+ def self.reddit_top(subreddit)
36
+ begin
37
+ ping = Net::HTTP.get(URI('http://www.reddit.com/r/' + subreddit + '.json?limit=10'))
38
+ listing = JSON.parse(ping)
39
+ listing = listing['data']['children']
40
40
 
41
- listing.each_with_index do |l, i|
42
- line = " " + (i+1).to_s.rjust(2, " ") + ". " + l['data']['title'] + " (" + l['data']['domain'] + ")"
43
- if l['data']['over_18']
44
- line = line + " (NSFW)"
45
- end
46
- puts line
47
- end
48
- puts "\nWhich link would you like to open?"
49
- story = STDIN.gets.chomp()
50
- story = story.to_i
41
+ listing.each_with_index do |l, i|
42
+ line = " " + (i+1).to_s.rjust(2, " ") + ". " + l['data']['title'] + " (" + l['data']['domain'] + ")"
43
+ if l['data']['over_18']
44
+ line = line + " (NSFW)"
45
+ end
46
+ puts line
47
+ end
48
+ puts "\nWhich link would you like to open?"
49
+ story = STDIN.gets.chomp()
50
+ story = story.to_i
51
51
 
52
- if ((story < 11) && (story > 0))
53
- result = listing[story-1]['data']
54
- result_domain = result['domain']
55
- result_url = result['url']
56
- puts "\nOpening link from (#{result_domain}) in 5 seconds... CTRL + C to quit."
57
- sleep(5)
58
- `open #{result_url}`
59
- else
60
- puts "Come on, son."
61
- end
62
- rescue
63
- puts "Oops, either Reddit isn't responding or that subreddit doesn't exist!"
64
- end
65
- end
52
+ if ((story < 11) && (story > 0))
53
+ result = listing[story-1]['data']
54
+ result_domain = result['domain']
55
+ result_url = result['url']
56
+ puts "\nOpening link from (#{result_domain}) in 5 seconds... CTRL + C to quit."
57
+ sleep(5)
58
+ `open #{result_url}`
59
+ else
60
+ puts "Come on, son."
61
+ end
62
+ rescue
63
+ puts "Oops, either Reddit isn't responding or that subreddit doesn't exist!"
64
+ end
65
+ end
66
66
 
67
- # picks a random video off r/videos
68
- def self.reddit_vid()
69
- begin
70
- ping = Net::HTTP.get(URI('http://www.reddit.com/r/videos.json')) # gets 25 top vids
71
- listing = JSON.parse(ping)
72
- listing = listing['data']['children']
73
- nsfw_flag = true # true means it is nsfw
74
- randomVideo = 0
75
- while nsfw_flag
76
- randomVideo = rand(24) # random between 0 and 24
77
- nsfw_flag = listing[randomVideo]['data']['over_18']
78
- end
79
- result = listing[randomVideo]['data']
80
- result_domain = result['domain']
81
- result_url = result['url']
82
- puts "Opening video from (#{result_domain}) in 5 seconds... CTRL + C to quit."
83
- sleep(5)
84
- `open #{result_url}`
85
- rescue
86
- puts "Oops, something went wrong! Let's try again later."
87
- end
88
- end
67
+ # picks a random video off r/videos
68
+ def self.reddit_vid()
69
+ begin
70
+ ping = Net::HTTP.get(URI('http://www.reddit.com/r/videos.json')) # gets 25 top vids
71
+ listing = JSON.parse(ping)
72
+ listing = listing['data']['children']
73
+ nsfw_flag = true # true means it is nsfw
74
+ randomVideo = 0
75
+ while nsfw_flag
76
+ randomVideo = rand(24) # random between 0 and 24
77
+ nsfw_flag = listing[randomVideo]['data']['over_18']
78
+ end
79
+ result = listing[randomVideo]['data']
80
+ result_domain = result['domain']
81
+ result_url = result['url']
82
+ puts "Opening video from (#{result_domain}) in 5 seconds... CTRL + C to quit."
83
+ sleep(5)
84
+ `open #{result_url}`
85
+ rescue
86
+ puts "Oops, something went wrong! Let's try again later."
87
+ end
88
+ end
89
89
 
90
- # display the top ten links on HN homepage
91
- def self.hn()
92
- begin
93
- ping = Net::HTTP.get(URI('http://api.ihackernews.com/page/'))
94
- listing = JSON.parse(ping)
95
- listing = listing['items']
96
- i = 1
97
- while (i < 11)
98
- line = " " + i.to_s.rjust(2, " ") + ". " + listing[i]['title']
99
- i += 1
100
- puts line
101
- end
102
- puts "\nWhich article would you like to open?"
103
- story = STDIN.gets.chomp()
104
- story = story.to_i
90
+ # display the top ten links on HN homepage
91
+ def self.hn()
92
+ begin
93
+ ping = Net::HTTP.get(URI('http://hn.algolia.com/api/v1/search?tags=front_page'))
94
+ listing = JSON.parse(ping)
95
+ listing = listing['hits']
96
+ i = 1
97
+ while (i < 11)
98
+ line = " " + i.to_s.rjust(2, " ") + ". " + listing[i]['title']
99
+ i += 1
100
+ puts line
101
+ end
102
+ puts "\nWhich article would you like to open?"
103
+ story = STDIN.gets.chomp()
104
+ story = story.to_i
105
105
 
106
- if ((story < 11) && (story > 0))
107
- result_url = listing[story]['url']
108
- if result_url.start_with?("/comments/")
109
- result_url = "http://news.ycombinator.com/item?id=#{listing[story]['id']}"
110
- end
111
- puts "\nOpening link (#{result_url}) in 5 seconds... CTRL + C to quit."
112
- sleep(5)
113
- `open #{result_url}`
114
- else
115
- puts "Come on, son."
116
- end
117
- rescue
118
- puts "The HN API we're using isn't responding right now. Let's try again later."
119
- end
120
- end
106
+ if ((story < 11) && (story > 0))
107
+ result_url = listing[story]['url']
108
+ if result_url.start_with?("/comments/")
109
+ result_url = "http://news.ycombinator.com/item?id=#{listing[story]['id']}"
110
+ end
111
+ puts "\nOpening link (#{result_url}) in 5 seconds... CTRL + C to quit."
112
+ sleep(5)
113
+ `open #{result_url}`
114
+ else
115
+ puts "Come on, son."
116
+ end
117
+ rescue
118
+ puts "The HN API we're using isn't responding right now. Let's try again later."
119
+ end
120
+ end
121
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: distraction
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Wu
@@ -19,7 +19,7 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - bin/distraction
21
21
  - lib/distraction.rb
22
- homepage:
22
+ homepage: https://github.com/frankjwu/distraction
23
23
  licenses:
24
24
  - MIT
25
25
  metadata: {}
@@ -29,17 +29,17 @@ require_paths:
29
29
  - lib
30
30
  required_ruby_version: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ! '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: '0'
35
35
  required_rubygems_version: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ! '>='
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  requirements: []
41
41
  rubyforge_project:
42
- rubygems_version: 2.2.2
42
+ rubygems_version: 2.4.8
43
43
  signing_key:
44
44
  specification_version: 4
45
45
  summary: A quick distraction in your command line for when you're way too deep in