private class GetWorkerResult
{
public string retMsg = ""; //処理結果詳細メッセージ。エラー時に値がセットされる
- public int page; //取得対象ページ番号
- public int endPage = 0; //取得終了ページ番号(継続可能ならインクリメントされて返る。pageと比較して継続判定)
public MyCommon.WORKERTYPE type; //処理種別
- public Dictionary<string, Image> imgs = null; //新規取得したアイコンイメージ
public string tName = ""; //Fav追加・削除時のタブ名
- public List<long> ids = null; //Fav追加・削除時のID
public List<long> sIds = null; //Fav追加・削除成功分のID
public bool newDM = false;
public int addCount;
private class GetWorkerArg
{
public int page; //処理対象ページ番号
- public int endPage; //処理終了ページ番号(起動時の読み込みページ数。通常時はpageと同じ値をセット)
public MyCommon.WORKERTYPE type; //処理種別
- public string url = ""; //URLをブラウザで開くときのアドレス
public PostingStatus status = new PostingStatus(); //発言POST時の発言内容
public List<long> ids; //Fav追加・削除時のItemIndex
public List<long> sIds; //Fav追加・削除成功分のItemIndex
if (ResetTimers.Timeline || homeCounter <= 0 && SettingDialog.TimelinePeriodInt > 0)
{
Interlocked.Exchange(ref homeCounter, SettingDialog.TimelinePeriodInt);
- if (!tw.IsUserstreamDataReceived && !ResetTimers.Timeline) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ if (!tw.IsUserstreamDataReceived && !ResetTimers.Timeline) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
ResetTimers.Timeline = false;
}
if (ResetTimers.Reply || mentionCounter <= 0 && SettingDialog.ReplyPeriodInt > 0)
{
Interlocked.Exchange(ref mentionCounter, SettingDialog.ReplyPeriodInt);
- if (!tw.IsUserstreamDataReceived && !ResetTimers.Reply) GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
+ if (!tw.IsUserstreamDataReceived && !ResetTimers.Reply) GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
ResetTimers.Reply = false;
}
if (ResetTimers.DirectMessage || dmCounter <= 0 && SettingDialog.DMPeriodInt > 0)
{
Interlocked.Exchange(ref dmCounter, SettingDialog.DMPeriodInt);
- if (!tw.IsUserstreamDataReceived && !ResetTimers.DirectMessage) GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ if (!tw.IsUserstreamDataReceived && !ResetTimers.DirectMessage) GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
ResetTimers.DirectMessage = false;
}
if (ResetTimers.PublicSearch || pubSearchCounter <= 0 && SettingDialog.PubSearchPeriodInt > 0)
{
Interlocked.Exchange(ref pubSearchCounter, SettingDialog.PubSearchPeriodInt);
- if (!ResetTimers.PublicSearch) GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, "");
+ if (!ResetTimers.PublicSearch) GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, "");
ResetTimers.PublicSearch = false;
}
if (ResetTimers.UserTimeline || userTimelineCounter <= 0 && SettingDialog.UserTimelinePeriodInt > 0)
{
Interlocked.Exchange(ref userTimelineCounter, SettingDialog.UserTimelinePeriodInt);
- if (!ResetTimers.UserTimeline) GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, "");
+ if (!ResetTimers.UserTimeline) GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, "");
ResetTimers.UserTimeline = false;
}
if (ResetTimers.Lists || listsCounter <= 0 && SettingDialog.ListsPeriodInt > 0)
{
Interlocked.Exchange(ref listsCounter, SettingDialog.ListsPeriodInt);
- if (!ResetTimers.Lists) GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, "");
+ if (!ResetTimers.Lists) GetTimeline(MyCommon.WORKERTYPE.List, 1, "");
ResetTimers.Lists = false;
}
if (ResetTimers.UserStream || usCounter <= 0 && SettingDialog.UserstreamPeriodInt > 0)
{
Interlocked.Exchange(ref refreshFollowers, 0);
doGetFollowersMenu();
- GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
}
if (osResumed)
{
{
osResumed = false;
Interlocked.Exchange(ref ResumeWait, 0);
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, "");
doGetFollowersMenu();
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
}
}
}
StatusText.SelectionStart = StatusText.Text.Length;
GetWorkerArg args = new GetWorkerArg();
args.page = 0;
- args.endPage = 0;
args.type = MyCommon.WORKERTYPE.PostMessage;
CheckReplyTo(StatusText.Text);
rslt.retMsg = ret;
rslt.type = args.type;
rslt.tName = args.tName;
- if (args.type == MyCommon.WORKERTYPE.DirectMessegeRcv ||
- args.type == MyCommon.WORKERTYPE.DirectMessegeSnt ||
- args.type == MyCommon.WORKERTYPE.Reply ||
- args.type == MyCommon.WORKERTYPE.Timeline ||
- args.type == MyCommon.WORKERTYPE.Favorites)
- {
- rslt.page = args.page - 1; //値が正しいか後でチェック。10ページ毎の継続確認
- }
e.Result = rslt;
}
_waitReply = false;
if (rslt.newDM && !_initial)
{
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
}
break;
case MyCommon.WORKERTYPE.Favorites:
{
GetWorkerArg args = new GetWorkerArg();
args.page = 0;
- args.endPage = 0;
args.type = MyCommon.WORKERTYPE.PostMessage;
args.status = rslt.status;
RunAsync(args);
}
else
{
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
}
}
break;
_postTimestamps.RemoveAt(i);
}
}
- if (!_isActiveUserstream && SettingDialog.PostAndGet) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ if (!_isActiveUserstream && SettingDialog.PostAndGet) GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
}
break;
case MyCommon.WORKERTYPE.Follower:
private static Dictionary<MyCommon.WORKERTYPE, DateTime> lastTime = new Dictionary<MyCommon.WORKERTYPE, DateTime>();
- private void GetTimeline(MyCommon.WORKERTYPE WkType, int fromPage, int toPage, string tabName)
+ private void GetTimeline(MyCommon.WORKERTYPE WkType, int fromPage, string tabName)
{
if (!this.IsNetworkAvailable()) return;
//非同期実行引数設定
GetWorkerArg args = new GetWorkerArg();
args.page = fromPage;
- args.endPage = toPage;
args.type = WkType;
args.tName = tabName;
switch (_statuses.Tabs[_curTab.Text].TabType)
{
case MyCommon.TabUsageType.Mentions:
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
break;
case MyCommon.TabUsageType.DirectMessage:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
break;
case MyCommon.TabUsageType.Favorites:
- GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, "");
break;
//case MyCommon.TabUsageType.Profile:
//// TODO
//// TODO
TabClass tb = _statuses.Tabs[_curTab.Text];
if (string.IsNullOrEmpty(tb.SearchWords)) return;
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, _curTab.Text);
break;
case MyCommon.TabUsageType.UserTimeline:
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, _curTab.Text);
break;
case MyCommon.TabUsageType.Lists:
//// TODO
TabClass tab = _statuses.Tabs[_curTab.Text];
if (tab.ListInfo == null || tab.ListInfo.Id == 0) return;
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, _curTab.Text);
break;
default:
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
break;
}
}
else
{
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
}
}
switch (_statuses.Tabs[_curTab.Text].TabType)
{
case MyCommon.TabUsageType.Mentions:
- GetTimeline(MyCommon.WORKERTYPE.Reply, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, -1, "");
break;
case MyCommon.TabUsageType.DirectMessage:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, "");
break;
case MyCommon.TabUsageType.Favorites:
- GetTimeline(MyCommon.WORKERTYPE.Favorites, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Favorites, -1, "");
break;
case MyCommon.TabUsageType.Profile:
//// TODO
// TODO
TabClass tb = _statuses.Tabs[_curTab.Text];
if (string.IsNullOrEmpty(tb.SearchWords)) return;
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, -1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, -1, _curTab.Text);
break;
case MyCommon.TabUsageType.UserTimeline:
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, -1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, -1, _curTab.Text);
break;
case MyCommon.TabUsageType.Lists:
//// TODO
TabClass tab = _statuses.Tabs[_curTab.Text];
if (tab.ListInfo == null || tab.ListInfo.Id == 0) return;
- GetTimeline(MyCommon.WORKERTYPE.List, -1, 0, _curTab.Text);
+ GetTimeline(MyCommon.WORKERTYPE.List, -1, _curTab.Text);
break;
default:
- GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, "");
break;
}
}
else
{
- GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, -1, "");
}
}
SaveConfigsTabs();
//検索実行
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, tabName);
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, tabName);
}
public bool AddNewTab(string tabName, bool startup, MyCommon.TabUsageType tabType, ListElement listInfo = null)
DoRefresh();
return true;
case Keys.F6:
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
return true;
case Keys.F7:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
return true;
}
if (Focused != FocusedControl.StatusText)
DoRefreshMore();
return true;
case Keys.F6:
- GetTimeline(MyCommon.WORKERTYPE.Reply, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, -1, "");
return true;
case Keys.F7:
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, -1, "");
return true;
}
//フォーカスStatusText以外
{
ListTab.SelectedIndex = ListTab.TabPages.Count - 1;
ListTabSelect(ListTab.TabPages[ListTab.TabPages.Count - 1]);
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, tabName);
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, tabName);
}
}
}
if (this.IsNetworkAvailable())
{
this.RefreshMuteUserIdsAsync();
- GetTimeline(MyCommon.WORKERTYPE.BlockIds, 0, 0, "");
- GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.BlockIds, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, "");
if (SettingDialog.StartupFollowers)
{
- GetTimeline(MyCommon.WORKERTYPE.Follower, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Follower, 0, "");
}
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
StartUserStream();
_waitTimeline = true;
- GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Timeline, 1, "");
_waitReply = true;
- GetTimeline(MyCommon.WORKERTYPE.Reply, 1, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Reply, 1, "");
_waitDm = true;
- GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.DirectMessegeRcv, 1, "");
if (SettingDialog.GetFav)
{
_waitFav = true;
- GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, 1, "");
+ GetTimeline(MyCommon.WORKERTYPE.Favorites, 1, "");
}
_waitPubSearch = true;
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, ""); //tabname="":全タブ
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, ""); //tabname="":全タブ
_waitUserTimeline = true;
- GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, 0, ""); //tabname="":全タブ
+ GetTimeline(MyCommon.WORKERTYPE.UserTimeline, 1, ""); //tabname="":全タブ
_waitLists = true;
- GetTimeline(MyCommon.WORKERTYPE.List, 1, 0, ""); //tabname="":全タブ
+ GetTimeline(MyCommon.WORKERTYPE.List, 1, ""); //tabname="":全タブ
var i = 0;
while (this.IsInitialRead())
// 取得失敗の場合は再試行する
if (!tw.GetFollowersSuccess && SettingDialog.StartupFollowers)
- GetTimeline(MyCommon.WORKERTYPE.Follower, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Follower, 0, "");
// 取得失敗の場合は再試行する
if (!tw.GetNoRetweetSuccess)
- GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.NoRetweetIds, 0, "");
// 取得失敗の場合は再試行する
if (SettingDialog.TwitterConfiguration.PhotoSizeLimit == 0)
- GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Configuration, 0, "");
// 権限チェック read/write権限(xAuthで取得したトークン)の場合は再認証を促す
if (MyCommon.TwitterApiInfo.AccessLevel == TwitterApiAccessLevel.ReadWrite)
private void doGetFollowersMenu()
{
- GetTimeline(MyCommon.WORKERTYPE.Follower, 1, 0, "");
+ GetTimeline(MyCommon.WORKERTYPE.Follower, 1, "");
DispSelectedPost(true);
}
SaveConfigsTabs(); //検索条件の保存
}
- GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, 0, tbName);
+ GetTimeline(MyCommon.WORKERTYPE.PublicSearch, 1, tbName);
((DetailsListView)ListTab.SelectedTab.Tag).Focus();
}
}
}
- this.GetTimeline(MyCommon.WORKERTYPE.Related, 1, 1, tabName);
+ this.GetTimeline(MyCommon.WORKERTYPE.Related, 1, tabName);
}
private void CacheInfoMenuItem_Click(object sender, EventArgs e)