Beispiel #1
0
        public ValueTask <TwitterStatus> UpdateStatus(string text, string?replyToStatusId, string?attachmentUrl, string[]?mediaIds)
        {
            var parameters = new List <(string, string)>
            {
                TwitterOptions.Status(text),
                TwitterOptions.ExtendedTweetMode()
            };

            if (!string.IsNullOrEmpty(replyToStatusId))
            {
                parameters.Add(TwitterOptions.ReplyStatusId(replyToStatusId));
                parameters.Add(TwitterOptions.AutoPopulateReplyMetadata());
            }

            if (!string.IsNullOrEmpty(attachmentUrl))
            {
                parameters.Add(TwitterOptions.AttachmentUrl(attachmentUrl));
            }

            if (mediaIds?.Length > 0)
            {
                parameters.Add(TwitterOptions.MediaIds(mediaIds));
            }

            return(oAuthApiRequest
                   .Post <TwitterStatus>("https://api.twitter.com/1.1/statuses/update.json", parameters));
        }
Beispiel #2
0
 public ValueTask <IEnumerable <UserConnection> > GetFriendships(IEnumerable <string> ids)
 {
     return(oAuthApiRequest
            .GetAsync <IEnumerable <UserConnection> >("https://api.twitter.com/1.1/friendships/lookup.json",
                                                      new[] {
         TwitterOptions.UserIds(ids)
     }));
 }
Beispiel #3
0
 public ValueTask <UploadMedia> UploadMediaStatus(string mediaId)
 {
     return(oAuthApiRequest
            .GetAsync <UploadMedia>(UploadMediaUrl,
                                    new[] {
         TwitterOptions.Command("STATUS"),
         TwitterOptions.MediaId(mediaId)
     }));
 }
Beispiel #4
0
 public ValueTask <UploadMedia> UploadMediaFinalize(string mediaId)
 {
     return(oAuthApiRequest
            .PostAsync <UploadMedia>(UploadMediaUrl,
                                     new[] {
         TwitterOptions.Command("FINALIZE"),
         TwitterOptions.MediaId(mediaId)
     }));
 }
Beispiel #5
0
        public async ValueTask <IEnumerable <TwitterStatus> > MentionsTimeline(int count)
        {
            var statuses = await oAuthApiRequest
                           .Get <IEnumerable <TwitterStatus> >("https://api.twitter.com/1.1/statuses/mentions_timeline.json",
                                                               TwitterOptions.Default(count))
                           .ConfigureAwait(false);

            return(await UpdateUserConnections(statuses).ConfigureAwait(false));
        }
Beispiel #6
0
        public async ValueTask <IEnumerable <TwitterStatus> > FavoritesTimeline()
        {
            var statuses = await oAuthApiRequest
                           .Get <IEnumerable <TwitterStatus> >("https://api.twitter.com/1.1/favorites/list.json",
                                                               TwitterOptions.Default())
                           .ConfigureAwait(false);

            return(await UpdateUserConnections(statuses).ConfigureAwait(false));
        }
Beispiel #7
0
 public ValueTask <UploadMedia> UploadMediaInit(int totalBytes, string mediaType)
 {
     return(oAuthApiRequest
            .PostAsync <UploadMedia>(UploadMediaUrl,
                                     new[] {
         TwitterOptions.Command("INIT"),
         TwitterOptions.TotalBytes(totalBytes),
         TwitterOptions.MediaType(mediaType)
     }));
 }
Beispiel #8
0
 public ValueTask <TwitterStatus> GetStatus(string statusId)
 {
     return(oAuthApiRequest
            .GetAsync <TwitterStatus>("https://api.twitter.com/1.1/statuses/show.json",
                                      new[] {
         TwitterOptions.Id(statusId),
         TwitterOptions.IncludeEntities(),
         TwitterOptions.ExtendedTweetMode()
     }));
 }
