From c33884ea294d627909ab98a75dbe82290a9aae97 Mon Sep 17 00:00:00 2001 From: Alex Ling Date: Wed, 26 Feb 2020 17:42:40 +0000 Subject: [PATCH] Add mangadex download enpoint to API --- src/routes/api.cr | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/routes/api.cr b/src/routes/api.cr index 27f3d3b..c9cd1a0 100644 --- a/src/routes/api.cr +++ b/src/routes/api.cr @@ -102,5 +102,32 @@ class APIRouter < Router send_json env, {"error" => e.message}.to_json end end + + post "/api/admin/mangadex/download" do |env| + begin + chapters = env.params.json["chapters"].as(Array).map{|c| c.as_h} + queue = MangaDex::Queue.new \ + @context.config.mangadex["download_queue_db_path"].to_s + jobs = chapters.map {|chapter| + MangaDex::Job.new( + chapter["id"].as_s, + chapter["manga_id"].as_s, + chapter["title"].as_s, + chapter["manga_title"].as_s, + MangaDex::JobStatus::Pending, + "", + Time.utc + ) + } + inserted_count = queue.push jobs + send_json env, { + "success": inserted_count, + "fail": jobs.size - inserted_count + }.to_json + rescue e + @context.error e + send_json env, {"error" => e.message}.to_json + end + end end end