OSDN Git Service

opentween/open-tween.git
8 years agoOpenTween v1.3.0 リリース OpenTween_v1.3.0
Kimura Youichi [Wed, 23 Dec 2015 14:44:45 +0000 (23:44 +0900)]
OpenTween v1.3.0 リリース

8 years agoリプライ先のツイートも発言詳細部に表示させる
Kimura Youichi [Tue, 22 Dec 2015 17:49:16 +0000 (02:49 +0900)]
リプライ先のツイートも発言詳細部に表示させる

PostClass.QuoteStatusIds に in_reply_to_status_id の値も含めるようにした

8 years agoChangeLogの文面を修正
Kimura Youichi [Tue, 22 Dec 2015 18:03:26 +0000 (03:03 +0900)]
ChangeLogの文面を修正

8 years agoMyList_SelectedIndexChangedが呼ばれたが同一ツイートだった場合に、ツイートが未読であれば既読処理を省略しないようにする
Kimura Youichi [Sun, 20 Dec 2015 05:25:04 +0000 (14:25 +0900)]
MyList_SelectedIndexChangedが呼ばれたが同一ツイートだった場合に、ツイートが未読であれば既読処理を省略しないようにする

再現性は低いがたまにツイートが未読のまま選択状態となってしまうことがあり、
その場合にスペースキー等で既読にできず次の未読に移動できなくなる現象が起きていた。

Fixes: 6cff2aa9 ("MyList_SelectedIndexChangedメソッドが呼ばれても選択中のアイテムのStatusIdが同一であれば無視する")

8 years agoPNGファイルの軽量化
Kimura Youichi [Tue, 15 Dec 2015 17:19:51 +0000 (02:19 +0900)]
PNGファイルの軽量化

実行したコマンド:
  find . -name '*.png' -print0 | xargs -0 -n 1 pngcrush -rem alla -brute -ow

PlayableOverlayImage.png については pngcrush 実行前にグレースケールに減色した
ファイルサイズは全体で約 26KB 減少した

8 years agoThumbnailInfoクラスのImageUrlとThumbnailUrlをそれぞれMediaPageUrl, ThumbnailImageUrlに変更
Kimura Youichi [Tue, 15 Dec 2015 09:00:13 +0000 (18:00 +0900)]
ThumbnailInfoクラスのImageUrlとThumbnailUrlをそれぞれMediaPageUrl, ThumbnailImageUrlに変更

8 years agopbs.twimg.com のサムネイル表示に使用する正規表現の誤りを修正
Kimura Youichi [Tue, 15 Dec 2015 08:35:52 +0000 (17:35 +0900)]
pbs.twimg.com のサムネイル表示に使用する正規表現の誤りを修正

8 years agoIEnumerable.OfType<T>()の直後にnullチェックをしている箇所を削除
Kimura Youichi [Mon, 14 Dec 2015 16:44:36 +0000 (01:44 +0900)]
IEnumerable.OfType<T>()の直後にnullチェックをしている箇所を削除

OfType<T>() は Select(x => x as T) と同等だと勘違いしてた

8 years agoエラーレポートをメールで送信する際の送信先をURLエンコードする
Kimura Youichi [Mon, 14 Dec 2015 15:02:08 +0000 (00:02 +0900)]
エラーレポートをメールで送信する際の送信先をURLエンコードする

大抵のメールアドレスでは特に問題にならないが念のため

8 years agoエラーレポート送信のダイアログを表示する際に必要に応じてInvokeを呼び出す
Kimura Youichi [Mon, 14 Dec 2015 15:00:35 +0000 (00:00 +0900)]
エラーレポート送信のダイアログを表示する際に必要に応じてInvokeを呼び出す

UI スレッド以外で例外が発生した場合に dialog.ShowDialog(mainForm) で例外が発生する問題への対処

8 years agoMerge branch 'cleanup-code-analyzer-errors'
Kimura Youichi [Tue, 15 Dec 2015 07:29:34 +0000 (16:29 +0900)]
Merge branch 'cleanup-code-analyzer-errors'

8 years agoコード分析に使用する規則を追加
Kimura Youichi [Mon, 14 Dec 2015 14:58:12 +0000 (23:58 +0900)]
コード分析に使用する規則を追加

8 years agoCultureInfo.InvariantCultureの代わりにStringComparison.Ordinalを優先して使用する (CA1309)
Kimura Youichi [Sat, 12 Dec 2015 04:48:33 +0000 (13:48 +0900)]
CultureInfo.InvariantCultureの代わりにStringComparison.Ordinalを優先して使用する (CA1309)

