Пример #1
0
        /// <summary>
        /// ツイートする。
        /// </summary>
        /// <param name="parameters"></param>
        public async Task Tweet(ServicePostParameters parameters)
        {
            var query = new Query
            {
                ["status"] = parameters.Text,
            };

            if (parameters.Attachments.HasItems)
            {
                var mediaIds = await this._account.Media.Uploads(parameters.Attachments)
                               .ConfigureAwait(false);

                query["media_ids"] = new ValueGroup(mediaIds);
            }

            if (parameters.IsContainsWarningAttachment)
            {
                query["possibly_sensitive"] = true;
            }

            //if (parameters.ReplyToStatus != null)
            //{
            //    query["in_reply_to_status_id"] = parameters.ReplyToStatus.Id;
            //}

            await this._account.Api.Statuses.Update(query).ConfigureAwait(false);
        }
Пример #2
0
        /// <summary>
        /// トゥートする。
        /// </summary>
        /// <param name="parameters"></param>
        /// <param name="account">アカウント情報</param>
        /// <returns></returns>
        public async Task Toat(ServicePostParameters parameters)
        {
            var query = new Query
            {
                ["status"] = parameters.Text,
            };

            //if (parameters.ReplyToStatus != null)
            //{
            //    query["in_reply_to_id"] = parameters.ReplyToStatus.Id;
            //}

            if (parameters.Attachments.HasItems)
            {
                query["media_ids"] = await this._account.Media.Uploads(parameters.Attachments)
                                     .ConfigureAwait(false);
            }

            if (parameters.IsContainsWarningAttachment)
            {
                query["sensitive"] = true;
            }

            if (!string.IsNullOrEmpty(parameters.SpoilerText))
            {
                query["spoiler_text"] = parameters.SpoilerText;
            }

            if (parameters.HasPolls)
            {
                var polls = parameters.Polls
                            .Where(poll => !string.IsNullOrEmpty(poll.Text))
                            .Select(poll => poll.Text);

                if (polls.Any())
                {
                    var pollsQuery = new Query
                    {
                        ["options"]     = polls,
                        ["expires_in"]  = parameters.PollsExpires,
                        ["multiple"]    = parameters.IsPollsMultiple,
                        ["hide_totals"] = parameters.IsPollsHideTotals,
                    };

                    query["poll"] = pollsQuery;
                }
            }

            //if (parameters.Visibility != null)
            //{
            //    query["visibility"] = GetVisibilityValue(parameters.Visibility);
            //}

            await this._account.Api.Statuses.Post(query).ConfigureAwait(false);
        }
Пример #3
0
        public int GetTextLength(ServicePostParameters parameters)
        {
            int textLength = parameters.Text?.Length ?? 0;

            if (parameters.HasSpoilerText && parameters.SpoilerText != null)
            {
                textLength += parameters.SpoilerText.Length;
            }

            return(textLength);
        }
Пример #4
0
        public bool CanPost(ServicePostParameters parameters)
        {
            int length = GetTextLength(parameters);

            if (parameters.Attachments.Count > 0)
            {
                length += _tweetTextValidator.ShortUrlLength;
            }

            return(length > 0 && length <= this.MaxPostTextLength && parameters.Attachments.Count <= 4);
        }
Пример #5
0
 public bool CanPost(ServicePostParameters parameters)
 {
     return(parameters.Text?.Length > 0 || (parameters.Attachments.HasItems && parameters.Attachments.Count <= 4));
 }
Пример #6
0
 public int GetTextLength(ServicePostParameters parameters)
 {
     return(_tweetTextValidator.GetTweetLength(parameters.Text));
 }
Пример #7
0
 public Task PostStatus(ServicePostParameters parameters) => this._account.Statuses.Toat(parameters);