Example #1
0
        public void TestTwitterAuthentication()
        {
            var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper();
            var result = JsonConvert.DeserializeObject <Search>(oAuthTwitterWrapper.GetSearch());

            Assert.IsNotNull(result);
        }
Example #2
0
        public void TestSearchTweets()
        {
            var oAuthTwitterWrapper = new OAuthTwitterWrapper.OAuthTwitterWrapper();
            var result = JsonConvert.DeserializeObject <Search>(oAuthTwitterWrapper.GetSearch());

            Assert.IsTrue(result.Results.Count > 0);
        }
Example #3
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);
        }
Example #5
0
        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}&amp;include_rts={include_rts}&amp;exclude_replies={exclude_replies}&amp;count={count}";
                    break;

                case "search":
                    searchSettings.SearchQuery = $"search/tweets.json?q={q}&amp;include_rts={include_rts}&amp;count={count}";
                    break;

                case "list":
                    searchSettings.SearchQuery = $"lists/statuses.json?list_id={list_id}&amp;include_rts={include_rts}&amp;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;
        }
Example #7
0
        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();
        }
Example #8
0
        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 ? "" : "&amp;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 + "&amp;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;
        }
Example #9
0
        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;
        }
Example #10
0
        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;
        }