private async void PostButton_Click(object sender, EventArgs e)
{
if (StatusText.Text.Trim().Length == 0)
{
if (!ImageSelector.Enabled)
{
await this.DoRefresh();
return;
}
}
if (this.ExistCurrentPost && StatusText.Text.Trim() == string.Format("RT @{0}: {1}", _curPost.ScreenName, _curPost.TextFromApi))
{
DialogResult rtResult = MessageBox.Show(string.Format(Properties.Resources.PostButton_Click1, Environment.NewLine),
"Retweet",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question);
switch (rtResult)
{
case DialogResult.Yes:
StatusText.Text = "";
await this.doReTweetOfficial(false);
return;
case DialogResult.Cancel:
return;
}
}
var inReplyToStatusId = this.inReplyTo?.Item1;
var inReplyToScreenName = this.inReplyTo?.Item2;
_history[_history.Count - 1] = new PostingStatus(StatusText.Text, inReplyToStatusId, inReplyToScreenName);
if (this._cfgCommon.Nicoms)
{
StatusText.SelectionStart = StatusText.Text.Length;
await UrlConvertAsync(MyCommon.UrlConverter.Nicoms);
}
//if (SettingDialog.UrlConvertAuto)
//{
// StatusText.SelectionStart = StatusText.Text.Length;
// UrlConvertAutoToolStripMenuItem_Click(null, null);
//}
//else if (SettingDialog.Nicoms)
//{
// StatusText.SelectionStart = StatusText.Text.Length;
// UrlConvert(UrlConverter.Nicoms);
//}
StatusText.SelectionStart = StatusText.Text.Length;
CheckReplyTo(StatusText.Text);
var statusText = this.FormatStatusText(this.StatusText.Text);
if (this.GetRestStatusCount(statusText) < 0)
{
// 文字数制限を超えているが強制的に投稿するか
var ret = MessageBox.Show(Properties.Resources.PostLengthOverMessage1, Properties.Resources.PostLengthOverMessage2, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
if (ret != DialogResult.OK)
return;
}
var status = new PostingStatus();
status.status = statusText;
status.inReplyToId = this.inReplyTo?.Item1;
status.inReplyToName = this.inReplyTo?.Item2;
if (ImageSelector.Visible)
{
//画像投稿
if (!ImageSelector.TryGetSelectedMedia(out status.imageService, out status.mediaItems))
return;
}
this.inReplyTo = null;
StatusText.Text = "";
_history.Add(new PostingStatus());
_hisIdx = _history.Count - 1;
if (!ToolStripFocusLockMenuItem.Checked)
((Control)ListTab.SelectedTab.Tag).Focus();
urlUndoBuffer = null;
UrlUndoToolStripMenuItem.Enabled = false; //Undoをできないように設定
//Google検索(試験実装)
if (StatusText.Text.StartsWith("Google:", StringComparison.OrdinalIgnoreCase) && StatusText.Text.Trim().Length > 7)
{
string tmp = string.Format(Properties.Resources.SearchItem2Url, Uri.EscapeDataString(StatusText.Text.Substring(7)));
await this.OpenUriInBrowserAsync(tmp);
}
await this.PostMessageAsync(status);
}