Sha256: 92fd751c5029b2802c0f4703103d45017339e1f7f932c976d12f9326bed21046

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

#!/usr/bin/env ruby
require 'digest'
require 'thor'
require 'launchy'
require 'kiwicourse' # for production
# require './lib/coursesdesc/courses.rb' # for cmd line testing purposes
# require './lib/coursesdesc/offline.rb' # for cmd line testing purposes

class KiwiCLI < Thor
  desc 'search COURSENAME', 'Search a course on ShareCourse'
  def search(coursename)
    sc = KiwiScraper::OfflineCourses.new.get_instance
    id = sc.search_courses(coursename)['id']
    name = sc.search_courses(coursename)['name']
    puts "#{id} - #{name}"
  end

  desc 'list', 'List all courses on ShareCourse'
  def list
    sc = KiwiScraper::OfflineCourses.new.get_instance
    sc.courses_id_to_all_mapping.each do |key, info|
      puts "#{key} - #{info['name']}"
    end
  end

  desc 'open ID', 'Open the course page on browser with course id'
  def open(id)
    sc = KiwiScraper::OfflineCourses.new.get_instance
    course = sc.courses_id_to_all_mapping[id]
    Launchy.open(course['url'])
  end

  desc 'info ID', 'Display information about course.'
  def info(id)
    sc = KiwiScraper::OfflineCourses.new.get_instance
    course = sc.courses_id_to_all_mapping[id]
    puts "Course ID: #{course['id']}"
    puts "Course: #{course['name']}"
    puts "Course time: #{course['date']}"
    puts "Course webpage: #{course['url']}"
  end

  desc 'update', 'Update the offline courses data'
  def update
    sc = KiwiScraper::ShareCourse.new
    File.open(DUMP_FILE_PATH, 'w') { |f| f.write(Marshal.dump(sc)) }
    puts 'Already up to date.'
  end
end

KiwiCLI.start(ARGV)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kiwicourse-0.5.3 bin/kiwicourse