2020-03-28 21:14:48 +00:00
|
|
|
require "./errors/missing_link.cr"
|
|
|
|
|
2020-03-28 19:29:47 +00:00
|
|
|
module Muse::Dl
|
|
|
|
class Parser
|
|
|
|
@bookmarks : Bool
|
|
|
|
@tmp : String
|
|
|
|
@cleanup : Bool
|
|
|
|
@output : String
|
2020-03-28 22:22:57 +00:00
|
|
|
@url = "INVALID_URL"
|
2020-03-28 19:29:47 +00:00
|
|
|
|
2020-03-28 21:14:48 +00:00
|
|
|
getter :bookmarks, :tmp, :cleanup, :output, :url
|
2020-03-28 19:29:47 +00:00
|
|
|
|
|
|
|
def find_next(arg : Array(String), flag : String, default)
|
|
|
|
search = arg.index flag
|
|
|
|
if search
|
|
|
|
return arg[search + 1]
|
|
|
|
end
|
|
|
|
|
|
|
|
return default
|
|
|
|
end
|
|
|
|
|
|
|
|
def initialize(arg : Array(String) = [] of String)
|
|
|
|
@bookmarks = !arg.index "--no-bookmarks"
|
|
|
|
@cleanup = !arg.index "--no-cleanup"
|
|
|
|
@tmp = find_next(arg, "--tmp-dir", "/tmp")
|
|
|
|
@output = find_next(arg, "--output", "tempfilename.pdf")
|
2020-03-28 21:14:48 +00:00
|
|
|
begin
|
|
|
|
@url = arg[-1]
|
|
|
|
rescue e : Exception
|
2020-03-28 22:22:57 +00:00
|
|
|
@url = ""
|
2020-03-28 21:14:48 +00:00
|
|
|
raise Errors::MissingLink.new
|
|
|
|
end
|
2020-03-28 19:29:47 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|