kiwicourse 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/kiwicourse +3 -5
- data/lib/coursesdesc/courses.rb +12 -0
- data/lib/coursesdesc/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f084b9a509a5a7846325dfe174b6ce04c6d0ed1d
|
4
|
+
data.tar.gz: 4cdabbbb525b4aaef30f43f35057cdf197bfbb26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c6b6e8ce7bad62982fb358fb7ab49eba17aa5cde8add4064a7bbdddd82d91459bde1f8c4f9d9233843883773e2b3154cce7574d1b0e4a17dd92b1f51301d457
|
7
|
+
data.tar.gz: e51c5088ccb248962567103e7839b50f55a836de5f46501333f3b039fa25dd93f37d5cf4958851cab4ad8ae654aa774ee14001a45e4b01c8d316319679f28cef
|
data/bin/kiwicourse
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'digest'
|
3
3
|
require 'thor'
|
4
|
-
require 'fuzzy_match'
|
5
4
|
require 'launchy'
|
6
5
|
require 'kiwicourse' # for production
|
7
6
|
# require './lib/coursesdesc/courses.rb' # for cmd line testing purposes
|
@@ -11,10 +10,9 @@ class KiwiCLI < Thor
|
|
11
10
|
desc 'search COURSENAME', 'Search a course on ShareCourse'
|
12
11
|
def search(coursename)
|
13
12
|
sc = KiwiScraper::OfflineCourses.new.get_instance
|
14
|
-
|
15
|
-
|
16
|
-
id
|
17
|
-
puts "#{id} - #{result}"
|
13
|
+
id = sc.search_courses(coursename)['id']
|
14
|
+
name = sc.search_courses(coursename)['name']
|
15
|
+
puts "#{id} - #{name}"
|
18
16
|
end
|
19
17
|
|
20
18
|
desc 'list', 'List all courses on ShareCourse'
|
data/lib/coursesdesc/courses.rb
CHANGED
@@ -2,6 +2,7 @@ require 'oga'
|
|
2
2
|
require 'open-uri'
|
3
3
|
require 'digest'
|
4
4
|
require 'pp'
|
5
|
+
require 'fuzzy_match'
|
5
6
|
|
6
7
|
module KiwiScraper
|
7
8
|
# parse course description from sharecourse web
|
@@ -36,7 +37,18 @@ module KiwiScraper
|
|
36
37
|
@course_id_map ||= map_course_id_to_all
|
37
38
|
end
|
38
39
|
|
40
|
+
def search_courses(keyword)
|
41
|
+
@found_cource ||= do_search_course(keyword)
|
42
|
+
end
|
43
|
+
|
39
44
|
private
|
45
|
+
|
46
|
+
def do_search_course(keyword)
|
47
|
+
result = FuzzyMatch.new(course_name).find(keyword)
|
48
|
+
input_key = Digest::SHA256.digest result
|
49
|
+
id = courses_name_to_id_mapping[input_key]
|
50
|
+
courses_id_to_all_mapping[id]
|
51
|
+
end
|
40
52
|
|
41
53
|
def parse_html
|
42
54
|
@document = Oga.parse_html(open(URL))
|
data/lib/coursesdesc/version.rb
CHANGED