From bd82f6152e638261d510c3f5ab14653001293c1b Mon Sep 17 00:00:00 2001 From: rakshasa Date: Tue, 1 Sep 2026 16:40:37 +0200 Subject: [PATCH] Stuff. --- src/Makefile.am | 1 + src/command_events.cc | 37 +------------------------------------ src/command_load.cc | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 36 deletions(-) create mode 100644 src/command_load.cc diff --git a/src/Makefile.am b/src/Makefile.am index 1c4ccfef..077235bb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -187,6 +187,7 @@ libsub_root_a_SOURCES = \ command_helpers.cc \ command_helpers.h \ command_groups.cc \ + command_load.cc \ command_local.cc \ command_logging.cc \ command_network.cc \ diff --git a/src/command_events.cc b/src/command_events.cc index 2538944a..9cd45fec 100644 --- a/src/command_events.cc +++ b/src/command_events.cc @@ -1,25 +1,17 @@ #include "config.h" -#include -#include -#include -#include -#include -#include +#include #include #include #include #include -#include "globals.h" #include "control.h" #include "command_helpers.h" #include "core/download.h" -#include "core/download_list.h" #include "core/manager.h" #include "core/view_manager.h" #include "rpc/command_scheduler.h" -#include "rpc/parse.h" #include "rpc/parse_commands.h" #include "utils/watch_ready_queue.h" @@ -146,24 +138,6 @@ apply_schedule(const torrent::Object::list_type& args, bool if_absent) { return torrent::Object(); } -torrent::Object -apply_load(const torrent::Object::list_type& args, int flags) { - torrent::Object::list_const_iterator argsItr = args.begin(); - - if (argsItr == args.end()) - throw torrent::input_error("Too few arguments."); - - auto& filename = argsItr->as_string(); - core::Manager::command_list_type commands; - - while (++argsItr != args.end()) - commands.push_back(argsItr->as_string()); - - control->core()->try_create_download_expand(filename, flags, commands); - - return torrent::Object(); -} - void apply_import(const std::string& path) { if (!rpc::parse_command_file(path)) throw torrent::input_error("Could not open option file: " + path); } void apply_try_import(const std::string& path) { if (!rpc::parse_command_file(path)) control->core()->push_log_std("Could not read resource file: " + path); } @@ -368,15 +342,6 @@ initialize_command_events() { CMD2_ANY_STRING_V("import", [](auto, auto& str) { return apply_import(str); }); CMD2_ANY_STRING_V("try_import", [](auto, auto& str) { return apply_try_import(str); }); - CMD2_ANY_LIST ("load.normal", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_tied); }); - CMD2_ANY_LIST ("load.verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_tied); }); - CMD2_ANY_LIST ("load.start", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_tied | core::Manager::create_start); }); - CMD2_ANY_LIST ("load.start_verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_tied | core::Manager::create_start); }); - CMD2_ANY_LIST ("load.raw", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_raw_data); }); - CMD2_ANY_LIST ("load.raw_verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_raw_data); }); - CMD2_ANY_LIST ("load.raw_start", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_start | core::Manager::create_raw_data); }); - CMD2_ANY_LIST ("load.raw_start_verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_start | core::Manager::create_raw_data); }); - CMD2_ANY_VALUE ("close_low_diskspace", [](auto, auto& arg) { return apply_close_low_diskspace(arg, 99); }); CMD2_ANY_VALUE ("close_low_diskspace.normal", [](auto, auto& arg) { return apply_close_low_diskspace(arg, 3); }); diff --git a/src/command_load.cc b/src/command_load.cc new file mode 100644 index 00000000..e3531270 --- /dev/null +++ b/src/command_load.cc @@ -0,0 +1,36 @@ +#include "config.h" + +#include "command_helpers.h" +#include "control.h" +#include "core/manager.h" + +torrent::Object +apply_load(const torrent::Object::list_type& args, int flags) { + auto argsItr = args.begin(); + + if (argsItr == args.end()) + throw torrent::input_error("Too few arguments."); + + auto& filename = argsItr->as_string(); + + core::Manager::command_list_type commands; + + while (++argsItr != args.end()) + commands.push_back(argsItr->as_string()); + + control->core()->try_create_download_expand(filename, flags, commands); + + return torrent::Object(); +} + +void +initialize_command_load() { + CMD2_ANY_LIST ("load.normal", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_tied); }); + CMD2_ANY_LIST ("load.verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_tied); }); + CMD2_ANY_LIST ("load.start", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_tied | core::Manager::create_start); }); + CMD2_ANY_LIST ("load.start_verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_tied | core::Manager::create_start); }); + CMD2_ANY_LIST ("load.raw", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_raw_data); }); + CMD2_ANY_LIST ("load.raw_verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_raw_data); }); + CMD2_ANY_LIST ("load.raw_start", [](auto, auto& args) { return apply_load(args, core::Manager::create_quiet | core::Manager::create_start | core::Manager::create_raw_data); }); + CMD2_ANY_LIST ("load.raw_start_verbose", [](auto, auto& args) { return apply_load(args, core::Manager::create_start | core::Manager::create_raw_data); }); +}