sfcsfs 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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