fix(activitypub): set created_by to null for reblog if no user + update episode oembed data

This commit is contained in:
Yassine Doghri 2022-01-23 15:42:56 +00:00
parent 7aa37d24ac
commit 209dfbd134
7 changed files with 36 additions and 26 deletions

View File

@ -13,7 +13,7 @@ class Embed extends BaseConfig
* Embeddable player config
* --------------------------------------------------------------------------
*/
public int $width = 600;
public int $width = 485;
public int $height = 144;
public int $height = 112;
}

View File

@ -10,10 +10,18 @@ declare(strict_types=1);
namespace Config;
use App\Libraries\NoteObject;
use Modules\Fediverse\Config\Fediverse as FediverseBaseConfig;
class Fediverse extends FediverseBaseConfig
{
/**
* --------------------------------------------------------------------
* ActivityPub Objects
* --------------------------------------------------------------------
*/
public string $noteObject = NoteObject::class;
public function __construct()
{
parent::__construct();

View File

@ -205,14 +205,16 @@ class EpisodeController extends BaseController
'html' =>
'<iframe src="' .
$this->episode->embed_url .
'" width="100%" height="144" frameborder="0" scrolling="no"></iframe>',
'width' => 600,
'height' => 144,
'thumbnail_url' => $this->episode->cover->large_url,
'" width="100%" height="' . config('Embed')->height . '" frameborder="0" scrolling="no"></iframe>',
'width' => config('Embed')
->width,
'height' => config('Embed')
->height,
'thumbnail_url' => $this->episode->cover->og_url,
'thumbnail_width' => config('Images')
->podcastCoverSizes['large']['width'],
->podcastCoverSizes['og']['width'],
'thumbnail_height' => config('Images')
->podcastCoverSizes['large']['height'],
->podcastCoverSizes['og']['height'],
]);
}
@ -227,9 +229,9 @@ class EpisodeController extends BaseController
$oembed->addChild('provider_url', $this->podcast->link);
$oembed->addChild('author_name', $this->podcast->title);
$oembed->addChild('author_url', $this->podcast->link);
$oembed->addChild('thumbnail', $this->episode->cover->large_url);
$oembed->addChild('thumbnail_width', (string) config('Images')->podcastCoverSizes['large']['width']);
$oembed->addChild('thumbnail_height', (string) config('Images')->podcastCoverSizes['large']['height']);
$oembed->addChild('thumbnail', $this->episode->cover->og_url);
$oembed->addChild('thumbnail_width', (string) config('Images')->podcastCoverSizes['og']['width']);
$oembed->addChild('thumbnail_height', (string) config('Images')->podcastCoverSizes['og']['height']);
$oembed->addChild(
'html',
htmlentities(

View File

@ -24,12 +24,7 @@ class NoteObject extends FediverseNoteObject
if ($post->episode_id) {
$this->content =
'<a href="' .
$post->episode->link .
'" target="_blank" rel="noopener noreferrer">' .
$post->episode->title .
'</a><br/>' .
$post->message_html;
'<a href="' . $post->episode->link . '">' . $post->episode->title . '</a><br/>' . $post->message_html;
}
}
}

View File

@ -30,11 +30,11 @@ class Fediverse extends BaseConfig
* Default avatar and cover images
* --------------------------------------------------------------------
*/
public string $defaultAvatarImagePath = 'media/castopod-avatar_fediveration.jpg';
public string $defaultAvatarImagePath = 'media/avatar-default.jpg';
public string $defaultAvatarImageMimetype = 'image/jpeg';
public string $defaultCoverImagePath = 'media/castopod-banner-pine_fediveration.jpg';
public string $defaultCoverImagePath = 'media/banner-default.jpg';
public string $defaultCoverImageMimetype = 'image/jpeg';

View File

@ -469,11 +469,16 @@ class PostModel extends BaseUuidModel
{
$this->db->transStart();
$userId = null;
if (function_exists('user_id')) {
$userId = user_id();
}
$reblog = new Post([
'actor_id' => $actor->id,
'reblog_of_id' => $post->id,
'published_at' => Time::now(),
'created_by' => user_id(),
'created_by' => $userId,
]);
// add reblog

View File

@ -20,17 +20,17 @@
</head>
<body class="flex" style="background: <?= $themeData['background'] ?>; color: <?= $themeData['text'] ?>;">
<img src="<?= $episode->cover->thumbnail_url ?>" alt="<?= $episode->title ?>" class="flex-shrink w-36 h-36 aspect-square" loading="lazy" />
<div class="flex flex-col items-start flex-1 min-w-0 px-4 pt-4 h-36">
<img src="<?= $episode->cover->thumbnail_url ?>" alt="<?= $episode->title ?>" class="flex-shrink w-28 h-28 aspect-square" loading="lazy" />
<div class="flex flex-col items-start flex-1 min-w-0 px-4 pt-4 h-28">
<a href="https://castopod.org/" class="absolute top-0 right-0 mt-1 mr-2 text-2xl text-pine-500 hover:opacity-75" title="<?= lang('Common.powered_by', [
'castopod' => 'Castopod',
]) ?>" target="_blank" rel="noopener noreferrer"><?= icon('podcasting/castopod') ?></a>
]) ?>"><?= icon('podcasting/castopod') ?></a>
<div class="flex gap-x-2">
<?= episode_numbering($episode->number, $episode->season_number, 'text-xs font-semibold !no-underline border px-1 border-gray-500', true) ?>
<a href="<?= route_to('podcast-activity', $podcast->handle) ?>" style="color: <?= $themeData['text'] ?>;" class="text-xs truncate opacity-75 hover:opacity-100" target="_blank"><?= $podcast->title ?></a>
<a href="<?= route_to('podcast-activity', $podcast->handle) ?>" style="color: <?= $themeData['text'] ?>;" class="text-xs truncate opacity-75 hover:opacity-100"><?= $podcast->title ?></a>
</div>
<a href="<?= $episode->link ?>" class="flex flex-col items-start text-sm" style="color: <?= $themeData['text'] ?>;" target="_blank">
<h1 class="text-lg font-semibold leading-tight opacity-100 line-clamp-2 hover:opacity-75"><?= $episode->title ?></h1>
<a href="<?= $episode->link ?>" class="flex flex-col items-start text-sm" style="color: <?= $themeData['text'] ?>;">
<h1 class="font-semibold leading-tight opacity-100 line-clamp-2 hover:opacity-75"><?= $episode->title ?></h1>
</a>
<vm-player
id="castopod-vm-player"