Skip to content

Commit d4e0150

Browse files
committed
chore: 今回のPRと関係ない変更を削除(#1724の重複分)
1 parent 1850e1f commit d4e0150

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

lib/tasks/fetch_news.rake

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ require 'active_support/broadcast_logger'
77

88
def safe_open(url)
99
uri = URI.parse(url)
10-
return File.read(url) if uri.scheme.nil? || uri.scheme == 'file'
1110
raise "不正なURLです: #{url}" unless uri.is_a?(URI::HTTP) || uri.is_a?(URI::HTTPS)
11+
1212
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
1313
request = Net::HTTP::Get.new(uri)
1414
response = http.request(request)
@@ -26,19 +26,25 @@ namespace :news do
2626

2727
logger.info('==== START news:fetch ====')
2828

29-
# YAML出力先を環境変数で上書きできるようにする
30-
yaml_path = ENV['NEWS_YAML_PATH'] ? Pathname.new(ENV['NEWS_YAML_PATH']) : Rails.root.join('db', 'news.yml')
31-
feed_urls = ENV['NEWS_RSS_PATH'] ? [ENV['NEWS_RSS_PATH']] :
32-
(Rails.env.test? || Rails.env.staging? ?
33-
[Rails.root.join('spec', 'fixtures', 'sample_news.rss').to_s] :
34-
['https://news.coderdojo.jp/feed/'])
35-
29+
# 既存の news.yml を読み込み
30+
yaml_path = Rails.root.join('db', 'news.yml')
3631
existing_news = if File.exist?(yaml_path)
3732
YAML.safe_load(File.read(yaml_path), permitted_classes: [Time], aliases: true)['news'] || []
3833
else
3934
[]
4035
end
4136

37+
# テスト/ステージング環境ではサンプルファイル、本番は実サイトのフィード
38+
feed_urls = if Rails.env.test? || Rails.env.staging?
39+
[Rails.root.join('spec', 'fixtures', 'sample_news.rss').to_s]
40+
else
41+
[
42+
'https://news.coderdojo.jp/feed/'
43+
# 必要に応じて他 Dojo の RSS もここに追加可能
44+
# 'https://coderdojotokyo.org/feed',
45+
]
46+
end
47+
4248
# RSS 取得&パース
4349
new_items = feed_urls.flat_map do |url|
4450
logger.info("Fetching RSS → #{url}")
@@ -101,11 +107,7 @@ namespace :news do
101107
Time.parse(item['published_at'])
102108
}.reverse
103109

104-
sorted_items.each_with_index do |item, index|
105-
item['id'] = index + 1
106-
end
107-
108-
File.open(yaml_path, 'w') do |f|
110+
File.open('db/news.yml', 'w') do |f|
109111
formatted_items = sorted_items.map do |item|
110112
{
111113
'id' => item['id'],
@@ -118,7 +120,7 @@ namespace :news do
118120
f.write({ 'news' => formatted_items }.to_yaml)
119121
end
120122

121-
logger.info("✅ Wrote #{sorted_items.size} items to #{yaml_path} (#{truly_new_items_sorted.size} new, #{updated_items.size} updated)")
123+
logger.info("✅ Wrote #{sorted_items.size} items to db/news.yml (#{truly_new_items_sorted.size} new, #{updated_items.size} updated)")
122124
logger.info('==== END news:fetch ====')
123125
end
124126
end

lib/tasks/import_news.rake

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
require 'yaml'
22

33
namespace :news do
4-
desc 'db/news.yml (またはENV指定のYAML)を読み込んで News テーブルを upsert する'
4+
desc 'db/news.yml を読み込んで News テーブルを upsert する'
55
task import_from_yaml: :environment do
6-
# ENVで上書き可能にする(なければデフォルト db/news.yml)
7-
yaml_path = ENV['NEWS_YAML_PATH'] ? Pathname.new(ENV['NEWS_YAML_PATH']) : Rails.root.join('db', 'news.yml')
6+
yaml_path = Rails.root.join('db', 'news.yml')
87
raw = YAML.safe_load(File.read(yaml_path), permitted_classes: [Time], aliases: true)
98

109
# entries を計算

0 commit comments

Comments
 (0)