wip 2
This commit is contained in:
parent
6b2579db50
commit
d796a6c52d
2 changed files with 12 additions and 14 deletions
|
@ -9,21 +9,21 @@ namespace BirdsiteLive.Twitter.Extractors
|
||||||
{
|
{
|
||||||
public interface ITweetExtractor
|
public interface ITweetExtractor
|
||||||
{
|
{
|
||||||
ExtractedTweet Extract(JsonDocument tweet);
|
ExtractedTweet Extract(JsonElement tweet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TweetExtractor : ITweetExtractor
|
public class TweetExtractor : ITweetExtractor
|
||||||
{
|
{
|
||||||
public ExtractedTweet Extract(JsonDocument tweet)
|
public ExtractedTweet Extract(JsonElement tweet)
|
||||||
{
|
{
|
||||||
var extractedTweet = new ExtractedTweet
|
var extractedTweet = new ExtractedTweet
|
||||||
{
|
{
|
||||||
Id = tweet.RootElement.GetProperty("data").GetProperty("id").GetInt64(),
|
Id = tweet.GetProperty("id").GetInt64(),
|
||||||
InReplyToStatusId = tweet.RootElement.GetProperty("data").GetProperty("in_reply_to_status_id").GetInt64(),
|
InReplyToStatusId = null, //tweet.GetProperty("in_reply_to_status_id").GetInt64(),
|
||||||
InReplyToAccount = tweet.RootElement.GetProperty("data").GetProperty("in_reply_to_status_id").GetString(),
|
InReplyToAccount = null, //tweet.GetProperty("in_reply_to_user_id").GetString(),
|
||||||
MessageContent = ExtractMessage(tweet),
|
MessageContent = ExtractMessage(tweet),
|
||||||
Media = ExtractMedia(tweet),
|
Media = ExtractMedia(tweet),
|
||||||
CreatedAt = tweet.RootElement.GetProperty("data").GetProperty("in_reply_to_status_id").GetDateTime(),
|
CreatedAt = DateTime.Now, // tweet.GetProperty("data").GetProperty("in_reply_to_status_id").GetDateTime(),
|
||||||
IsReply = false,
|
IsReply = false,
|
||||||
IsThread = false,
|
IsThread = false,
|
||||||
IsRetweet = false,
|
IsRetweet = false,
|
||||||
|
@ -33,16 +33,16 @@ namespace BirdsiteLive.Twitter.Extractors
|
||||||
return extractedTweet;
|
return extractedTweet;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string ExtractRetweetUrl(JsonDocument tweet)
|
private string ExtractRetweetUrl(JsonElement tweet)
|
||||||
{
|
{
|
||||||
var retweetId = "123";
|
var retweetId = "123";
|
||||||
return $"https://t.co/{retweetId}";
|
return $"https://t.co/{retweetId}";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private string ExtractMessage(JsonDocument tweet)
|
private string ExtractMessage(JsonElement tweet)
|
||||||
{
|
{
|
||||||
return "hello world";
|
return tweet.GetProperty("text").GetString();
|
||||||
//var message = tweet.FullText;
|
//var message = tweet.FullText;
|
||||||
//var tweetUrls = tweet.Media.Select(x => x.URL).Distinct();
|
//var tweetUrls = tweet.Media.Select(x => x.URL).Distinct();
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ namespace BirdsiteLive.Twitter.Extractors
|
||||||
//return message;
|
//return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ExtractedMedia[] ExtractMedia(JsonDocument tweet)
|
private ExtractedMedia[] ExtractMedia(JsonElement tweet)
|
||||||
{
|
{
|
||||||
//var media = tweet.Media;
|
//var media = tweet.Media;
|
||||||
//if (tweet.IsRetweet && tweet.RetweetedTweet != null)
|
//if (tweet.IsRetweet && tweet.RetweetedTweet != null)
|
||||||
|
|
|
@ -62,7 +62,7 @@ namespace BirdsiteLive.Twitter
|
||||||
|
|
||||||
_statisticsHandler.CalledTweetApi();
|
_statisticsHandler.CalledTweetApi();
|
||||||
if (tweet == null) return null; //TODO: test this
|
if (tweet == null) return null; //TODO: test this
|
||||||
return _tweetExtractor.Extract(tweet);
|
return _tweetExtractor.Extract(tweet.RootElement);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -105,9 +105,7 @@ namespace BirdsiteLive.Twitter
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return tweets.RootElement.GetProperty("data").EnumerateArray().Select<JsonElement, ExtractedTweet>(_tweetExtractor.Extract).ToArray();
|
||||||
return Array.Empty<ExtractedTweet>();
|
|
||||||
//return tweets.RootElement.GetProperty("data").Select(_tweetExtractor.Extract).ToArray();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue