kiwicourse 0.2.1 → 0.3.0

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: 0ddb79d7ff7699e3e0300bd14f33ae2f032e9395
4
- data.tar.gz: 1760386b2764212b77cc2705de993b72730f5bf5
3
+ metadata.gz: 5b0cda5893a3ecaf2a108d71053b49e94a4ef5f1
4
+ data.tar.gz: 8ded148d071e55f5acd30d275b87b8c0e949ae09
5
5
  SHA512:
6
- metadata.gz: 8a45d6a3f76a24dad55a50cfa33f383b2e819752d3b2028a9d2508fff4058568655095f84a2c51de9103b48a4a8132a804cc4863c610100bbcfea3a03c8ce498
7
- data.tar.gz: 1f91d2eca9e946604a7bd6c79cab920374c8f2f74633056d157c6d2ee3670365a0c2de4738a5029f4a3b709c055fa3378bce4e8327a895bb629cd0e9f1eb92b0
6
+ metadata.gz: 9746a1e72202559a3f3f2c933620dcefbd72d1ab34fd5313363216ca6ff42fd6f7e164b2ca604250109f2bddbc9abcb450816308938ba9c342e47dfc1d75c1fc
7
+ data.tar.gz: 101dee9ca8aeb2e19cc1a6044c48d5008493e196e3d460a346a24e27807ee91edd245c514a63075186bd8b3200bbadaa0bf152381672e812be246d44791e0883
data/README.md CHANGED
@@ -18,13 +18,13 @@ Run it from the command line.
18
18
 
19
19
  Search a course with a keyword
20
20
  ```sh
21
- $ coursesdesc search cellular
21
+ $ kiwicourse search cellular
22
22
  2015 細胞神經科學Cellular Neuroscience
23
23
  ```
24
24
 
25
25
  Open the course url in browser
26
26
  ```sh
27
- $ coursesdesc open 科學計算
27
+ $ kiwicourse open 科學計算
28
28
  ```
29
29
 
30
30
 
@@ -41,9 +41,10 @@ puts url_found
41
41
 
42
42
  ````
43
43
 
