hacker-curse 0.0.2 → 0.0.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 +4 -4
- data/CHANGELOG +4 -0
- data/bin/corvus +8 -5
- data/hacker-curse.gemspec +1 -0
- data/lib/hacker/curse/abstractsiteparser.rb +20 -9
- data/lib/hacker/curse/redditnewsparser.rb +3 -1
- data/lib/hacker/curse/version.rb +1 -1
- metadata +27 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a7befb7b18c8fa64f60aa1cd7f3eb2a62991f895
|
|
4
|
+
data.tar.gz: 6f489872df448003706c3ec2c2ea8564850b318c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 196560fe4dc2ea32697ee76d64fd6d63cc97a203c2fb802fcfb72ad6b0bd694149820bf453f4c660713200abe9ade53df8cd900010d58314ad7d8591a3355bf2
|
|
7
|
+
data.tar.gz: 5a1d90604d37f3fa7220e8c35ce05ff98e27af4c45ea7760b7037ff2f14ddc4c0f756c9a79ed86c9c0c7db4e2fc4392963b71792ac6d41b2c6e79a94063f1a28
|
data/CHANGELOG
ADDED
data/bin/corvus
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# Author: jkepler http://github.com/mare-imbrium//jkepler
|
|
7
7
|
# Date: 2014-07-30
|
|
8
8
|
# License: MIT
|
|
9
|
-
# Last update:
|
|
9
|
+
# Last update: 2016-03-21 00:05
|
|
10
10
|
# ----------------------------------------------------------------------------- #
|
|
11
11
|
# corvus.rb Copyright (C) 2014 j kepler
|
|
12
12
|
# == TODO
|
|
@@ -369,8 +369,8 @@ def fetch_data_from_net subforum=nil, more_url=nil
|
|
|
369
369
|
print "Enter name of subforum: "
|
|
370
370
|
subforum = Readline::readline('>', true)
|
|
371
371
|
return if subforum == ""
|
|
372
|
-
$host = forum_to_host subforum
|
|
373
372
|
end
|
|
373
|
+
$host = forum_to_host subforum
|
|
374
374
|
filename = forum_to_file subforum
|
|
375
375
|
print "fetching for #{subforum} ... saving to #{filename}\n"
|
|
376
376
|
m = nil
|
|
@@ -409,7 +409,8 @@ def file_to_forum filename
|
|
|
409
409
|
end
|
|
410
410
|
def forum_to_file forum
|
|
411
411
|
file = "#{forum}.yml".sub("/","__")
|
|
412
|
-
|
|
412
|
+
cp = File.expand_path $cache_path
|
|
413
|
+
file = "#{cp}/#{file}"
|
|
413
414
|
end
|
|
414
415
|
def forum_to_host fo
|
|
415
416
|
if $hacker_forums.include? fo
|
|
@@ -1075,7 +1076,8 @@ def choose_forum
|
|
|
1075
1076
|
end
|
|
1076
1077
|
def data_cached_for filename
|
|
1077
1078
|
f = "#{filename}.yml".gsub("/","__")
|
|
1078
|
-
|
|
1079
|
+
cp = File.expand_path $cache_path
|
|
1080
|
+
f = "#{cp}/#{f}"
|
|
1079
1081
|
return f if File.exists? f
|
|
1080
1082
|
perror "No data cached for #{f} "
|
|
1081
1083
|
return nil
|
|
@@ -2241,7 +2243,8 @@ def ctrlp arr
|
|
|
2241
2243
|
end
|
|
2242
2244
|
end
|
|
2243
2245
|
def get_hint
|
|
2244
|
-
if $gviscols == 2 and $view.size > 25
|
|
2246
|
+
#if $gviscols == 2 and $view.size > 25
|
|
2247
|
+
if $gviscols == 2 #and $view.size > 25
|
|
2245
2248
|
return "(Toggle) Press =1 to see single column, =l for long listing"
|
|
2246
2249
|
end
|
|
2247
2250
|
if $long_listing
|
data/hacker-curse.gemspec
CHANGED
|
@@ -147,6 +147,7 @@ module HackerCurse
|
|
|
147
147
|
end
|
|
148
148
|
def get_first_page
|
|
149
149
|
#@arr = to_hash @url
|
|
150
|
+
# 2016-03-20 - 23:45 page can be nil if HTTPError
|
|
150
151
|
page = _retrieve_page @url
|
|
151
152
|
end
|
|
152
153
|
def get_next_page opts={}
|
|
@@ -213,17 +214,27 @@ module HackerCurse
|
|
|
213
214
|
end
|
|
214
215
|
end
|
|
215
216
|
# returns nokogiri html doc and writes html is required.
|
|
217
|
+
# returns nil if HTTPError
|
|
216
218
|
def get_doc_for_url url
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
219
|
+
$stderr.puts "get_doc #{url} "
|
|
220
|
+
doc = nil
|
|
221
|
+
# 2016-03-20 - added check since sometimes server error was coming
|
|
222
|
+
begin
|
|
223
|
+
out = open(url)
|
|
224
|
+
rescue StandardError=>e
|
|
225
|
+
$stderr.puts "\tError: #{e}"
|
|
226
|
+
# 2016-03-20 - adding exit since it will go to client that shelled this command.
|
|
227
|
+
exit 1
|
|
228
|
+
else
|
|
229
|
+
doc = Nokogiri::HTML(out)
|
|
230
|
+
if @save_html
|
|
231
|
+
subforum = @subforum || "unknown"
|
|
232
|
+
outfile = @htmloutfile || "#{subforum}.html"
|
|
233
|
+
#if !File.exists? url
|
|
234
|
+
out.rewind
|
|
225
235
|
File.open(outfile, 'w') {|f| f.write(out.read) }
|
|
226
|
-
|
|
236
|
+
#end
|
|
237
|
+
end
|
|
227
238
|
end
|
|
228
239
|
return doc
|
|
229
240
|
end
|
|
@@ -4,7 +4,7 @@ module HackerCurse
|
|
|
4
4
|
|
|
5
5
|
class RedditNewsParser < AbstractSiteParser
|
|
6
6
|
def initialize config={}
|
|
7
|
-
@host = config[:host] || "
|
|
7
|
+
@host = config[:host] || "https://www.reddit.com"
|
|
8
8
|
subforum = config[:subforum] || "unknown"
|
|
9
9
|
_url="#{@host}/r/#{subforum}/.mobile"
|
|
10
10
|
config[:url] ||= _url
|
|
@@ -15,6 +15,7 @@ module HackerCurse
|
|
|
15
15
|
$stderr.puts "_retrieve_page got url #{url} "
|
|
16
16
|
raise "url should be string" unless url.is_a? String
|
|
17
17
|
arr = to_hash url
|
|
18
|
+
return nil unless arr # exception was caught
|
|
18
19
|
page = hash_to_class arr
|
|
19
20
|
#to_yml "#{@subforum}OLD.yml", arr
|
|
20
21
|
return page
|
|
@@ -32,6 +33,7 @@ module HackerCurse
|
|
|
32
33
|
page = {}
|
|
33
34
|
arr = Array.new
|
|
34
35
|
doc = get_doc_for_url url
|
|
36
|
+
return nil unless doc # exception was caught
|
|
35
37
|
page[:url] = url
|
|
36
38
|
now = Time.now
|
|
37
39
|
page[:create_date_seconds] = now.to_i
|
data/lib/hacker/curse/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,57 +1,71 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hacker-curse
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kepler
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2016-03-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - ~>
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '1.6'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - ~>
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '1.6'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- -
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: 0.9.6
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- -
|
|
38
|
+
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 0.9.6
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: canis
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- -
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: 0.0.3
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- -
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: 0.0.3
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: nokogiri
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
55
69
|
description: View Hacker News and reddit articles on terminal using ncurses
|
|
56
70
|
email:
|
|
57
71
|
- githubkepler.50s@gishpuppy.com
|
|
@@ -66,7 +80,8 @@ executables:
|
|
|
66
80
|
extensions: []
|
|
67
81
|
extra_rdoc_files: []
|
|
68
82
|
files:
|
|
69
|
-
- .gitignore
|
|
83
|
+
- ".gitignore"
|
|
84
|
+
- CHANGELOG
|
|
70
85
|
- Gemfile
|
|
71
86
|
- LICENSE
|
|
72
87
|
- README.md
|
|
@@ -95,17 +110,17 @@ require_paths:
|
|
|
95
110
|
- lib
|
|
96
111
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
97
112
|
requirements:
|
|
98
|
-
- -
|
|
113
|
+
- - ">="
|
|
99
114
|
- !ruby/object:Gem::Version
|
|
100
115
|
version: '0'
|
|
101
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
117
|
requirements:
|
|
103
|
-
- -
|
|
118
|
+
- - ">="
|
|
104
119
|
- !ruby/object:Gem::Version
|
|
105
120
|
version: '0'
|
|
106
121
|
requirements: []
|
|
107
122
|
rubyforge_project:
|
|
108
|
-
rubygems_version: 2.
|
|
123
|
+
rubygems_version: 2.4.5.1
|
|
109
124
|
signing_key:
|
|
110
125
|
specification_version: 4
|
|
111
126
|
summary: View hacker news and reddit articles on terminal using ncurses
|