Process filenames before downloading

This commit is contained in:
Alex Ling 2020-07-22 13:51:03 +00:00
parent 8de735a2ca
commit 10b6047df8

View File

@ -21,6 +21,11 @@ class Plugin
job job
end end
private def process_filename(str)
return "_" if str == ".."
str.gsub "/", "_"
end
private def download(job : Queue::Job) private def download(job : Queue::Job)
@downloading = true @downloading = true
@queue.set_status Queue::JobStatus::Downloading, job @queue.set_status Queue::JobStatus::Downloading, job
@ -33,7 +38,7 @@ class Plugin
plugin = Plugin.new job.plugin_name.not_nil! plugin = Plugin.new job.plugin_name.not_nil!
info = plugin.select_chapter job.id info = plugin.select_chapter job.id
title = info["title"].as_s title = process_filename info["title"].as_s
pages = info["pages"].as_i pages = info["pages"].as_i
@queue.set_pages pages, job @queue.set_pages pages, job
@ -57,7 +62,7 @@ class Plugin
fail_count = 0 fail_count = 0
while page = plugin.next_page while page = plugin.next_page
fn = page["filename"].as_s fn = process_filename page["filename"].as_s
url = page["url"].as_s url = page["url"].as_s
headers = HTTP::Headers.new headers = HTTP::Headers.new