more fix
This commit is contained in:
parent
e53beb1f9d
commit
a2cd844394
5 changed files with 24 additions and 6 deletions
|
@ -10,6 +10,7 @@ namespace BirdsiteLive.ActivityPub.Models
|
||||||
public string[] context { get; set; } = new[] { "https://www.w3.org/ns/activitystreams" };
|
public string[] context { get; set; } = new[] { "https://www.w3.org/ns/activitystreams" };
|
||||||
|
|
||||||
public string id { get; set; }
|
public string id { get; set; }
|
||||||
|
public string announceId { get; set; }
|
||||||
public string type { get; } = "Note";
|
public string type { get; } = "Note";
|
||||||
public string summary { get; set; }
|
public string summary { get; set; }
|
||||||
public string inReplyTo { get; set; }
|
public string inReplyTo { get; set; }
|
||||||
|
|
|
@ -62,7 +62,14 @@ namespace BirdsiteLive.Domain
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var actor = UrlFactory.GetActorUrl(_instanceSettings.Domain, username);
|
var actor = UrlFactory.GetActorUrl(_instanceSettings.Domain, username);
|
||||||
var noteUri = UrlFactory.GetNoteUrl(_instanceSettings.Domain, username, noteId);
|
String noteUri;
|
||||||
|
if (activityType == "Create")
|
||||||
|
{
|
||||||
|
noteUri = UrlFactory.GetNoteUrl(_instanceSettings.Domain, username, noteId);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
noteUri = UrlFactory.GetNoteUrl(_instanceSettings.Domain, username, note.announceId);
|
||||||
|
}
|
||||||
|
|
||||||
var now = DateTime.UtcNow;
|
var now = DateTime.UtcNow;
|
||||||
var nowString = now.ToString("s") + "Z";
|
var nowString = now.ToString("s") + "Z";
|
||||||
|
|
|
@ -42,10 +42,12 @@ namespace BirdsiteLive.Domain
|
||||||
{
|
{
|
||||||
var actorUrl = UrlFactory.GetActorUrl(_instanceSettings.Domain, username);
|
var actorUrl = UrlFactory.GetActorUrl(_instanceSettings.Domain, username);
|
||||||
var noteUrl = UrlFactory.GetNoteUrl(_instanceSettings.Domain, username, tweet.Id.ToString());
|
var noteUrl = UrlFactory.GetNoteUrl(_instanceSettings.Domain, username, tweet.Id.ToString());
|
||||||
|
String announceId = null;
|
||||||
if (tweet.IsRetweet)
|
if (tweet.IsRetweet)
|
||||||
{
|
{
|
||||||
actorUrl = UrlFactory.GetActorUrl(_instanceSettings.Domain, tweet.OriginalAuthor.Acct);
|
actorUrl = UrlFactory.GetActorUrl(_instanceSettings.Domain, tweet.OriginalAuthor.Acct);
|
||||||
noteUrl = UrlFactory.GetNoteUrl(_instanceSettings.Domain, tweet.OriginalAuthor.Acct, tweet.Id.ToString());
|
noteUrl = UrlFactory.GetNoteUrl(_instanceSettings.Domain, tweet.OriginalAuthor.Acct, tweet.Id.ToString());
|
||||||
|
announceId = UrlFactory.GetNoteUrl(_instanceSettings.Domain, username, tweet.RetweetId.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
var to = $"{actorUrl}/followers";
|
var to = $"{actorUrl}/followers";
|
||||||
|
@ -79,6 +81,7 @@ namespace BirdsiteLive.Domain
|
||||||
var note = new Note
|
var note = new Note
|
||||||
{
|
{
|
||||||
id = noteUrl,
|
id = noteUrl,
|
||||||
|
announceId = announceId,
|
||||||
|
|
||||||
published = tweet.CreatedAt.ToString("s") + "Z",
|
published = tweet.CreatedAt.ToString("s") + "Z",
|
||||||
url = noteUrl,
|
url = noteUrl,
|
||||||
|
|
|
@ -15,6 +15,7 @@ namespace BirdsiteLive.Twitter.Models
|
||||||
public bool IsThread { get; set; }
|
public bool IsThread { get; set; }
|
||||||
public bool IsRetweet { get; set; }
|
public bool IsRetweet { get; set; }
|
||||||
public string RetweetUrl { get; set; }
|
public string RetweetUrl { get; set; }
|
||||||
|
public long RetweetId { get; set; }
|
||||||
public TwitterUser OriginalAuthor { get; set; }
|
public TwitterUser OriginalAuthor { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -83,6 +83,11 @@ namespace BirdsiteLive.Twitter
|
||||||
}
|
}
|
||||||
public async Task<ExtractedTweet[]> GetTimelineAsync(string username, int nberTweets, long fromTweetId = -1)
|
public async Task<ExtractedTweet[]> GetTimelineAsync(string username, int nberTweets, long fromTweetId = -1)
|
||||||
{
|
{
|
||||||
|
if (nberTweets < 5)
|
||||||
|
nberTweets = 5;
|
||||||
|
|
||||||
|
if (nberTweets > 100)
|
||||||
|
nberTweets = 100;
|
||||||
|
|
||||||
await _twitterAuthenticationInitializer.EnsureAuthenticationIsInitialized();
|
await _twitterAuthenticationInitializer.EnsureAuthenticationIsInitialized();
|
||||||
|
|
||||||
|
@ -91,9 +96,10 @@ namespace BirdsiteLive.Twitter
|
||||||
|
|
||||||
var reqURL = "https://api.twitter.com/2/users/"
|
var reqURL = "https://api.twitter.com/2/users/"
|
||||||
+ user.Id +
|
+ user.Id +
|
||||||
"/tweets?expansions=in_reply_to_user_id,attachments.media_keys,entities.mentions.username,referenced_tweets.id.author_id&tweet.fields=id"
|
"/tweets?expansions=in_reply_to_user_id,attachments.media_keys,entities.mentions.username,referenced_tweets.id.author_id"
|
||||||
|
+ "&tweet.fields=id,created_at"
|
||||||
+ "&media.fields=media_key,duration_ms,height,preview_image_url,type,url,width,public_metrics,alt_text,variants"
|
+ "&media.fields=media_key,duration_ms,height,preview_image_url,type,url,width,public_metrics,alt_text,variants"
|
||||||
+ "&max_results=5"
|
+ "&max_results=" + nberTweets
|
||||||
+ "" ; // ?since_id=2324234234
|
+ "" ; // ?since_id=2324234234
|
||||||
JsonDocument tweets;
|
JsonDocument tweets;
|
||||||
try
|
try
|
||||||
|
@ -147,7 +153,7 @@ namespace BirdsiteLive.Twitter
|
||||||
var originalAuthor = _twitterUserService.GetUser(match.Groups[1].Value);
|
var originalAuthor = _twitterUserService.GetUser(match.Groups[1].Value);
|
||||||
var statusId = Int64.Parse(first.GetProperty("id").GetString());
|
var statusId = Int64.Parse(first.GetProperty("id").GetString());
|
||||||
var extracted = GetTweet(statusId);
|
var extracted = GetTweet(statusId);
|
||||||
extracted.Id = Int64.Parse(tweet.GetProperty("id").GetString());
|
extracted.RetweetId = Int64.Parse(tweet.GetProperty("id").GetString());
|
||||||
extracted.IsRetweet = true;
|
extracted.IsRetweet = true;
|
||||||
extracted.OriginalAuthor = originalAuthor;
|
extracted.OriginalAuthor = originalAuthor;
|
||||||
return extracted;
|
return extracted;
|
||||||
|
@ -194,7 +200,7 @@ namespace BirdsiteLive.Twitter
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
_logger.LogError("Tried getting media from tweet, but got error:", e);
|
_logger.LogError("Tried getting media from tweet, but got error: \n", e.StackTrace);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,7 +211,7 @@ namespace BirdsiteLive.Twitter
|
||||||
InReplyToStatusId = replyId,
|
InReplyToStatusId = replyId,
|
||||||
InReplyToAccount = replyAccountString,
|
InReplyToAccount = replyAccountString,
|
||||||
MessageContent = tweet.GetProperty("text").GetString(),
|
MessageContent = tweet.GetProperty("text").GetString(),
|
||||||
CreatedAt = DateTime.Now, // tweet.GetProperty("data").GetProperty("in_reply_to_status_id").GetDateTime(),
|
CreatedAt = tweet.GetProperty("created_at").GetDateTime(),
|
||||||
IsReply = IsReply,
|
IsReply = IsReply,
|
||||||
IsThread = false,
|
IsThread = false,
|
||||||
IsRetweet = IsRetweet,
|
IsRetweet = IsRetweet,
|
||||||
|
|
Loading…
Add table
Reference in a new issue