8 years agoStringComparisonを指定できるメソッドでStringComparisonを明示 (CA1307)
Kimura Youichi [Sat, 12 Dec 2015 04:43:49 +0000 (13:43 +0900)]
StringComparisonを指定できるメソッドでStringComparisonを明示 (CA1307)

8 years agoCultureInfoを指定できるメソッドでCultureInfoを常に明示する (CA1304)
Kimura Youichi [Fri, 11 Dec 2015 20:21:18 +0000 (05:21 +0900)]
CultureInfoを指定できるメソッドでCultureInfoを常に明示する (CA1304)

8 years agoImageListViewItemにSerializable属性と必要なコンストラクタを追加 (CA2229)
Kimura Youichi [Fri, 11 Dec 2015 19:50:05 +0000 (04:50 +0900)]
ImageListViewItemにSerializable属性と必要なコンストラクタを追加 (CA2229)

継承元の ListViewItem が ISerializable を実装しているため必須となる

8 years agoTabClassからSerializable属性を除去 (CA2237)
Kimura Youichi [Fri, 11 Dec 2015 19:47:18 +0000 (04:47 +0900)]
TabClassからSerializable属性を除去 (CA2237)

XmlSerializer を使用してシリアライズする場合は Serializable 属性は不要

8 years agoArgumentExceptionのparamNameを適切に指定する (CA2208)
Kimura Youichi [Fri, 11 Dec 2015 19:20:03 +0000 (04:20 +0900)]
ArgumentExceptionのparamNameを適切に指定する (CA2208)

8 years ago例外発生時にDisposeが適切に呼ばれるようにする (CA2000)
Kimura Youichi [Fri, 11 Dec 2015 19:15:35 +0000 (04:15 +0900)]
例外発生時にDisposeが適切に呼ばれるようにする (CA2000)

8 years agobool型を使用するP/InvokeメソッドにMarshalAs属性を明示する (CA1414)
Kimura Youichi [Fri, 11 Dec 2015 17:55:16 +0000 (02:55 +0900)]
bool型を使用するP/InvokeメソッドにMarshalAs属性を明示する (CA1414)

8 years agoMemoryImage.Equalsから例外を返さない (CA1065)
Kimura Youichi [Fri, 11 Dec 2015 17:42:11 +0000 (02:42 +0900)]
MemoryImage.Equalsから例外を返さない (CA1065)

8 years agoプロパティを書き込み専用にしない (CA1044)
Kimura Youichi [Fri, 11 Dec 2015 17:18:51 +0000 (02:18 +0900)]
プロパティを書き込み専用にしない (CA1044)

8 years agoOTBaseForm.InvokeAsync内で発生した例外をTaskCompletionSourceに渡す
Kimura Youichi [Fri, 11 Dec 2015 16:54:46 +0000 (01:54 +0900)]
OTBaseForm.InvokeAsync内で発生した例外をTaskCompletionSourceに渡す

8 years agoタイムラインの流速計測に使用する_tlTimestampsをConcurrentDictionaryに変更
Kimura Youichi [Thu, 10 Dec 2015 16:29:52 +0000 (01:29 +0900)]
タイムラインの流速計測に使用する_tlTimestampsをConcurrentDictionaryに変更

ついでにローカル変数を使わず直接 TweenMain._tlCount に加算して流速を計算していた不具合を修正
(流速の計算はバックグラウンドのスレッドで行われるため計算途中の値が画面上に表示されることがあった)

8 years agoUserStreams受信時に前のツイートに対するRefreshTimelineが完了していなければ更新をスキップする
Kimura Youichi [Thu, 10 Dec 2015 16:11:38 +0000 (01:11 +0900)]
UserStreams受信時に前のツイートに対するRefreshTimelineが完了していなければ更新をスキップする

8 years agoUserStreamsからの更新時にInvokeを呼び出す箇所をInvokeAsyncに置き換え
Kimura Youichi [Wed, 9 Dec 2015 12:39:03 +0000 (21:39 +0900)]
UserStreamsからの更新時にInvokeを呼び出す箇所をInvokeAsyncに置き換え

WaitingDialog クラスで使用していた InvokeAsync メソッドを OTBaseForm クラスに移動し、
全てのフォームで利用できるようにした。

8 years agoUserStreamsからの更新の度にRefreshTasktrayIconを呼び出さない
Kimura Youichi [Wed, 9 Dec 2015 12:36:01 +0000 (21:36 +0900)]
UserStreamsからの更新の度にRefreshTasktrayIconを呼び出さない

RefreshTasktrayIcon(forceRefresh: true) は、UserStreams 受信時にタスクトレイのエラー表示を
消去するために呼び出されているが、DM 等の定期的な読み込みによっても上書きされるため
敢えて UserStreams 受信時にも呼び出す必要はない。
また、RefreshTasktrayIcon は 200ms 間隔で呼び出されることを前提としたコードがいくつかあり、
タイマーを無視した RefreshTasktrayIcon の呼び出しはこれらの動作を狂わせてしまう。例えば
iconCnt や blinkCnt がそれに当たる。

