Module: IronnewsUtility

Defined in:
lib/ironnews_utility/core.rb,
lib/ironnews_utility/version.rb,
lib/ironnews_utility/filter_table.rb,
lib/ironnews_utility/canonical_table.rb,
lib/ironnews_utility/cleanse_title_table.rb

Constant Summary collapse

VERSION =
"0.3.8"
FilterTable =
[
  %r'\Ahttp://cambodiawatch\.net/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://car\.nikkei\.co\.jp/news/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://car\.nikkei\.co\.jp/release/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://cargo-news\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://contents\.innolife\.net/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://gendai\.net/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://ja\.espnf1\.com/', # 理由: 記事名が文字化け、かつ鉄道関連のニュースが含まれないため
  %r'\Ahttp://japan\.donga\.com/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://japanese\.donga\.com/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://jp\.reuters\.com/', # 理由: 記事名の取得に失敗することが多く、かつ鉄道関連の記事が少ないため
  %r'\Ahttp://mainichi\.jp/enta/sports/baseball/news/m', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://mainichi\.jp/life/money/kabu/nsj/news/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://mainichi\.jp/select/.+?/news/m', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://mainichi\.pheedo\.jp/', # 理由: リダイレクト用URLであるため
  %r'\Ahttp://markets\.nikkei\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://news\.ibc\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://news\.rkb\.ne\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://news\.searchina\.ne\.jp/', # 理由: 記事の閲覧が有料であるため
  %r'\Ahttp://news\.tbs\.co\.jp/newseye/', # 理由: 記事の閲覧可能期間が短いため
  %r'\Ahttp://release\.nikkei\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://rkk\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://rss\.asahi\.com/', # 理由: リダイレクト用URLであるため
  %r'\Ahttp://rss\.rssad\.jp/', # 理由: リダイレクト用URLであるため
  %r'\Ahttp://sports\.nikkei\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www.pheedo.jp/', # 理由: リダイレクト用URLであるため
  %r'\Ahttp://www2\.knb\.ne\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.asahi\.com/english/weekly/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.chemicaldaily\.co\.jp/news/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.chosunonline\.com/', # 理由: 記事の閲覧が有料であるため
  %r'\Ahttp://www\.chugoku-np\.co\.jp/News/Tn', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.hab\.co\.jp/headline/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.iwate-np\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.japanjournals\.com/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.keidanren\.or\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.kentsu\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.mbs\.jp/news/', # 理由: 記事の閲覧可能期間が短いため
  %r'\Ahttp://www\.muromin\.mnw\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.mxtv\.co\.jp/mxnews/news/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.nikkei\.co\.jp/kaigai/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.nikkei\.co\.jp/kyushu/news/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.nikkei\.co\.jp/news/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.pjnews\.net/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.portfolio\.nl/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.rkk\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.sanpo-pub\.co\.jp/column/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.shonai-nippo\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.tku\.co\.jp/pc/news/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.tohkaishimpo\.com/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.toyama\.hokkoku\.co\.jp/subpage/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.travelvision\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.usfl\.com/Daily/News/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.wbs\.co\.jp/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.worldtimes\.co\.jp/today/', # 理由: title要素に記事名が含まれていないため
  %r'\Ahttp://www\.xinhua\.jp/', # 理由: 記事の閲覧が有料であるため
  %r'\Ahttp://mytown\.asahi\.com/.+/news\.php\Z', # 理由: 実体が存在しないため
].freeze
CanonicalTable =
[
  [%r'\A(http://[a-z]+\.yomiuri\.co\.jp/.+)\?from=[a-z0-9]+&ref=[a-z0-9]+\Z', '\1'].freeze,
  [%r'\A(http://[a-z]+\.yomiuri\.co\.jp/.+)\?from=[a-z0-9]+\Z', '\1'].freeze,
  [%r'\A(http://japan\.cnet\.com/.+)\?ref=rss\Z', '\1'].freeze,
  [%r'\A(http://journal\.mycom\.co\.jp/.+)\?rt=na\Z', '\1index.html'].freeze,
  [%r'\A(http://journal\.mycom\.co\.jp/.+/)\Z', '\1index.html'].freeze,
  [%r'\A(http://mainichi\.jp/.+)\?inb=[a-z]+\Z', '\1'].freeze,
  [%r'\A(http://mainichi\.jp/.+)\?link_id=[A-Z0-9]+\Z', '\1'].freeze,
  [%r'\A(http://news\.searchina\.ne\.jp/.+)&pt=large\Z', '\1'].freeze,
  [%r'\A(http://techon\.nikkeibp\.co\.jp/.+)\?ref=rss\Z', '\1'].freeze,
  [%r'\A(http://www\.asahi\.com/.+)\?ref=rss\Z', '\1'].freeze,
  [%r'\A(http://www\.asahi\.com/.+)_01(\.html)\Z', '\1\2'].freeze,
  [%r'\A(http://www\.chunichi\.co\.jp/.+)\?ref=rank\Z', '\1'].freeze,
  [%r'\A(http://www\.jiji\.com/.+)&j1\Z', '\1'].freeze,
  [%r'\A(http://www\.jiji\.com/.+)&n=1\Z', '\1'].freeze,
  [%r'\A(http://www\.jiji\.com/jc/c\?g=.+?)&rel=j7(&k=\d+)\Z', '\1\2'].freeze,
  [%r'\A(http://www\.tetsudo\.com/.+)\?tag=as\.rss\Z', '\1'].freeze,
  [%r'\A(http://www\.tokyo-np\.co\.jp/.+)\?ref=rank', '\1'].freeze,
  [%r'\Ahttp://slashdot\.jp/articles/(\d+/\d+/\d+/\d+)\.shtml', 'http://slashdot.jp/article.pl?sid=\1'].freeze,
].freeze
CleanseTitleTable =
{
  "4510plan.jp" => [
    [%r'\A(.+)|シゴトの計画\Z', '\1'].freeze,
  ].freeze,
  "auto-affairs.com" => [
    [%r'\A(.+) 国際自動車ニュース\Z', '\1'].freeze,
  ].freeze,
  "b.hatena.ne.jp" => [
    [%r'\A(.+) - はてなブックマークニュース\Z', '\1'].freeze,
  ].freeze,
  "bb.watch.impress.co.jp" => [
    [%r'\A(.+)-BB Watch\Z', '\1'].freeze,
  ].freeze,
  "bizmakoto.jp" => [
    [%r'\ABusiness Media 誠:(.+)\Z', '\1'].freeze,
    [%r'\A(.+)\(\d+/\d+\)\Z', '\1'].freeze,
  ].freeze,
  "blog.hokkaido-np.co.jp" => [
    [%r'\A北の駅の待合室: (.+)\Z', '\1'].freeze,
  ].freeze,
  "diamond.jp" => [
    [%r'\A(.+) \| ダイヤモンド・オンライン\Z', '\1'].freeze,
  ].freeze,
  "gigazine.net" => [
    [%r'\A(.+) - GIGAZINE\Z', '\1'].freeze,
  ].freeze,
  "hachioji.keizai.biz" => [
    [%r'\A(.+) - 八王子経済新聞\Z', '\1'].freeze,
  ].freeze,
  "hakata.keizai.biz" => [
    [%r'\A(.+) - 博多経済新聞\Z', '\1'].freeze,
  ].freeze,
  "haneda.keizai.biz" => [
    [%r'\A(.+) - 羽田経済新聞\Z', '\1'].freeze,
  ].freeze,
  "headlines.yahoo.co.jp" => [
    [%r'\A(.+) - Yahoo!ニュース\Z', '\1'].freeze,
    [%r'\A(.+)(.+)\Z', '\1'].freeze,
  ].freeze,
  "hiroshima.keizai.biz" => [
    [%r'\A(.+) - 広島経済新聞\Z', '\1'].freeze,
  ].freeze,
  "hochi.yomiuri.co.jp" => [
    [%r'\A(.+):スポーツ報知\Z', '\1'].freeze,
    [%r'\A(.+):スポーツ報知大阪版\Z', '\1'].freeze,
  ].freeze,
  "japan.cnet.com" => [
    [%r'\A(.+) - CNET Japan\Z', '\1'].freeze,
    [%r'\A(.+):ニュースクリップ\Z', '\1'].freeze,
  ].freeze,
  "japan.techinsight.jp" => [
    [%r'\ATechinsight » (.+)\Z', '\1'].freeze,
  ].freeze,
  "japanese.cri.cn" => [
    [%r'\A(.+) - 中国国際放送局\Z', '\1'].freeze,
  ].freeze,
  "japanese.joins.com" => [
    [%r'\A中央日報 - (.+)\Z', '\1'].freeze,
  ].freeze,
  "journal.mycom.co.jp" => [
    [%r'\A(.+) \| マイコミジャーナル\Z', '\1'].freeze,
    [%r'\A(.+) \| (経営|ライフ|携帯|パソコン|エンタープライズ|ホビー|クリエイティブ)\Z', '\1'].freeze,
  ].freeze,
  "jp.ibtimes.com" => [
    [%r'\A(.+) \| IBTimes\(アイビータイムズ\)\Z', '\1'].freeze,
  ].freeze,
  "jp.wsj.com" => [
    [%r'\A(.+) - WSJ\.com\Z', '\1'].freeze,
    [%r'\A(.+) - The Wall Street Journal, Japan Online Edition\Z', '\1'].freeze,
    [%r'\A(.+) / The Wall Street Journal, Japan Online Edition\Z', '\1'].freeze,
    [%r'\A(.+) / ホーム\Z', '\1'].freeze,
    [%r'\A(.+) / ビジネス・企業\Z', '\1'].freeze,
    [%r'\A(.+) / 自動車\Z', '\1'].freeze,
    [%r'\A(.+) / 決算\Z', '\1'].freeze,
    [%r'\A(.+) / 金融・マーケット\Z', '\1'].freeze,
    [%r'\A(.+) / 金融\Z', '\1'].freeze,
    [%r'\A(.+) / 国内\Z', '\1'].freeze,
    [%r'\A(.+) / 企業ニュース\Z', '\1'].freeze,
    [%r'\A(.+) / 経済\Z', '\1'].freeze,
    [%r'\A(.+) / 政治\Z', '\1'].freeze,
    [%r'\A(.+) / 国際\Z', '\1'].freeze,
    [%r'\A(.+) / 中国\Z', '\1'].freeze,
  ].freeze,
  "k-tai.impress.co.jp" => [
    [%r'\A(.+) - ケータイ Watch\Z', '\1'].freeze,
  ].freeze,
  "karasuma.keizai.biz" => [
    [%r'\A(.+) - 烏丸経済新聞\Z', '\1'].freeze,
  ].freeze,
  "kobe.keizai.biz" => [
    [%r'\A(.+) - 神戸経済新聞\Z', '\1'].freeze,
  ].freeze,
  "kumanichi.com" => [
    [%r'\A(.+)│ くまにちコム\Z', '\1'].freeze,
  ].freeze,
  "kyobashi.keizai.biz" => [
    [%r'\A(.+) - 京橋経済新聞\Z', '\1'].freeze,
  ].freeze,
  "kyushu.yomiuri.co.jp" => [
    [%r'\A(.+) : 九州発 : YOMIURI ONLINE(読売新聞)\Z', '\1'].freeze,
    [%r'\A(.+) : 九州経済\Z', '\1'].freeze,
    [%r'\A(.+) : 地域版\Z', '\1'].freeze,
  ].freeze,
  "mainichi.jp" => [
    [%r'\A(.+) - 毎日jp\(毎日新聞\)\Z', '\1'].freeze,
    [%r'\A(.+) - 毎日jp\(毎日新聞\)\Z', '\1'].freeze,
  ].freeze,
  "mytown.asahi.com" => [
    [%r'\Aasahi\.com:(.+)-マイタウン(.+)\Z', '\1 - \2'].freeze,
  ].freeze,
  "news.kanaloco.jp" => [
    [%r'\A(.+):ローカルニュース : ニュース : カナロコ -- 神奈川新聞社\Z', '\1'].freeze,
  ].freeze,
  "news.livedoor.com" => [
    [%r'\A(.+) - livedoor ニュース\Z', '\1'].freeze,
  ].freeze,
  "news.walkerplus.com" => [
    [%r'\A(.+) - 東京ウォーカー\Z', '\1'].freeze,
    [%r'\A(.+) - 関西ウォーカー\Z', '\1'].freeze,
    [%r'\A(.+) - 東海ウォーカー\Z', '\1'].freeze,
    [%r'\A(.+) - 北海道ウォーカー\Z', '\1'].freeze,
    [%r'\A(.+) - 福岡ウォーカー\Z', '\1'].freeze,
  ].freeze,
  "news24.jp" => [
    [%r'\A(.+) \| 日テレNEWS24\Z', '\1'].freeze,
  ].freeze,
  "osaka.yomiuri.co.jp" => [
    [%r'\A(.+) : 関西発 : YOMIURI ONLINE(読売新聞)\Z', '\1'].freeze,
    [%r'\A(.+) : (経済 科学)\Z', '\1'].freeze,
    [%r'\A(.+) : (経済 ピックアップ|特集|ニュース|人 遊 食)\Z', '\1'].freeze,
    [%r'\A(.+) : 地域経済ニュース\Z', '\1'].freeze,
  ].freeze,
  "response.jp" => [
    [%r'\A(.+) \| レスポンス自動車ニュース(Response.jp)\Z', '\1'].freeze,
  ].freeze,
  "rocketnews24.com" => [
    [%r'\A(.+) – ロケットニュース24(β)\Z', '\1'].freeze,
  ].freeze,
  "ryukyushimpo.jp" => [
    [%r'\A(.+) - 沖縄の新聞、地域のニュース\Z', '\1'].freeze,
    [%r'\A(.+) - 琉球新報\Z', '\1'].freeze,
  ].freeze,
  "sankei.jp.msn.com" => [
    [%r'\A(.+) - MSN産経ニュース\Z', '\1'].freeze,
    [%r'\A(.+) \(\d+/\d+ページ\)\Z', '\1'].freeze,
  ].freeze,
  "slashdot.jp" => [
    [%r'\A(.+) - スラッシュドット・ジャパン\Z', '\1'].freeze,
  ].freeze,
  "svr.sanyo.oni.co.jp" => [
    [%r'\A(.+) - 山陽新聞地域ニュース\Z', '\1'].freeze,
  ].freeze,
  "techon.nikkeibp.co.jp" => [
    [%r'\A(.+) - Tech-On!\Z', '\1'].freeze,
  ].freeze,
  "thai.news-agency.jp" => [
    [%r'\A(.+)タイニュース速報ポータルサイトータイランド通信\Z', '\1'].freeze,
  ].freeze,
  "umeda.keizai.biz" => [
    [%r'\A(.+) - 梅田経済新聞\Z', '\1'].freeze,
  ].freeze,
  "woman.excite.co.jp" => [
    [%r'\A(.+)|ウーマンエキサイト おでかけ 旅とお散歩\Z', '\1'].freeze,
  ].freeze,
  "www.373news.com" => [
    [%r'\A(.+) : 南日本新聞エリアニュース\Z', '\1'].freeze,
  ].freeze,
  "www.47news.jp" => [
    [%r'\A(.+) - 47NEWS(よんななニュース)\Z', '\1'].freeze,
    [%r'\A(.+) - 47NEWS \(よんななニュース\)\Z', '\1'].freeze,
  ].freeze,
  "www.4gamer.net" => [
    [%r'\A4Gamer\.net ― (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.afpbb.com" => [
    [%r'\A(.+) 国際ニュース : AFPBB News\Z', '\1'].freeze,
  ].freeze,
  "www.asahi.com" => [
    [%r'\Aasahi\.com(朝日新聞社):(.+)\Z', '\1'].freeze,
    [%r'\Aasahi\.com (朝日新聞社):(.+)\Z', '\1'].freeze,
    [%r'\Aasahi\.com:(.+)\Z', '\1'].freeze,
    [%r'\A(.+) - ことばなるほどね! - 学ぼう\Z', '\1'].freeze,
    [%r'\A(.+) - 最新ニュース - 読もう\Z', '\1'].freeze,
    [%r'\A(.+) - (社会|国際|トラベル|ビジネス・経済|政治|サイエンス)\Z', '\1'].freeze,
    [%r'\A(.+) - (関西|関西交通・旅ニュース)\Z', '\1'].freeze,
  ].freeze,
  "www.bloomberg.co.jp" => [
    [%r'\A(.+) - Bloomberg\.co\.jp\Z', '\1'].freeze,
  ].freeze,
  "www.business-i.jp" => [
    [%r'\A(.+) - FujiSankei Business i\./Bloomberg GLOBAL FINANCE\Z', '\1'].freeze,
  ].freeze,
  "www.chibanippo.co.jp" => [
    [%r'\A(.+)|ちばとぴ ちばの耳より情報満載 千葉日報ウェブ\Z', '\1'].freeze,
  ].freeze,
  "www.chugoku-np.co.jp" => [
    [%r'\A(.+) - 中国新聞\Z', '\1'].freeze,
  ].freeze,
  "www.chunichi.co.jp" => [
    [%r'\A(.+)\(CHUNICHI Web\)\Z', '\1'].freeze,
    [%r'\A中日新聞:(.+)\Z', '\1'].freeze,
    [%r'\A中日スポーツ:(.+)\Z', '\1'].freeze,
  ].freeze,
  "www.cnn.co.jp" => [
    [%r'\ACNN\.co\.jp:(.+)\Z', '\1'].freeze,
  ].freeze,
  "www.daily.co.jp" => [
    [%r'\A(.+)/デイリースポーツonline\Z', '\1'].freeze,
  ].freeze,
  "www.ehime-np.co.jp" => [
    [%r'\A(.+) 愛媛新聞社ONLINE\Z', '\1'].freeze,
  ].freeze,
  "www.fnn-news.com" => [
    [%r'\AFNNニュース: (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.fukuishimbun.co.jp" => [
    [%r'\A(.+) 福井のニュース:福井新聞\Z', '\1'].freeze,
    [%r'\A(.+) 福井新聞\Z', '\1'].freeze,
    [%r'\A福井のニュース: (.+)\Z', '\1'].freeze,
    [%r'\A全国のニュース: (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.gifu-np.co.jp" => [
    [%r'\A(.+)(?: | − )岐阜新聞 Web\Z', '\1'].freeze,
  ].freeze,
  "www.hokkaido-np.co.jp" => [
    [%r'\A(.+)−北海道新聞\[.+\]\Z', '\1'].freeze,
  ].freeze,
  "www.j-cast.com" => [
    [%r'\A(.+) : J-CAST(?:ニュース|会社ウォッチ|モノウォッチ|テレビウォッチ)\Z', '\1'].freeze,
    [%r'\A(.+) \(\d+/\d+\)\Z', '\1'].freeze,
  ].freeze,
  "www.jiji.com" => [
    [%r'\A時事ドットコム:(.+)\Z', '\1'].freeze,
  ].freeze,
  "www.kahoku.co.jp" => [
    [%r'\A河北新報 (?:東北|内外)のニュース/(.+)\Z', '\1'].freeze,
    [%r'\A河北新報 (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.kfb.co.jp" => [
    [%r'\A(.+) :: 福島県内ニュース :: KFB福島放送\Z', '\1'].freeze,
  ].freeze,
  "www.kobe-np.co.jp" => [
    [%r'\A神戸新聞|(.+)\Z', '\1'].freeze,
    [%r'\A全国海外ニュース|(.+)\Z', '\1'].freeze,
    [%r'\A(?:淡路|阪神・北摂|姫路・西播磨|但馬|東播磨|神戸)|(.+)\Z', '\1'].freeze,
    [%r'\A(?:事件・事故|社会|文化|経済)|(.+)\Z', '\1'].freeze,
  ].freeze,
  "www.kyoto-np.co.jp" => [
    [%r'\A(.+):京都新聞\Z', '\1'].freeze,
  ].freeze,
  "www.morningstar.co.jp" => [
    [%r'\A(.+) /モーニングスター\Z', '\1'].freeze,
    [%r'\A(.+)/ 株式NEWS\Z', '\1'].freeze,
    [%r'\A(.+)/ 投信NEWS\Z', '\1'].freeze,
  ].freeze,
  "www.mutusinpou.co.jp" => [
    [%r'\A(.+) by 陸奥新報\Z', '\1'].freeze,
  ].freeze,
  "www.nagasaki-np.co.jp" => [
    [%r'\A龍〜なが 長崎新聞ホームページ:(.+)\Z', '\1'].freeze,
  ].freeze,
  "www.news24.jp" => [
    [%r'\A(.+) \| NNNニュース\Z', '\1'].freeze,
  ].freeze,
  "www.nhk.or.jp" => [
    [%r'\ANHKニュース (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.niigata-nippo.co.jp" => [
    [%r'\A新潟日報社 netpark ::: (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.nikkan.co.jp" => [
    [%r'\A(.+):日刊工業新聞\Z', '\1'].freeze,
  ].freeze,
  "www.nikkansports.com" => [
    [%r'\A(.+) : nikkansports.com\Z', '\1'].freeze,
  ].freeze,
  "www.nikkei.co.jp" => [
    [%r'\A(.+) \| 日経ネット関西版\Z', '\1'].freeze,
  ].freeze,
  "www.nikkeibp.co.jp" => [
    [%r'\A(.+) \| nikkei BPnet 〈日経BPネット〉\Z', '\1'].freeze,
  ].freeze,
  "www.nishinippon.co.jp" => [
    [%r'\A(.+) / 西日本新聞\Z', '\1'].freeze,
  ].freeze,
  "www.nnn.co.jp" => [
    [%r'\A(.+) - NetNihonkai-日本海新聞\Z', '\1'].freeze,
  ].freeze,
  "www.okinawatimes.co.jp" => [
    [%r'\A沖縄タイムス \| (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.recordchina.co.jp" => [
    [%r'\Aレコードチャイナ:(.+)\Z', '\1'].freeze,
  ].freeze,
  "www.saga-s.co.jp" => [
    [%r'\A(.+) :佐賀新聞の情報コミュニティサイト ひびの\Z', '\1'].freeze,
  ].freeze,
  "www.sanin-chuo.co.jp" => [
    [%r'\A山陰中央新報 - (.+)\Z', '\1'].freeze,
  ].freeze,
  "www.sankei-kansai.com" => [
    [%r'\A(.+):産経関西(産経新聞大阪本社公式ニュースサイト)\Z', '\1'].freeze,
  ].freeze,
  "www.sankeibiz.jp" => [
    [%r'\A(.+) - SankeiBiz(サンケイビズ)\Z', '\1'].freeze,
    [%r'\A(.+) \(\d+/\d+ページ\)\Z', '\1'].freeze,
  ].freeze,
  "www.sannichi.co.jp" => [
    [%r'\A(.+) - 山梨日日新聞 みるじゃん\Z', '\1'].freeze,
  ].freeze,
  "www.sanspo.com" => [
    [%r'\A(.+) - SANSPO\.COM\Z', '\1'].freeze,
  ].freeze,
  "www.sanyo.oni.co.jp" => [
    [%r'\A(.+) - 山陽新聞地域ニュース\Z', '\1'].freeze,
  ].freeze,
  "www.shikoku-np.co.jp" => [
    [%r'\A(.+) \| 四国新聞社\Z', '\1'].freeze,
    [%r'\A(.+) \| (?:香川の|全国|スポーツ)ニュース\Z', '\1'].freeze,
    [%r'\A(.+)―四国新聞社\Z', '\1'].freeze,
  ].freeze,
  "www.shimotsuke.co.jp" => [
    [%r'\A(.+) |下野新聞「SOON」\Z', '\1'].freeze,
  ].freeze,
  "www.shinmai.co.jp" => [
    [%r'\A信濃毎日新聞[信毎web] (.+)\Z', '\1'].freeze,
    [%r'\A(.+)|信濃毎日新聞[信毎web]\Z', '\1'].freeze,
    [%r'\A(.+)|(?:長野全県|東北信|中南信)ダイジェスト\Z', '\1'].freeze,
  ].freeze,
  "www.shinshu-liveon.jp" => [
    [%r'\A(.+) - 信州・長野県の生活をもっと楽しく!イベント情報や話題が満載のサイト!\Z', '\1'].freeze,
    [%r'\A(.+) \| 信州Liveon\Z', '\1'].freeze,
    [%r'\A(.+) \| トピックス\Z', '\1'].freeze,
  ].freeze,
  "www.sponichi.co.jp" => [
    [%r'\A(.+) ― スポニチ Sponichi Annex ニュース\Z', '\1'].freeze,
    [%r'\A(.+) ― スポニチ Sponichi Annex 大阪\Z', '\1'].freeze,
  ].freeze,
  "www.tetsudo.com" => [
    [%r'\A(.+) - 鉄道コム\Z', '\1'].freeze,
  ].freeze,
  "www.tokyo-np.co.jp" => [
    [%r'\A東京新聞:(.+)\(TOKYO Web\)\Z', '\1'].freeze,
  ].freeze,
  "www.toonippo.co.jp" => [
    [%r'\A(.+)/Web東奥・ニュース\d{14}\Z', '\1'].freeze,
  ].freeze,
  "www.topics.or.jp" => [
    [%r'\A(.+) - 徳島新聞社\Z', '\1'].freeze,
  ].freeze,
  "www.toyokeizai.net" => [
    [%r'\A(.+) \| 投資・経済・ビジネスの東洋経済オンライン\Z', '\1'].freeze,
    [%r'\A(.+) \| 企業戦略\Z', '\1'].freeze,
  ].freeze,
  "www.yomiuri.co.jp" => [
    [%r'\A(.+) : YOMIURI ONLINE(読売新聞)\Z', '\1'].freeze,
    [%r'\A(.+) : (社会|マネー・経済|国際|地域|旅ゅ〜ん!)\Z', '\1'].freeze,
    [%r'\A(.+) : 経済ニュース\Z', '\1'].freeze,
  ].freeze,
  "www.zaikei.co.jp" => [
    [%r'\A\[財経新聞\] (.+)\Z', '\1'].freeze,
  ].freeze,
  "www3.nhk.or.jp" => [
    [%r'\ANHKニュース (.+)\Z', '\1'].freeze,
  ].freeze,
  "yamagata-np.jp" => [
    [%r'\A(.+)|山形新聞\Z', '\1'].freeze,
  ].freeze,
}.freeze

Class Method Summary collapse

Class Method Details

.cleanse_title(url, title) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ironnews_utility/core.rb', line 20

def self.cleanse_title(url, title)
  uri   = URI.parse(url)
  title = title.dup

  patterns = CleanseTitleTable[uri.host] || []
  patterns.each { |pattern, replace|
    title.gsub!(pattern, replace)
  }

  title.strip!
  title.gsub!(/\A +/, "") # 全角スペース
  title.gsub!(/ +\z/, "") # 全角スペース

  return title
end

.get_canonical_url(url) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/ironnews_utility/core.rb', line 8

def self.get_canonical_url(url)
  url = url.dup
  CanonicalTable.find { |pattern, replace|
    !!url.sub!(pattern, replace)
  }
  return url
end

.reject?(url) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/ironnews_utility/core.rb', line 16

def self.reject?(url)
  return FilterTable.any? { |pattern| pattern =~ url }
end