sfcsfs 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,6 +4,7 @@ $:.unshift(File.dirname(__FILE__)) unless
4
4
 
5
5
  directory = File.expand_path(File.dirname(__FILE__))
6
6
 
7
+ require directory+'/sfcsfs/constants.rb'
7
8
  require directory+'/sfcsfs/lecture.rb'
8
9
  require directory+'/sfcsfs/homework.rb'
9
10
  require directory+'/sfcsfs/util.rb'
@@ -12,5 +13,5 @@ require directory+'/sfcsfs/agent/navigations.rb'
12
13
 
13
14
 
14
15
  module SFCSFS
15
- VERSION = '0.1.1'
16
+ VERSION = '0.1.2'
16
17
  end
@@ -27,7 +27,12 @@ module SFCSFS
27
27
  else
28
28
  req = Net::HTTP::Get.new(path)
29
29
  end
30
- req.set_form_data(data) if data.length > 0
30
+ if data.length > 0
31
+ data.each_pair do |k,v|
32
+ data[k] = SFCSFS.convert_encoding_for_send(v)
33
+ end
34
+ req.set_form_data(data)
35
+ end
31
36
  http = Net::HTTP.new(uri.host,uri.port)
32
37
  http.use_ssl = true if uri.scheme == 'https'
33
38
  http.start{|http| ret = http.request(req)}
@@ -62,6 +67,9 @@ module SFCSFS
62
67
  @type = nil
63
68
  return self
64
69
  end
70
+ def logout
71
+ request @base_uri + "/sfc-sfs/logout.cgi?id=#{@id}&type=#{@type}&lang=ja"
72
+ end
65
73
 
66
74
  def Agent.login(account,passwd,options={})
67
75
  a = Agent.new
@@ -0,0 +1,37 @@
1
+ module SFCSFS
2
+ module Buildings
3
+ Kappa = "1"
4
+ Epsilon = "2"
5
+ Iota = "3"
6
+ Omicron = "4"
7
+ Lambda = "5"
8
+ Delta = "6"
9
+ Tau = "7"
10
+ Zeta = "8"
11
+ Nu = "9"
12
+ Omega = "10"
13
+ Others = "11"
14
+ K = Kappa
15
+ E = Epsilon
16
+ I = Iota
17
+ O = Omicron
18
+ L = Lambda
19
+ D = Delta
20
+ T = Tau
21
+ Z = Zeta
22
+ N = Nu
23
+ W = Omega
24
+ end
25
+ module Floors
26
+ N1 = "n1"
27
+ N2 = "n2"
28
+ S1 = "s1"
29
+ S2 = "s2"
30
+ IIJHouse = "1"
31
+ DocomoHouse = "2"
32
+ DNPHouse = "3"
33
+ TateuchiHouse = "4"
34
+ MoriAtelier = "5"
35
+ end
36
+ end
37
+
@@ -38,6 +38,25 @@ module SFCSFS
38
38
  end
39
39
  "/sfc-sfs/sfs_class/stay/stay_input.cgi?yc=#{@yc}&ks=#{@ks}&enc_id=#{@agent.id}"
40
40
  end
41
+
42
+ def send_stay_form opt
43
+ get_stay_input_page
44
+ data = {}
45
+ @agent.doc.search('form[name=formRoom]').search('input').each do |e|
46
+ if (n = e.attr('name')) && n.length > 0
47
+ data[n] = e.attr('value').to_s
48
+ end
49
+ end
50
+ data['stay_phone'] = opt[:phone]
51
+ data['stay_p_phone'] = opt[:p_phone]
52
+ data['stay_time'] = opt[:time]
53
+ data['selectRoom'] = opt[:building]
54
+ data['selectFloor'] = opt[:floor]
55
+ data['stay_room_other'] = opt[:room]
56
+ data['stay_reason'] = opt[:reason]
57
+ @agent.request @agent.uri + @agent.doc.search('form[name=formRoom]').attr('action').to_s, :post, data
58
+ end
59
+
41
60
  def student_selection_path
42
61
  unless @yc && @agent.id
43
62
  raise NotEnoughParamsException
@@ -11,5 +11,13 @@ module SFCSFS
11
11
  return Kconv.kconv(str,Kconv::UTF8,Kconv::EUC)
12
12
  end
13
13
  end
14
+ def SFCSFS.convert_encoding_for_send str
15
+ if RUBY_VERSION >= "1.9"
16
+ return str.encode(Encoding::EUC_JP,:invalid=>:replace,:undef=>:replace)
17
+ else
18
+ require 'kconv'
19
+ return Kconv.kconv(str,Kconv::EUC,Kconv::UTF8)
20
+ end
21
+ end
14
22
  end
15
23
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sfcsfs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-20 00:00:00.000000000 Z
12
+ date: 2012-10-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &86240410 !ruby/object:Gem::Requirement
16
+ requirement: &70182276045220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.5.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *86240410
24
+ version_requirements: *70182276045220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: addressable
27
- requirement: &86240170 !ruby/object:Gem::Requirement
27
+ requirement: &70182275994040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.2.8
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *86240170
35
+ version_requirements: *70182275994040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &86239940 !ruby/object:Gem::Requirement
38
+ requirement: &70182275993580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.10.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *86239940
46
+ version_requirements: *70182275993580
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &86239750 !ruby/object:Gem::Requirement
49
+ requirement: &70182275993200 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *86239750
57
+ version_requirements: *70182275993200
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: pit
60
- requirement: &86239520 !ruby/object:Gem::Requirement
60
+ requirement: &70182275992740 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *86239520
68
+ version_requirements: *70182275992740
69
69
  description: SFC-SFS Scraping Library
70
70
  email:
71
71
  - ymrl@ymrl.net
@@ -81,6 +81,7 @@ files:
81
81
  - lib/sfcsfs.rb
82
82
  - lib/sfcsfs/agent.rb
83
83
  - lib/sfcsfs/agent/navigations.rb
84
+ - lib/sfcsfs/constants.rb
84
85
  - lib/sfcsfs/homework.rb
85
86
  - lib/sfcsfs/lecture.rb
86
87
  - lib/sfcsfs/util.rb