// 流速計測用
private int tweetsPerHour = 0;
- private ConcurrentDictionary<DateTime, int> tweetsTimestamps = new ConcurrentDictionary<DateTime, int>();
+ private ConcurrentDictionary<DateTimeUtc, int> tweetsTimestamps = new ConcurrentDictionary<DateTimeUtc, int>();
public HomeTabModel() : this(MyCommon.DEFAULTTAB.RECENT)
{
public override void AddPostQueue(PostClass post)
{
base.AddPostQueue(post);
- this.UpdateTimelineSpeed(post.CreatedAt);
+ this.UpdateTimelineSpeed(new DateTimeUtc(post.CreatedAt.ToUniversalTime()));
}
public override async Task RefreshAsync(Twitter tw, bool backward, bool startup, IProgress<string> progress)
/// <summary>
/// タイムラインに追加された発言件数を反映し、タイムラインの流速を更新します
/// </summary>
- private void UpdateTimelineSpeed(DateTime postCreatedAt)
+ private void UpdateTimelineSpeed(DateTimeUtc postCreatedAt)
{
- var now = DateTime.Now;
+ var now = DateTimeUtc.Now;
// 1 時間以上前の時刻は追加しない
var oneHour = TimeSpan.FromHours(1);
this.tweetsTimestamps.AddOrUpdate(postCreatedAt, 1, (k, v) => v + 1);
- var removeKeys = new List<DateTime>();
+ var removeKeys = new List<DateTimeUtc>();
var tweetsInWindow = 0;
foreach (var (timestamp, count) in this.tweetsTimestamps)
{
private Tuple<long, string> inReplyTo = null; // リプライ先のステータスID・スクリーン名
//時速表示用
- private List<DateTime> _postTimestamps = new List<DateTime>();
- private List<DateTime> _favTimestamps = new List<DateTime>();
+ private List<DateTimeUtc> _postTimestamps = new List<DateTimeUtc>();
+ private List<DateTimeUtc> _favTimestamps = new List<DateTimeUtc>();
// 以下DrawItem関連
private SolidBrush _brsHighLight = new SolidBrush(Color.FromKnownColor(KnownColor.Highlight));
throw new WebApiException("NG(Restricted?)");
}
- this._favTimestamps.Add(DateTime.Now);
+ this._favTimestamps.Add(DateTimeUtc.Now);
// TLでも取得済みならfav反映
if (this._statuses.ContainsKey(statusId))
}
// 時速表示用
- var oneHour = DateTime.Now - TimeSpan.FromHours(1);
+ var oneHour = DateTimeUtc.Now - TimeSpan.FromHours(1);
foreach (var i in MyCommon.CountDown(this._favTimestamps.Count - 1, 0))
{
if (this._favTimestamps[i] < oneHour)
return;
}
- this._postTimestamps.Add(DateTime.Now);
+ this._postTimestamps.Add(DateTimeUtc.Now);
- var oneHour = DateTime.Now - TimeSpan.FromHours(1);
+ var oneHour = DateTimeUtc.Now - TimeSpan.FromHours(1);
foreach (var i in MyCommon.CountDown(this._postTimestamps.Count - 1, 0))
{
if (this._postTimestamps[i] < oneHour)
p.Report(Properties.Resources.PostWorker_RunWorkerCompletedText4);
- this._postTimestamps.Add(DateTime.Now);
+ this._postTimestamps.Add(DateTimeUtc.Now);
- var oneHour = DateTime.Now - TimeSpan.FromHours(1);
+ var oneHour = DateTimeUtc.Now - TimeSpan.FromHours(1);
foreach (var i in MyCommon.CountDown(this._postTimestamps.Count - 1, 0))
{
if (this._postTimestamps[i] < oneHour)