8 years agoMyList_SelectedIndexChangedメソッドが呼ばれても選択中のアイテムのStatusIdが同一であれば無視する
Kimura Youichi [Wed, 9 Dec 2015 00:44:33 +0000 (09:44 +0900)]
MyList_SelectedIndexChangedメソッドが呼ばれても選択中のアイテムのStatusIdが同一であれば無視する

RefreshTimeline から呼ばれる RestoreListViewSelection のように、SelectedIndex は変わるが
選択されている発言は同一のものである(移動しただけの)場合もあるため、これを正常に無視する

8 years agoRefreshTimelineメソッド内で更新のあったタブ以外はBegin/EndUpdateを呼び出さない
Kimura Youichi [Wed, 9 Dec 2015 00:40:24 +0000 (09:40 +0900)]
RefreshTimelineメソッド内で更新のあったタブ以外はBegin/EndUpdateを呼び出さない

8 years agoFoursquareの新しい形式のチェックインURLのサムネイル表示に対応
Kimura Youichi [Sat, 5 Dec 2015 08:48:52 +0000 (17:48 +0900)]
Foursquareの新しい形式のチェックインURLのサムネイル表示に対応

9c7bfc9c500252cab34bc1d54fa0c264aea0dfcf の修正では単なる URL の変更と扱っていたが、
実際には URL に直接チェックイン ID が含まれなくなり呼び出す API エンドポイントも変化していたため
改めて新しい形式の チェックイン URL から正しく位置情報を取得できるように修正した。

8 years agoTwitter APIへのアクセス時にキャッシュを無効にする
Kimura Youichi [Sat, 5 Dec 2015 07:39:57 +0000 (16:39 +0900)]
Twitter APIへのアクセス時にキャッシュを無効にする

f7958f7d660c86fb0c622041a0a2275decd302e4 の修正以降、UserStreams周りでエラーが発生するとの
報告が複数件あったためその対策として Twitter API に限りキャッシュを無効化した。

8 years agoTwitterAPIから返されるユーザー情報に不正なEntityが含まれる現象に対処
Kimura Youichi [Wed, 2 Dec 2015 10:32:27 +0000 (19:32 +0900)]
TwitterAPIから返されるユーザー情報に不正なEntityが含まれる現象に対処

具体的には entities.url.urls[0].expanded_url に null が含まれている場合がある。
例えば ret156 氏のユーザー情報を取得すると、entities.url.urls[0] は下記のような内容となっている。

  {"url":"http://twitter.com/ono_yoshigom3","expanded_url":null,"indices":[0,32]}

特徴としては、url に t.co が使われていないこと、expanded_url が null であり display_url が無いことが
挙げられる。
修正後は expanded_url が null の場合に Entity を使用せず url をそのまま ShortUrl に渡すように
変更している。

8 years agoコメントの誤りを修正 [skip ci]
Kimura Youichi [Tue, 1 Dec 2015 09:37:03 +0000 (18:37 +0900)]
コメントの誤りを修正 [skip ci]

8 years agoOpenStreetMapのタイル画像を使用した地図サムネイルの描画を実装
Kimura Youichi [Tue, 1 Dec 2015 07:40:42 +0000 (16:40 +0900)]
OpenStreetMapのタイル画像を使用した地図サムネイルの描画を実装

8 years agoWebRequestでのリクエスト時にデフォルトでキャッシュを有効にする
Kimura Youichi [Tue, 1 Dec 2015 07:43:07 +0000 (16:43 +0900)]
WebRequestでのリクエスト時にデフォルトでキャッシュを有効にする

内部で HttpWebRequest を使用する HttpClient も影響を受ける

8 years agoMapThumbクラスから直接ThumbnailInfoを返すGetThumbnailInfoAsyncメソッドを追加
Kimura Youichi [Mon, 30 Nov 2015 07:05:26 +0000 (16:05 +0900)]
MapThumbクラスから直接ThumbnailInfoを返すGetThumbnailInfoAsyncメソッドを追加

8 years agoCtrl+InsertキーがCtrl+Cと同様の動作をするように修正
Kimura Youichi [Mon, 30 Nov 2015 05:07:49 +0000 (14:07 +0900)]
Ctrl+InsertキーがCtrl+Cと同様の動作をするように修正

https://osdn.jp/projects/opentween/forums/28653/36126/

8 years agopbs.twimg.orgのURLの末尾に :orig 等が付いているとFullSizeImageUrlに :orig が二重に付いてしまう不具合を修正
Kimura Youichi [Sun, 29 Nov 2015 17:09:32 +0000 (02:09 +0900)]
pbs.twimg.orgのURLの末尾に :orig 等が付いているとFullSizeImageUrlに :orig が二重に付いてしまう不具合を修正

8 years agoTwitter.ParseSourceメソッドで相対URLのベースとなるUriインスタンスを一度だけ生成するように修正
Kimura Youichi [Sun, 29 Nov 2015 11:47:50 +0000 (20:47 +0900)]
Twitter.ParseSourceメソッドで相対URLのベースとなるUriインスタンスを一度だけ生成するように修正

8 years agoPostClass.ExpandedUrlsの型をDictionaryから配列に変更
Kimura Youichi [Sun, 29 Nov 2015 11:45:02 +0000 (20:45 +0900)]
PostClass.ExpandedUrlsの型をDictionaryから配列に変更

8 years ago「APIコマンドを回避する」の設定を廃止
Kimura Youichi [Sun, 29 Nov 2015 10:15:15 +0000 (19:15 +0900)]
「APIコマンドを回避する」の設定を廃止

「D (ユーザー名)」を除き、APIでの投稿時にSMSコマンドとして解釈されることが無くなったため

8 years agoAppveyorでのテスト後にCodecovへのカバレッジ情報の送信を行う
Kimura Youichi [Thu, 26 Nov 2015 15:11:11 +0000 (00:11 +0900)]
Appveyorでのテスト後にCodecovへのカバレッジ情報の送信を行う

8 years agoTravis CI/Appveyorでのビルド時にNuGetのパッケージをキャッシュする
Kimura Youichi [Fri, 27 Nov 2015 17:37:13 +0000 (02:37 +0900)]
Travis CI/Appveyorでのビルド時にNuGetのパッケージをキャッシュする

8 years ago短縮URL展開のタイムアウト時間を緩和
Kimura Youichi [Fri, 27 Nov 2015 10:08:47 +0000 (19:08 +0900)]
短縮URL展開のタイムアウト時間を緩和

従来までは短縮 URL の展開に時間が掛かるとツイートの受信を滞らせてしまうため
タイムアウトを 5 秒に設定していたが、非同期に展開する修正によりこの必要がなくなったため
\r変更後は 30 秒でタイムアウトとした。

8 years agoimg.azyobuzi.netによるサムネイル表示対象からTwitter(pic.twitter.com)を除外
Kimura Youichi [Fri, 27 Nov 2015 10:02:09 +0000 (19:02 +0900)]
img.azyobuzi.netによるサムネイル表示対象からTwitter(pic.twitter.com)を除外

PostClass.Media に含まれる pbs.twimg.com の画像は SimpleThumbnailService によって、
\rPostClass.GetExpandedUrls で返される pic.twitter.com の展開後のツイート URL は ImgAzyobuziNet によって
\rそれぞれサムネイル表示が行われるため、結果として同じ画像が 2 枚表示されてしまう現象が起きていた。

8 years agoChangeLog 更新
Kimura Youichi [Fri, 27 Nov 2015 17:53:22 +0000 (02:53 +0900)]
ChangeLog 更新

5ffcd257ed8b7d3d の変更を反映

8 years agoPostClass.Mediaに pic.twitter.com などのURLのみを含めるようにする
Kimura Youichi [Fri, 27 Nov 2015 09:57:11 +0000 (18:57 +0900)]
PostClass.Mediaに pic.twitter.com などのURLのみを含めるようにする

ThumbnailGenerator などでは、PostClass.Media に加えて PostClass.GetExpandedUrls
の返値を見てサムネイル表示の対象となる URL を探す

8 years agoツイートに含まれる短縮URLの展開を非同期に行い、ツイートの受信を遅延させないようにする
Kimura Youichi [Fri, 27 Nov 2015 09:52:43 +0000 (18:52 +0900)]
ツイートに含まれる短縮URLの展開を非同期に行い、ツイートの受信を遅延させないようにする

8 years agoFoursquareのチェックインURLのフォーマットの変化に対応
Kimura Youichi [Wed, 25 Nov 2015 04:30:19 +0000 (13:30 +0900)]
FoursquareのチェックインURLのフォーマットの変化に対応

最近のチェックインでは http://www.swarmapp.com/c/.... 形式の URL が使われている

8 years agoRevert "発言一覧の選択変更で関連する発言のフォント・色を変更する際に再描画を抑制する"
Kimura Youichi [Fri, 27 Nov 2015 17:50:23 +0000 (02:50 +0900)]
Revert "発言一覧の選択変更で関連する発言のフォント・色を変更する際に再描画を抑制する"

This reverts commit 36461b679a399e2d10c163f78a92b4411ef9ae0f.

修正後の方がかえって遅くなることがあったため差し戻し

8 years agoINotifyPropertyChangedの実装に必要な基本的な機能を提供するNotifyPropertyChangedBaseクラスを追加
Kimura Youichi [Wed, 18 Nov 2015 10:07:15 +0000 (19:07 +0900)]
INotifyPropertyChangedの実装に必要な基本的な機能を提供するNotifyPropertyChangedBaseクラスを追加

派生クラスのプロパティ内で SetProperty メソッドを使用することで、値に変更があった時のみ
PropertyChanged イベントを発生させることができる。

8 years agoTweenMain.BalloonRequiredメソッド関連の条件式を読みやすくする
Kimura Youichi [Wed, 18 Nov 2015 07:25:32 +0000 (16:25 +0900)]
TweenMain.BalloonRequiredメソッド関連の条件式を読みやすくする

8 years ago発言一覧の選択変更で関連する発言のフォント・色を変更する際に再描画を抑制する
Kimura Youichi [Wed, 18 Nov 2015 06:56:32 +0000 (15:56 +0900)]
発言一覧の選択変更で関連する発言のフォント・色を変更する際に再描画を抑制する

8 years ago文字列リソースRefreshTimelineText1,2をstring.Formatの書式を使うように修正
Kimura Youichi [Wed, 18 Nov 2015 06:50:37 +0000 (15:50 +0900)]
文字列リソースRefreshTimelineText1,2をstring.Formatの書式を使うように修正

8 years agoTweenMainの発言一覧のキャッシュに対する処理をListViewItemCacheクラスにまとめる
Kimura Youichi [Sun, 15 Nov 2015 16:00:02 +0000 (01:00 +0900)]
TweenMainの発言一覧のキャッシュに対する処理をListViewItemCacheクラスにまとめる

Interlocked.Exchenge で新しいキャッシュと交換するようになったためロックは不要

8 years agoTabInformations.SubmitUpdateメソッドのisMentionIncludeをnewMentionOrDmに変更
Kimura Youichi [Sun, 15 Nov 2015 13:52:05 +0000 (22:52 +0900)]
TabInformations.SubmitUpdateメソッドのisMentionIncludeをnewMentionOrDmに変更

リプライに加えて新着の DM でも newMentionOrDm が true になるように変更した

8 years agoListViewの選択状態やスクロール位置を保存・復元する処理を別メソッドに抽出
Kimura Youichi [Sun, 15 Nov 2015 12:19:24 +0000 (21:19 +0900)]
ListViewの選択状態やスクロール位置を保存・復元する処理を別メソッドに抽出

初めは ListViewScroll, ListViewSelection を一つの構造体にするつもりだったが、RestoreListViewScroll メソッドを
ControlTransaction.Update(lst) の中で呼び出すと発言一覧の表示が上下にちらつく問題があったため分割している。

8 years agoa43eff39 の変更によりHTMLタグを含まないテキストで絵文字変換が行われなくなっていた不具合を修正
Kimura Youichi [Fri, 13 Nov 2015 16:35:29 +0000 (01:35 +0900)]
a43eff39 の変更によりHTMLタグを含まないテキストで絵文字変換が行われなくなっていた不具合を修正

8 years agoSendErrorReportFormの基底クラスをOTBaseFormにする
Kimura Youichi [Fri, 13 Nov 2015 15:28:31 +0000 (00:28 +0900)]
SendErrorReportFormの基底クラスをOTBaseFormにする

8 years ago属性に絵文字を含むHTMLタグをEmojiFormatterに通すと不正なHTMLが出力される不具合を修正
Kimura Youichi [Fri, 13 Nov 2015 15:14:16 +0000 (00:14 +0900)]
属性に絵文字を含むHTMLタグをEmojiFormatterに通すと不正なHTMLが出力される不具合を修正

URLに絵文字を含むツイートを発言詳細部に表示すると発生する
例: https://twitter.com/lindwurm/status/664078419357921280

8 years agoTabInformations.SubmitUpdateメソッドからisUserStream引数を削除
Kimura Youichi [Fri, 13 Nov 2015 08:36:06 +0000 (17:36 +0900)]
TabInformations.SubmitUpdateメソッドからisUserStream引数を削除

TweenMain.RefreshTimeline メソッドも isUserStream が不要となるため同様に削除

8 years agoUserStreamsの有効・無効に関わらずdeleteQueueのツイートの削除を反映する
Kimura Youichi [Fri, 13 Nov 2015 08:31:08 +0000 (17:31 +0900)]
UserStreamsの有効・無効に関わらずdeleteQueueのツイートの削除を反映する

UserStreams を無効にする直前に deleted イベントを受信した場合に、ツイート ID が
deleteQueue に追加されたまま残り続ける可能性があったが、この修正により改善される。

なお、修正前であっても deleted イベントを受信した際にツイート本文が「(DELETED)」に
書き換わるため、この修正によって影響があるのは「(DELETED)」になった後に発言一覧から
削除する動作のみである。

8 years agoTabClass.AddSubmitメソッドからisMentionIncluded引数を削除
Kimura Youichi [Fri, 13 Nov 2015 08:05:09 +0000 (17:05 +0900)]
TabClass.AddSubmitメソッドからisMentionIncluded引数を削除

8 years agoUserTimelineおよびListsのタブで「前データを取得」が機能していない不具合を修正
Kimura Youichi [Fri, 13 Nov 2015 08:04:05 +0000 (17:04 +0900)]
UserTimelineおよびListsのタブで「前データを取得」が機能していない不具合を修正

4ba238cd36fe8ffeba50a9cceadb0afbb67f74c0 の修正ミス

8 years agoMoqをNuGet経由でインストールする
Kimura Youichi [Sun, 8 Nov 2015 09:58:56 +0000 (18:58 +0900)]
MoqをNuGet経由でインストールする

8 years agoMediaSelectorTestの一部のテストコードでデッドロックが発生する問題に対処
Kimura Youichi [Sun, 8 Nov 2015 09:54:49 +0000 (18:54 +0900)]
MediaSelectorTestの一部のテストコードでデッドロックが発生する問題に対処

8 years agoOpenTween.Testsで使用するテストフレームワークをxUnit.net 2.1に移行
Kimura Youichi [Sun, 8 Nov 2015 09:53:19 +0000 (18:53 +0900)]
OpenTween.Testsで使用するテストフレームワークをxUnit.net 2.1に移行

8 years ago「新着時に未読をクリアする」を有効にすると動作が非常に重くなる不具合を修正 (thx @nezuku!)
Kimura Youichi [Sun, 8 Nov 2015 07:53:02 +0000 (16:53 +0900)]
「新着時に未読をクリアする」を有効にすると動作が非常に重くなる不具合を修正 (thx @nezuku!)

この設定が有効な場合、UserStreams でツイートを 1 件受信するたびに TabInformations.SetReadHomeTab メソッドが
毎回実行されるが、ここでは実質的に TabInformation._statuses.Values のツイート全てに対して既読化を行っていたため
OpenTween が溜め込むツイートの量が多くなるにつれて SetReadHomeTab の実行時間も増大していた。
試しに Recent タブに 120,000 件溜め込んだ状態で有効にしたところ、SetReadHomeTab の実行に 2.5 秒を要した。

この修正では、SetReadHomeTab で既読化を行うツイートを未読のツイートのみ対象とするようにした。
「新着時に未読をクリアする」機能は UserStreams で新着のツイートを受信するたびに頻繁に実行されており、
SetReadHomeTab で既読化されるツイートは 1 件のみであることがほとんどなため、全件を対象としていた修正前と比べて
処理量はかなり少なく抑えられる。
修正後も同様に 120,000 件溜め込んだ状態で試したところ、SetReadHomeTab の実行時間は 1ms 未満となった。

https://twitter.com/nezuku/status/609559647666720768
https://twitter.com/nezuku/status/612454049405775872

8 years agoProperties.Resources.GetTimelineWorker_RunWorkerCompletedText* の文字列リソースで string.Forma...
Kimura Youichi [Fri, 6 Nov 2015 15:51:41 +0000 (00:51 +0900)]
Properties.Resources.GetTimelineWorker_RunWorkerCompletedText* の文字列リソースで string.Format を積極的に使用する

8 years agoTweenMain.GetPublicSearchAsyncなどの引数を変更
Kimura Youichi [Fri, 6 Nov 2015 15:36:56 +0000 (00:36 +0900)]
TweenMain.GetPublicSearchAsyncなどの引数を変更

8 years agoTabInformations.GetUniqueTabNameとMakeTabNameを統合
Kimura Youichi [Fri, 6 Nov 2015 15:09:51 +0000 (00:09 +0900)]
TabInformations.GetUniqueTabNameとMakeTabNameを統合

8 years agoTabInformationsの一部のメソッドのコードを整理
Kimura Youichi [Fri, 6 Nov 2015 15:09:20 +0000 (00:09 +0900)]
TabInformationsの一部のメソッドのコードを整理

8 years agoTabInformations.FilterAllメソッドのコードを整理, テストコード追加
Kimura Youichi [Wed, 4 Nov 2015 16:28:41 +0000 (01:28 +0900)]
TabInformations.FilterAllメソッドのコードを整理, テストコード追加

8 years ago公式RTから元のツイートのPostClassを生成するメソッドを追加
Kimura Youichi [Wed, 4 Nov 2015 06:26:24 +0000 (15:26 +0900)]
公式RTから元のツイートのPostClassを生成するメソッドを追加

a53f5b1afd7402ff06fb9db689ceb44679d93956 で削除した一部のメソッドを元に戻した

8 years agoサムネイル枠の横幅が起動するたびに広がる問題を修正
Kimura Youichi [Tue, 3 Nov 2015 08:42:53 +0000 (17:42 +0900)]
サムネイル枠の横幅が起動するたびに広がる問題を修正

SplitContainer3.Panel2Collapsed はデザイナの段階で true となっているため、Panel2 は非表示でレイアウトも未実行のままとなっていた。
サムネイル表示によって Panel2 が最初に Visible になった際に初めて Panel2 のレイアウトが行われ、この時に横幅が変化してしまうと推測している。

この修正では、SplitterDistance を設定する前に Panel2 のレイアウトが済んだ状態にするために、
デザイナの段階では Panel2Collapsed を変更せず、SplitterDistance を設定した後に true をセットするようにした。

8 years agoErrorReport.AnonymousReportの値を SettingCommon.xml に記憶する
Kimura Youichi [Mon, 2 Nov 2015 10:29:32 +0000 (19:29 +0900)]
ErrorReport.AnonymousReportの値を SettingCommon.xml に記憶する

8 years agoエラーレポート送信者の更新履歴への掲載をオプトイン方式で指定可能にする
Kimura Youichi [Mon, 2 Nov 2015 10:28:02 +0000 (19:28 +0900)]
エラーレポート送信者の更新履歴への掲載をオプトイン方式で指定可能にする

8 years agoエラーレポート送信画面のレイアウトを修正
Kimura Youichi [Mon, 2 Nov 2015 10:05:05 +0000 (19:05 +0900)]
エラーレポート送信画面のレイアウトを修正

 * label2.AutoSize を true に変更
 * label2 の英語テキストがウィンドウの横幅を越えていたため文言を修正

8 years agoエラーレポート送信画面の左上にSystemIcons.Errorを表示
Kimura Youichi [Mon, 2 Nov 2015 08:59:07 +0000 (17:59 +0900)]
エラーレポート送信画面の左上にSystemIcons.Errorを表示

8 years agoエラーレポートの送信先を@OpenTweenに変更
Kimura Youichi [Sun, 1 Nov 2015 09:11:13 +0000 (18:11 +0900)]
エラーレポートの送信先を@OpenTweenに変更

8 years agoApplicationSettings.AllowSendErrorReportByDM をconstからstatic readonlyに変更
Kimura Youichi [Sun, 1 Nov 2015 05:50:31 +0000 (14:50 +0900)]
ApplicationSettings.AllowSendErrorReportByDM をconstからstatic readonlyに変更

8 years agoDMを使用してエラーレポートを送信する機能を実装
Kimura Youichi [Sat, 31 Oct 2015 16:52:44 +0000 (01:52 +0900)]
DMを使用してエラーレポートを送信する機能を実装

送信するエラーレポートは gzip 圧縮し base64 エンコードされた上で DM で送られる

8 years agoListMemberのメンバー取得ボタンなどの連打対策を追加
Kimura Youichi [Sat, 31 Oct 2015 07:40:34 +0000 (16:40 +0900)]
ListMemberのメンバー取得ボタンなどの連打対策を追加

https://osdn.jp/ticket/browse.php?group_id=6526&tid=35672

8 years agolongの範囲を超えるIDのツイートURLを含んだ発言を受信するとエラーが発生する不具合を修正
Kimura Youichi [Sat, 31 Oct 2015 05:10:36 +0000 (14:10 +0900)]
longの範囲を超えるIDのツイートURLを含んだ発言を受信するとエラーが発生する不具合を修正

https://osdn.jp/ticket/browse.php?group_id=6526&tid=35671

8 years ago高DPI環境でのスケーリングが正しく行われていない箇所を修正
Kimura Youichi [Sat, 31 Oct 2015 03:41:40 +0000 (12:41 +0900)]
高DPI環境でのスケーリングが正しく行われていない箇所を修正

 * FilterDialog.ListFilters のスケーリングは 4f77c427 で対処していたはずであったが、
   OnFontChanged メソッドは FontUIGlobalStr が設定されている環境以外では呼ばれないため不十分な対応であった

 * その他のレイアウトは、最も外側のコントロール (Form, UserControl など) に直接配置されるコントロールの Anchor に
   Bottom や Right を使用するとスケーリングが正しく行われない WinForms のバグを回避する修正を行った

8 years agoMerge branch 'RetweetDecode'
Kimura Youichi [Fri, 23 Oct 2015 19:31:45 +0000 (04:31 +0900)]
Merge branch 'RetweetDecode'

