Hey
Änderungen:
Spoiler anzeigen
Da ich es in meinem aktuellen Projekt brauche hab ich hier mal eine Klasse geschrieben um alle oder eine vorgegebene Anzahl an Tweets
eines Users auszulesen. Zurückgegeben wird ein
Datum.
Hier die entsprechende Klasse:
Spoiler anzeigen
Bei der Nutzung kann man das Dictionary einfach per For-Schleife
durchlaufen und dabei Keys und Values auslesen
Das ganze natürlich Option Strict On und hoffentlich etwas verständlich
Grüße,
Nikx
Änderungen:
07.05.2013 - Key ist nun das Datum, verhindert Fehler bei doppelten Posts. @hal2000:
07.05.2013 - TweetQuantity muss nun <= 20 sein, da die TwitterAPI scheinbar nur die neusten 20 Tweets liefert
07.05.2013 - TweetQuantity muss nun <= 20 sein, da die TwitterAPI scheinbar nur die neusten 20 Tweets liefert
Da ich es in meinem aktuellen Projekt brauche hab ich hier mal eine Klasse geschrieben um alle oder eine vorgegebene Anzahl an Tweets
eines Users auszulesen. Zurückgegeben wird ein
Dictionary(Of Date, String)
. String enthält dabei den Inhalt des Tweets, Date eben dasDatum.
Hier die entsprechende Klasse:
VB.NET-Quellcode
- Option Strict On
- Imports System.Net
- Public Class TwitterFeed
- Private User As String = ""
- Private API As String = "http://api.twitter.com/1/statuses/user_timeline.rss?screen_name="
- Sub New(ByVal Name As String)
- User = Name
- API = API & User
- End Sub
- Public Function GetFeed(Optional ByVal TweetQuantity As Integer = 0) As Dictionary(Of Date, String)
- Dim TweetDir As New Dictionary(Of Date, String)
- Dim Web As New WebClient
- Dim XMLRead As New Xml.XmlDocument
- XMLRead.LoadXml(Web.DownloadString(New Uri(API)))
- Dim TweetList As New List(Of String)
- Dim DateList As New List(Of Date)
- Dim CountItemNodes As Integer = 0
- For Each Node As Xml.XmlNode In XMLRead.SelectNodes("rss/channel/item")
- CountItemNodes = CountItemNodes + 1
- Next
- If TweetQuantity > CountItemNodes Then
- Throw New Exception("More Tweets requested then available.")
- End If
- If Not TweetQuantity > 0 Then
- For Each Node As Xml.XmlNode In XMLRead.SelectNodes("rss/channel/item/description")
- TweetList.Add(Node.InnerText)
- Next
- For Each Node As Xml.XmlNode In XMLRead.SelectNodes("rss/channel/item/pubDate")
- DateList.Add(Date.Parse(Node.InnerText))
- Next
- ElseIf TweetQuantity > 0 AndAlso TweetQuantity <= 20 Then
- Dim CountTweets As Integer = 0
- Dim COuntDates As Integer = 0
- For Each Node As Xml.XmlNode In XMLRead.SelectNodes("rss/channel/item/description")
- If CountTweets = TweetQuantity Then Exit For
- TweetList.Add(Node.InnerText)
- CountTweets = CountTweets + 1
- Next
- For Each Node As Xml.XmlNode In XMLRead.SelectNodes("rss/channel/item/pubDate")
- If COuntDates = TweetQuantity Then Exit For
- DateList.Add(Date.Parse(Node.InnerText))
- COuntDates = COuntDates + 1
- Next
- End If
- If Not TweetList.Count = DateList.Count Then Throw New Exception("Error while getting requested tweets.") 'Kein besserer Fehler eingefallen :D
- For Counter As Integer = 0 To TweetList.Count - 1
- TweetDir.Add(DateList(Counter), TweetList(Counter))
- Next
- Return TweetDir
- End Function
- End Class
Bei der Nutzung kann man das Dictionary einfach per For-Schleife
durchlaufen und dabei Keys und Values auslesen
Das ganze natürlich Option Strict On und hoffentlich etwas verständlich
Grüße,
Nikx
"Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero
Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Nikx“ ()