public string ImportBlah(ImportRecord curRec) { string resultStr = "failed."; try { if (!curRec.UseImage) { curRec.ImageURL = null; } if (!String.IsNullOrEmpty(curRec.ImageURL)) { resultStr = GenerateImageAndPostBlah(curRec); } else { resultStr = CreateBlah(curRec); } } catch (Exception exp) { // to do - something resultStr = exp.Message; } return(resultStr); }
private void ImportBlahs() { SetCurrentUser(TargetUser); List <ImportRecord> curList = ResultList.ItemsSource as List <ImportRecord>; int curCount = 1; int maxCount = curList.Count; Console.WriteLine("Importing " + maxCount + " records..."); int retryCount = 0; int maxTries = 3; while (curList.Count > 0) { Console.Write("record " + curCount + " of " + maxCount + "..."); ImportRecord curRec = curList[0]; string resultStr; if (curRec.Upload) { resultStr = ImportBlah(curRec); } else { resultStr = "skipped"; } Console.WriteLine(resultStr); if ((resultStr == "skipped") || (resultStr == "ok")) { curList.Remove(curRec); curCount++; } else { retryCount++; if (retryCount < maxTries) { Console.WriteLine("Retrying..."); } else { Console.WriteLine("Giving up..."); curList.Remove(curRec); curCount++; } } } foreach (ImportRecord curRec in ResultList.ItemsSource) { string resultStr = ImportBlah(curRec); Console.WriteLine(resultStr); } MessageBox.Show("Imported " + curCount.ToString() + " of " + maxCount.ToString()); }
private string GenerateImageAndPostBlah(ImportRecord curRec) { string resultStr = ""; string formData = "imageurl=" + HttpUtility.UrlPathEncode(cleanUrlString(curRec.ImageURL)); Uri postURL = new Uri("http://heard-test-001.appspot.com/api/image/url"); string newURL = Heard.PostDataToService(postURL, formData, false); curRec.ImageURL = newURL; // now upload the image resultStr = CreateBlah(curRec); return(resultStr); }
private List <ImportRecord> DoDAImport() { if (daAuth == null) { string url = "https://www.deviantart.com/oauth2/token?client_id=2424&client_secret=03eea2ab4282d59692538b89deacc13e&grant_type=client_credentials"; string result = webClient.DownloadString(url); daAuth = Newtonsoft.Json.JsonConvert.DeserializeObject <DAAuthToken>(result); } DAResultList resultList = null; if ((daAuth != null) && (!(String.IsNullOrEmpty(daAuth.access_token)))) { string url = "https://www.deviantart.com/api/v1/oauth2/browse/undiscovered?limit=30&access_token=" + daAuth.access_token; string result = webClient.DownloadString(url); resultList = Newtonsoft.Json.JsonConvert.DeserializeObject <DAResultList>(result); } if ((resultList != null) && (resultList.results.Count > 0)) { List <ImportRecord> importList = new List <ImportRecord>(); foreach (DA_Deviation deviation in resultList.results) { if (deviation.content != null) { ImportRecord newRec = new ImportRecord(); newRec.Upload = true; newRec.UseImage = true; newRec.Title = ""; newRec.Body = deviation.title + "\n" + "by " + deviation.author.username + "\n\n"; newRec.MainURL = deviation.url; newRec.Mature = false; newRec.ImageURL = deviation.content.src; importList.Add(newRec); } } return(importList); } else { return(null); } }
private string CreateBlah(ImportRecord curRec) { string resultStr = "failed."; string paramStr = "{"; paramStr += createJsonParameter("G", GetChannelId()) + ", "; if (!String.IsNullOrEmpty(curRec.Title)) { string theTitle = curRec.Title; if (theTitle.Length > 244) { theTitle = theTitle.Substring(0, 244) + "..."; } paramStr += createJsonParameter("T", theTitle) + ", "; } if (curRec.Mature) { paramStr += createJsonParameter("XXX", "true") + ","; } paramStr += createJsonParameter("Y", GetBlahTypeId()); string bodyString = ""; if (!String.IsNullOrEmpty(curRec.MainURL)) { bodyString += curRec.MainURL; } if (!String.IsNullOrEmpty(curRec.Body)) { string theBody = curRec.Body; if (theBody.Length + bodyString.Length > 2000) { theBody = theBody.Substring(0, 2000 - bodyString.Length); theBody += "..."; } bodyString = theBody + "\n\n" + bodyString; } if (!String.IsNullOrEmpty(bodyString)) { paramStr += ", " + createJsonParameter("F", bodyString); } if (!String.IsNullOrEmpty(curRec.ImageURL)) { paramStr += "," + createJsonParameter("M", "[\"" + curRec.ImageURL + "\"]", false); } paramStr += "}"; try { string theBlah = Heard.CreateBlah(paramStr); if (theBlah != "") { resultStr = "ok"; } } catch (Exception exp) { resultStr = exp.Message; } return(resultStr); }
private List <ImportRecord> DoRedditGroupImport(string subReddit, bool useTitles = true) { List <ImportRecord> newList = new List <ImportRecord>(); string googleParserURL = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=100&q="; string finalURL = googleParserURL + HttpUtility.UrlPathEncode(subReddit); byte[] urlData = webClient.DownloadData(subReddit); string theData = Encoding.UTF8.GetString(urlData, 0, urlData.Length); byte[] finalUrlData = webClient.DownloadData(finalURL); string googleData = Encoding.UTF8.GetString(finalUrlData, 0, finalUrlData.Length);; GoogleResponse theResult = Newtonsoft.Json.JsonConvert.DeserializeObject <GoogleResponse>(googleData); XDocument document = XDocument.Parse(theData); foreach (XElement descendant in document.Descendants("item")) { string desc = descendant.Element("description").Value; string articleURL = GetRedditSourceURL(desc); ParsedObject parsed = ParseRedditDescription(articleURL); if (parsed != null) { ImportRecord newRec = new ImportRecord(); newRec.Upload = true; if (useTitles) { if (String.IsNullOrEmpty(parsed.title)) { newRec.Title = descendant.Element("title").Value; } else { newRec.Title = parsed.title; } } else { newRec.Title = null; } if (String.IsNullOrEmpty(parsed.description)) { newRec.Body = descendant.Element("title").Value; } else { newRec.Body = parsed.description; } newRec.MainURL = parsed.url; newRec.Mature = false; if ((parsed.images != null) && (parsed.images.Count > 0)) { newRec.ImageURL = parsed.images[0].url; newRec.UseImage = true; } else { newRec.UseImage = false; } newList.Add(newRec); } } return(newList); }