public void TestTwitterAuthentication() { var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper(); var result = JsonConvert.DeserializeObject <Search>(oAuthTwitterWrapper.GetSearch()); Assert.IsNotNull(result); }
public void TestSearchTweets() { var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper(); var result = JsonConvert.DeserializeObject <Search>(oAuthTwitterWrapper.GetSearch()); Assert.IsTrue(result.Results.Count > 0); }
public string ProcessRequest() { var responseString = ""; try { //MapRequestParamsToConfigs(); var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper(_authconfig, _twitConfig); switch (HttpContext.Current.Request["url"]) { case "search": responseString = oAuthTwitterWrapper.GetSearch(); break; case "list": responseString = oAuthTwitterWrapper.GetStatusList(); break; default: responseString = oAuthTwitterWrapper.GetMyTimeline(); break; } } catch (Exception) { } return responseString; }
static void Main(string[] args) { var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper(); var result = JsonConvert.DeserializeObject <Search>(oAuthTwitterWrapper.GetSearch()); SaveTweets(result.Results); }
public void printHits() { var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper(); Console.Write("**** Time Line *****\n"); Console.Write(oAuthTwitterWrapper.GetMyTimeline() + "\n\n"); Console.Write("**** Search *****\n"); Console.Write(oAuthTwitterWrapper.GetSearch() + "\n\n"); //oAuthTwitterWrapper.TimeLineSettings = new TimeLineSettings { Console.ReadLine(); }
public object Get(string url, string screen_name, string include_rts, string exclude_replies, string q = null, string list_id = null, int count = 20) { //var oauthAccessToken = ConfigurationManager.AppSettings[Constants.TwitterOAuthAccessToken]; //var oauthAccessTokenSecret = ConfigurationManager.AppSettings[Constants.TwitterOAuthAccessTokenSecret]; var authSettings = new OAuthTwitterWrapper.AuthenticateSettings() { OAuthConsumerKey = ConfigurationManager.AppSettings[Constants.TwitterConsumerKey], OAuthConsumerSecret = ConfigurationManager.AppSettings[Constants.TwitterConsumerSecret], OAuthUrl = "https://api.twitter.com/oauth2/token" }; var searchSettings = new OAuthTwitterWrapper.SearchSettings() { SearchFormat = "https://api.twitter.com/1.1/{0}" }; var timelineSettings = new OAuthTwitterWrapper.TimeLineSettings(); switch (url) { case "timeline": searchSettings.SearchQuery = $"statuses/user_timeline.json?screen_name={screen_name}&include_rts={include_rts}&exclude_replies={exclude_replies}&count={count}"; break; case "search": searchSettings.SearchQuery = $"search/tweets.json?q={q}&include_rts={include_rts}&count={count}"; break; case "list": searchSettings.SearchQuery = $"lists/statuses.json?list_id={list_id}&include_rts={include_rts}&count={count}"; break; default: searchSettings.SearchQuery = $"statuses/user_timeline.json?count={count}"; break; } var twit = new OAuthTwitterWrapper.OAuthTwitterWrapper(authSettings, timelineSettings, searchSettings); var json = twit.GetSearch(); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(json); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); return response; }
static void Main(string[] args) { var oAuth = new OAuthConfiguration() { ConsumerToken = "GPdZTjmPRVXP2cgYgjMQ", ConsumerSecret = "LDh41edDBODdRXrvfAjaK5niYGjiaLilaSPDPYOH6LI", AuthUrl = "https://api.twitter.com/oauth2/token" }; var twitconfig = new TwitterConfiguration() { ScreenName = "freshupdates" }; var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper(oAuth,twitconfig); Console.Write("**** Time Line *****\n"); Console.Write(oAuthTwitterWrapper.GetMyTimeline() + "\n\n"); Console.Write("**** Search *****\n"); Console.Write(oAuthTwitterWrapper.GetSearch() + "\n\n"); Console.ReadLine(); }
public void ReadTweets(string screenName, bool isFirstTime) { bool multipleFlag = false; string maxId = ""; string sinceId = ""; while (!finishedToProcessScreenName && pageCounter < 16) { pageCounter++; if (isFirstTime) { string maxIdInDB = DataContext.GetMinMessageIdForUser(screenName); decimal maxIdInt = 0; try { maxIdInt = maxIdInDB == null ? 0 : decimal.Parse(maxIdInDB) - 1; } catch (Exception e) { Console.WriteLine(e.Message); } maxId = pageCounter == 1 ? "" : "&max_id=" + maxIdInt; timelineUrl = string.Format(TimelineFormatFirstTime, screenName, IncludeRts, ExcludeReplies, maxId, Count); } else { //if first 200 rows get sinceid from DB alse use the original and the id of the oldest new tweet as maxid string id = multipleFlag == false ? (sinceId = DataContext.GetMaxMessageIdForUser(screenName)) : sinceId + "&max_id=" + maxId; timelineUrl = string.Format(TimelineFormatNotFirstTime, screenName, IncludeRts, ExcludeReplies, id, Count); } OAuthTwitterWrapper.OAuthTwitterWrapper oAuthT = new OAuthTwitterWrapper.OAuthTwitterWrapper(); TwitterData tData = oAuthT.GetMyTimeline(timelineUrl, oAuthData); List <TwitterItem> items = new List <TwitterItem>(); // convert xml to twitter item foreach (XmlDocument status in tData.xmls) { XElement xml = XElement.Load(new XmlNodeReader(status)); items.Add(new TwitterItem(xml)); statusCounter++; } if (items.Count < 200) { finishedToProcessScreenName = true; //insert rows to DB if (items.Count > 0) { DataContext.InsertTwitterItems(items); } DataContext.UpdateScreenNames_LastUpdated(currentScreenName); } //insert rows to DB else { Console.WriteLine(String.Format("sinceid = {0, 2} maxid = {1, 2} ", sinceId, maxId)); DataContext.InsertTwitterItems(items); multipleFlag = true; //get the oldest new tweet's id (maxid) maxId = items[items.Count - 1].MessageId.ToString(); DataContext.UpdateScreenNames_LastUpdated(currentScreenName); } Console.WriteLine("stutus counter = " + items.Count); authenticateMessageCounter++; if (authenticateMessageCounter >= 120) { Console.WriteLine(" authenticate Message Counter = " + authenticateMessageCounter); //DataContext.UpdateScreenNames_LastUpdated(currentScreenName); DataContext.UpdateQueriesTracking(screenName, tData.error, runId, items.Count); done = true; break; } if (tData.error == null) { tData.error = "HTTP/1.1 200 OK"; } DataContext.UpdateQueriesTracking(screenName, tData.error, runId, items.Count); } finishedFlag = true; }
public static void Parse(string message) { // live if (message.StartsWith("live", StringComparison.CurrentCulture)) { var data = DownloadData("https://api.twitch.tv/kraken/streams/destiny"); var serializer = new JavaScriptSerializer(); dynamic livejson = serializer.Deserialize<object>(data.Result); if (livejson["stream"] != null) SendMessage("Stream is live with " + livejson["stream"]["viewers"] + " viewers"); else SendMessage("Offline."); } // song else if (message.StartsWith("song", StringComparison.CurrentCulture)) { var data = DownloadData("http://ws.audioscrobbler.com/2.0/?method=user.getRecentTracks&user=StevenBonnellII&format=json&api_key=" + PrivateConstants.LastFmKey); var serializer = new JavaScriptSerializer(); dynamic songjson = serializer.Deserialize<object>(data.Result); string artist = songjson["recenttracks"]["track"][0]["artist"]["#text"], track = songjson["recenttracks"]["track"][0]["name"]; if (songjson["recenttracks"]["track"][0].ContainsKey("date")) { DateTime timestamp = DateTime.ParseExact( songjson["recenttracks"]["track"][0]["date"]["#text"], "d MMM yyyy, HH:mm", new CultureInfo("en-US"), DateTimeStyles.None); // http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx SendMessage("No song played/scrobbled. Played " + DeltaTimeFormat(DateTime.UtcNow - timestamp) + " ago: " + track + " - " + artist); } else SendMessage(track + " - " + artist); } // starcraft else if (message.StartsWith("sc", StringComparison.CurrentCulture) || message.StartsWith("starcraft", StringComparison.CurrentCulture)) { var data = DownloadData("http://us.battle.net/api/sc2/profile/310150/1/Destiny/matches"); var serializer = new JavaScriptSerializer(); dynamic json = serializer.Deserialize<object>(data.Result); string decision = json["matches"][0]["decision"]; var gametime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(json["matches"][0]["date"]); // API gives back epoch time string mainstring = json["matches"][0]["type"].ToLower() + " game on " + json["matches"][0]["map"] + " " + DeltaTimeFormat(DateTime.UtcNow - gametime) + " ago"; if (decision == "WIN") SendMessage("Destiny won a " + mainstring); else if (json["matches"][0]["decision"] == "LOSS") SendMessage("Destiny lost a " + mainstring); else SendMessage("Destiny played a " + mainstring); } // twitter else if (message.StartsWith("twitter", StringComparison.CurrentCulture) || message.StartsWith("tweet", StringComparison.CurrentCulture)) { var twit = new OAuthTwitterWrapper.OAuthTwitterWrapper(); var twitterjson = JArray.Parse(@twit.GetMyTimeline()); var tweet = (string)twitterjson.SelectToken("[0].text"); var timestamp = DateTime.ParseExact((string)twitterjson.SelectToken("[0].created_at"), "ddd MMM dd HH:mm:ss +0000 yyyy", new CultureInfo("en-US"), DateTimeStyles.None); // http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx var untinyurl = new Regex(@"(http://t\.co/\w+)", RegexOptions.Compiled); var matches = untinyurl.Matches(tweet); foreach (Match match in matches) { // http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions(v=vs.110).aspx var groups = match.Groups; tweet = tweet.Replace(groups[1].Value, UnTinyUrl(groups[1].Value)); /* will try to untiny each http://t.co 3x, individually */ } SendMessage(DeltaTimeFormat(DateTime.UtcNow - timestamp) + " ago: " + tweet); } // bancount else if (message.StartsWith("bancount", StringComparison.CurrentCulture)) SendMessage(MyGlobals.ModVariables["bancount"] + " victims reaped."); // time else if (message.StartsWith("time", StringComparison.CurrentCulture)) SendMessage(DateTime.Now.ToShortTimeString() + " Central Steven Time"); // rules else if (message.StartsWith("rules", StringComparison.CurrentCulture)) SendMessage("Rules: reddit.com/1aufkc"); // playlist else if (message.StartsWith("playlist", StringComparison.CurrentCulture)) SendMessage("Playlist at last.fm/user/StevenBonnellII"); // referral links else if (message.StartsWith("refer", StringComparison.CurrentCulture)) SendMessage("amazon.com/?tag=des000-20 ☜(゚ヮ゚☜) Amazon referral, buy anything within 24hrs ☜(⌒▽⌒)☞ 25$ off cellphone, runs on Sprint (☞゚ヮ゚)☞ z78nhc1gsa3.ting.com/"); // sponsors else if (message.StartsWith("sponsor", StringComparison.CurrentCulture)) SendMessage("feenixcollection.com ༼ ◔◡◔༽ dollar-shave-club.7eer.net/c/72409/74122/1969"); // if not a command else return; MyGlobals.PlebianLag = DateTime.Now; }
public static void Parse(string message) { // live if (message.StartsWith("live", StringComparison.CurrentCulture)) { var data = DownloadData("https://api.twitch.tv/kraken/streams/destiny"); var serializer = new JavaScriptSerializer(); dynamic livejson = serializer.Deserialize <object>(data.Result); if (livejson["stream"] != null) { SendMessage("Stream is live with " + livejson["stream"]["viewers"] + " viewers"); } else { SendMessage("Offline."); } } //// song //else if (message.StartsWith("song", StringComparison.CurrentCulture)) //{ // var data = DownloadData("http://ws.audioscrobbler.com/2.0/?method=user.getRecentTracks&user=StevenBonnellII&format=json&api_key=" + PrivateConstants.LastFmKey); // var serializer = new JavaScriptSerializer(); // dynamic songjson = serializer.Deserialize<object>(data.Result); // string artist = songjson["recenttracks"]["track"][0]["artist"]["#text"], // track = songjson["recenttracks"]["track"][0]["name"]; // if (songjson["recenttracks"]["track"][0].ContainsKey("date")) // { // DateTime timestamp = DateTime.ParseExact( // songjson["recenttracks"]["track"][0]["date"]["#text"], // "d MMM yyyy, HH:mm", // new CultureInfo("en-US"), // DateTimeStyles.None); // http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx // SendMessage("No song played/scrobbled. Played " + DeltaTimeFormat(DateTime.UtcNow - timestamp) + " ago: " + track + " - " + artist); // } // else // SendMessage(track + " - " + artist); //} // starcraft else if (message.StartsWith("sc", StringComparison.CurrentCulture) || message.StartsWith("starcraft", StringComparison.CurrentCulture)) { var data = DownloadData("http://us.battle.net/api/sc2/profile/310150/1/Destiny/matches"); var serializer = new JavaScriptSerializer(); dynamic json = serializer.Deserialize <object>(data.Result); string decision = json["matches"][0]["decision"]; var gametime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(json["matches"][0]["date"]); // API gives back epoch time string mainstring = json["matches"][0]["type"].ToLower() + " game on " + json["matches"][0]["map"] + " " + DeltaTimeFormat(DateTime.UtcNow - gametime) + " ago"; if (decision == "WIN") { SendMessage("Destiny won a " + mainstring); } else if (json["matches"][0]["decision"] == "LOSS") { SendMessage("Destiny lost a " + mainstring); } else { SendMessage("Destiny played a " + mainstring); } } // twitter else if (message.StartsWith("twitter", StringComparison.CurrentCulture) || message.StartsWith("tweet", StringComparison.CurrentCulture)) { var twit = new OAuthTwitterWrapper.OAuthTwitterWrapper(); var twitterjson = JArray.Parse(@twit.GetMyTimeline()); var tweet = (string)twitterjson.SelectToken("[0].text"); var timestamp = DateTime.ParseExact((string)twitterjson.SelectToken("[0].created_at"), "ddd MMM dd HH:mm:ss +0000 yyyy", new CultureInfo("en-US"), DateTimeStyles.None); // http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx var untinyurl = new Regex(@"(http://t\.co/\w+)", RegexOptions.Compiled); var matches = untinyurl.Matches(tweet); foreach (Match match in matches) { // http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions(v=vs.110).aspx var groups = match.Groups; tweet = tweet.Replace(groups[1].Value, UnTinyUrl(groups[1].Value)); /* will try to untiny each http://t.co 3x, individually */ } SendMessage(DeltaTimeFormat(DateTime.UtcNow - timestamp) + " ago: " + tweet); } // bancount else if (message.StartsWith("bancount", StringComparison.CurrentCulture)) { SendMessage(MyGlobals.ModVariables["bancount"] + " victims reaped."); } // time else if (message.StartsWith("time", StringComparison.CurrentCulture)) { SendMessage(DateTime.Now.ToShortTimeString() + " Central Steven Time"); } // rules else if (message.StartsWith("rules", StringComparison.CurrentCulture)) { SendMessage("Rules: reddit.com/1aufkc"); } // playlist else if (message.StartsWith("playlist", StringComparison.CurrentCulture)) { SendMessage("Playlist at last.fm/user/StevenBonnellII"); } // referral links else if (message.StartsWith("refer", StringComparison.CurrentCulture)) { SendMessage("amazon.com/?tag=des000-20 ☜(゚ヮ゚☜) Amazon referral, buy anything within 24hrs ☜(⌒▽⌒)☞ 25$ off cellphone, runs on Sprint (☞゚ヮ゚)☞ z78nhc1gsa3.ting.com/"); } // sponsors else if (message.StartsWith("sponsor", StringComparison.CurrentCulture)) { SendMessage("feenixcollection.com ༼ ◔◡◔༽ dollar-shave-club.7eer.net/c/72409/74122/1969"); } // if not a command else { return; } MyGlobals.PlebianLag = DateTime.Now; }