diff --git a/src/plugin/subscriptions.cr b/src/plugin/subscriptions.cr index daca785..a86831a 100644 --- a/src/plugin/subscriptions.cr +++ b/src/plugin/subscriptions.cr @@ -75,7 +75,7 @@ struct SubscriptionList forward_missing_to @ary def initialize(@dir) - @path = Path[@dir, "subscriptions.json"] + @path = Path[@dir, "subscriptions.json"].to_s if File.exists? @path @ary = Array(Subscription).from_json File.read @path end diff --git a/src/routes/api.cr b/src/routes/api.cr index 3d18126..0e4272a 100644 --- a/src/routes/api.cr +++ b/src/routes/api.cr @@ -630,6 +630,30 @@ struct APIRouter end end + post "/api/admin/plugin/subscribe" do |env| + begin + plugin_id = env.params.json["plugin"].as String + filters = Array(Filter).from_json env.params.json["filters"].to_s + name = env.params.json["name"].as String + + sub = Subscription.new plugin_id, name + sub.filters = filters + + plugin = Plugin.new plugin_id + plugin.subscribe sub + + send_json env, { + "success" => true, + }.to_json + rescue e + Logger.error e + send_json env, { + "success" => false, + "error" => e.message, + }.to_json + end + end + Koa.describe "Lists the chapters in a title from a plugin" Koa.tags ["admin", "downloader"] Koa.query "plugin", schema: String