public static JsonObject TorrentAddByUrl(string url, bool addcookies) { JsonObject request = CreateBasicObject(ProtocolConstants.METHOD_TORRENTADD); JsonObject arguments = GetArgObject(request); Uri uri = new Uri(url); if (!uri.Scheme.Equals("magnet") && addcookies && Program.DaemonDescriptor.RpcVersion >= 13) { arguments.Put(ProtocolConstants.FIELD_COOKIES, PersistentCookies.RetrieveIECookiesForUrl(url)); } arguments.Put(ProtocolConstants.FIELD_FILENAME, uri.AbsoluteUri); arguments.Put(ProtocolConstants.FIELD_PAUSED, Program.Settings.Current.StartPaused); return(request); }
public static void SetupWebRequest(HttpWebRequest request, bool rpc, bool authenticate) { request.KeepAlive = false; request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; request.UserAgent = $"{AboutDialog.AssemblyProduct}/{AboutDialog.AssemblyVersion}"; if (XTransmissionSessionId != null && authenticate && rpc) { request.Headers["X-Transmission-Session-Id"] = XTransmissionSessionId; } if (!rpc) { request.CookieContainer = PersistentCookies.GetCookieContainerForUrl(request.RequestUri); } TransmissionServer settings = Program.Settings.Current; if (settings.AuthEnabled && authenticate) { request.Credentials = new NetworkCredential(settings.Username, settings.ValidPassword); request.PreAuthenticate = Program.DaemonDescriptor.Version < 1.40 || Program.DaemonDescriptor.Version >= 1.6; } if (settings.Proxy.ProxyMode == ProxyMode.Enabled) { request.Proxy = new WebProxy(settings.Proxy.Host, settings.Proxy.Port); if (settings.Proxy.AuthEnabled) { string[] user = settings.Proxy.Username.Split("\\".ToCharArray(), 2); if (user.Length > 1) { request.Proxy.Credentials = new NetworkCredential(user[1], settings.Proxy.ValidPassword, user[0]); } else { request.Proxy.Credentials = new NetworkCredential(settings.Proxy.Username, settings.Proxy.ValidPassword); } } } else if (settings.Proxy.ProxyMode == ProxyMode.Disabled) { request.Proxy = null; } }