• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision8aee2fc3d35e598098efb8d644a7d39772e97758 (tree)
Zeit2011-02-13 15:43:40
Autorazyobuzin <azyobuzin@user...>
Commiterazyobuzin

Log Message

・UserStreamに対応
・閉じずに隠す処理が正しく出来ていなかったのを修正

Ändern Zusammenfassung

  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/Controls/Tabs/TimelineTabPage.cs"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/Forms/MainForm.Designer.cs"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/Forms/MainForm.cs"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/Forms/NotifyForm.cs"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/ITwirunrunMainForm.cs"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/Settings/Settings.cs"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/\202\302\202\242\202\351\202\361\202\351\202\361.csproj"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/lib/DynamicJson.dll"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/lib/UserStreamEx.XML"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/lib/UserStreamEx.dll"
  • delete: "\202\302\202\242\202\351\202\361\202\351\202\361/lib/UserStreamEx.pdb"

Diff

--- "a/\202\302\202\242\202\351\202\361\202\351\202\361/Controls/Tabs/TimelineTabPage.cs"
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/Controls/Tabs/TimelineTabPage.cs"
@@ -105,27 +105,12 @@ namespace Azyobuzi.Twirunrun
105105 /// </summary>
106106 protected void NotifyNewItems(IEnumerable<StatusInfo> newItems)
107107 {
108- if (Settings.Instance.NotifyCount > 0)
109- newItems = newItems.Take(Settings.Instance.NotifyCount);
110- this.Invoke((MethodInvoker)(() =>
108+ if (TabSettings.NotifyNewTweet)
111109 {
112- if (TabSettings.NotifyNewTweet)
113- Settings.Instance.NotifyType.SelectCase()
114- .Case(NotifyTypes.NotifyForm,
115- () => NotifyForm.ShowItems(newItems, this.FindForm()))
116- .Case(NotifyTypes.Balloon,
117- () => this.GetMainForm().ShowBalloon(
118- Settings.Instance.NotifyFormShowTime * 1000,
119- TabSettings.Name + "の新着",
120- string.Join("\n", newItems.Select(item =>
121- string.Format("{0}:{1}", Settings.Instance.NameType == NameTypes.Name ?
122- item.User.Name : item.User.Identifier.ScreenName,
123- item.Text)
124- )),
125- ToolTipIcon.Info
126- )
127- );
128- }));
110+ if (Settings.Instance.NotifyCount > 0)
111+ newItems = newItems.Take(Settings.Instance.NotifyCount);
112+ this.GetMainForm().NotifyNewItems(newItems, TabSettings.Name + "の新着");
113+ }
129114 }
130115 }
131116 }
--- "a/\202\302\202\242\202\351\202\361\202\351\202\361/Forms/MainForm.Designer.cs"
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/Forms/MainForm.Designer.cs"
@@ -39,6 +39,9 @@
3939 this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel();
4040 this.statusBrowserSplitter = new System.Windows.Forms.Splitter();
4141 this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
42+ this.ストリーミングSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
43+ this.streamingStateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
44+ this.startStopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
4245 this.timelineTabs = new Azyobuzi.Twirunrun.TwirunrunTabControl();
4346 this.statusBrowser1 = new Azyobuzi.Twirunrun.StatusBrowser();
4447 this.updateStatusPanel1 = new Azyobuzi.Twirunrun.UpdateStatusPanel();
@@ -50,7 +53,8 @@
5053 // menuStrip1
5154 //
5255 this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
53- this.ファイルFToolStripMenuItem});
56+ this.ファイルFToolStripMenuItem,
57+ this.ストリーミングSToolStripMenuItem});
5458 this.menuStrip1.Location = new System.Drawing.Point(0, 0);
5559 this.menuStrip1.Name = "menuStrip1";
5660 this.menuStrip1.Size = new System.Drawing.Size(371, 26);
@@ -70,12 +74,12 @@
7074 this.終了XToolStripMenuItem});
7175 this.fileMenuStrip.Name = "fileMenuStrip";
7276 this.fileMenuStrip.OwnerItem = this.ファイルFToolStripMenuItem;
73- this.fileMenuStrip.Size = new System.Drawing.Size(153, 48);
77+ this.fileMenuStrip.Size = new System.Drawing.Size(119, 26);
7478 //
7579 // 終了XToolStripMenuItem
7680 //
7781 this.終了XToolStripMenuItem.Name = "終了XToolStripMenuItem";
78- this.終了XToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
82+ this.終了XToolStripMenuItem.Size = new System.Drawing.Size(118, 22);
7983 this.終了XToolStripMenuItem.Text = "終了(&X)";
8084 this.終了XToolStripMenuItem.Click += new System.EventHandler(this.終了XToolStripMenuItem_Click);
8185 //
@@ -121,6 +125,30 @@
121125 this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
122126 this.notifyIcon1.Text = "ついるんるん";
123127 this.notifyIcon1.Visible = true;
128+ this.notifyIcon1.Click += new System.EventHandler(this.notifyIcon1_Click);
129+ //
130+ // ストリーミングSToolStripMenuItem
131+ //
132+ this.ストリーミングSToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
133+ this.streamingStateToolStripMenuItem,
134+ this.startStopToolStripMenuItem});
135+ this.ストリーミングSToolStripMenuItem.Name = "ストリーミングSToolStripMenuItem";
136+ this.ストリーミングSToolStripMenuItem.Size = new System.Drawing.Size(122, 22);
137+ this.ストリーミングSToolStripMenuItem.Text = "ストリーミング(&S)";
138+ //
139+ // streamingStateToolStripMenuItem
140+ //
141+ this.streamingStateToolStripMenuItem.Enabled = false;
142+ this.streamingStateToolStripMenuItem.Name = "streamingStateToolStripMenuItem";
143+ this.streamingStateToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
144+ this.streamingStateToolStripMenuItem.Text = "Stopped";
145+ //
146+ // startStopToolStripMenuItem
147+ //
148+ this.startStopToolStripMenuItem.Name = "startStopToolStripMenuItem";
149+ this.startStopToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
150+ this.startStopToolStripMenuItem.Text = "&Start";
151+ this.startStopToolStripMenuItem.Click += new System.EventHandler(this.startStopToolStripMenuItem_Click);
124152 //
125153 // timelineTabs
126154 //
@@ -196,6 +224,9 @@
196224 private System.Windows.Forms.ContextMenuStrip fileMenuStrip;
197225 private System.Windows.Forms.ToolStripMenuItem 終了XToolStripMenuItem;
198226 private System.Windows.Forms.ToolStripMenuItem ファイルFToolStripMenuItem;
227+ private System.Windows.Forms.ToolStripMenuItem ストリーミングSToolStripMenuItem;
228+ private System.Windows.Forms.ToolStripMenuItem streamingStateToolStripMenuItem;
229+ private System.Windows.Forms.ToolStripMenuItem startStopToolStripMenuItem;
199230
200231 }
201232 }
--- "a/\202\302\202\242\202\351\202\361\202\351\202\361/Forms/MainForm.cs"
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/Forms/MainForm.cs"
@@ -11,6 +11,7 @@ using System.Threading;
1111 using System.Threading.Tasks;
1212 using System.Net;
1313 using System.Reflection;
14+using Azyobuzi.UserStreamEx;
1415
1516 namespace Azyobuzi.Twirunrun
1617 {
@@ -25,7 +26,8 @@ namespace Azyobuzi.Twirunrun
2526 private string statusBrowserUri = "file:///" + (Application.StartupPath + @"\html\resultPage.html").Replace('\\', '/');
2627
2728 TwitterContext twCtx = new TwitterContext();
28-
29+ UserStreamEx.UserStream us;
30+
2931 TwitterContext ITwirunrunMainForm.TwitterContext
3032 {
3133 get
@@ -92,6 +94,12 @@ namespace Azyobuzi.Twirunrun
9294 }
9395
9496 twCtx.AuthorizedClient = auth;
97+
98+ us = new UserStreamEx.UserStream(auth);
99+ us.Started += us_Started;
100+ us.Stopped += us_Stopped;
101+ us.NewTweet += us_NewTweet;
102+ us.NewDirectMessage += us_NewDirectMessage;
95103 }
96104
97105 private void Form1_Load(object sender, EventArgs e)
@@ -139,6 +147,7 @@ namespace Azyobuzi.Twirunrun
139147 timelineTabs.TabPages.AddRange(Settings.Instance.Tabs.Select(tab => tab.CreateTabPage(timelineTabs)).ToArray());
140148
141149 Settings.Instance.PropertyChanged += Settings_PropertyChanged;
150+ //全設定項目でSettings_PropertyChangedを呼び出す
142151 typeof(Settings).GetProperties().ForEach(property =>
143152 Settings_PropertyChanged(Settings.Instance, new PropertyChangedEventArgs(property.Name)));
144153
@@ -177,7 +186,14 @@ namespace Azyobuzi.Twirunrun
177186 })
178187 .Case("TabAlignment", () => timelineTabs.Alignment = s.TabAlignment)
179188 .Case("PostPanelHeight", () => updateStatusPanel1.Height = s.PostPanelHeight)
180- .Case("StatusBrowserHeight", () => statusBrowser1.Height = s.StatusBrowserHeight);
189+ .Case("StatusBrowserHeight", () => statusBrowser1.Height = s.StatusBrowserHeight)
190+ .Case("StreamingEnable", () =>
191+ {
192+ if (s.StreamingEnable)
193+ us.Start(null, false);
194+ else
195+ us.Stop();
196+ });
181197 }
182198
183199 private void updateStatusPanel1_RunUpdateStatus(object sender, EventArgs e)
@@ -271,9 +287,13 @@ namespace Azyobuzi.Twirunrun
271287
272288 private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
273289 {
274- e.Cancel = e.CloseReason != CloseReason.UserClosing && !closing;
290+ e.Cancel = e.CloseReason == CloseReason.UserClosing && !closing;
275291
276- if (!e.Cancel)
292+ if (e.Cancel)
293+ {
294+ this.Hide();
295+ }
296+ else
277297 {
278298 //設定保存
279299 var s = Settings.Instance;
@@ -286,8 +306,7 @@ namespace Azyobuzi.Twirunrun
286306 {
287307 notifyIcon1.ShowBalloonTip(timeout, tipTitle, tipText, tipIcon);
288308 }
289-
290-
309+
291310 public void ShowError(TimelineTabPage tabPage, Exception exception)
292311 {
293312 string message;
@@ -322,5 +341,78 @@ namespace Azyobuzi.Twirunrun
322341 }
323342 StatusChange(string.Format("{0}:{1}", tabPage.TabSettings.Name, message));
324343 }
344+
345+ public void NotifyNewItems(IEnumerable<StatusInfo> newItems, string title)
346+ {
347+ this.Invoke((MethodInvoker)(() =>
348+ {
349+ Settings.Instance.NotifyType.SelectCase()
350+ .Case(NotifyTypes.NotifyForm,
351+ () => NotifyForm.ShowItems(newItems, this))
352+ .Case(NotifyTypes.Balloon,
353+ () => ShowBalloon(
354+ Settings.Instance.NotifyFormShowTime * 1000,
355+ title,
356+ string.Join(Environment.NewLine, newItems.Select(item =>
357+ string.Format("{0}:{1}", Settings.Instance.NameType == NameTypes.Name ?
358+ item.User.Name : item.User.Identifier.ScreenName,
359+ item.Text)
360+ )),
361+ ToolTipIcon.Info
362+ )
363+ );
364+ }));
365+ }
366+
367+ private void us_Started(object sender, EventArgs e)
368+ {
369+ this.Invoke((MethodInvoker)(() =>
370+ {
371+ StatusChange("Streaming start");
372+ streamingStateToolStripMenuItem.Text = "Started";
373+ startStopToolStripMenuItem.Text = "&Stop";
374+ }));
375+ }
376+
377+ private void us_Stopped(object sender, StoppedEventArgs e)
378+ {
379+ this.Invoke((MethodInvoker)(() =>
380+ {
381+ StatusChange("Streaming stop");
382+ Settings.Instance.StreamingEnable = false;
383+ streamingStateToolStripMenuItem.Text = "Stopped";
384+ startStopToolStripMenuItem.Text = "&Start";
385+ if (e.Reason != StopReason.UserStop && Settings.Instance.AutoRestart)
386+ us.Start(null, false);
387+ }));
388+ }
389+
390+ private void us_NewTweet(object sender, NewTweetEventArgs e)
391+ {
392+ var newItem = new StatusInfo(e.Status);
393+ if (!RecentStatusesCollection.Instance.AsParallel().Contains(newItem))
394+ RecentStatusesCollection.Instance.Add(newItem);
395+ if (Settings.Instance.StreamingNotifyNewTweet)
396+ NotifyNewItems(new[] { newItem }, "Streaming 新着");
397+ }
398+
399+ private void us_NewDirectMessage(object sender, NewDirectMessageEventArgs e)
400+ {
401+ var newItem = new StatusInfo(e.DirectMessage);
402+ if (!RecentStatusesCollection.Instance.AsParallel().Contains(newItem))
403+ RecentStatusesCollection.Instance.Add(newItem);
404+ if (Settings.Instance.StreamingNotifyNewTweet)
405+ NotifyNewItems(new[] { newItem }, "Streaming 新着DM");
406+ }
407+
408+ private void startStopToolStripMenuItem_Click(object sender, EventArgs e)
409+ {
410+ Settings.Instance.StreamingEnable = startStopToolStripMenuItem.Text == "&Start";
411+ }
412+
413+ private void notifyIcon1_Click(object sender, EventArgs e)
414+ {
415+ this.Visible = true;
416+ }
325417 }
326418 }
--- "a/\202\302\202\242\202\351\202\361\202\351\202\361/Forms/NotifyForm.cs"
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/Forms/NotifyForm.cs"
@@ -43,6 +43,7 @@ namespace Azyobuzi.Twirunrun
4343 f.Location = lastLocation;
4444 f.Show();
4545 });
46+ owner.Activate();
4647 }
4748
4849 private void SetText(StatusInfo item)
--- "a/\202\302\202\242\202\351\202\361\202\351\202\361/ITwirunrunMainForm.cs"
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/ITwirunrunMainForm.cs"
@@ -15,5 +15,6 @@ namespace Azyobuzi.Twirunrun
1515 void RefreshTimelines(IEnumerable<TimelineTabPage> tabs, bool first);
1616 void ShowBalloon(int timeout, string tipTitle, string tipText, ToolTipIcon tipIcon);
1717 void ShowError(TimelineTabPage tabPage, Exception exception);
18+ void NotifyNewItems(IEnumerable<StatusInfo> newItems, string title);
1819 }
1920 }
--- "a/\202\302\202\242\202\351\202\361\202\351\202\361/Settings/Settings.cs"
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/Settings/Settings.cs"
@@ -688,6 +688,61 @@ namespace Azyobuzi.Twirunrun
688688 return notifyCount;
689689 }
690690 }
691+
692+
693+ //
694+ //UserStream
695+ //
696+ private bool streamingEnable = true;
697+ public bool StreamingEnable
698+ {
699+ set
700+ {
701+ if (streamingEnable != value)
702+ {
703+ streamingEnable = value;
704+ OnPropertyChanged("StreamingEnable");
705+ }
706+ }
707+ get
708+ {
709+ return streamingEnable;
710+ }
711+ }
712+
713+ private bool streamingNotifyNewTweet = true;
714+ public bool StreamingNotifyNewTweet
715+ {
716+ set
717+ {
718+ if (streamingNotifyNewTweet != value)
719+ {
720+ streamingNotifyNewTweet = value;
721+ OnPropertyChanged("StreamingNotifyNewTweet");
722+ }
723+ }
724+ get
725+ {
726+ return streamingNotifyNewTweet;
727+ }
728+ }
729+
730+ private bool autoRestart;
731+ public bool AutoRestart
732+ {
733+ set
734+ {
735+ if (autoRestart != value)
736+ {
737+ autoRestart = value;
738+ OnPropertyChanged("AutoRestart");
739+ }
740+ }
741+ get
742+ {
743+ return autoRestart;
744+ }
745+ }
691746 }
692747
693748 public class FormSettings : IEquatable<FormSettings>
Binary files /dev/null and "b/\202\302\202\242\202\351\202\361\202\351\202\361/lib/DynamicJson.dll" differ
--- /dev/null
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/lib/UserStreamEx.XML"
@@ -0,0 +1,540 @@
1+<?xml version="1.0"?>
2+<doc>
3+ <assembly>
4+ <name>UserStreamEx</name>
5+ </assembly>
6+ <members>
7+ <member name="T:Azyobuzi.UserStreamEx.INotStartedUserStream">
8+ <summary>
9+ 接続されていない状態の<see cref="T:Azyobuzi.UserStreamEx.UserStream"/>クラスを表します。
10+ </summary>
11+ </member>
12+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.Start(System.String,System.Boolean)">
13+ <summary>
14+ 接続を開始します。
15+ </summary>
16+ <param name="track">検索キーワードっぽいもの。null可。</param>
17+ <param name="allReplies">friendsに対する返信も含めるかどうか</param>
18+ </member>
19+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetStartedEvent(System.EventHandler)">
20+ <summary>
21+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.Started"/>イベントにイベントハンドラを追加します。
22+ </summary>
23+ <param name="handler">イベントハンドラ</param>
24+ </member>
25+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetStoppedEvent(System.EventHandler{Azyobuzi.UserStreamEx.StoppedEventArgs})">
26+ <summary>
27+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.Stopped"/>イベントにイベントハンドラを追加します。
28+ </summary>
29+ <param name="handler">イベントハンドラ</param>
30+ </member>
31+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetReceiveFriendsEvent(System.EventHandler{Azyobuzi.UserStreamEx.ReceiveFriendsEventArgs})">
32+ <summary>
33+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.ReceiveFriends"/>イベントにイベントハンドラを追加します。
34+ </summary>
35+ <param name="handler">イベントハンドラ</param>
36+ </member>
37+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetNewTweetEvent(System.EventHandler{Azyobuzi.UserStreamEx.NewTweetEventArgs})">
38+ <summary>
39+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.NewTweet"/>イベントにイベントハンドラを追加します。
40+ </summary>
41+ <param name="handler">イベントハンドラ</param>
42+ </member>
43+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetNewDirectMessageEvent(System.EventHandler{Azyobuzi.UserStreamEx.NewDirectMessageEventArgs})">
44+ <summary>
45+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.NewDirectMessage"/>イベントにイベントハンドラを追加します。
46+ </summary>
47+ <param name="handler">イベントハンドラ</param>
48+ </member>
49+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetDeleteStatusEvent(System.EventHandler{Azyobuzi.UserStreamEx.DeleteStatusEventArgs})">
50+ <summary>
51+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.DeleteStatus"/>イベントにイベントハンドラを追加します。
52+ </summary>
53+ <param name="handler">イベントハンドラ</param>
54+ </member>
55+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetReceiveEventEvent(System.EventHandler{Azyobuzi.UserStreamEx.ReceiveEventEventArgs})">
56+ <summary>
57+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.ReceiveEvent"/>イベントにイベントハンドラを追加します。
58+ </summary>
59+ <param name="handler">イベントハンドラ</param>
60+ </member>
61+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetTrackLimitEvent(System.EventHandler{Azyobuzi.UserStreamEx.TrackLimitEventArgs})">
62+ <summary>
63+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.TrackLimit"/>イベントにイベントハンドラを追加します。
64+ </summary>
65+ <param name="handler">イベントハンドラ</param>
66+ </member>
67+ <member name="M:Azyobuzi.UserStreamEx.INotStartedUserStream.SetReceiveUnsupportedDataEvent(System.EventHandler{Azyobuzi.UserStreamEx.ReceiveJsonEventArgs})">
68+ <summary>
69+ <see cref="E:Azyobuzi.UserStreamEx.INotStartedUserStream.ReceiveUnsupportedData"/>イベントにイベントハンドラを追加します。
70+ </summary>
71+ <param name="handler">イベントハンドラ</param>
72+ </member>
73+ <member name="P:Azyobuzi.UserStreamEx.INotStartedUserStream.StreamingWriter">
74+ <summary>
75+ 取得したデータを書き込む<see cref="T:System.IO.TextWriter"/>
76+ </summary>
77+ </member>
78+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.Started">
79+ <summary>
80+ 接続を開始するときに発生します。
81+ </summary>
82+ </member>
83+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.Stopped">
84+ <summary>
85+ 切断されたときに発生します。
86+ </summary>
87+ </member>
88+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.ReceiveFriends">
89+ <summary>
90+ friends(following)のID一覧を受け取ったときに発生します。通常は開始直後に一回だけ発生します。
91+ </summary>
92+ </member>
93+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.NewTweet">
94+ <summary>
95+ 新しいツイートを受け取ったときに発生します。
96+ </summary>
97+ </member>
98+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.NewDirectMessage">
99+ <summary>
100+ 新しいダイレクトメッセージを受信・送信したときに発生します。
101+ </summary>
102+ </member>
103+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.DeleteStatus">
104+ <summary>
105+ ツイートまたはダイレクトメッセージが削除されたときに発生します。ハンドラでは直ちに表示から消すような処理をしてください。
106+ </summary>
107+ </member>
108+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.ReceiveEvent">
109+ <summary>
110+ イベントを受信したときに発生します。
111+ </summary>
112+ </member>
113+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.TrackLimit">
114+ <summary>
115+ Twitter側で処理しきれないツイートがあったときに発生します。
116+ </summary>
117+ <remarks>詳細不明</remarks>
118+ </member>
119+ <member name="E:Azyobuzi.UserStreamEx.INotStartedUserStream.ReceiveUnsupportedData">
120+ <summary>
121+ 対応していないデータを受け取ったときに発生します。
122+ </summary>
123+ </member>
124+ <member name="T:Azyobuzi.UserStreamEx.ISetedTimeoutUserStream">
125+ <summary>
126+ 接続されていて、Timeoutが設定された<see cref="T:Azyobuzi.UserStreamEx.UserStream"/>クラスを表します。
127+ </summary>
128+ </member>
129+ <member name="M:Azyobuzi.UserStreamEx.ISetedTimeoutUserStream.Stop">
130+ <summary>
131+ 切断してStoppedイベントを発生させます。
132+ </summary>
133+ </member>
134+ <member name="T:Azyobuzi.UserStreamEx.IStartedUserStream">
135+ <summary>
136+ 接続されている状態の<see cref="T:Azyobuzi.UserStreamEx.UserStream"/>クラスを表します。
137+ </summary>
138+ </member>
139+ <member name="M:Azyobuzi.UserStreamEx.IStartedUserStream.SetTimeout(System.Int32)">
140+ <summary>
141+ 指定した時間が経過したら切断するように設定します。
142+ </summary>
143+ <param name="waitTime">切断するまでの時間(ミリ秒単位)。0以下を指定するとすぐに切断します。</param>
144+ </member>
145+ <member name="T:Azyobuzi.UserStreamEx.AddToLinqToTwitter">
146+ <summary>
147+ LINQ to Twitterへの拡張
148+ </summary>
149+ </member>
150+ <member name="M:Azyobuzi.UserStreamEx.AddToLinqToTwitter.UserStreamEx(LinqToTwitter.TwitterContext)">
151+ <summary>
152+ <see cref="T:LinqToTwitter.TwitterContext"/>から<see cref="T:Azyobuzi.UserStreamEx.UserStream"/>のインスタンスを作成します。
153+ </summary>
154+ <param name="twCtx">認証済みの<see cref="T:LinqToTwitter.TwitterContext"/></param>
155+ </member>
156+ <member name="T:Azyobuzi.UserStreamEx.StoppedEventArgs">
157+ <summary>
158+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.Stopped"/>イベントのデータを提供します。
159+ </summary>
160+ </member>
161+ <member name="M:Azyobuzi.UserStreamEx.StoppedEventArgs.#ctor(Azyobuzi.UserStreamEx.StopReason,System.Exception)">
162+ <summary>
163+ 新しい<see cref="T:Azyobuzi.UserStreamEx.StoppedEventArgs"/>クラスのインスタンスを初期化します。
164+ </summary>
165+ <param name="reason">切断された理由</param>
166+ <param name="ex">発生したエラー。null可。</param>
167+ </member>
168+ <member name="P:Azyobuzi.UserStreamEx.StoppedEventArgs.Reason">
169+ <summary>
170+ 切断された理由
171+ </summary>
172+ </member>
173+ <member name="P:Azyobuzi.UserStreamEx.StoppedEventArgs.Exception">
174+ <summary>
175+ 発生したエラー。<see cref="P:Azyobuzi.UserStreamEx.StoppedEventArgs.Reason"/>が<see cref="F:Azyobuzi.UserStreamEx.StopReason.CloseResponse"/>の場合はnull参照です。
176+ </summary>
177+ </member>
178+ <member name="T:Azyobuzi.UserStreamEx.StopReason">
179+ <summary>
180+ 切断された理由
181+ </summary>
182+ </member>
183+ <member name="F:Azyobuzi.UserStreamEx.StopReason.CloseResponse">
184+ <summary>
185+ Twitterが切断した
186+ </summary>
187+ </member>
188+ <member name="F:Azyobuzi.UserStreamEx.StopReason.UserStop">
189+ <summary>
190+ Stopメソッドが呼ばれた
191+ </summary>
192+ </member>
193+ <member name="F:Azyobuzi.UserStreamEx.StopReason.Error">
194+ <summary>
195+ 例外が発生した
196+ </summary>
197+ </member>
198+ <member name="T:Azyobuzi.UserStreamEx.ReceiveJsonEventArgs">
199+ <summary>
200+ Twitterから受信したJSONデータを提供します。
201+ </summary>
202+ </member>
203+ <member name="M:Azyobuzi.UserStreamEx.ReceiveJsonEventArgs.#ctor(System.String)">
204+ <summary>
205+ <see cref="T:Azyobuzi.UserStreamEx.ReceiveJsonEventArgs"/>クラスのインスタンスを初期化します。
206+ </summary>
207+ <param name="line">1行のJSON形式のデータ</param>
208+ </member>
209+ <member name="P:Azyobuzi.UserStreamEx.ReceiveJsonEventArgs.Line">
210+ <summary>
211+ 1行のJSON形式のデータ
212+ </summary>
213+ </member>
214+ <member name="T:Azyobuzi.UserStreamEx.ReceiveFriendsEventArgs">
215+ <summary>
216+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.ReceiveFriends"/>イベントのデータを提供します。
217+ </summary>
218+ </member>
219+ <member name="M:Azyobuzi.UserStreamEx.ReceiveFriendsEventArgs.#ctor(System.String)">
220+ <summary>
221+ JSONを指定して<see cref="T:Azyobuzi.UserStreamEx.ReceiveFriendsEventArgs"/>クラスのインスタンスを初期化します。
222+ </summary>
223+ <param name="line">friendsリストが含まれたJSON形式のデータ</param>
224+ </member>
225+ <member name="P:Azyobuzi.UserStreamEx.ReceiveFriendsEventArgs.FriendIds">
226+ <summary>
227+ friends(following)のIDリスト
228+ </summary>
229+ </member>
230+ <member name="T:Azyobuzi.UserStreamEx.NewTweetEventArgs">
231+ <summary>
232+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.NewTweet"/>イベントのデータを提供します。
233+ </summary>
234+ </member>
235+ <member name="M:Azyobuzi.UserStreamEx.NewTweetEventArgs.#ctor(System.String)">
236+ <summary>
237+ JSONを指定して<see cref="T:Azyobuzi.UserStreamEx.NewTweetEventArgs"/>クラスのインスタンスを初期化します。
238+ </summary>
239+ <param name="line">ステータスが含まれたJSON形式のデータ</param>
240+ </member>
241+ <member name="P:Azyobuzi.UserStreamEx.NewTweetEventArgs.Status">
242+ <summary>
243+ 新しいツイート
244+ </summary>
245+ </member>
246+ <member name="T:Azyobuzi.UserStreamEx.NewDirectMessageEventArgs">
247+ <summary>
248+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.NewDirectMessage"/>イベントのデータを提供します。
249+ </summary>
250+ </member>
251+ <member name="M:Azyobuzi.UserStreamEx.NewDirectMessageEventArgs.#ctor(System.String)">
252+ <summary>
253+ JSONを指定して<see cref="T:Azyobuzi.UserStreamEx.NewDirectMessageEventArgs"/>クラスのインスタンスを初期化します。
254+ </summary>
255+ <param name="line">ダイレクトメッセージが含まれたJSON形式のデータ</param>
256+ </member>
257+ <member name="P:Azyobuzi.UserStreamEx.NewDirectMessageEventArgs.DirectMessage">
258+ <summary>
259+ 新しいダイレクトメッセージ
260+ </summary>
261+ </member>
262+ <member name="T:Azyobuzi.UserStreamEx.DeleteStatusEventArgs">
263+ <summary>
264+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.DeleteStatus"/>イベントのデータを提供します。
265+ </summary>
266+ </member>
267+ <member name="M:Azyobuzi.UserStreamEx.DeleteStatusEventArgs.#ctor(System.String)">
268+ <summary>
269+ JSONを指定して<see cref="T:Azyobuzi.UserStreamEx.DeleteStatusEventArgs"/>クラスのインスタンスを初期化します。
270+ </summary>
271+ <param name="line">削除されたステータスのIDが含まれたJSON形式のデータ</param>
272+ </member>
273+ <member name="P:Azyobuzi.UserStreamEx.DeleteStatusEventArgs.StatusId">
274+ <summary>
275+ 削除されたツイート(ダイレクトメッセージ)のID
276+ </summary>
277+ </member>
278+ <member name="P:Azyobuzi.UserStreamEx.DeleteStatusEventArgs.UserId">
279+ <summary>
280+ 削除したユーザーのID(番号)
281+ </summary>
282+ </member>
283+ <member name="P:Azyobuzi.UserStreamEx.DeleteStatusEventArgs.IsDirectMessage">
284+ <summary>
285+ ダイレクトメッセージか
286+ </summary>
287+ </member>
288+ <member name="T:Azyobuzi.UserStreamEx.ReceiveEventEventArgs">
289+ <summary>
290+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.ReceiveEvent"/>イベントのデータを提供します。
291+ </summary>
292+ </member>
293+ <member name="M:Azyobuzi.UserStreamEx.ReceiveEventEventArgs.#ctor(System.String)">
294+ <summary>
295+ JSONを指定して<see cref="T:Azyobuzi.UserStreamEx.ReceiveEventEventArgs"/>クラスのインスタンスを初期化します。
296+ </summary>
297+ <param name="line">イベント情報が含まれたJSON形式のデータ</param>
298+ </member>
299+ <member name="P:Azyobuzi.UserStreamEx.ReceiveEventEventArgs.EventType">
300+ <summary>
301+ イベントの種類
302+ </summary>
303+ </member>
304+ <member name="P:Azyobuzi.UserStreamEx.ReceiveEventEventArgs.CreatedAt">
305+ <summary>
306+ イベントが発生した日時
307+ </summary>
308+ </member>
309+ <member name="P:Azyobuzi.UserStreamEx.ReceiveEventEventArgs.Source">
310+ <summary>
311+ イベントを発生させたユーザー
312+ </summary>
313+ </member>
314+ <member name="P:Azyobuzi.UserStreamEx.ReceiveEventEventArgs.Target">
315+ <summary>
316+ イベントの対象のユーザー
317+ </summary>
318+ </member>
319+ <member name="P:Azyobuzi.UserStreamEx.ReceiveEventEventArgs.TargetStatus">
320+ <summary>
321+ イベントの対象のツイート
322+ </summary>
323+ </member>
324+ <member name="P:Azyobuzi.UserStreamEx.ReceiveEventEventArgs.TargetList">
325+ <summary>
326+ イベントの対象のリスト
327+ </summary>
328+ </member>
329+ <member name="T:Azyobuzi.UserStreamEx.EventTypes">
330+ <summary>
331+ イベントの種類
332+ </summary>
333+ </member>
334+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.Unknown">
335+ <summary>
336+ 不明
337+ </summary>
338+ </member>
339+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.Favorite">
340+ <summary>
341+ お気に入りに追加した
342+ </summary>
343+ </member>
344+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.Unfavorite">
345+ <summary>
346+ お気に入りから削除した
347+ </summary>
348+ </member>
349+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.Follow">
350+ <summary>
351+ フォローされた
352+ </summary>
353+ </member>
354+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.ListMemberAdded">
355+ <summary>
356+ リストに入れられた
357+ </summary>
358+ </member>
359+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.ListMemberRemoved">
360+ <summary>
361+ リストから外された
362+ </summary>
363+ </member>
364+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.Block">
365+ <summary>
366+ ブロックに成功した
367+ </summary>
368+ </member>
369+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.Unblock">
370+ <summary>
371+ ブロックの解除に成功した
372+ </summary>
373+ </member>
374+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.UserUpdate">
375+ <summary>
376+ プロフィールを変更した
377+ </summary>
378+ </member>
379+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.ListCreated">
380+ <summary>
381+ リストを作成した
382+ </summary>
383+ </member>
384+ <member name="F:Azyobuzi.UserStreamEx.EventTypes.ListDestroyed">
385+ <summary>
386+ リストを削除した
387+ </summary>
388+ </member>
389+ <member name="T:Azyobuzi.UserStreamEx.TrackLimitEventArgs">
390+ <summary>
391+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.TrackLimit"/>イベントのデータを提供します。
392+ </summary>
393+ </member>
394+ <member name="M:Azyobuzi.UserStreamEx.TrackLimitEventArgs.#ctor(System.String)">
395+ <summary>
396+ JSONを指定して<see cref="T:Azyobuzi.UserStreamEx.TrackLimitEventArgs"/>クラスのインスタンスを初期化します。
397+ </summary>
398+ <param name="line">JSON形式のデータ</param>
399+ </member>
400+ <member name="P:Azyobuzi.UserStreamEx.TrackLimitEventArgs.Track">
401+ <summary>
402+ マッチしたツイートのインデックス
403+ </summary>
404+ </member>
405+ <member name="T:Azyobuzi.UserStreamEx.UserStream">
406+ <summary>
407+ TwitterのUserStreamをイベントを使って処理します。
408+ </summary>
409+ </member>
410+ <member name="M:Azyobuzi.UserStreamEx.UserStream.#ctor(LinqToTwitter.ITwitterAuthorizer)">
411+ <summary>
412+ <see cref="T:Azyobuzi.UserStreamEx.UserStream"/>クラスの新しいインスタンスを初期化します。
413+ </summary>
414+ <param name="auth">認証済みの<see cref="T:LinqToTwitter.ITwitterAuthorizer"/></param>
415+ </member>
416+ <member name="M:Azyobuzi.UserStreamEx.UserStream.Start(System.String,System.Boolean)">
417+ <summary>
418+ 接続を開始します。
419+ </summary>
420+ <param name="track">検索キーワードっぽいもの。null可。</param>
421+ <param name="allReplies">friendsに対する返信も含めるかどうか</param>
422+ </member>
423+ <member name="M:Azyobuzi.UserStreamEx.UserStream.Stop">
424+ <summary>
425+ 切断してStoppedイベントを発生させます。
426+ </summary>
427+ </member>
428+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetTimeout(System.Int32)">
429+ <summary>
430+ 指定した時間が経過したら切断するように設定します。
431+ </summary>
432+ <param name="waitTime">切断するまでの時間(ミリ秒単位)。0以下を指定するとすぐに切断します。</param>
433+ </member>
434+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetStartedEvent(System.EventHandler)">
435+ <summary>
436+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.Started"/>イベントにイベントハンドラを追加します。
437+ </summary>
438+ <param name="handler">イベントハンドラ</param>
439+ </member>
440+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetStoppedEvent(System.EventHandler{Azyobuzi.UserStreamEx.StoppedEventArgs})">
441+ <summary>
442+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.Stopped"/>イベントにイベントハンドラを追加します。
443+ </summary>
444+ <param name="handler">イベントハンドラ</param>
445+ </member>
446+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetReceiveFriendsEvent(System.EventHandler{Azyobuzi.UserStreamEx.ReceiveFriendsEventArgs})">
447+ <summary>
448+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.ReceiveFriends"/>イベントにイベントハンドラを追加します。
449+ </summary>
450+ <param name="handler">イベントハンドラ</param>
451+ </member>
452+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetNewTweetEvent(System.EventHandler{Azyobuzi.UserStreamEx.NewTweetEventArgs})">
453+ <summary>
454+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.NewTweet"/>イベントにイベントハンドラを追加します。
455+ </summary>
456+ <param name="handler">イベントハンドラ</param>
457+ </member>
458+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetNewDirectMessageEvent(System.EventHandler{Azyobuzi.UserStreamEx.NewDirectMessageEventArgs})">
459+ <summary>
460+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.NewDirectMessage"/>イベントにイベントハンドラを追加します。
461+ </summary>
462+ <param name="handler">イベントハンドラ</param>
463+ </member>
464+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetDeleteStatusEvent(System.EventHandler{Azyobuzi.UserStreamEx.DeleteStatusEventArgs})">
465+ <summary>
466+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.DeleteStatus"/>イベントにイベントハンドラを追加します。
467+ </summary>
468+ <param name="handler">イベントハンドラ</param>
469+ </member>
470+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetReceiveEventEvent(System.EventHandler{Azyobuzi.UserStreamEx.ReceiveEventEventArgs})">
471+ <summary>
472+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.ReceiveEvent"/>イベントにイベントハンドラを追加します。
473+ </summary>
474+ <param name="handler">イベントハンドラ</param>
475+ </member>
476+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetTrackLimitEvent(System.EventHandler{Azyobuzi.UserStreamEx.TrackLimitEventArgs})">
477+ <summary>
478+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.TrackLimit"/>イベントにイベントハンドラを追加します。
479+ </summary>
480+ <param name="handler">イベントハンドラ</param>
481+ </member>
482+ <member name="M:Azyobuzi.UserStreamEx.UserStream.SetReceiveUnsupportedDataEvent(System.EventHandler{Azyobuzi.UserStreamEx.ReceiveJsonEventArgs})">
483+ <summary>
484+ <see cref="E:Azyobuzi.UserStreamEx.UserStream.ReceiveUnsupportedData"/>イベントにイベントハンドラを追加します。
485+ </summary>
486+ <param name="handler">イベントハンドラ</param>
487+ </member>
488+ <member name="P:Azyobuzi.UserStreamEx.UserStream.StreamingWriter">
489+ <summary>
490+ 取得したデータを書き込む<see cref="T:System.IO.TextWriter"/>
491+ </summary>
492+ </member>
493+ <member name="E:Azyobuzi.UserStreamEx.UserStream.Started">
494+ <summary>
495+ 接続を開始するときに発生します。
496+ </summary>
497+ </member>
498+ <member name="E:Azyobuzi.UserStreamEx.UserStream.Stopped">
499+ <summary>
500+ 切断されたときに発生します。
501+ </summary>
502+ </member>
503+ <member name="E:Azyobuzi.UserStreamEx.UserStream.ReceiveFriends">
504+ <summary>
505+ friends(following)のID一覧を受け取ったときに発生します。通常は開始直後に一回だけ発生します。
506+ </summary>
507+ </member>
508+ <member name="E:Azyobuzi.UserStreamEx.UserStream.NewTweet">
509+ <summary>
510+ 新しいツイートを受け取ったときに発生します。
511+ </summary>
512+ </member>
513+ <member name="E:Azyobuzi.UserStreamEx.UserStream.NewDirectMessage">
514+ <summary>
515+ 新しいダイレクトメッセージを受信・送信したときに発生します。
516+ </summary>
517+ </member>
518+ <member name="E:Azyobuzi.UserStreamEx.UserStream.DeleteStatus">
519+ <summary>
520+ ツイートまたはダイレクトメッセージが削除されたときに発生します。ハンドラでは直ちに表示から消すような処理をしてください。
521+ </summary>
522+ </member>
523+ <member name="E:Azyobuzi.UserStreamEx.UserStream.ReceiveEvent">
524+ <summary>
525+ イベントを受信したときに発生します。
526+ </summary>
527+ </member>
528+ <member name="E:Azyobuzi.UserStreamEx.UserStream.TrackLimit">
529+ <summary>
530+ Twitter側で処理しきれないツイートがあったときに発生します。
531+ </summary>
532+ <remarks>詳細不明</remarks>
533+ </member>
534+ <member name="E:Azyobuzi.UserStreamEx.UserStream.ReceiveUnsupportedData">
535+ <summary>
536+ 対応していないデータを受け取ったときに発生します。
537+ </summary>
538+ </member>
539+ </members>
540+</doc>
Binary files /dev/null and "b/\202\302\202\242\202\351\202\361\202\351\202\361/lib/UserStreamEx.dll" differ
Binary files /dev/null and "b/\202\302\202\242\202\351\202\361\202\351\202\361/lib/UserStreamEx.pdb" differ
--- "a/\202\302\202\242\202\351\202\361\202\351\202\361/\202\302\202\242\202\351\202\361\202\351\202\361.csproj"
+++ "b/\202\302\202\242\202\351\202\361\202\351\202\361/\202\302\202\242\202\351\202\361\202\351\202\361.csproj"
@@ -73,6 +73,11 @@
7373 <Reference Include="System.Drawing" />
7474 <Reference Include="System.Windows.Forms" />
7575 <Reference Include="System.Xml" />
76+ <Reference Include="UserStreamEx, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
77+ <SpecificVersion>False</SpecificVersion>
78+ <HintPath>lib\UserStreamEx.dll</HintPath>
79+ <Private>False</Private>
80+ </Reference>
7681 </ItemGroup>
7782 <ItemGroup>
7883 <Compile Include="Comparers\StatusComparer.cs" />
@@ -216,6 +221,16 @@
216221 <DependentUpon>UpdateStatusPanel.cs</DependentUpon>
217222 </Compile>
218223 <Compile Include="Previewer2.cs" />
224+ <Content Include="lib\DynamicJson.dll">
225+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
226+ </Content>
227+ <Content Include="lib\UserStreamEx.dll">
228+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
229+ </Content>
230+ <Content Include="lib\UserStreamEx.pdb">
231+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
232+ </Content>
233+ <Content Include="lib\UserStreamEx.XML" />
219234 <EmbeddedResource Include="Forms\MainForm.resx">
220235 <DependentUpon>MainForm.cs</DependentUpon>
221236 </EmbeddedResource>