1 # Copyright (C) 2002-2004 Kouichirou Eto, All rights reserved.
7 require "chise/network" #漢字間接続のネットワークを計算する
8 #require "chise/kanjilist"
14 TYPES = %w(skeleton mincho gothic)
18 URL = "http://192.168.2.60:5100/"
20 def initialize(url=URL)
23 @use_cache = true #デフォルト: cacheに存在する場合はcacheから引き出す。
24 @offline = false #テスト用
27 @cache_dir = c.base_dir+"/cache_kage"
28 Dir.mkdir(@cache_dir) unless FileTest.directory?(@cache_dir)
30 attr_accessor :url, :use_cache, :offline
32 def filename(num, type=SKELETON)
33 sprintf("u%04x.%s", num, TYPES[type])
36 def cache_file(num, type=SKELETON)
37 @cache_dir+"/"+filename(num, type)+".svg"
43 Dir.glob("*.svg").each {|file|
44 if file =~ /^u([0-9a-fA-F]+).skeleton.svg$/
52 def get(num, type=SKELETON)
53 if FileTest.exist?(cache_file(num, type))
54 return open(cache_file(num, type)) {|f| f.read }
56 svg = get_http(num, type)
60 def get_http(num, type=SKELETON)
61 return nil if @offline
63 uri = URI.parse(URL + filename(num, type))
66 Net::HTTP.version_1_1 # declear to use 1.1 features.
67 Net::HTTP.start( uri.host, uri.port ) {|http|
68 response, body = http.get("/"+filename(num, type)+".svg")
71 # p ["error", uri.to_s]
74 store_cache(num, type, body)
82 def store_cache(num, type, svg)
84 open(cache_file(num, type), "w") {|f|
90 (svg =~ /<!-- error -->/)
95 open("kage-list.txt"){|f|
97 if line =~ /u([0-9a-f]+)\.skeleton/
101 error = true if line =~ /error/
112 @kn = KanjiNetwork.new
113 @kl = KanjiList.instance
117 #list = open("../../jis.txt").read
118 list = @kl.jisx0208()
119 @kn.make_network(list)
120 nodes, edges = @kn.nodes_and_edges
126 next if num == 0x3561
127 next if num == 0x4fdb
128 next if num == 0x58d1
129 next if num == 0x891d
130 next if num == 0x8902
138 ar.each {|num| #intの数列
139 char = Character.get(num)
142 #TYPES.each_with_index {|type, index|
143 #(0..2).each {|index|
145 result = get(num, index) #cacheに保存するべしと。
148 print "#{er} #{ch} #{err}\n"
154 char = "&CDP-8BA5;".de_er
156 #str = (char.to_s+"真")
157 str = (char.to_s+"直")
163 ks = KageServer.instance
164 #print ks.get(0x4e03)