Exemple #1
0
        public async Task PullDirectMessages(SocialAccount account)
        {
            int      maxNumberOfMessagesRetrieve = 50;
            DateTime since = DateTime.UtcNow.AddHours(-1);

            _twitterClient.SetUserCredentials(account.Token, account.TokenSecret);

            var recivedMessages = PullReceivedDirectMessages(account, maxNumberOfMessagesRetrieve, since);
            var sentMessages    = PullSentDirectMessages(account, maxNumberOfMessagesRetrieve, since);

            var messages = recivedMessages.Concat(sentMessages).OrderBy(t => t.CreatedAt);

            foreach (var message in messages)
            {
                TwitterProcessResult result = null;
                await UnitOfWorkManager.RunWithNewTransaction(account.SiteId, async() =>
                {
                    result = await _twitterService.ProcessDirectMessage(account, message);
                });

                if (result != null)
                {
                    await result.Notify(account.SiteId);
                }
            }
        }
Exemple #2
0
        public Message GetTweetMessage(SocialAccount account, long tweetId)
        {
            _twitterClient.SetUserCredentials(account.Token, account.TokenSecret);
            var tweet = _twitterClient.GetTweet(tweetId);

            if (tweet == null)
            {
                return(null);
            }

            var message = TwitterConverter.ConvertToMessage(tweet);

            message.Sender = new SocialUser
            {
                Name         = tweet.CreatedBy.Name,
                Avatar       = tweet.CreatedBy.ProfileImageUrl,
                ScreenName   = tweet.CreatedBy.ScreenName,
                OriginalId   = tweet.CreatedBy.IdStr,
                OriginalLink = TwitterHelper.GetUserUrl(tweet.CreatedBy.ScreenName)
            };
            return(message);
        }