0
0
mirror of https://github.com/RSS-Bridge/rss-bridge.git synced 2025-08-25 04:45:50 +00:00
This commit is contained in:
mruac 2025-08-17 10:29:18 -04:00 committed by GitHub
commit a30f30d67d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -528,8 +528,9 @@ class BlueskyBridge extends BridgeAbstract
$postType = isset($postRecord['reply']) ? 'reply' : 'post';
$description .= "Replying to <b>$postDisplayName</b> $postAuthorHandle's <a href=\"$postUri\">$postType</a>:<br>";
} else {
// aaa @aaa.com posted:
$description .= "<b>$postDisplayName</b> $postAuthorHandle <a href=\"$postUri\">posted</a>:<br>";
// aaa @aaa.com posted/replied:
$postType = isset($postRecord['reply']) ? 'replied' : 'posted';
$description .= "<b>$postDisplayName</b> $postAuthorHandle <a href=\"$postUri\">$postType</a>:<br>";
}
$description .= $this->textToDescription($postRecord);
return $description;
@ -555,10 +556,20 @@ class BlueskyBridge extends BridgeAbstract
//use "Post by A, replying to B, quoting C" instead of post contents
$title = '';
if (isset($post['reason']) && str_contains($post['reason']['$type'], 'reasonRepost')) {
$title .= 'Repost by ' . $this->fallbackAuthor($post['reason']['by'], 'display') . ', post by ' . $this->fallbackAuthor($post['post']['author'], 'display');
$title .= 'Repost by ' . $this->fallbackAuthor($post['reason']['by'], 'display');
if (isset($post['reply'])) {
$title .= ', reply by ';
} else {
$title .= ', post by ';
}
$title .= $this->fallbackAuthor($post['post']['author'], 'display');
} else {
if (isset($post['reply'])) {
$title .= 'Reply by ' . $this->fallbackAuthor($post['post']['author'], 'display');
} else {
$title .= 'Post by ' . $this->fallbackAuthor($post['post']['author'], 'display');
}
}
if (isset($post['reply'])) {
if (isset($post['reply']['parent']['blocked'])) {
@ -595,15 +606,21 @@ class BlueskyBridge extends BridgeAbstract
private function resolveHandle($handle)
{
$uri = 'https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=' . urlencode($handle);
$response = json_decode(getContents($uri), true);
$url = 'https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=' . urlencode($handle);
$response = $this->loadCacheValue($url) ?? json_decode(getContents($url), true);
if (isset($response['did'])) {
$this->saveCacheValue($url, $response, 604800);
}
return $response['did'];
}
private function getProfile($did)
{
$uri = 'https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=' . urlencode($did);
$response = json_decode(getContents($uri), true);
$url = 'https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=' . urlencode($did);
$response = $this->loadCacheValue($url) ?? json_decode(getContents($url), true);
if ($response['did'] === $did ?? false) {
$this->saveCacheValue($url, $response);
}
return $response;
}