Beispiel #9
0
 public ValueTask <Tweet> Search(string query)
 {
     return(oAuthApiRequest
            .GetAsync <Tweet>("https://api.twitter.com/1.1/search/tweets.json",
                              new[] {
         TwitterOptions.Count(100),
         TwitterOptions.Query(query),
         TwitterOptions.IncludeEntities(),
         TwitterOptions.ExtendedTweetMode()
     }));
 }
Beispiel #10
0
 public ValueTask <User> UserInfo(string screenName)
 {
     return(oAuthApiRequest
            .Get <User>("https://api.twitter.com/1.1/users/show.json",
                        new[]
     {
         TwitterOptions.IncludeEntities(),
         TwitterOptions.ExtendedTweetMode(),
         TwitterOptions.ScreenName(screenName)
     }));
 }
Beispiel #11
0
 public ValueTask <IEnumerable <TwitterStatus> > GetUserTimeline(string screenName)
 {
     return(oAuthApiRequest
            .GetAsync <IEnumerable <TwitterStatus> >("https://api.twitter.com/1.1/statuses/user_timeline.json",
                                                     new[] {
         TwitterOptions.ScreenName(screenName),
         TwitterOptions.Count(25),
         TwitterOptions.IncludeEntities(),
         TwitterOptions.IncludeRetweets(),
         TwitterOptions.ExtendedTweetMode()
     }));
 }
Beispiel #12
0
        public async ValueTask <User> UserInfo(string screenName)
        {
            var user = await oAuthApiRequest
                       .GetAsync <User>("https://api.twitter.com/1.1/users/show.json",
                                        new[] {
                TwitterOptions.IncludeEntities(),
                TwitterOptions.ExtendedTweetMode(),
                TwitterOptions.ScreenName(screenName)
            })
                       .ConfigureAwait(false);

            var userConnections = UserConnectionsService.LookupUserConnections(user.Id);

            user.IsFollowing  = userConnections?.IsFollowing ?? false;
            user.IsFollowedBy = userConnections?.IsFollowedBy ?? false;
            return(user);
        }
Beispiel #13
0
 public ValueTask CreateFavorite(string statusId)
 {
     return(oAuthApiRequest
            .PostAsync("https://api.twitter.com/1.1/favorites/create.json",
                       new[] { TwitterOptions.Id(statusId) }));
 }
Beispiel #14
0
 public ValueTask Follow(string screenName)
 {
     return(oAuthApiRequest
            .PostAsync("https://api.twitter.com/1.1/friendships/create.json",
                       new[] { TwitterOptions.ScreenName(screenName), }));
 }
Beispiel #15
0
 public ValueTask <IEnumerable <TwitterStatus> > HomeTimeline()
 {
     return(oAuthApiRequest
            .Get <IEnumerable <TwitterStatus> >("https://api.twitter.com/1.1/statuses/home_timeline.json",
                                                TwitterOptions.Default()));
 }
Beispiel #16
0
 public ValueTask Unfollow(string screenName)
 {
     return(oAuthApiRequest
            .Post("https://api.twitter.com/1.1/friendships/destroy.json",
                  new[] { TwitterOptions.ScreenName(screenName) }));
 }
Beispiel #17
0
 public ValueTask DestroyFavorite(string statusId)
 {
     return(oAuthApiRequest
            .Post("https://api.twitter.com/1.1/favorites/destroy.json",
                  new[] { TwitterOptions.Id(statusId) }));
 }
Beispiel #18
0
 public ValueTask <IEnumerable <TwitterStatus> > MentionsTimeline(int count)
 {
     return(oAuthApiRequest
            .Get <IEnumerable <TwitterStatus> >("https://api.twitter.com/1.1/statuses/mentions_timeline.json",
                                                TwitterOptions.Default(count)));
 }
Beispiel #19
0
 public ValueTask <IEnumerable <TwitterStatus> > FavoritesTimeline()
 {
     return(oAuthApiRequest
            .Get <IEnumerable <TwitterStatus> >("https://api.twitter.com/1.1/favorites/list.json",
                                                TwitterOptions.Default()));
 }