static enum shell_reply shell_exec_download_add(struct gnutella_shell *sh, int argc, const char *argv[]) { const char *url; gboolean success; shell_check(sh); g_assert(argv); g_assert(argc > 0); if (argc < 3) { shell_set_msg(sh, _("URL missing")); goto error; } url = argv[2]; if (is_strcaseprefix(url, "http://")) { success = download_handle_http(url); } else if (is_strcaseprefix(url, "magnet:?")) { unsigned n_downloads, n_searches; n_downloads = download_handle_magnet(url); n_searches = search_handle_magnet(url); success = n_downloads > 0 || n_searches > 0; } else { success = FALSE; } if (!success) { shell_set_msg(sh, _("The download could not be created")); goto error; } shell_set_msg(sh, _("Download added")); return REPLY_READY; error: return REPLY_ERROR; }
/* search interface functions (UI -> Core)*/ guint guc_search_handle_magnet(const char *url) { return search_handle_magnet(url); }