kiwicourse 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/kiwicourse +7 -7
- data/lib/coursesdesc/offline.rb +20 -0
- data/lib/coursesdesc/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ada816db70fd85d1a7981cf06bba8257e01dd130
|
4
|
+
data.tar.gz: 977f702cbc2fb6b77101ebbe355510cbb68a7167
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63fdb381de9510d65129c0b1349ac8dc4e0865ede618622d823ef60532c49b6a85e43afa82c41ce30b5fb1434208d9d4aaece216d42ade0c6d002833987522fe
|
7
|
+
data.tar.gz: 6e513d41f0b5bc57f88b7e2315a99e8351d0753fea62e85a73aa296c1bce4f803f3b73e336666e7da254e4d094802caaac8c67a12e1a0ab577fd0e41b3777233
|
data/bin/kiwicourse
CHANGED
@@ -3,14 +3,14 @@ require 'digest'
|
|
3
3
|
require 'thor'
|
4
4
|
require 'fuzzy_match'
|
5
5
|
require 'launchy'
|
6
|
-
require 'kiwicourse' # for production
|
7
|
-
|
8
|
-
|
6
|
+
# require 'kiwicourse' # for production
|
7
|
+
require './lib/coursesdesc/courses.rb' # for cmd line testing purposes
|
8
|
+
require './lib/coursesdesc/offline.rb' # for cmd line testing purposes
|
9
9
|
|
10
10
|
class KiwiCLI < Thor
|
11
11
|
desc 'search COURSENAME', 'Search a course on ShareCourse'
|
12
12
|
def search(coursename)
|
13
|
-
sc =
|
13
|
+
sc = KiwiScraper::OfflineCourses.new.get_instance
|
14
14
|
result = FuzzyMatch.new(sc.course_name).find(coursename)
|
15
15
|
input_key = Digest::SHA256.digest result
|
16
16
|
id = sc.courses_name_to_id_mapping[input_key]
|
@@ -19,7 +19,7 @@ class KiwiCLI < Thor
|
|
19
19
|
|
20
20
|
desc 'list', 'List all courses on ShareCourse'
|
21
21
|
def list
|
22
|
-
sc =
|
22
|
+
sc = KiwiScraper::OfflineCourses.new.get_instance
|
23
23
|
sc.courses_id_to_all_mapping.each do |key, info|
|
24
24
|
puts "#{key} - #{info['name']}"
|
25
25
|
end
|
@@ -27,14 +27,14 @@ class KiwiCLI < Thor
|
|
27
27
|
|
28
28
|
desc 'open ID', 'Open the course page on browser with course id'
|
29
29
|
def open(id)
|
30
|
-
sc =
|
30
|
+
sc = KiwiScraper::OfflineCourses.new.get_instance
|
31
31
|
course = sc.courses_id_to_all_mapping[id]
|
32
32
|
Launchy.open(course['url'])
|
33
33
|
end
|
34
34
|
|
35
35
|
desc 'info ID', 'Display information about course.'
|
36
36
|
def info(id)
|
37
|
-
sc =
|
37
|
+
sc = KiwiScraper::OfflineCourses.new.get_instance
|
38
38
|
course = sc.courses_id_to_all_mapping[id]
|
39
39
|
puts "Course ID: #{course['id']}"
|
40
40
|
puts "Course: #{course['name']}"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative './courses.rb'
|
2
|
+
|
3
|
+
DUMP_FILE_PATH = Dir.home + '/.kiwicourse.dump'
|
4
|
+
|
5
|
+
module KiwiScraper
|
6
|
+
class OfflineCourses
|
7
|
+
def initialize
|
8
|
+
if File.exist?(DUMP_FILE_PATH)
|
9
|
+
@sc = Marshal.load(File.read(DUMP_FILE_PATH))
|
10
|
+
else
|
11
|
+
@sc = KiwiScraper::ShareCourse.new
|
12
|
+
File.open(DUMP_FILE_PATH, 'w') { |f| f.write(Marshal.dump(@sc)) }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_instance
|
17
|
+
@sc
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/coursesdesc/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kiwicourse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Lin
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- bin/kiwicourse
|
128
128
|
- kiwicourse.gemspec
|
129
129
|
- lib/coursesdesc/courses.rb
|
130
|
+
- lib/coursesdesc/offline.rb
|
130
131
|
- lib/coursesdesc/version.rb
|
131
132
|
- lib/kiwicourse.rb
|
132
133
|
- spec/courses_date_data.rb
|