44
- ## Test
44
+ ## Run the tests
45
+
46
+ Using [rake](http://docs.seattlerb.org/rake/) to run tests. If you don't have rake using `gem install rake` to install it.
45
47
 
46
48
  ```sh
47
- $ cd spec
48
- $ ruby coursesdesc_spec.rb
49
+ $ rake spec
49
50
  ```
data/bin/kiwicourse CHANGED
@@ -11,24 +11,34 @@ class KiwiCLI < Thor
11
11
  def search(coursename)
12
12
  sc = KiwiScraper::ShareCourse.new
13
13
  result = FuzzyMatch.new(sc.course_name).find(coursename)
14
- puts result
14
+ input_key = Digest::SHA256.digest result
15
+ id = sc.courses_name_to_id_mapping[input_key]
16
+ puts "#{id} - #{result}"
15
17
  end
16
18
 
17
19
  desc 'list', 'List all courses on ShareCourse'
18
20
  def list
19
21
  sc = KiwiScraper::ShareCourse.new
20
- sc.course_name.each do |ele_courses|
21
- puts ele_courses
22
+ sc.courses_id_mapping.each do |key, info|
23
+ puts "#{key} - #{info['name']}"
22
24
  end
23
25
  end
24
26
 
25
- desc 'open COURSENAME', 'open the course page on browser'
26
- def open(coursename)
27
+ desc 'open ID', 'open the course page on browser with course id'
28
+ def open(id)
27
29
  sc = KiwiScraper::ShareCourse.new
28
- # puts sc.courses_name_to_url_mapping
29
- input_key = Digest::SHA256.digest coursename
30
- course_url = sc.courses_name_to_url_mapping[input_key]
31
- Launchy.open(course_url)
30
+ course = sc.courses_id_mapping[id]
31
+ Launchy.open(course['url'])
32
+ end
33
+
34
+ desc 'info ID', 'Display information about course.'
35
+ def info(id)
36
+ sc = KiwiScraper::ShareCourse.new
37
+ course = sc.courses_id_mapping[id]
38
+ puts "Course ID: #{course['id']}"
39
+ puts "Course: #{course['name']}"
40
+ puts "Course time: #{course['date']}"
41
+ puts "Course webpage#{course['url']}"
32
42
  end
33
43
  end
34
44
 
@@ -1,6 +1,7 @@
1
1
  require 'oga'
2
2
  require 'open-uri'
3
3
  require 'digest'
4
+ require 'pp'
4
5
 
5
6
  module KiwiScraper
6
7
  # parse course description from sharecourse web
@@ -16,20 +17,32 @@ module KiwiScraper
16
17
  end
17
18
 
18
19
  def course_name
19
- @course_name ||= get_course_name
20
+ @course_name ||= parse_course_name
21
+ end
22
+
23
+ def course_date
24
+ @course_date ||= get_course_date
20
25
  end
21
26
 
22
27
  def course_url
23
- @course_url ||= get_course_url
28
+ @course_url ||= parse_course_url
29
+ end
30
+
31
+ def courses_name_to_id_mapping
32
+ @course_map ||= make_course_name_to_id_map
33
+ end
34
+
35
+ def course_id
36
+ @course_id ||= parse_course_id
24
37
  end
25
38
 
26
- def courses_name_to_url_mapping
27
- @course_map ||= get_course
39
+ def courses_id_mapping
40
+ @course_id_map ||= map_course_id
28
41
  end
29
42
 
30
43
  private
31
44
 
32
- def get_course_name
45
+ def parse_course_name
33
46
  result = []
34
47
  @document.xpath("//h4[@id='courseName']").each do |course|
35
48
  result << course.text
@@ -37,7 +50,7 @@ module KiwiScraper
37
50
  result
38
51
  end
39
52
 
40
- def get_course_url
53
+ def parse_course_url
41
54
  result = []
42
55
  @document.xpath('//div[@onclick]').each do |course|
43
56
  result << course.attributes[2].value.split("'")[1]
@@ -45,25 +58,56 @@ module KiwiScraper
45
58
  result
46
59
  end
47
60
 
48
- def get_course
49
- name = []
50
- @document.xpath("//h4[@id='courseName']").each do |course|
51
- name << course.text
52
- end
61
+ def make_course_name_to_id_map
62
+ name = parse_course_name
63
+ course_id = parse_course_id
53
64
 
54
65
  hash_name = []
55
66
  name.each_index do |index|
56
67
  hash_name[index] = Digest::SHA256.digest name[index]
57
68
  end
58
69
 
59
- url = []
60
- @document.xpath('//div[@onclick]').each do |course|
61
- url << course.attributes[2].value.split("'")[1]
70
+ result = Hash[hash_name.zip(course_id)]
71
+
72
+ result
73
+ end
74
+
75
+ def map_course_id
76
+ name = parse_course_name
77
+ course_id = parse_course_id
78
+ date = get_course_date
79
+ url = parse_course_url
80
+ info = {}
81
+
82
+ # This iterate can replace by using zip function
83
+ course_id.each_index do |index|
84
+ info[course_id[index]] = {
85
+ 'name' => name[index],
86
+ 'date' => date[index],
87
+ 'url' => url[index],
88
+ 'id' => course_id[index]
89
+ }
62
90
  end
91
+ info
92
+ end
63
93
 
64
- result = Hash[hash_name.zip(url)]
94
+ def get_course_date
95
+ #date type yyyy-mm-dd - yyyy-mm-dd
96
+ date = []
97
+ @document.xpath("//p[@id='courseDate']").each do |course|
98
+ longdate = course.text
99
+ date << longdate.split(":")[1]
100
+ end
101
+ date
102
+ end
65
103
 
66
- result
104
+ def parse_course_id
105
+ course_id = []
106
+ @document.xpath("//div[@class='gb_mid']").each do |course|
107
+ course_id << course.children[4].children[0].children.text.split(":")[1]
108
+ end
109
+ course_id
67
110
  end
111
+
68
112
  end
69
113
  end
@@ -1,5 +1,5 @@
1
1
  # Versioning
2
2
  module CoursesDesc
3
- VERSION = '0.2.1'
4
- DATE = '2015-10-16'
3
+ VERSION = '0.3.0'
4
+ DATE = '2015-10-18'
5
5
  end
@@ -0,0 +1,220 @@
1
+ COURSES_DATE = [
2
+ '2015-10-12 - 2015-01-31',
3
+ '2015-10-19 - 2015-12-06',
4
+ '2015-10-19 - 2015-12-06',
5
+ '2015-10-19 - 2015-12-08',
6
+ '2015-11-02 - 2015-12-31',
7
+ '2015-11-02 - 2015-12-31',
8
+ '2015-11-02 - 2015-12-31',
9
+ '2015-11-08 - 2016-01-08',
10
+ '2015-12-01 - 2016-01-26',
11
+ '2015-10-06 - 2016-01-24',
12
+ '2015-10-02 - 2016-01-15',
13
+ '2015-10-01 - 2015-11-02',
14
+ '2015-09-30 - 2015-10-21',
15
+ '2015-09-28 - 2016-01-30',
16
+ '2015-09-25 - 2016-01-29',
17
+ '2015-09-25 - 2016-01-30',
18
+ '2015-09-24 - 2016-01-14',
19
+ '2015-09-24 - 2016-01-14',
20
+ '2015-09-22 - 2015-12-15',
21
+ '2015-09-22 - 2015-12-08',
22
+ '2015-09-21 - 2015-12-13',
23
+ '2015-09-21 - 2015-11-23',
24
+ '2015-09-20 - 2016-01-17',
25
+ '2015-09-15 - 2015-10-25',
26
+ '2015-09-15 - 2016-02-08',
27
+ '2015-09-14 - 2015-12-14',
28
+ '2015-09-14 - 2015-11-15',
29
+ '2015-09-14 - 2015-11-15',
30
+ '2015-09-14 - 2015-10-05',
31
+ '2015-09-14 - 2016-01-11',
32
+ '2015-09-14 - 2016-01-11',
33
+ '2015-09-14 - 2015-12-13',
34
+ '2015-09-14 - 2016-01-15',
35
+ '2015-09-09 - 2015-12-31',
36
+ '2015-09-09 - 2015-10-30',
37
+ '2015-09-07 - 2015-11-30',
38
+ '2015-09-03 - 2016-01-08',
39
+ '2015-09-01 - 2015-10-20',
40
+ '2015-09-01 - 2015-10-27',
41
+ '2015-09-01 - 2015-10-20',
42
+ '2015-09-01 - 2015-10-27',
43
+ '2015-08-31 - 2015-09-22',
44
+ '2015-08-17 - 2015-10-05',
45
+ '2015-08-01 - 2016-01-31',
46
+ '2015-08-01 - 2015-10-31',
47
+ '2015-08-01 - 2015-10-31',
48
+ '2015-08-01 - 2015-10-31',
49
+ '2015-07-22 - 2015-09-15',
50
+ '2015-07-13 - 2015-09-03',
51
+ '2015-07-13 - 2015-08-03',
52
+ '2015-07-06 - 2015-08-31',
53
+ '2015-07-01 - 2015-11-04',
54
+ '2015-06-30 - 2015-07-31',
55
+ '2015-06-30 - 2015-12-31',
56
+ '2015-06-16 - 2015-08-04',
57
+ '2015-06-15 - 2015-08-10',
58
+ '2015-06-11 - 0000-00-00',
59
+ '2015-06-01 - 2015-12-31',
60
+ '2015-06-01 - 2015-07-29',
61
+ '2015-05-30 - 2015-06-22',
62
+ '2015-05-11 - 2015-05-24',
63
+ '2015-04-28 - 2015-06-30',
64
+ '2015-04-27 - 2015-05-23',
65
+ '2015-04-20 - 2015-06-12',
66
+ '2015-04-17 - 2015-04-27',
67
+ '2015-04-07 - 2015-05-05',
68
+ '2015-04-01 - 2015-05-12',
69
+ '2015-03-30 - 2015-06-07',
70
+ '2015-03-10 - 2015-06-09',
71
+ '2015-03-02 - 2015-04-27',
72
+ '2015-03-02 - 2015-06-20',
73
+ '2015-03-02 - 2015-06-20',
74
+ '2015-03-02 - 2015-06-30',
75
+ '2015-01-14 - 2015-12-31',
76
+ '2015-01-01 - 2111-01-30',
77
+ '2015-01-01 - 2111-01-30',
78
+ '2014-12-29 - 2015-02-08',
79
+ '2014-12-22 - 2015-02-15',
80
+ '2014-12-22 - 2015-04-05',
81
+ '2014-12-15 - 2015-02-15',
82
+ '2014-12-15 - 2015-03-08',
83
+ '2014-12-15 - 2015-02-06',
84
+ '2014-12-08 - 2015-02-27',
85
+ '2014-12-01 - 2015-02-20',
86
+ '2014-11-25 - 2015-12-31',
87
+ '2014-11-15 - 2015-01-23',
88
+ '2014-10-27 - 2015-01-18',
89
+ '2014-10-27 - 2015-01-17',
90
+ '2014-10-15 - 2014-12-10',
91
+ '2014-10-13 - 2015-03-11',
92
+ '2014-10-13 - 2015-02-09',
93
+ '2014-10-06 - 2014-11-30',
94
+ '2014-10-04 - 2015-01-31',
95
+ '2014-10-01 - 2014-10-29',
96
+ '2014-10-01 - 2015-01-20',
97
+ '2014-10-01 - 2015-01-31',
98
+ '2014-10-01 - 2014-12-24',
99
+ '2014-10-01 - 2015-01-25',
100
+ '2014-10-01 - 2015-01-20',
101
+ '2014-10-01 - 2014-11-26',
102
+ '2014-10-01 - 2015-06-30',
103
+ '2014-10-01 - 2015-01-25',
104
+ '2014-10-01 - 2111-01-01',
105
+ '2014-10-01 - 2111-01-01',
106
+ '2014-10-01 - 2111-01-01',
107
+ '2014-10-01 - 2111-01-01',
108
+ '2014-10-01 - 2111-01-01',
109
+ '2014-10-01 - 2111-01-01',
110
+ '2014-09-29 - 2014-11-09',
111
+ '2014-09-29 - 2014-11-09',
112
+ '2014-09-29 - 2015-01-31',
113
+ '2014-09-26 - 2015-01-23',
114
+ '2014-09-25 - 2015-01-10',
115
+ '2014-09-25 - 2015-01-31',
116
+ '2014-09-24 - 2015-01-31',
117
+ '2014-09-22 - 2015-01-23',
118
+ '2014-09-22 - 2014-11-03',
119
+ '2014-09-22 - 2015-01-18',
120
+ '2014-09-22 - 2015-01-12',
121
+ '2014-09-15 - 2014-12-15',
122
+ '2014-09-15 - 2014-11-07',
123
+ '2014-09-15 - 2014-11-24',
124
+ '2014-09-15 - 2014-11-23',
125
+ '2014-09-15 - 2014-11-28',
126
+ '2014-09-14 - 2015-02-28',
127
+ '2014-09-10 - 2015-01-07',
128
+ '2014-09-02 - 2014-09-30',
129
+ '2014-08-11 - 2014-09-19',
130
+ '2014-07-29 - 2014-10-31',
131
+ '2014-06-30 - 2016-06-30',
132
+ '2014-06-26 - 2016-06-26',
133
+ '2014-06-26 - 2016-06-26',
134
+ '2014-06-26 - 2016-06-26',
135
+ '2014-06-26 - 2016-06-26',
136
+ '2014-06-26 - 2016-06-26',
137
+ '2014-06-26 - 2016-06-26',
138
+ '2014-06-26 - 2016-06-26',
139
+ '2014-06-26 - 2016-06-26',
140
+ '2014-06-26 - 2016-06-26',
141
+ '2014-06-26 - 2016-06-26',
142
+ '2014-06-26 - 2016-06-26',
143
+ '2014-06-23 - 2014-08-08',
144
+ '2014-06-16 - 2016-07-01',
145
+ '2014-06-16 - 2016-07-01',
146
+ '2014-06-16 - 2016-07-01',
147
+ '2014-06-16 - 2016-07-01',
148
+ '2014-06-16 - 2016-07-01',
149
+ '2014-06-16 - 2016-07-01',
150
+ '2014-06-16 - 2015-06-15',
151
+ '2014-04-25 - 2020-04-25',
152
+ '2014-04-15 - 2014-05-31',
153
+ '2014-04-02 - 2014-04-02',
154
+ '2014-04-01 - 2014-05-31',
155
+ '2014-03-14 - 2111-01-30',
156
+ '2014-03-14 - 2111-01-30',
157
+ '2014-03-14 - 2111-01-30',
158
+ '2014-03-11 - 2111-01-30',
159
+ '2014-03-11 - 2111-01-30',
160
+ '2014-03-11 - 2111-01-30',
161
+ '2014-03-11 - 2111-01-30',
162
+ '2014-03-07 - 2111-01-30',
163
+ '2014-03-07 - 2015-05-20',
164
+ '2014-03-07 - 2111-01-30',
165
+ '2014-03-07 - 2015-05-20',
166
+ '2014-03-07 - 2111-01-30',
167
+ '2014-03-05 - 2111-01-30',
168
+ '2014-03-05 - 2111-01-30',
169
+ '2014-03-05 - 2111-01-30',
170
+ '2014-03-04 - 2111-01-30',
171
+ '2014-03-04 - 2111-01-30',
172
+ '2014-02-27 - 2111-01-30',
173
+ '2014-02-27 - 2111-01-30',
174
+ '2014-02-25 - 2111-01-30',
175
+ '2014-02-25 - 2111-01-30',
176
+ '2014-02-20 - 2111-01-30',
177
+ '2014-02-20 - 2111-01-30',
178
+ '2014-02-18 - 2111-01-30',
179
+ '2014-02-17 - 2014-06-20',
180
+ '2014-02-13 - 2111-01-30',
181
+ '2014-02-12 - 2111-01-30',
182
+ '2014-02-12 - 2111-01-30',
183
+ '2014-02-10 - 2111-01-30',
184
+ '2014-02-10 - 2111-01-30',
185
+ '2014-02-10 - 2111-01-30',
186
+ '2014-02-07 - 2111-01-30',
187
+ '2014-02-07 - 2111-01-30',
188
+ '2014-01-01 - 2014-12-31',
189
+ '2014-01-01 - 2014-12-31',
190
+ '2014-01-01 - 2014-12-31',
191
+ '2013-12-04 - 2014-04-30',
192
+ '2013-12-01 - 2013-12-23',
193
+ '2013-11-27 - 2014-11-26',
194
+ '2013-11-22 - 2014-11-21',
195
+ '2013-11-01 - 2013-12-13',
196
+ '2013-10-01 - 2014-01-31',
197
+ '2013-09-27 - 2014-01-20',
198
+ '2013-09-26 - 2014-02-28',
199
+ '2013-09-17 - 2014-01-07',
200
+ '2013-09-16 - 2014-02-14',
201
+ '2013-09-16 - 2014-01-19',
202
+ '2013-09-12 - 2014-01-31',
203
+ '2013-08-26 - 2014-01-09',
204
+ '2013-08-26 - 2014-01-09',
205
+ '2013-08-16 - 2013-09-16',
206
+ '2013-08-01 - 2013-11-30',
207
+ '2013-07-27 - 2013-07-28',
208
+ '2013-07-19 - 2014-07-31',
209
+ '2013-06-16 - 2013-06-17',
210
+ '2013-02-22 - 2013-06-15',
211
+ '2013-02-22 - 2013-06-15',
212
+ '2013-02-22 - 2013-06-15',
213
+ '2013-02-22 - 2013-09-25',
214
+ '2013-02-22 - 2013-06-15',
215
+ '2013-02-22 - 2013-06-15',
216
+ '2013-02-22 - 2013-06-15',
217
+ '2013-02-19 - 2013-06-30',
218
+ '2012-11-30 - 2013-02-07',
219
+ '2012-11-30 - 2013-02-28',
220
+ '0000-00-00 - 0000-00-00']
@@ -0,0 +1,219 @@
1
+ COURSES_ID = ['MA02004',
2
+ 'AO35004',
3
+ 'DM91002',
4
+ 'WL33002',
5
+ 'SP31002',
6
+ 'SO31003',
7
+ 'SO31004',
8
+ 'AN54005',
9
+ 'CM81009',
10
+ 'MM39012',
11
+ 'MM39013',
12
+ 'ML22006',
13
+ 'CS08006',
14
+ 'OL48008',
15
+ 'OL48009',
16
+ 'OL48010',
17
+ 'CM99001',
18
+ 'AN99002',
19
+ 'WL32009',
20
+ 'OL32010',
21
+ 'JL91001',
22
+ 'MM93001',
23
+ 'PH05009',
24
+ 'CS01023',
25
+ 'CS92001',
26
+ 'CS121000',
27
+ 'CS01022',
28
+ 'CS01024',
29
+ 'CS08004',
30
+ 'SC46005',
31
+ 'SC46006',
32
+ 'OL33001',
33
+ 'CS01024',
34
+ 'HS05007',
35
+ 'PH05008',
36
+ 'AN54004',
37
+ 'CS13001',
38
+ 'CS81006',
39
+ 'CM81005',
40
+ 'MM81007',
41
+ 'CM81008',
42
+ 'CS08005',
43
+ 'ML22007',
44
+ 'ML34002',
45
+ 'SS39009',
46
+ 'MM39010',
47
+ 'AM39011',
48
+ 'ML98001',
49
+ 'CS01021',
50
+ 'CS08003',
51
+ 'CM81004',
52
+ 'OL48007',
53
+ 'CS32008',
54
+ 'LI01023',
55
+ 'MM81003',
56
+ 'CS81002',
57
+ 'WL32006',
58
+ 'ML22005',
59
+ 'CM81001',
60
+ 'CS08002',
61
+ 'CS05005',
62
+ 'CH54003',
63
+ 'CS08001',
64
+ 'ML22004',
65
+ 'CS01019',
66
+ 'OL31001',
67
+ 'CS02005',
68
+ 'CS05006',
69
+ 'AN54002',
70
+ 'EE57005',
71
+ 'OL48005',
72
+ 'OL48006',
73
+ 'SC46004',
74
+ 'SC46003',
75
+ 'MM10037',
76
+ 'EE10038',
77
+ 'AO35003',
78
+ 'AO35002',
79
+ 'CM55004',
80
+ 'AO35001',
81
+ 'CM55003',
82
+ 'EE57004',
83
+ 'SC46002',
84
+ 'EC05001',
85
+ 'ML22003',
86
+ 'LE58001',
87
+ 'CE02002',
88
+ 'CS02003',
89
+ 'TT10201',
90
+ 'TO60001',
91
+ 'OL59001',
92
+ 'EE57003',
93
+ 'MM16002',
94
+ 'ML22002',
95
+ 'MS57002',
96
+ 'OL48003',
97
+ 'AN54001',
98
+ 'OL48002',
99
+ 'NB13001',
100
+ 'MM16003',
101
+ 'MM16004',
102
+ 'OL48004',
103
+ 'EE10031',
104
+ 'CS10032',
105
+ 'EE10033',
106
+ 'EE10034',
107
+ 'EE10035',
108
+ 'EE10036',
109
+ 'CS05003',
110
+ 'CS05004',
111
+ 'EP57001',
112
+ 'WL32005',
113
+ 'ML22001',
114
+ 'OL32004',
115
+ 'EE62001',
116
+ 'CS51001',
117
+ 'PH05002',
118
+ 'EE50001',
119
+ 'OL48001',
120
+ 'CM55002',
121
+ 'CS01017',
122
+ 'SC46001',
123
+ 'CM55001',
124
+ 'GE10206',
125
+ 'CS06001',
126
+ 'GE10204',
127
+ 'EM01018',
128
+ 'CS32003',
129
+ 'GE10203',
130
+ 'HR10018',
131
+ 'HR10007',
132
+ 'HR10008',
133
+ 'HR10009',
134
+ 'HR10010',
135
+ 'HR10011',
136
+ 'HR10012',
137
+ 'HR10013',
138
+ 'HR10014',
139
+ 'HR10015',
140
+ 'HR10016',
141
+ 'HR10017',
142
+ 'CS32002',
143
+ 'HR10001',
144
+ 'HR10002',
145
+ 'HR10003',
146
+ 'HR10004',
147
+ 'HR10005',
148
+ 'HR10006',
149
+ 'CS10007',
150
+ 'CS10003',
151
+ 'CS05003',
152
+ 'EE10028',
153
+ 'CS05002',
154
+ 'EE10024',
155
+ 'EE10025',
156
+ 'EE10026',
157
+ 'EE10020',
158
+ 'EE10021',
159
+ 'EE10022',
160
+ 'EE10023',
161
+ 'EE10027',
162
+ 'CS10004',
163
+ 'EE10018',
164
+ 'CS10005',
165
+ 'EE10019',
166
+ 'EE10014',
167
+ 'EE10015',
168
+ 'EE10017',
169
+ 'EE10013',
170
+ 'EE10016',
171
+ 'CS10006',
172
+ 'EE10012',
173
+ 'EE10010',
174
+ 'EE10011',
175
+ 'EE10008',
176
+ 'EE10009',
177
+ 'EE10005',
178
+ 'CS32001',
179
+ 'EE10004',
180
+ 'EE10002',
181
+ 'EE10003',
182
+ 'EE10007',
183
+ 'EE10029',
184
+ 'EE10030',
185
+ 'EE10001',
186
+ 'EE10006',
187
+ 'CS10001',
188
+ 'CM10001',
189
+ 'ML10001',
190
+ 'CS25001',
191
+ 'CS10002',
192
+ 'MN09009',
193
+ 'CS01016',
194
+ 'CS02001',
195
+ 'CS01013',
196
+ 'CS01014',
197
+ 'CS01015',
198
+ 'CS18001',
199
+ 'CS01007',
200
+ 'CS16001',
201
+ 'CS05001',
202
+ 'CS01009',
203
+ 'CS01010',
204
+ 'CS07001',
205
+ 'MN09007',
206
+ 'HSS19001',
207
+ 'CS01012',
208
+ 'CS01011',
209
+ 'EE01003',
210
+ 'CS01004',
211
+ 'CS04001',
212
+ 'CS01005',
213
+ 'CS03001',
214
+ 'CS04001',
215
+ 'CS01008',
216
+ 'CS01006',
217
+ 'CS01001',
218
+ 'CS01002',
219
+ 'EE62002']