示例#1
0
        public string Save(string title,
                           string section,
                           string text,
                           string summary,
                           MinorFlags minor,
                           CreateFlags create,
                           WatchFlags watch,
                           SaveFlags mode,
                           bool bot,
                           string basetimestamp,
                           string starttimestamp,
                           string token)
        {
            if (string.IsNullOrEmpty(title))
            {
                throw new ArgumentException("Title shouldn't be empty.", "title");
            }
            if (string.IsNullOrEmpty(token))
            {
                throw new ArgumentException("Token shouldn't be empty.", "token");
            }

            ParameterCollection parameters = new ParameterCollection
            {
                { "title", title },
                { "token", token }
            };
            if (mode == SaveFlags.Replace && !string.IsNullOrEmpty(section))
            {
                parameters.Add("section", section);
            }
            if (minor != MinorFlags.None)
            {
                parameters.Add(minor.ToString().ToLower());
            }
            if (create != CreateFlags.None)
            {
                parameters.Add(create.ToString().ToLower());
            }
            if (watch != WatchFlags.None)
            {
                parameters.Add("watchlist", watch.ToString().ToLower());
            }
            if (mode == SaveFlags.Append)
            {
                parameters.Add("appendtext", text);
            }
            else if (mode == SaveFlags.Prepend)
            {
                parameters.Add("prependtext", text);
            }
            else
            {
                parameters.Add("text", text);
            }
            if (bot)
            {
                parameters.Add("bot");
            }
            if (!string.IsNullOrEmpty(basetimestamp))
            {
                parameters.Add("basetimestamp", basetimestamp);
            }
            if (!string.IsNullOrEmpty(starttimestamp))
            {
                parameters.Add("starttimestamp", starttimestamp);
            }
            if (!string.IsNullOrEmpty(summary))
            {
                parameters.Add("summary", summary);
            }

            try
            {
                XmlDocument xml = MakeRequest(Action.Edit, parameters);
                XmlNode result = xml.SelectSingleNode("//edit[@newrevid]");
                if (result != null)
                {
                    return result.Attributes["newrevid"].Value;
                }
            }
            catch (WebException e)
            {
                throw new WikiException("Saving failed", e);
            }
            return null;
        }
示例#2
0
 public string Save(string title,
                    string section,
                    string text,
                    string summary,
                    MinorFlags minor,
                    CreateFlags create,
                    WatchFlags watch,
                    SaveFlags mode,
                    bool bot)
 {
     ParameterCollection parameters = new ParameterCollection
     {
         { "prop", "info" },
         { "intoken", "edit" }
     };
     XmlDocument doc = Query(QueryBy.Titles, parameters, title);
     XmlNode pageNode = doc.SelectSingleNode("//page");
     string token = pageNode != null ? pageNode.Attributes["edittoken"].Value : "";
     return Save(title,
                 section,
                 text,
                 summary,
                 minor,
                 create,
                 watch,
                 mode,
                 bot,
                 "",
                 "",
                 token);
 }
示例#3
0
 public void Upload(string filename, string comment, string text, WatchFlags watch, byte[] data, string contentType, bool ignoreWarnings)
 {
     ParameterCollection parameters = new ParameterCollection
     {
         { "prop", "info" },
         { "intoken", "edit" }
     };
     XmlDocument doc = Query(QueryBy.Titles, parameters, "Main Page");
     XmlNode pageNode = doc.SelectSingleNode("//page");
     string token = pageNode != null ? pageNode.Attributes["edittoken"].Value : "";
     Upload(filename, comment, text, token, watch, data, contentType, ignoreWarnings);
 }
示例#4
0
 public void Upload(string filename, string comment, string text, string token, WatchFlags watch, byte[] data, string contentType, bool ignoreWarnings)
 {
     if (string.IsNullOrEmpty(filename))
     {
         throw new ArgumentException("File name shouldn't be empty.", "filename");
     }
     if (string.IsNullOrEmpty(token))
     {
         throw new ArgumentException("Token shouldn't be empty.", "token");
     }
     if (data == null || data.Length == 0)
     {
         throw new ArgumentException("Data shouldn't be empty.", "data");
     }
     ParameterCollection parameters = new ParameterCollection
     {
         { "filename", filename },
         { "token", token },
     };
     if (!string.IsNullOrEmpty(text))
     {
         parameters.Add("text", text);
     }
     if (!string.IsNullOrEmpty(comment))
     {
         parameters.Add("comment", comment);
     }
     if (watch != WatchFlags.None)
     {
         parameters.Add("watch", watch.ToString().ToLower());
     }
     if (ignoreWarnings)
     {
         parameters.Add("ignorewarnings");
     }
     try
     {
         MakeMultipartFormRequest(parameters, filename, contentType, data);
     }
     catch (WebException e)
     {
         throw new WikiException("Upload failed", e);
     }
 }
示例#5
0
 public void Upload(string filename, string comment, string text, string token, WatchFlags watch, string url)
 {
     if (string.IsNullOrEmpty(filename))
     {
         throw new ArgumentException("File name shouldn't be empty.", "filename");
     }
     if (string.IsNullOrEmpty(token))
     {
         throw new ArgumentException("Token shouldn't be empty.", "token");
     }
     if (string.IsNullOrEmpty(url))
     {
         throw new ArgumentException("URL shouldn't be empty.", "url");
     }
 }