kuport 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b534c2fd903d20621f711e90bc526ecd2239d749
4
- data.tar.gz: c8907e3fe41caefd6608c5c43e7702041944770f
3
+ metadata.gz: d557006f0d56c89fbdb480e83b49968de1de417f
4
+ data.tar.gz: '08482c0c932d94505bead4d9b09c9de7601f4846'
5
5
  SHA512:
6
- metadata.gz: 183b78a27136094580d1e9a00460ea5d2c9b95a9a5fded5284485428ea3e91697fdbf5003810968d57550802192dbcb196c408ba6b99f19c8bf0d583f6079816
7
- data.tar.gz: 0360777db15d8ff7610cf11b98a40e3cd92438ed30d8ef473fa333d956bff9f53dba2c50dbd72d705b91d5a4014c7b7080f425766d49e6f0e432745d53593fab
6
+ metadata.gz: 8ddcf75d7351972b180c9920de29806789d3477a0480cc92b22f88d2e9c6eced5aa68b83f0c6c680c6191a4b7a0a43679ebb81a3f3c07fa65bd6f14413b71c12
7
+ data.tar.gz: 4990062b8f8a42db7d9e35189f11c308b166497db76bf2ea239889f7ac0696c01c679f830b0ded5f59e7b12ce7a66e5f81da923d3edd81d691f420c3ab461738
data/README.md CHANGED
@@ -60,8 +60,16 @@ require 'kuport'
60
60
  kp = Kuport.new
61
61
  kp.login('jx91234')
62
62
 
63
- messages = kp.messages.to_json
64
- timetable = kp.messages.to_json
63
+ messages = kp.messages
64
+ timetable = kp.timetable
65
+
66
+ m = messages[0]
67
+ puts m.title, m.body, m.links
68
+ puts m.json
69
+ puts messages.to_json
70
+
71
+ timetable.compact
72
+ puts timetable.to_json
65
73
 
66
74
  kp.download(url, name)
67
75
  kp.download([{name: 'File.pdf', path: 'https://example.com/file.pdf'}, ])
@@ -1,3 +1,3 @@
1
1
  class Kuport
2
- VERSION = "0.1.0"
2
+ VERSION = '0.1.1'
3
3
  end
data/lib/kuport.rb CHANGED
@@ -13,6 +13,8 @@ require 'kuport/helper'
13
13
  class Kuport
14
14
  extend Kuport::Helper
15
15
 
16
+ class DownloadError < StandardError; end
17
+
16
18
  # Need last slash in url
17
19
  @@base_url = 'https://kuport.sc.kogakuin.ac.jp/ActiveCampus/'.freeze
18
20
  @@base_module = 'module/'.freeze
@@ -88,15 +90,16 @@ class Kuport
88
90
  end
89
91
 
90
92
  def login(id)
91
- return if login_cookie
93
+ return true if login_cookie
92
94
  Kuport.quit('Please student id', 4) if Kuport.blank?(id)
93
95
 
94
96
  3.times do
95
- return if login_passwd(id, Kuport.input_passwd)
97
+ return true if login_passwd(id, Kuport.input_passwd)
96
98
  warn 'Login failed'
97
99
  end
98
100
 
99
- Kuport.quit('Login error', 3)
101
+ warn 'Login error'
102
+ return false
100
103
  end
101
104
 
102
105
  def messages
@@ -108,7 +111,7 @@ class Kuport
108
111
  end
109
112
 
110
113
  def messages_backno
111
- # TODO
114
+ raise NotImplementedError.new('Kuport#messages_backno') # TODO
112
115
  end
113
116
 
114
117
  def timetable
@@ -116,11 +119,13 @@ class Kuport
116
119
  end
117
120
 
118
121
  def materials
119
- # TODO
122
+ raise NotImplementedError.new('Kuport#materials') # TODO
120
123
  end
121
124
 
122
125
  def download_file(file_path, url)
123
126
  File.write(file_path, agent.get(url).content)
127
+ rescue
128
+ DownloadError.new(file_path)
124
129
  end
125
130
 
126
131
  # url_or_json is "http://....", {name:, path:}, or [{name:, path:}, ...]
@@ -131,13 +136,15 @@ class Kuport
131
136
  return
132
137
  end
133
138
 
134
- json = JSON.parse(url_or_json, {symbolize_names: true}) rescue Kuport.quit("Download Error: #{url_or_json}", 7)
135
-
139
+ json = JSON.parse(url_or_json, {symbolize_names: true})
136
140
  if Array === json
137
141
  json.each{|link| download_file(link[:name], link[:path])}
138
142
  else
139
143
  download_file(json[:name], json[:path])
140
144
  end
145
+
146
+ rescue JSON::ParserError
147
+ raise DownloadError.new("JSON parse error '#{url_or_json}'")
141
148
  end
142
149
 
143
150
  # html parser for Mechanize. force encode to UTF-8
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuport
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - u+
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-23 00:00:00.000000000 Z
11
+ date: 2016-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri