Skip to content

Commit 582d9ef

Browse files
committed
Finish implementing get_dojo_list script #1433
1 parent 0fe8364 commit 582d9ef

File tree

1 file changed

+42
-12
lines changed

1 file changed

+42
-12
lines changed

get_dojo_list.rb

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,54 @@
1010
#
1111
# 詳細: https://github.com/coderdojo-japan/coderdojo.jp/pull/1433
1212

13-
TEXT = IO.readlines('./get_dojo_list.txt')
14-
DOJOS = JSON.parse(Net::HTTP.get URI.parse('https://coderdojo.jp/dojos.json'))
15-
result = "<ul>\n"
13+
INPUT_TEXT = IO.readlines('./get_dojo_list.txt')
14+
DOJO_DB = JSON.parse(Net::HTTP.get URI.parse('https://coderdojo.jp/dojos.json')).map do |data|
15+
data.transform_keys!(&:to_sym)
16+
end
1617

1718
# CoderDojo の名前を使って、Dojo 一覧からデータを検索
18-
dojo_name =''
19+
result = "<ul>\n"
20+
dojo_name = ''
21+
dojo_list = []
1922
not_found = []
20-
TEXT.each do |line|
23+
INPUT_TEXT.each do |line|
2124
next if line.start_with?('#') || line.strip.empty?
22-
dojo_name = line.split[1..].join
23-
dojo_data = DOJOS.find {|dojo| dojo['name'].start_with? dojo_name}
24-
not_found << dojo_name && next if dojo_data.nil?
25-
result << " <li>#{dojo_data['linked_text']}</li>\n"
26-
#result << " <li>#{d['linked_text']}</li>\n"
25+
26+
# Delete prefix like 'CoderDojo', fix 表記揺れ, etc.
27+
dojo_name = line
28+
.gsub(/coderdojo/i, '')
29+
.gsub(/コーダー道場/, '')
30+
.gsub('(', '(').gsub(')', ')') # Ex: Anjo(愛知県)
31+
.gsub(/\(.*\)+/, '') # Delete '(...)'
32+
.split('/').first # Ex: 堺/泉北和泉
33+
.strip
34+
35+
# Search dojo data by its KANJI name from DOJO_DB
36+
dojo_data = DOJO_DB.find do |dojo|
37+
binding.pry if dojo_name.nil?
38+
dojo[:name].start_with? dojo_name.downcase
39+
.gsub('ishigaki', '石垣')
40+
.gsub('kodaira', '小平')
41+
.gsub('toke', '土気')
42+
.gsub('anjo', '安城')
43+
.gsub('nagareyama', '流山')
44+
.gsub('minami-kashiwa', '南柏')
45+
.gsub('miyoshi', '三好') # NOTE: 'Miyoshi' can be 三好 and 三次. Only 三好 uses 'Miyoshi' for now.
46+
end
47+
48+
dojo_data.nil? ?
49+
not_found << dojo_name && next :
50+
dojo_list << dojo_data
2751
end
28-
result << "</ul>\n"
52+
53+
dojo_list.sort_by!{ |dojo| dojo[:order] }
54+
result << dojo_list.map{ |dojo| " <li>#{dojo[:linked_text]}</li>" }.join("\n")
55+
result << "\n</ul>\n"
2956
puts result
3057

58+
59+
3160
# 検索して見つからなかった Dojo 一覧があれば出力
32-
puts '---' if not_found.nil?
61+
puts '--- NOTE ---'
62+
puts "道場数: #{dojo_list.count}"
3363
not_found.each {|dojo_name| puts "Not found: #{dojo_name}" }

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy