Exemplo n.º 1
0
        protected void Load(TwitterResource resource)
        {
            var service = new TwitterService(SensitiveData.ConsumerToken, SensitiveData.ConsumerSecret, resource.User.Key, resource.User.Secret);

            switch (resource.Type)
            {
                case ResourceType.Home:
                    service.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { Count = 1, IncludeEntities = true }, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Mentions:
                    service.ListTweetsMentioningMe(new ListTweetsMentioningMeOptions { Count = 1, IncludeEntities = true }, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Messages:
                    service.ListDirectMessagesReceived(new ListDirectMessagesReceivedOptions { Count = 1 }, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Favorites:
                    service.ListFavoriteTweets(new ListFavoriteTweetsOptions { Count = 1 }, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.List:
                    service.ListTweetsOnList(new ListTweetsOnListOptions
                    {
                        IncludeRts = false,
                        Count = 1,
                        OwnerScreenName = resource.Data.Substring(1, resource.Data.IndexOf('/') - 1),
                        Slug = resource.Data.Substring(resource.Data.IndexOf('/') + 1)
                    }, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Search:
                    service.Search(new SearchOptions { Count = 1, IncludeEntities = true, Q = resource.Data }, (status, response) => ReceiveTweetable(status.Statuses.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Tweets:
                    service.ListTweetsOnUserTimeline(new ListTweetsOnUserTimelineOptions { Count = 1, ScreenName = resource.Data, IncludeRts = true }, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
            }
        }
Exemplo n.º 2
0
        //
        // GET: /Home/
        public ActionResult Index()
        {
            var token = Session["Twitter.AccessToken"];
            var tokenSecret = Session["Twitter.AccessTokenSecret"];

            if (token == null || tokenSecret == null)
                return RedirectToAction("Authorize", "Auth");

            TwitterService service = new TwitterService(ConfigurationManager.AppSettings["TwitterConsumerKey"], ConfigurationManager.AppSettings["TwitterConsumerSecret"]);
            service.AuthenticateWith(token.ToString(), tokenSecret.ToString());

            // TODO: Check that authentication succeeded

            TwitterUser user = service.VerifyCredentials(new VerifyCredentialsOptions());
            ViewBag.TwitterUsername = user.ScreenName;

            IEnumerable<TwitterStatus> favorites = service.ListFavoriteTweets(new ListFavoriteTweetsOptions { UserId = user.Id, Count = 20, IncludeEntities = true });
            ViewBag.Favorites = favorites;

            return View();
        }
Exemplo n.º 3
0
        public static List<string> PostToReader(string _consumerKey, string _consumerSecret, string _accessToken, string _accessTokenSecret, string gUsername, string gPassword, bool chkTweets, bool chkFavorites, bool chkRetweets,  bool chkLinks, bool chkNoLinks)
        {
            List<string> res = new List<string>();
            GoogleReader gr = new GoogleReader(gUsername, gPassword);
            var serviceReader = new TwitterService(_consumerKey, _consumerSecret);
            serviceReader.AuthenticateWith(_accessToken, _accessTokenSecret);
            Regex urlfind = new Regex("((https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[A-Z0-9+&@#/%=~_|])", RegexOptions.IgnoreCase);

            List<TwitterStatus> mytweets =null;
            List<TwitterStatus> favorites=null;
            List<TwitterStatus> retweets =null;
            if (chkTweets)    mytweets  = serviceReader.ListTweetsOnUserTimeline(5).ToList();
            if (chkFavorites) favorites = serviceReader.ListFavoriteTweets(5).ToList();
            if (chkRetweets)  retweets  = serviceReader.ListRetweetsByMe(5).ToList();

            List<TwitterStatus> alltweets = new List<TwitterStatus>();
            if (mytweets != null) alltweets.AddRange(mytweets);
            if (favorites != null) alltweets.AddRange(favorites);
            if (retweets != null) alltweets.AddRange(retweets);

            foreach (var tweet in alltweets)
            {
                if (hassent(tweet.Id.ToString())) { continue; }
                Match thematch = urlfind.Match(tweet.Text);
                if (thematch.Success)
                {
                    if (chkLinks)
                    {
                        string theshorturl = thematch.Groups[1].Value;
                        string theurl = thematch.Groups[1].Value;
                        try
                        {
                            string longurlxml = c.DownloadString("http://api.unshort.me/?r=" + theurl);
                            Regex resUrl = new Regex("<resolvedURL>(.*?)</resolvedURL>");
                            Match resolved = resUrl.Match(longurlxml);
                            if (resolved.Success)
                            {
                                theurl = resolved.Groups[1].Value;
                            }
                        }
                        catch
                        {

                        }
                        string title;
                        string content = embed(theurl, out title);
                        gr.post(content, theurl, title, tweet.Text.Replace(theshorturl, "").Trim());
                        AddID(tweet.Id.ToString(), tweet.Text);
                    }

                }
                else if (chkNoLinks)
                {
                    gr.post("", "http://twitter.com/" + tweet.User.ScreenName + "/status/" + tweet.Id, "from twitter", tweet.Text.Trim());
                    AddID(tweet.Id.ToString(), tweet.Text);

                }
                res.Add( DateTime.Now.ToShortTimeString() + ": " + tweet.Text);
            }
            return res;
        }
Exemplo n.º 4
0
        protected void Load(TwitterResource resource)
        {
            var service = new TwitterService(SensitiveData.ConsumerToken, SensitiveData.ConsumerSecret, resource.User.Key, resource.User.Secret);

            switch (resource.Type)
            {
                case ResourceType.Home:
                    service.ListTweetsOnHomeTimeline(1, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Mentions:
                    service.ListTweetsMentioningMe(1, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Messages:
                    service.ListDirectMessagesReceived(1, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Favorites:
                    service.ListFavoriteTweets((status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.List:
                    service.ListTweetsOnList(resource.Data.Substring(1, resource.Data.IndexOf('/') - 1),
                            resource.Data.Substring(resource.Data.IndexOf('/') + 1), 1, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Search:
                    service.Search(resource.Data, 1, 20, (status, response) => ReceiveTweetable(status.Statuses.Cast<ITweetable>(), response, resource));
                    break;
                case ResourceType.Tweets:
                    service.ListTweetsOnSpecifiedUserTimeline(resource.Data, 1, true, (status, response) => ReceiveTweetable(status.Cast<ITweetable>(), response, resource));
                    break;
            }
        }