Changeset 2826 for lang/ruby/ssb
- Timestamp:
- 12/08/07 02:57:53 (13 months ago)
- Location:
- lang/ruby/ssb/trunk
- Files:
-
- 9 modified
-
config/common.rb (modified) (1 diff)
-
config/config.yaml.default (modified) (1 diff)
-
libs/ssb.rb (modified) (4 diffs)
-
libs/ssb/misc.rb (modified) (1 diff)
-
libs/ssb/qrcode.rb (modified) (1 diff)
-
libs/ssb/request.rb (modified) (2 diffs)
-
public_html/stylesheets/ssb.css (modified) (1 diff)
-
templates/ssb.rhtml (modified) (1 diff)
-
test/request_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/ruby/ssb/trunk/config/common.rb
r2455 r2826 19 19 CONFIG[:config_file] = File.join(SSB::CONFIG[:config_dir], 'config.yaml') 20 20 CONFIG[:dat_dir] = File.join(SSB::CONFIG[:home_dir], 'dat') 21 CONFIG[:default_uri] = 'http://localhost/' 21 22 @@config = nil 23 24 def self.config(force_reload = false) 25 if @@config.nil? or force_reload 26 begin 27 File.open(SSB::CONFIG[:config_file]) do |f| 28 @@config = YAML.load(f.read.untaint) 29 end 30 rescue =>e 31 @@config = {} 32 end 33 end 34 35 # useragent/homepage だけは設定がなくてもデフォルトで入れる 36 @@config['default'] ||= {} 37 @@config['default']['useragent'] ||= 'DoCoMo/2.0 P905i' unless @@config['useragent'] 38 @@config['default']['homepage'] ||= 'about:blank' 39 40 @@config 41 end 22 42 end 23 43 24 44 $LOAD_PATH.concat SSB::CONFIG[:library_dir].map{|d| File.join(SSB::CONFIG[:home_dir], d)} 25 -
lang/ruby/ssb/trunk/config/config.yaml.default
r1865 r2826 1 1 default: 2 useragent: "DoCoMo/2.0 F900iT(c100;TB;W22H12)"2 useragent: "DoCoMo/2.0 P905i" 3 3 uid: "010000000000" 4 4 hid: "ser000000000000000" 5 5 icc: "icc000000000000000" 6 6 homepage: 'about:blank' 7 exheader: 8 mailaddr: -
lang/ruby/ssb/trunk/libs/ssb.rb
r2824 r2826 3 3 # Author:: MIZOGUCHI Coji <mizoguchi.coji at gmail.com> 4 4 # License:: Distributes under the same terms as Ruby 5 #5 # 6 6 # $Id$ 7 7 # … … 20 20 class Application 21 21 def initialize 22 SSB::config 22 23 @time_stamp = SSB::TimeStamper.new({ 23 24 :request_time => [:request_start, :request_finish], … … 115 116 116 117 def output_template(request_uri, response, term, page, source, res) 117 tpl_file = 'ssb.rhtml'118 template = open(File.join(SSB::CONFIG[:template_dir], tpl_file)).read.untaint119 120 118 # レスポンスヘッダ 121 119 response_header = {} 122 120 response.each do |k,v| 123 121 response_header[k] = v 124 end 122 end unless response.nil? 125 123 124 # filter: 元の文字コードで 126 125 page = SSB::Application.filter_html(page, request_uri, term, response) 127 126 127 # SJIS等からUTF-8へ 128 128 page = NKF::nkf('-w', page) 129 129 … … 139 139 140 140 begin 141 template = open(File.join(SSB::CONFIG[:template_dir], 'ssb.rhtml')).read.untaint 141 142 erb = ERB.new(template) 142 143 res.body = erb.result(binding) -
lang/ruby/ssb/trunk/libs/ssb/misc.rb
r2296 r2826 19 19 # 端末情報の読み込み cookie or config.yaml 20 20 def self.load_terminal_info(cookies) 21 # cookie をフラットに22 params = { } 21 params = SSB::config['default'].dup 22 23 23 cookies.each do |cookie| 24 params[cookie.name ] = URI.unescape(cookie.value.untaint)24 params[cookie.name.dup.untaint] = URI.unescape(cookie.value.untaint) 25 25 end 26 26 27 if params.has_key?('useragent') 28 term = params 29 else 30 specs = YAML.load(open(SSB::CONFIG[:config_file]).read.untaint) 31 term = specs['default'] 32 end 33 34 spec = SSB::KtaiSpec.new({ :useragent => term['useragent'], 35 :uid => term['uid'], 36 :hid => term['hid'], 37 :icc => term['icc'], 38 :exheader => term['exheader'], 39 }) 40 41 spec[:homepage] = params['homepage'] 42 spec[:mailaddr] = params['mailaddr'] 43 44 return spec 27 return SSB::KtaiSpec.new(params) 45 28 end 46 29 end -
lang/ruby/ssb/trunk/libs/ssb/qrcode.rb
r2455 r2826 28 28 $KCODE = '' 29 29 q = ::Qrcode.new 30 if q.respond_to?('make_qrcode') 31 qrcode = q.make_qrcode(str) 32 else 30 begin 33 31 qrcode = '' 32 qrcode = q.make_qrcode(str) if q.respond_to?('make_qrcode') 33 ensure 34 $KCODE = saved_kcode 35 return qrcode 34 36 end 35 $KCODE = saved_kcode36 return qrcode37 37 end 38 38 end -
lang/ruby/ssb/trunk/libs/ssb/request.rb
r2816 r2826 55 55 def execute 56 56 response = nil 57 return nil if @uri.scheme == 'about' 57 58 58 59 http = http_class(@http_proxy).new(@uri.host, @uri.port) … … 93 94 end 94 95 95 uri_base = SSB:: CONFIG[:default_uri] if uri_base.nil? || uri_base == ''96 uri_base = 'http://' + uri_base unless uri_base =~ %r |https?://|96 uri_base = SSB::config['default']['homepage'] unless uri_base 97 uri_base = 'http://' + uri_base unless uri_base =~ %r[https?://|about:blank] 97 98 98 99 begin -
lang/ruby/ssb/trunk/public_html/stylesheets/ssb.css
r2653 r2826 192 192 193 193 #client #sidebar #pane_setting #term_form { 194 font-size: x-small; 195 } 196 197 #client #sidebar #pane_setting #termform fieldset.input_fields { 198 text-align: left; 199 } 200 201 #client #sidebar #pane_setting #term_form span.warning { 202 color: red; 203 font-size: x-small; 194 font-size: small; 195 margin: 4px; 196 } 197 198 #client #sidebar #pane_setting #term_form fieldset { 199 border: none; 200 } 201 202 #client #sidebar #pane_setting #term_form fieldset hr { 203 margin: 2px; 204 border: solid 1px gray; 205 } 206 207 #client #sidebar #pane_setting #term_form fieldset#term_input_field table { 208 width: 100%; 209 } 210 211 #client #sidebar #pane_setting #term_form fieldset#term_input_field td.term_param_input input, 212 #client #sidebar #pane_setting #term_form fieldset#term_input_field td.term_param_input textarea { 213 width: 99%; 214 } 215 216 #client #sidebar #pane_setting #term_form fieldset#term_control_panel { 217 text-align: center; 218 margin-top: 20px; 204 219 } 205 220 -
lang/ruby/ssb/trunk/templates/ssb.rhtml
r2704 r2826 131 131 <div id="pane_setting" class="pane pane_close"> 132 132 <form id="term_form" action=""> 133 <fieldset class="input_fields">133 <fieldset id="term_input_field"> 134 134 <table> 135 135 <tr> 136 <td><p>ホームページ</p></td> 137 <td><input id="field_homepage" type="text" size="50" name="homepage" value="<%= term[:homepage] %>"/></td> 138 </tr> 139 <tr> 140 <td><p>メールアドレス</p></td> 141 <td><input id="field_mailaddr" type="text" size="50" name="mailaddr" value="<%= term[:mailaddr] %>"/><br /><span class="warning">入力したメールアドレスが正しいか必ず確認してください。アドレスが偶然無関係のユーザのものになると、情報漏洩の可能性があります。</span></td> 142 </tr> 143 <tr> 144 <td><hr /></td><td></td> 145 </tr> 146 <tr> 147 <td><p>User-Agent</p></td> 148 <td><input id="field_useragent" type="text" size="50" name="useragent" value="<%= term[:useragent] %>"/></td> 149 </tr> 150 <tr> 151 <td><p>UID</p></td> 152 <td><input id="field_uid" type="text" size="50" name="uid" value="<%= term[:uid] %>" /><br /><span class="warning">入力したUIDが正しいか必ず確認してください。適当に入れると偶然無関係の一般ユーザと認識される可能性があり、危険です。</span></td> 153 </tr> 154 <tr> 155 <td><hr /></td> 156 <td></td> 157 </tr> 158 <tr> 159 <td><p>端末ID / HID</p></td> 160 <td><input id="field_hid" type="text" size="50" name="hid" value="<%= term[:hid] %>" /></td> 161 </tr> 162 <tr> 163 <td><p>FOMAカードID</p></td> 164 <td><input id="field_icc" type="text" size="50" name="icc" value="<%= term[:icc] %>" /></td> 165 </tr> 166 <tr> 167 <td><hr /></td> 168 <td></td> 169 </tr> 170 <tr> 171 <td><p>拡張リクエストヘッダ</p></td> 172 <td><textarea id="field_exheader" cols="50" rows="5" name="exheader"><%= term[:exheader] %></textarea></td> 136 <td class="term_param_label">ホームページ</td> 137 <td class="term_param_input"><input id="field_homepage" type="text" size="50" name="homepage" value="<%= term[:homepage] %>"/></td> 138 </tr> 139 <tr> 140 <td class="term_param_label">メールアドレス</td> 141 <td class="term_param_input"> 142 <input id="field_mailaddr" type="text" size="50" name="mailaddr" value="<%= term[:mailaddr] %>"/> 143 </td> 144 </tr> 145 <tr> 146 <td class="term_param_label"><hr /></td> 147 <td class="term_param_input"></td> 148 </tr> 149 <tr> 150 <td class="term_param_label">User-Agent</td> 151 <td class="term_param_input"><input id="field_useragent" type="text" size="50" name="useragent" value="<%= term[:useragent] %>"/></td> 152 </tr> 153 <tr> 154 <td class="term_param_label"><hr /></td> 155 <td class="term_param_input"></td> 156 </tr> 157 <tr> 158 <td class="term_param_label">UID</td> 159 <td class="term_param_input"><input id="field_uid" type="text" size="50" name="uid" value="<%= term[:uid] %>" /></td> 160 </tr> 161 <tr> 162 <td class="term_param_label">端末ID / HID</td> 163 <td class="term_param_input"><input id="field_hid" type="text" size="50" name="hid" value="<%= term[:hid] %>" /></td> 164 </tr> 165 <tr> 166 <td class="term_param_label">FOMAカードID</td> 167 <td class="term_param_input"><input id="field_icc" type="text" size="50" name="icc" value="<%= term[:icc] %>" /></td> 168 </tr> 169 <tr> 170 <td class="term_param_label"><hr /></td> 171 <td class="term_param_input"></td> 172 </tr> 173 <tr> 174 <td class="term_param_label">拡張リクエストヘッダ</td> 175 <td class="term_param_input"><textarea id="field_exheader" cols="50" rows="5" name="exheader"><%= term[:exheader] %></textarea></td> 173 176 </tr> 174 177 </table> 175 178 </fieldset> 176 177 <fieldset class="control_panel"> 179 <fieldset id="term_control_panel"> 178 180 <input type="submit" name="action" value="save" /> ケータイ設定をcookieに保存する 179 181 <input type="reset" name="action" value="clear" /> cookieを消去して初期設定に戻す -
lang/ruby/ssb/trunk/test/request_test.rb
r2822 r2826 105 105 end 106 106 107 test 'about:blank uri' do 108 @request = SSB::Request.new('GET', {'ssb_q'.taint, 'about:blank'.taint}, cookie) 109 assert_not_nil(@request.uri) 110 assert_instance_of(URI::Generic, @request.uri) 111 assert_equal(@request.uri.scheme, 'about') 112 assert_equal(@request.uri.opaque, 'blank') 113 end 114 107 115 test 'test_request_should_success' do 108 116 mock_server = MockServer.new
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)