1 Public Class ListElement
3 Public Name As String = ""
4 Public Description As String = ""
5 Public Slug As String = ""
6 Public IsPublic As Boolean = True
7 Public SubscriberCount As Integer = 0 '購読者数
8 Public MemberCount As Integer = 0 'リストメンバ数
9 Public UserId As Long = 0
10 Public Username As String = ""
11 Public Nickname As String = ""
13 Protected _tw As Twitter
15 Private _members As List(Of UserInfo) = Nothing
16 Private _cursor As Long = -1
22 Public Sub New(ByVal xmlNode As Xml.XmlNode, ByVal tw As Twitter)
23 Me.Description = xmlNode.Item("description").InnerText
24 Me.Id = Long.Parse(xmlNode.Item("id").InnerText)
25 Me.IsPublic = (xmlNode.Item("mode").InnerText = "public")
26 Me.MemberCount = Integer.Parse(xmlNode.Item("member_count").InnerText)
27 Me.Name = xmlNode.Item("name").InnerText
28 Me.SubscriberCount = Integer.Parse(xmlNode.Item("subscriber_count").InnerText)
29 Me.Slug = xmlNode.Item("slug").InnerText
30 Dim xUserEntry As Xml.XmlElement = CType(xmlNode.SelectSingleNode("./user"), Xml.XmlElement)
31 Me.Nickname = xUserEntry.Item("name").InnerText
32 Me.Username = xUserEntry.Item("screen_name").InnerText
33 Me.UserId = Long.Parse(xUserEntry.Item("id").InnerText)
38 Public Overridable Function Refresh() As String
39 Return _tw.EditList(Me.Id.ToString(), Name, Not Me.IsPublic, Me.Description, Me)
42 <Xml.Serialization.XmlIgnore()>
43 Public ReadOnly Property Members As List(Of UserInfo)
45 If Me._members Is Nothing Then Me._members = New List(Of UserInfo)
50 <Xml.Serialization.XmlIgnore()>
51 Public ReadOnly Property Cursor As Long
57 Public Function RefreshMembers() As String
58 Dim users As New List(Of UserInfo)()
60 Dim result As String = Me._tw.GetListMembers(Me.Id.ToString(), users, _cursor)
62 Return If(String.IsNullOrEmpty(result), Me.ToString, result)
65 Public Function GetMoreMembers() As String
66 Dim result As String = Me._tw.GetListMembers(Me.Id.ToString(), Me._members, _cursor)
67 Return If(String.IsNullOrEmpty(result), Me.ToString, result)
70 Public Overrides Function ToString() As String
71 Return "@" + Username + "/" + Name + " [" + If(Me.IsPublic, "Public", "Protected") + "]"