OSDN Git Service

DELETEイベントをイベントビューアに載せるように(問題点:DMのDELETEイベントがTweenでの削除完了後に来るためその時点ではイベントソースがわからない...
authorsyo68k <syo68k@users.sourceforge.jp>
Fri, 10 Dec 2010 01:40:57 +0000 (01:40 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:17:05 +0000 (23:17 +0900)
git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@1193 e39ad16e-3079-482e-bb30-4b4d378143b6

Tween/StatusDictionary.vb
Tween/Tween.vb
Tween/Twitter.vb

index 22ee320..cd2f7c5 100644 (file)
@@ -609,8 +609,18 @@ Public NotInheritable Class TabInformations
         End SyncLock
     End Sub
 
-    Public Sub RemovePostReserve(ByVal id As Long)
+    Public Sub RemovePostReserve(ByVal id As Long, ByRef post As PostClass)
         SyncLock LockObj
+            post = Nothing
+            If _statuses.ContainsKey(id) Then
+                post = _statuses(id).Copy
+            Else
+                'DM
+                Dim tb As TabClass = Me.GetTabByType(TabUsageType.DirectMessage)
+                If tb.Contains(id) Then
+                    post = tb.Posts(id).Copy
+                End If
+            End If
             Me._deletedIds.Add(id)
         End SyncLock
     End Sub
index 67bce4e..a13d744 100644 (file)
@@ -9836,8 +9836,8 @@ RETRY:
         MessageBox.Show(buf.ToString, "アイコンキャッシュ使用状況")
     End Sub
 
-    Private Sub tw_PostDeleted(ByVal id As Long)
-        _statuses.RemovePostReserve(id)
+    Private Sub tw_PostDeleted(ByVal id As Long, ByRef post As PostClass)
+        _statuses.RemovePostReserve(id, post)
     End Sub
 
     Private Sub tw_NewPostFromStream()
index b48bb05..f5e5978 100644 (file)
@@ -2792,7 +2792,7 @@ Public Class Twitter
     Public Event UserStreamStarted()
     Public Event UserStreamStopped()
     Public Event UserStreamGetFriendsList()
-    Public Event PostDeleted(ByVal id As Long)
+    Public Event PostDeleted(ByVal id As Long, ByRef post As PostClass)
     Public Event UserStreamEventReceived(ByVal eventType As String)
     Private WithEvents userStream As TwitterUserstream
 
@@ -2833,11 +2833,13 @@ Public Class Twitter
                 Exit Sub
             ElseIf xElm.Element("delete") IsNot Nothing Then
                 Debug.Print("delete")
+                Dim post As PostClass = Nothing
                 If xElm.Element("delete").Element("direct_message") IsNot Nothing Then
-                    RaiseEvent PostDeleted(CLng(xElm.Element("delete").Element("direct_message").Element("id").Value))
+                    RaiseEvent PostDeleted(CLng(xElm.Element("delete").Element("direct_message").Element("id").Value), post)
                 Else
-                    RaiseEvent PostDeleted(CLng(xElm.Element("delete").Element("status").Element("id").Value))
+                    RaiseEvent PostDeleted(CLng(xElm.Element("delete").Element("status").Element("id").Value), post)
                 End If
+                CreateDeleteEvent(DateTime.Now, post)
                 Exit Sub
             ElseIf xElm.Element("limit") IsNot Nothing Then
                 Debug.Print(line)
@@ -2867,6 +2869,26 @@ Public Class Twitter
         RaiseEvent NewPostFromStream()
     End Sub
 
+    Private Sub CreateDeleteEvent(ByVal createdat As DateTime, ByVal post As PostClass)
+        Dim evt As New FormattedEvent
+        evt.CreatedAt = createdat
+        If post Is Nothing Then
+            evt.Event = "DELETE(UNKNOWN)"
+            evt.Username = "--UNKNOWN--"
+            evt.Target = "--UNKNOWN--"
+        Else
+            If post.IsDm Then
+                evt.Event = "DELETE(DM)"
+            Else
+                evt.Event = "DELETE(Post)"
+            End If
+            evt.Username = post.Name
+            evt.Target = post.Data
+        End If
+        Me.StoredEvent.Insert(0, evt)
+        RaiseEvent UserStreamEventReceived(evt.Event)
+    End Sub
+
     Private Sub CreateEventFromJson(ByVal content As String)
         Dim eventData As TwitterDataModel.EventData = Nothing
         Try