nayutaya-ironnews-utility 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile
CHANGED
@@ -3,6 +3,21 @@ NAME = "nayutaya-ironnews-utility"
|
|
3
3
|
|
4
4
|
task :default => :gemspec
|
5
5
|
|
6
|
+
task :version do
|
7
|
+
require "lib/ironnews_utility/version"
|
8
|
+
cur_version = IronnewsUtility::VERSION
|
9
|
+
next_version = cur_version.succ
|
10
|
+
puts("#{cur_version} -> #{next_version}")
|
11
|
+
|
12
|
+
filename = File.join(File.dirname(__FILE__), "lib", "ironnews_utility", "version.rb")
|
13
|
+
File.open(filename, "wb") { |file|
|
14
|
+
file.puts
|
15
|
+
file.puts(%|module IronnewsUtility|)
|
16
|
+
file.puts(%| VERSION = "#{next_version}"|)
|
17
|
+
file.puts(%|end|)
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
6
21
|
desc "generate gemspec file from template"
|
7
22
|
task :gemspec do
|
8
23
|
require "erb"
|
@@ -1,19 +1,121 @@
|
|
1
1
|
|
2
2
|
module IronnewsUtility
|
3
3
|
CleanseTitleTable = {
|
4
|
-
"
|
5
|
-
|
6
|
-
|
7
|
-
"
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
"
|
12
|
-
|
13
|
-
|
14
|
-
"
|
15
|
-
|
16
|
-
|
17
|
-
"
|
4
|
+
"gigazine.net" => [
|
5
|
+
[%r'\A(.+) - GIGAZINE\Z', '\1'].freeze,
|
6
|
+
].freeze,
|
7
|
+
"headlines.yahoo.co.jp" => [
|
8
|
+
[%r'\A(.+) - Yahoo!ニュース\Z', '\1'].freeze,
|
9
|
+
[%r'\A(.+)(.+)\Z', '\1'].freeze,
|
10
|
+
].freeze,
|
11
|
+
"japan.cnet.com" => [
|
12
|
+
[%r'\A(.+) - CNET Japan\Z', '\1'].freeze,
|
13
|
+
].freeze,
|
14
|
+
"journal.mycom.co.jp" => [
|
15
|
+
[%r'\A(.+) \| マイコミジャーナル\Z', '\1'].freeze,
|
16
|
+
].freeze,
|
17
|
+
"kyushu.yomiuri.co.jp" => [
|
18
|
+
[%r'\A(.+) : 九州発 : YOMIURI ONLINE(読売新聞)\Z', '\1'].freeze,
|
19
|
+
].freeze,
|
20
|
+
"mainichi.jp" => [
|
21
|
+
[%r'\A(.+) - 毎日jp\(毎日新聞\)\Z', '\1'].freeze,
|
22
|
+
[%r'\A(.+) - 毎日jp\(毎日新聞\)\Z', '\1'].freeze,
|
23
|
+
].freeze,
|
24
|
+
"mytown.asahi.com" => [
|
25
|
+
[%r'\Aasahi\.com:(.+)-マイタウン(.+)\Z', '\1 - \2'].freeze,
|
26
|
+
].freeze,
|
27
|
+
"news.kanaloco.jp" => [
|
28
|
+
[%r'\A(.+):ローカルニュース : ニュース : カナロコ -- 神奈川新聞社\Z', '\1'].freeze,
|
29
|
+
].freeze,
|
30
|
+
"news24.jp" => [
|
31
|
+
[%r'\A(.+) \| 日テレNEWS24\Z', '\1'].freeze,
|
32
|
+
].freeze,
|
33
|
+
"osaka.yomiuri.co.jp" => [
|
34
|
+
[%r'\A(.+) : 関西発 : YOMIURI ONLINE(読売新聞)\Z', '\1'].freeze,
|
35
|
+
].freeze,
|
36
|
+
"response.jp" => [
|
37
|
+
[%r'\A(.+) \| レスポンス自動車ニュース(Response.jp)\Z', '\1'].freeze,
|
38
|
+
].freeze,
|
39
|
+
"sankei.jp.msn.com" => [
|
40
|
+
[%r'\A(.+) - MSN産経ニュース\Z', '\1'].freeze,
|
41
|
+
[%r'\A(.+) \(\d+/\d+ページ\)\Z', '\1'].freeze,
|
42
|
+
].freeze,
|
43
|
+
"slashdot.jp" => [
|
44
|
+
[%r'\A(.+) - スラッシュドット・ジャパン\Z', '\1'].freeze,
|
45
|
+
].freeze,
|
46
|
+
"svr.sanyo.oni.co.jp" => [
|
47
|
+
[%r'\A(.+) - 山陽新聞地域ニュース\Z', '\1'].freeze,
|
48
|
+
].freeze,
|
49
|
+
"techon.nikkeibp.co.jp" => [
|
50
|
+
[%r'\A(.+) - Tech-On!\Z', '\1'].freeze,
|
51
|
+
].freeze,
|
52
|
+
"www.47news.jp" => [
|
53
|
+
[%r'\A(.+) - 47NEWS(よんななニュース)\Z', '\1'].freeze,
|
54
|
+
[%r'\A(.+) - 47NEWS \(よんななニュース\)\Z', '\1'].freeze,
|
55
|
+
].freeze,
|
56
|
+
"www.afpbb.com" => [
|
57
|
+
[%r'\A(.+) 国際ニュース : AFPBB News\Z', '\1'].freeze,
|
58
|
+
].freeze,
|
59
|
+
"www.asahi.com" => [
|
60
|
+
[%r'\Aasahi\.com(朝日新聞社):(.+)\Z', '\1'].freeze,
|
61
|
+
[%r'\Aasahi\.com:(.+)\Z', '\1'].freeze,
|
62
|
+
[%r'\A(.+) - ことばなるほどね! - 学ぼう\Z', '\1'].freeze,
|
63
|
+
[%r'\A(.+) - 最新ニュース - 読もう\Z', '\1'].freeze,
|
64
|
+
[%r'\Aasahi\.com (朝日新聞社):(.+)\Z', '\1'].freeze,
|
65
|
+
].freeze,
|
66
|
+
"www.business-i.jp" => [
|
67
|
+
[%r'\A(.+) - FujiSankei Business i\./Bloomberg GLOBAL FINANCE\Z', '\1'].freeze,
|
68
|
+
].freeze,
|
69
|
+
"www.chugoku-np.co.jp" => [
|
70
|
+
[%r'\A(.+) - 中国新聞\Z', '\1'].freeze,
|
71
|
+
].freeze,
|
72
|
+
"www.chunichi.co.jp" => [
|
73
|
+
[%r'\A中日新聞:(.+)\(CHUNICHI Web\)\Z', '\1'].freeze,
|
74
|
+
].freeze,
|
75
|
+
"www.cnn.co.jp" => [
|
76
|
+
[%r'\ACNN\.co\.jp:(.+)\Z', '\1'].freeze,
|
77
|
+
].freeze,
|
78
|
+
"www.fnn-news.com" => [
|
79
|
+
[%r'\AFNNニュース: (.+)\Z', '\1'].freeze,
|
80
|
+
].freeze,
|
81
|
+
"www.hokkaido-np.co.jp" => [
|
82
|
+
[%r'\A(.+)−北海道新聞\[.+\]\Z', '\1'].freeze,
|
83
|
+
].freeze,
|
84
|
+
"www.jiji.com" => [
|
85
|
+
[%r'\A時事ドットコム:(.+)\Z', '\1'].freeze,
|
86
|
+
].freeze,
|
87
|
+
"www.kahoku.co.jp" => [
|
88
|
+
[%r'\A河北新報 東北のニュース/(.+)\Z', '\1'].freeze,
|
89
|
+
[%r'\A河北新報 (.+)\Z', '\1'].freeze,
|
90
|
+
].freeze,
|
91
|
+
"www.kobe-np.co.jp" => [
|
92
|
+
[%r'\A神戸新聞|(.+)\Z', '\1'].freeze,
|
93
|
+
[%r'\A全国海外ニュース|(.+)\Z', '\1'].freeze,
|
94
|
+
[%r'\A事件・事故|(.+)\Z', '\1'].freeze,
|
95
|
+
].freeze,
|
96
|
+
"www.kyoto-np.co.jp" => [
|
97
|
+
[%r'\A(.+):京都新聞\Z', '\1'].freeze,
|
98
|
+
].freeze,
|
99
|
+
"www.mutusinpou.co.jp" => [
|
100
|
+
[%r'\A(.+) by 陸奥新報\Z', '\1'].freeze,
|
101
|
+
].freeze,
|
102
|
+
"www.nagasaki-np.co.jp" => [
|
103
|
+
[%r'\A龍〜なが 長崎新聞ホームページ:(.+)\Z', '\1'].freeze,
|
104
|
+
].freeze,
|
105
|
+
"www.nhk.or.jp" => [
|
106
|
+
[%r'\ANHKニュース (.+)\Z', '\1'].freeze,
|
107
|
+
].freeze,
|
108
|
+
"www.nishinippon.co.jp" => [
|
109
|
+
[%r'\A(.+) / 西日本新聞\Z', '\1'].freeze,
|
110
|
+
].freeze,
|
111
|
+
"www.tetsudo.com" => [
|
112
|
+
[%r'\A(.+) - 鉄道コム\Z', '\1'].freeze,
|
113
|
+
].freeze,
|
114
|
+
"www.tokyo-np.co.jp" => [
|
115
|
+
[%r'\A東京新聞:(.+)\(TOKYO Web\)\Z', '\1'].freeze,
|
116
|
+
].freeze,
|
117
|
+
"www.yomiuri.co.jp" => [
|
118
|
+
[%r'\A(.+) : YOMIURI ONLINE(読売新聞)\Z', '\1'].freeze,
|
119
|
+
].freeze,
|
18
120
|
}.freeze
|
19
121
|
end
|
@@ -18,12 +18,14 @@ module IronnewsUtility
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.cleanse_title(url, title)
|
21
|
-
uri
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
uri = URI.parse(url)
|
22
|
+
title = title.dup
|
23
|
+
|
24
|
+
patterns = CleanseTitleTable[uri.host] || []
|
25
|
+
patterns.each { |pattern, replace|
|
26
|
+
title.gsub!(pattern, replace)
|
27
|
+
}
|
28
|
+
|
29
|
+
return title
|
28
30
|
end
|
29
31
|
end
|
@@ -8,10 +8,12 @@ module IronnewsUtility
|
|
8
8
|
%r'\Ahttp://contents\.innolife\.net/', # 理由: title要素に記事名が含まれていないため
|
9
9
|
%r'\Ahttp://japan\.donga\.com/', # 理由: title要素に記事名が含まれていないため
|
10
10
|
%r'\Ahttp://japanese\.donga\.com/', # 理由: title要素に記事名が含まれていないため
|
11
|
+
%r'\Ahttp://jp\.reuters\.com/', # 理由: 記事名の取得に失敗することが多く、かつ鉄道関連の記事が少ないため
|
11
12
|
%r'\Ahttp://mainichi\.jp/life/money/kabu/nsj/news/', # 理由: title要素に記事名が含まれていないため
|
12
13
|
%r'\Ahttp://markets\.nikkei\.co\.jp/', # 理由: title要素に記事名が含まれていないため
|
13
14
|
%r'\Ahttp://news\.ibc\.co\.jp/', # 理由: title要素に記事名が含まれていないため
|
14
15
|
%r'\Ahttp://news\.searchina\.ne\.jp/', # 理由: 記事の閲覧が有料であるため
|
16
|
+
%r'\Ahttp://news\.tbs\.co\.jp/newseye/', # 理由: 記事の閲覧可能期間が短いため
|
15
17
|
%r'\Ahttp://release\.nikkei\.co\.jp/', # 理由: title要素に記事名が含まれていないため
|
16
18
|
%r'\Ahttp://rkk\.jp/', # 理由: title要素に記事名が含まれていないため
|
17
19
|
%r'\Ahttp://www2\.knb\.ne\.jp/', # 理由: title要素に記事名が含まれていないため
|
@@ -22,6 +24,7 @@ module IronnewsUtility
|
|
22
24
|
%r'\Ahttp://www\.japanjournals\.com/', # 理由: title要素に記事名が含まれていないため
|
23
25
|
%r'\Ahttp://www\.keidanren\.or\.jp/', # 理由: title要素に記事名が含まれていないため
|
24
26
|
%r'\Ahttp://www\.kentsu\.co\.jp/', # 理由: title要素に記事名が含まれていないため
|
27
|
+
%r'\Ahttp://www\.mbs\.jp/news/', # 理由: 記事の閲覧可能期間が短いため
|
25
28
|
%r'\Ahttp://www\.mxtv\.co\.jp/mxnews/news/', # 理由: title要素に記事名が含まれていないため
|
26
29
|
%r'\Ahttp://www\.nikkei\.co\.jp/kaigai/', # 理由: title要素に記事名が含まれていないため
|
27
30
|
%r'\Ahttp://www\.nikkei\.co\.jp/kyushu/news/', # 理由: title要素に記事名が含まれていないため
|
@@ -30,14 +33,12 @@ module IronnewsUtility
|
|
30
33
|
%r'\Ahttp://www\.portfolio\.nl/', # 理由: title要素に記事名が含まれていないため
|
31
34
|
%r'\Ahttp://www\.sanpo-pub\.co\.jp/column/', # 理由: title要素に記事名が含まれていないため
|
32
35
|
%r'\Ahttp://www\.shonai-nippo\.co\.jp/', # 理由: title要素に記事名が含まれていないため
|
36
|
+
%r'\Ahttp://www\.tku\.co\.jp/pc/news/', # 理由: title要素に記事名が含まれていないため
|
33
37
|
%r'\Ahttp://www\.tohkaishimpo\.com/', # 理由: title要素に記事名が含まれていないため
|
34
38
|
%r'\Ahttp://www\.toyama\.hokkoku\.co\.jp/subpage/', # 理由: title要素に記事名が含まれていないため
|
35
39
|
%r'\Ahttp://www\.travelvision\.jp/', # 理由: title要素に記事名が含まれていないため
|
36
40
|
%r'\Ahttp://www\.usfl\.com/Daily/News/', # 理由: title要素に記事名が含まれていないため
|
37
41
|
%r'\Ahttp://www\.wbs\.co\.jp/', # 理由: title要素に記事名が含まれていないため
|
38
42
|
%r'\Ahttp://www\.xinhua\.jp/', # 理由: 記事の閲覧が有料であるため
|
39
|
-
%r'\Ahttp://www\.tku\.co\.jp/pc/news/', # 理由: title要素に記事名が含まれていないため
|
40
|
-
%r'\Ahttp://www\.mbs\.jp/news/', # 理由: 記事の閲覧可能期間が短いため
|
41
|
-
%r'\Ahttp://news\.tbs\.co\.jp/newseye/', # 理由: 記事の閲覧可能期間が短いため
|
42
43
|
].freeze
|
43
44
|
end
|
@@ -5,8 +5,8 @@ Gem::Specification.new do |s|
|
|
5
5
|
s.required_ruby_version = Gem::Requirement.new(">= 1.8.6")
|
6
6
|
|
7
7
|
s.name = "nayutaya-ironnews-utility"
|
8
|
-
s.version = "0.3.
|
9
|
-
s.date = "2010-01-
|
8
|
+
s.version = "0.3.1"
|
9
|
+
s.date = "2010-01-15"
|
10
10
|
|
11
11
|
s.authors = ["Yuya Kato"]
|
12
12
|
s.email = "yuyakato@gmail.com"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nayutaya-ironnews-utility
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuya Kato
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-15 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|