diff --git a/public/js/plugin-download.js b/public/js/plugin-download.js index 1cb09fe..90c27e6 100644 --- a/public/js/plugin-download.js +++ b/public/js/plugin-download.js @@ -1,16 +1,16 @@ -const loadPlugin = title => { - localStorage.setItem('plugin', title); +const loadPlugin = id => { + localStorage.setItem('plugin', id); const url = `${location.protocol}//${location.host}${location.pathname}`; const newURL = `${url}?${$.param({ - plugin: encodeURIComponent(title) + plugin: id })}`; window.location.href = newURL; }; $(() => { - var storedTitle = localStorage.getItem('plugin'); - if (storedTitle && storedTitle !== plugin) { - loadPlugin(storedTitle); + var storedID = localStorage.getItem('plugin'); + if (storedID && storedID !== pid) { + loadPlugin(storedID); } else { $('#controls').removeAttr('hidden'); } @@ -20,10 +20,10 @@ $(() => { search(); } }); - $('#plugin-select').val(plugin); + $('#plugin-select').val(pid); $('#plugin-select').change(() => { - const title = $('#plugin-select').val(); - loadPlugin(title); + const id = $('#plugin-select').val(); + loadPlugin(id); }); }); @@ -39,7 +39,7 @@ const search = () => { url: base_url + 'api/admin/plugin/search', data: JSON.stringify({ query: query, - plugin: plugin + plugin: pid }), contentType: "application/json", dataType: 'json' @@ -112,7 +112,7 @@ const download = () => { type: 'POST', url: base_url + 'api/admin/plugin/download', data: JSON.stringify({ - plugin: plugin, + plugin: pid, chapters: chapters, title: mangaTitle }), diff --git a/src/plugin/downloader.cr b/src/plugin/downloader.cr index d336a00..4c23432 100644 --- a/src/plugin/downloader.cr +++ b/src/plugin/downloader.cr @@ -35,7 +35,7 @@ class Plugin raise "Job does not have a plugin ID specificed" end - plugin = Plugin.new_from_id job.plugin_id.not_nil! + plugin = Plugin.new job.plugin_id.not_nil! info = plugin.select_chapter job.plugin_chapter_id.not_nil! pages = info["pages"].as_i diff --git a/src/plugin/plugin.cr b/src/plugin/plugin.cr index 3d7ec84..65427dd 100644 --- a/src/plugin/plugin.cr +++ b/src/plugin/plugin.cr @@ -106,28 +106,21 @@ class Plugin def self.list self.build_info_ary - - @@info_ary.map &.title + @@info_ary.map do |m| + {id: m.id, title: m.title} + end end def info @info.not_nil! end - def self.new_from_id(id : String) - self.build_info_ary - - info = @@info_ary.find { |i| i.id == id } - raise Error.new "Plugin with id #{id} not found" unless info - self.new info.title - end - - def initialize(title : String) + def initialize(id : String) Plugin.build_info_ary - @info = @@info_ary.find { |i| i.title == title } + @info = @@info_ary.find { |i| i.id == id } if @info.nil? - raise Error.new "Plugin with title #{title} not found" + raise Error.new "Plugin with ID #{id} not found" end @js_path = File.join info.dir, "index.js" diff --git a/src/routes/main.cr b/src/routes/main.cr index 4e95fda..5396604 100644 --- a/src/routes/main.cr +++ b/src/routes/main.cr @@ -80,13 +80,13 @@ class MainRouter < Router get "/download/plugins" do |env| begin - title = env.params.query["plugin"]? + id = env.params.query["plugin"]? plugins = Plugin.list - if title - plugin = Plugin.new URI.decode title + if id + plugin = Plugin.new id else - plugin = Plugin.new plugins[0] + plugin = Plugin.new plugins[0][:id] end layout "plugin-download" diff --git a/src/views/plugin-download.html.ecr b/src/views/plugin-download.html.ecr index 9d999fd..29b3065 100644 --- a/src/views/plugin-download.html.ecr +++ b/src/views/plugin-download.html.ecr @@ -22,8 +22,8 @@
@@ -64,7 +64,7 @@ <% content_for "script" do %>