チケット #35637: Retweetイベントでhtmlデコードするように修正
https://osdn.jp/ticket/browse.php?group_id=6526&tid=35637

8 years agoChangeLog 更新
Kimura Youichi [Fri, 23 Oct 2015 19:31:00 +0000 (04:31 +0900)]
ChangeLog 更新

bd350f2e7f34a4445ebca493279235b252d5f8f5 の変更を反映

8 years agoプロフィール画面でのdescriptionのサニタイズ処理を除去
Kimura Youichi [Tue, 20 Oct 2015 13:21:37 +0000 (22:21 +0900)]
プロフィール画面でのdescriptionのサニタイズ処理を除去

API から返るテキストにエスケープ漏れがあった場合を想定して HtmlEncode を通していたが、
1346ff67 の修正以降は TweetFormatter を通すようになったため、エスケープ処理も TweetFormatter で適切に行われる

8 years agouser.entities に含まれない hashtags, user_mentions をテキストから生成する
Kimura Youichi [Tue, 20 Oct 2015 09:27:45 +0000 (18:27 +0900)]
user.entities に含まれない hashtags, user_mentions をテキストから生成する

プロフィール画面の description のリンク化に影響する

8 years agoTweetExtractorクラスにハッシュタグとメンションを抽出するメソッドを追加
Kimura Youichi [Tue, 20 Oct 2015 09:10:44 +0000 (18:10 +0900)]
TweetExtractorクラスにハッシュタグとメンションを抽出するメソッドを追加

正規表現は Twitter.CreateHtmlAnchorAsync で使用していたパターンを元にした

8 years agoテキストからURLを抽出してTwitterEntityUrlとして出力するExtractUrlEntitiesメソッドを追加
Kimura Youichi [Tue, 20 Oct 2015 08:06:40 +0000 (17:06 +0900)]
テキストからURLを抽出してTwitterEntityUrlとして出力するExtractUrlEntitiesメソッドを追加

8 years agoTwitter.ExtractUrlsメソッドをTweetExtractorクラスに移動
Kimura Youichi [Mon, 19 Oct 2015 15:07:46 +0000 (00:07 +0900)]
Twitter.ExtractUrlsメソッドをTweetExtractorクラスに移動

8 years ago>が&gt;とHTMLデコードされていなかったのを修正
KyoPeeee [Tue, 20 Oct 2015 13:00:18 +0000 (22:00 +0900)]
>が&gt;とHTMLデコードされていなかったのを修正

8 years agoMerge branch 'ProfileURL'
Kimura Youichi [Mon, 19 Oct 2015 13:43:45 +0000 (22:43 +0900)]
Merge branch 'ProfileURL'

チケット #35627: プロフィール画面のURLがt.co形式だったのを展開したものに変更
https://osdn.jp/ticket/browse.php?group_id=6526&tid=35627

8 years agoChangeLog 更新
Kimura Youichi [Mon, 19 Oct 2015 13:41:11 +0000 (22:41 +0900)]
ChangeLog 更新

1346ff67da027f203bf49ce8b459e87bb5884395 の変更を反映

8 years agoフォーマット修正
Kimura Youichi [Mon, 19 Oct 2015 13:33:15 +0000 (22:33 +0900)]
フォーマット修正

8 years agoIndexedSortedSetの初期コレクションをEnumerable.OrderByでソートする
Kimura Youichi [Mon, 19 Oct 2015 10:12:20 +0000 (19:12 +0900)]
IndexedSortedSetの初期コレクションをEnumerable.OrderByでソートする

TabClass.SetSortMode メソッドでソート順を変更する際の速度に影響する
現在の UnionWith の実装は要素ごとに Add メソッドを呼んでいるだけなので遅い

8 years agoTwitter.GetTextLengthRemainメソッドからURLを抽出する処理をExtractUrlsメソッドに分割
Kimura Youichi [Sat, 17 Oct 2015 10:23:34 +0000 (19:23 +0900)]
Twitter.GetTextLengthRemainメソッドからURLを抽出する処理をExtractUrlsメソッドに分割

8 years agoTwitter.GetQuoteTweetStatusIdsメソッドをURL文字列を受け付けるよう修正
Kimura Youichi [Sat, 17 Oct 2015 10:00:56 +0000 (19:00 +0900)]
Twitter.GetQuoteTweetStatusIdsメソッドをURL文字列を受け付けるよう修正

8 years agoプロフィール画面のURLがt.co形式だったのを展開したものに変更
KyoPeeee [Sun, 18 Oct 2015 19:04:46 +0000 (04:04 +0900)]
プロフィール画面のURLがt.co形式だったのを展開したものに変更