Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 public ArrayList GetSubLanguages()
 {
     var client = new XmlRpcRequest {MethodName = "GetSubLanguages"};
     var result = (Hashtable) client.Invoke(Apiurl);
     return (ArrayList) result["data"];
 }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
 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");
 }