/// <summary>Static method that parses XML data into a request using the Singleton.</summary> /// <param name="xmlData"><c>StreamReader</c> containing an XML-RPC request.</param> /// <returns><c>XmlRpcRequest</c> object resulting from the parse.</returns> public override Object Deserialize(TextReader xmlData) { XmlTextReader reader = new XmlTextReader(xmlData); XmlRpcRequest request = new XmlRpcRequest(); bool done = false; lock(this) { Reset(); while (!done && reader.Read()) { DeserializeNode(reader); // Parent parse... switch (reader.NodeType) { case XmlNodeType.EndElement: switch (reader.Name) { case METHOD_NAME: request.MethodName = _text; break; case METHOD_CALL: done = true; break; case PARAM: request.Params.Add(_value); _text = null; break; } break; } } } return request; }
public List<SearchResult> FileSearch(string filename, string lang) { var client = new XmlRpcRequest {MethodName = "SearchSubtitles"}; client.Params.Add(_token); var query = new ArrayList(); var qhash = new Hashtable(); string moviehash; try { moviehash = MovieHasher.GetHash(filename); } catch { return TitleSearch(filename, lang); } long moviebytes = MovieHasher.GetByteSize(filename); qhash.Add("moviehash", moviehash); qhash.Add("moviebytesize", moviebytes); qhash.Add("sublanguageid", lang); query.Add(qhash); client.Params.Add(query); var result = (Hashtable) client.Invoke(Apiurl); bool hasdata; if (bool.TryParse(result["data"].ToString(), out hasdata)) return TitleSearch(filename, lang); return ParseSearchResult(result); }
public string Login() { var client = new XmlRpcRequest {MethodName = "LogIn"}; client.Params.Add(""); client.Params.Add(""); client.Params.Add("en"); client.Params.Add(Useragent); var result = (Hashtable) client.Invoke(Apiurl); if (result["status"].ToString() == "200 OK") { return result["token"].ToString(); } return string.Empty; }
public ArrayList GetSubLanguages() { var client = new XmlRpcRequest {MethodName = "GetSubLanguages"}; var result = (Hashtable) client.Invoke(Apiurl); return (ArrayList) result["data"]; }
public List<SearchResult> TitleSearch(string filename, string lang) { var client = new XmlRpcRequest {MethodName = "SearchSubtitles"}; client.Params.Add(_token); var query = new ArrayList(); var qhash = new Hashtable(); string movietitle = Path.GetFileNameWithoutExtension(filename); qhash.Add("query", movietitle); qhash.Add("sublanguageid", lang); query.Add(qhash); client.Params.Add(query); var result = (Hashtable) client.Invoke(Apiurl); bool hasdata; return bool.TryParse(result["data"].ToString(), out hasdata) ? new List<SearchResult>() : ParseSearchResult(result); }
public bool Logout() { if (string.IsNullOrEmpty(_token)) return false; var client = new XmlRpcRequest {MethodName = "LogOut"}; client.Params.Add(_token); client.Params.Add(Useragent); var result = (Hashtable) client.Invoke(Apiurl); return (result["status"].ToString() == "200 OK"); }