コード例 #1
0
ファイル: TweetModel.cs プロジェクト: Christophe31/Twitruc
        public List <TweetExtended> getTimeline(TwUser usr)
        {
            var tokens = TwitrucHelpers.getTokens(usr);
            var o      = new Twitterizer.TimelineOptions();

            o.Count = 60;
            try {
                Twitterizer.TwitterResponse <Twitterizer.TwitterStatusCollection> userResponse = Twitterizer.TwitterTimeline.HomeTimeline(tokens, o);
                if (userResponse.Content != null)
                {
                    return(userResponse.ResponseObject.Where(st => st != null).Select(st => new TweetExtended(st)).ToList());
                }
            } catch (Exception) { }
            return(db.TweetSet.Where(t => t.AuthorNick == usr.Nickname).ToArray().Select(t => new TweetExtended(t)).ToList());
        }
コード例 #2
0
ファイル: TweetModel.cs プロジェクト: Christophe31/Twitruc
 public void SyncTweets()
 {
     db.UserSet.Where(u => !u.Tweets.Any(t => !t.Sent))
     .ToArray().Select(u => {
         var tok = TwitrucHelpers.getTokens(u);
         return(u.Tweets.OrderBy(t => t.Date).Select(t => {
             Twitterizer.TwitterResponse <Twitterizer.TwitterStatus> userResponse = Twitterizer.TwitterStatus.Update(tok, t.Content);
             t.TweetId = userResponse.ResponseObject.Id;
             t.Sent = true;
             t.Public = !userResponse.ResponseObject.User.IsProtected;
             t.Date = userResponse.ResponseObject.CreatedDate;
             return t;
         }));
     });
 }
コード例 #3
0
ファイル: TweetModel.cs プロジェクト: Christophe31/Twitruc
        public List <TweetExtended> getTweetsFrom(string id, TwUser usr)
        {
            var tokens = TwitrucHelpers.getTokens(usr);
            var o      = new Twitterizer.UserTimelineOptions();

            o.ScreenName = id;
            o.Count      = 50;
            try {
                Twitterizer.TwitterResponse <Twitterizer.TwitterStatusCollection> userResponse = Twitterizer.TwitterTimeline.UserTimeline(tokens, o);
                if (userResponse.Content != null)
                {
                    return(userResponse.ResponseObject.Select(st => new TweetExtended(st)).ToList());
                }
            } catch (Exception) { }
            return(db.TweetSet.Where(t => t.AuthorNick == id).ToArray().Select(t => new TweetExtended(t)).ToList());
        }
コード例 #4
0
        public TwitterAccount(Account account)
            : base()
        {
            if (account.Type.Equals(Account.TWITTERTYPE))
            {
                // the local part
                this.CloneFrom(account);

                // the remote part

                BackgroundWorker bgWorker = new BackgroundWorker();

                bgWorker.DoWork += new DoWorkEventHandler(delegate(object wsender, DoWorkEventArgs args) {
                    try {
                        args.Result = null;
                        Twitterizer.TwitterResponse <Twitterizer.TwitterUser> showUserResponse = Twitterizer.TwitterUser.Show(TwitterTimeline.getTwitterAuthToken(account), account.getOption("username"));
                        if (showUserResponse.Result == Twitterizer.RequestResult.Success)
                        {
                            args.Result = showUserResponse.ResponseObject.ProfileImageLocation;
                        }
                    } catch (Exception ex) {
                        args.Result = "Unable to get the Twitter account: " + ex.Message;
                        args.Cancel = true;
                    }
                });

                bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(delegate(object wsender, RunWorkerCompletedEventArgs args) {
                    if (!args.Cancelled && args.Error == null)
                    {
                        String url = args.Result as String;

                        if (url != null && !url.Equals(""))
                        {
                            this.ImageUrl = new Uri(url);
                        }
                    }
                });

                bgWorker.RunWorkerAsync();
            }
            else
            {
                throw new InvalidCastException("Unable to create a TwitterAccount from something other than a Twitter account");
            }
        }
コード例 #5
0
        public ActionResult apiRetweet(string id)
        {
            TwUser usr;

            if (String.IsNullOrEmpty(Session["nickname"] as String))
            {
                return(RedirectToAction("LogOn", "User", new { ReturnUrl = HttpContext.Request.RawUrl }));
            }
            else
            {
                usr = userManager.getUser(Session["nickname"] as string);
            }

            var tokens = TwitrucHelpers.getTokens(usr);

            Twitterizer.TwitterResponse <Twitterizer.TwitterStatus> userResponse = Twitterizer.TwitterStatus.Retweet(tokens, decimal.Parse(id));
            return(Json(new { ok = true }, JsonRequestBehavior.AllowGet));
        }
コード例 #6
0
        public ActionResult Search()
        {
            TwUser usr;

            if (String.IsNullOrEmpty(Session["nickname"] as String))
            {
                return(RedirectToAction("LogOn", "User", new { ReturnUrl = HttpContext.Request.RawUrl }));
            }
            else
            {
                usr = userManager.getUser(Session["nickname"] as string);
            }

            var    tokens      = TwitrucHelpers.getTokens(usr);
            string search_text = HttpContext.Request.QueryString["search-text"];

            Twitterizer.SearchOptions o = new Twitterizer.SearchOptions();
            o.NumberPerPage = 50;
            Twitterizer.TwitterResponse <Twitterizer.TwitterSearchResultCollection> userResponse = Twitterizer.TwitterSearch.Search(tokens, search_text, o);
            ViewBag.Tweets = userResponse.ResponseObject.ToList();
            return(View());
        }
コード例 #7
0
 public void SendTweet(string tweet)
 {
     //if (tweet.Count() <= 140) // lolno, this is handled in the mainwindow class with url shortening
     try
     {
         Twitterizer.TwitterResponse <Twitterizer.TwitterStatus> response = Twitterizer.TwitterStatus.Update(privOAuth.GetOAuthToken(), tweet);
         if (!(response.Result == RequestResult.Success))
         {
             System.Windows.Forms.MessageBox.Show("error: " + response.Result, "error", System.Windows.Forms.MessageBoxButtons.OK);
         }
     }
     catch (WebException e)
     {
         System.Windows.Forms.MessageBox.Show("error: " + e.Message, "error", System.Windows.Forms.MessageBoxButtons.OK);
         //TwitterStatus notification = new TwitterStatus();  CED GO FIX THIS
         //notification.Text = "error: "+e.Message;           Error An object reference is required for the non-static field, method, or property 'o3o.TweetStack.NewTweet'
         //notification.User = new TwitterUser();
         //notification.User.ScreenName = "Internal message system";
         //TweetStack.NewTweet(notification, privOAuth);
     }
     // else
     //    throw new Exception("Status update too long! Make sure it's less than 140 characters!"); // also replace this with system message
 }