nogizaka_blog 0.0.3 → 0.0.4
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/README.md +30 -5
- data/Rakefile +1 -2
- data/lib/nogizaka_blog/amazing.rb +8 -39
- data/lib/nogizaka_blog/core_ext.rb +6 -6
- data/lib/nogizaka_blog/member.rb +1 -1
- data/lib/nogizaka_blog/version.rb +1 -1
- data/lib/nogizaka_blog.rb +0 -1
- data/nogizaka_blog.gemspec +10 -11
- metadata +2 -17
- data/lib/nogizaka_blog/cli.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 923417f0f312efd604e0c5b3606bfc33a9abe8ff
|
4
|
+
data.tar.gz: 9ce486df6746b1afbc587cc72273d5aae6430ff2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8eb0863381a7597144d55d69f35dc2169510fd838667300c824f5ae6a9646baffeb63b149587b6a968692bb7e70f1886c57b3a32b409b42929f555b59d1285f
|
7
|
+
data.tar.gz: 69f63bfc7fee30cdf5c39ab44840426c390b988938348d4444ccb1f3bd6a8774b56c12f718059d975784b570451ffb58769851613066442115f1f36a4e68aadc
|
data/README.md
CHANGED
@@ -18,11 +18,36 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
require 'nogizaka_blog'
|
22
|
+
|
23
|
+
nogi = NogizakaBlog::Amazing.new('201405')
|
24
|
+
|
25
|
+
nogi.scraping do |name, comment, article, index|
|
26
|
+
puts "#{index} #{name.to_kanji}(#{name}) #{comment} / #{article}"
|
27
|
+
end
|
28
|
+
|
29
|
+
Generate JSON example
|
30
|
+
|
31
|
+
require 'nogizaka_blog'
|
32
|
+
|
33
|
+
@nogi = NogizakaBlog::Amazing.new('201405')
|
34
|
+
|
35
|
+
p @nogi.member_size
|
36
|
+
|
37
|
+
def gen_json
|
38
|
+
last = @nogi.member_size - 1
|
39
|
+
print '['
|
40
|
+
@nogi.scraping do |name, comment, article, idx|
|
41
|
+
if idx == last
|
42
|
+
print %Q({"name": "#{name.to_kanji}", "comment": #{comment}, "article": #{article}})
|
43
|
+
else
|
44
|
+
print %Q({"name": "#{name.to_kanji}", "comment": #{comment}, "article": #{article}},)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
print ']'
|
48
|
+
end
|
49
|
+
|
50
|
+
gen_json
|
26
51
|
|
27
52
|
## Contributing
|
28
53
|
|
data/Rakefile
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
require
|
2
|
-
|
1
|
+
require 'bundler/gem_tasks'
|
@@ -6,15 +6,16 @@ module NogizakaBlog
|
|
6
6
|
class Amazing
|
7
7
|
using Extentions
|
8
8
|
|
9
|
+
attr_reader :member_size
|
10
|
+
attr_accessor :yearmonth
|
11
|
+
|
9
12
|
def initialize(yearmonth)
|
10
13
|
@yearmonth = yearmonth
|
11
14
|
@member_size = MEMBER.size
|
12
15
|
end
|
13
16
|
|
14
|
-
attr_reader :member_size
|
15
|
-
|
16
17
|
def scraping
|
17
|
-
|
18
|
+
max_page
|
18
19
|
@member_max.each_with_index do |(name, max), idx|
|
19
20
|
@comment = []
|
20
21
|
|
@@ -23,11 +24,11 @@ module NogizakaBlog
|
|
23
24
|
@comment << 0
|
24
25
|
elsif max == 0
|
25
26
|
url = "http://blog.nogizaka46.com/#{name}/?d=#{@yearmonth}"
|
26
|
-
|
27
|
+
comment_size(url)
|
27
28
|
else
|
28
29
|
(1..max).each do |n|
|
29
30
|
url = "http://blog.nogizaka46.com/#{name}/?p=#{n}&d=#{@yearmonth}"
|
30
|
-
|
31
|
+
comment_size(url)
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
@@ -43,30 +44,7 @@ module NogizakaBlog
|
|
43
44
|
|
44
45
|
private
|
45
46
|
|
46
|
-
def
|
47
|
-
puts "#{@yearmonth[0..3]}/#{@yearmonth[4..5]}"
|
48
|
-
header = display_format('name', 'comment', 'article')
|
49
|
-
puts header
|
50
|
-
puts '-' * header.size
|
51
|
-
scraping do |name, comment, article, _|
|
52
|
-
puts display_format("#{name.to_kanji}(#{name})", comment, article)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def gen_json
|
57
|
-
last = @member_size - 1
|
58
|
-
print "["
|
59
|
-
scraping do |name, comment, article, idx|
|
60
|
-
if idx == last
|
61
|
-
print "{\"name\": \"#{name.to_kanji}\", \"comment\": #{comment}, \"article\": #{article}}"
|
62
|
-
else
|
63
|
-
print "{\"name\": \"#{name.to_kanji}\", \"comment\": #{comment}, \"article\": #{article}},"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
print "]"
|
67
|
-
end
|
68
|
-
|
69
|
-
def get_max_page
|
47
|
+
def max_page
|
70
48
|
nbsp = Nokogiri::HTML(' ').text
|
71
49
|
@member_max = []
|
72
50
|
|
@@ -95,20 +73,11 @@ module NogizakaBlog
|
|
95
73
|
end
|
96
74
|
end
|
97
75
|
|
98
|
-
def
|
76
|
+
def comment_size(url)
|
99
77
|
doc = Nokogiri::HTML(open(url))
|
100
78
|
doc.css('.entrybottom a:last').each do |link|
|
101
79
|
link.content.scan(/\d+/) { |c| @comment << c }
|
102
80
|
end
|
103
81
|
end
|
104
|
-
|
105
|
-
def display_format(name, comment, article)
|
106
|
-
name_length = 28 - full_width_count(name)
|
107
|
-
[name.ljust(name_length), comment.to_s.rjust(7), article.to_s.rjust(7)].join(' | ')
|
108
|
-
end
|
109
|
-
|
110
|
-
def full_width_count(string)
|
111
|
-
string.each_char.select { |char| !(/[ -~。-゚]/.match(char)) }.count
|
112
|
-
end
|
113
82
|
end
|
114
83
|
end
|
data/lib/nogizaka_blog/member.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module NogizakaBlog
|
2
|
-
MEMBER = {
|
2
|
+
MEMBER = { 'manatsu.akimoto' => '秋元真夏', 'erika.ikuta' => '生田絵梨花', 'rina.ikoma' => '生駒里奈', 'rena.ichiki' => '市來玲奈', 'nene.ito' => '伊藤寧々', 'marika.ito' => '伊藤万理華', 'sayuri.inoue' => '井上小百合', 'misa.eto' => '衛藤美彩', 'hina.kawago' => '川後陽菜', 'mahiro.kawamura' => '川村真洋', 'hinako.kitano' => '北野日奈子', 'asuka.saito' => '齋藤飛鳥', 'chiharu.saito' => '斎藤ちはる', 'yuuri.saito' => '斉藤優里', 'reika.sakurai' => '桜井玲香', 'mai.shiraishi' => '白石麻衣', 'mai.shinuchi' => '新内眞衣', 'kazumi.takayama' => '高山一実', 'kana.nakada' => '中田花奈', 'himeka.nakamoto' => '中元日芽香', 'seira.nagashima' => '永島聖羅', 'nanase.nishino' => '西野七瀬', 'ami.noujo' => '能條愛未', 'nanami.hashimoto' => '橋本奈々未', 'seira.hatanaka' => '畠中清羅', 'hina.higuchi' => '樋口日奈', 'mai.fukagawa' => '深川麻衣', 'minami.hoshino' => '星野みなみ', 'miona.hori' => '堀未央奈', 'sayuri.matsumura' => '松村沙友理', 'rina.yamato' => '大和里菜', 'yumi.wakatsuki' => '若月佑美', 'maaya.wada' => '和田まあや' }.freeze
|
3
3
|
end
|
data/lib/nogizaka_blog.rb
CHANGED
data/nogizaka_blog.gemspec
CHANGED
@@ -4,22 +4,21 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'nogizaka_blog/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'nogizaka_blog'
|
8
8
|
spec.version = NogizakaBlog::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.summary = %q
|
12
|
-
spec.description = %q
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['hachy']
|
10
|
+
spec.email = ['pekoett@gmail.com']
|
11
|
+
spec.summary = %q(Get the number of comments and articles per month from Nogizaka46's blog)
|
12
|
+
spec.description = %q(Get the number of comments and articles per month from Nogizaka46's blog)
|
13
|
+
spec.homepage = 'https://github.com/hachy/nogizaka_blog'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'thor'
|
22
21
|
spec.add_dependency 'nokogiri'
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
23
|
+
spec.add_development_dependency 'rake'
|
25
24
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nogizaka_blog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- hachy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: thor
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: nokogiri
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +68,6 @@ files:
|
|
82
68
|
- bin/nogizaka_blog
|
83
69
|
- lib/nogizaka_blog.rb
|
84
70
|
- lib/nogizaka_blog/amazing.rb
|
85
|
-
- lib/nogizaka_blog/cli.rb
|
86
71
|
- lib/nogizaka_blog/core_ext.rb
|
87
72
|
- lib/nogizaka_blog/member.rb
|
88
73
|
- lib/nogizaka_blog/version.rb
|
data/lib/nogizaka_blog/cli.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'thor'
|
2
|
-
|
3
|
-
module NogizakaBlog
|
4
|
-
class CLI < Thor
|
5
|
-
desc "yearmonth YEARMONTH", "show the number of comments and articles of Nogizaka46's blog"
|
6
|
-
option :json, :type => :boolean, :aliases => '-j'
|
7
|
-
def yearmonth(ym)
|
8
|
-
nogizaka = NogizakaBlog::Amazing.new(ym)
|
9
|
-
if options[:json]
|
10
|
-
nogizaka.__send__ :gen_json
|
11
|
-
else
|
12
|
-
nogizaka.__send__ :run
|
13
|
-
end
|
14
|
-
end
|
15
|
-
map %w(-y --yearmonth) => :yearmonth
|
16
|
-
|
17
|
-
desc "version", "show NogizakaBlog version"
|
18
|
-
def version
|
19
|
-
puts "NogizakaBlog #{NogizakaBlog::VERSION}"
|
20
|
-
end
|
21
|
-
map %w(-v --version) => :version
|
22
|
-
end
|
23
|
-
|
24
|
-
CLI.start(ARGV)
|
25
|
-
end
|