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
- "mainichi.jp" => [%r'\A(.+) - 毎日jp\(毎日新聞\)\Z', '\1'].freeze,
5
- "mytown.asahi.com" => [%r'\Aasahi\.com:(.+)-マイタウン(.+)\Z', '\1 - \2'].freeze,
6
- "sankei.jp.msn.com" => [%r'\A(.+) - MSN産経ニュース\Z', '\1'].freeze,
7
- "www.47news.jp" => [%r'\A(.+) - 47NEWS(よんななニュース)\Z', '\1'].freeze,
8
- "www.asahi.com" => [%r'\Aasahi\.com(朝日新聞社):(.+)\Z', '\1'].freeze,
9
- "www.chunichi.co.jp" => [%r'\A中日新聞:(.+)\(CHUNICHI Web\)\Z', '\1'].freeze,
10
- "www.yomiuri.co.jp" => [%r'\A(.+) : YOMIURI ONLINE(読売新聞)\Z', '\1'].freeze,
11
- "www.jiji.com" => [%r'\A時事ドットコム:(.+)\Z', '\1'].freeze,
12
- "slashdot.jp" => [%r'\A(.+) - スラッシュドット・ジャパン\Z', '\1'].freeze,
13
- "www.tokyo-np.co.jp" => [%r'\A東京新聞:(.+)\(TOKYO Web\)\Z', '\1'].freeze,
14
- "www.hokkaido-np.co.jp" => [%r'\A(.+)−北海道新聞\[青森からこんにちは\]\Z', '\1'].freeze,
15
- "japan.cnet.com" => [%r'\A(.+) - CNET Japan\Z', '\1'].freeze,
16
- "gigazine.net" => [%r'\A(.+) - GIGAZINE\Z', '\1'].freeze,
17
- "www.kobe-np.co.jp" => [%r'\A神戸新聞|(.+)\Z', '\1'].freeze,
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 = URI.parse(url)
22
- pattern, replace = CleanseTitleTable[uri.host]
23
- if pattern
24
- return title.gsub(pattern, replace)
25
- else
26
- return title
27
- end
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
@@ -1,4 +1,4 @@
1
1
 
2
2
  module IronnewsUtility
3
- VERSION = "0.3.0"
3
+ VERSION = "0.3.1"
4
4
  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.0"
9
- s.date = "2010-01-12"
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.0
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 00:00:00 +09:00
12
+ date: 2010-01-15 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15