mirror of
https://code.castopod.org/adaures/castopod
synced 2025-05-25 19:42:02 +00:00
fix(activitypub): set created_by to null for reblog if no user + update episode oembed data
This commit is contained in:
parent
7aa37d24ac
commit
209dfbd134
app
modules/Fediverse
themes/cp_app
@ -13,7 +13,7 @@ class Embed extends BaseConfig
|
|||||||
* Embeddable player config
|
* Embeddable player config
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
public int $width = 600;
|
public int $width = 485;
|
||||||
|
|
||||||
public int $height = 144;
|
public int $height = 112;
|
||||||
}
|
}
|
||||||
|
@ -10,10 +10,18 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Config;
|
namespace Config;
|
||||||
|
|
||||||
|
use App\Libraries\NoteObject;
|
||||||
use Modules\Fediverse\Config\Fediverse as FediverseBaseConfig;
|
use Modules\Fediverse\Config\Fediverse as FediverseBaseConfig;
|
||||||
|
|
||||||
class Fediverse extends FediverseBaseConfig
|
class Fediverse extends FediverseBaseConfig
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* --------------------------------------------------------------------
|
||||||
|
* ActivityPub Objects
|
||||||
|
* --------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
public string $noteObject = NoteObject::class;
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
@ -205,14 +205,16 @@ class EpisodeController extends BaseController
|
|||||||
'html' =>
|
'html' =>
|
||||||
'<iframe src="' .
|
'<iframe src="' .
|
||||||
$this->episode->embed_url .
|
$this->episode->embed_url .
|
||||||
'" width="100%" height="144" frameborder="0" scrolling="no"></iframe>',
|
'" width="100%" height="' . config('Embed')->height . '" frameborder="0" scrolling="no"></iframe>',
|
||||||
'width' => 600,
|
'width' => config('Embed')
|
||||||
'height' => 144,
|
->width,
|
||||||
'thumbnail_url' => $this->episode->cover->large_url,
|
'height' => config('Embed')
|
||||||
|
->height,
|
||||||
|
'thumbnail_url' => $this->episode->cover->og_url,
|
||||||
'thumbnail_width' => config('Images')
|
'thumbnail_width' => config('Images')
|
||||||
->podcastCoverSizes['large']['width'],
|
->podcastCoverSizes['og']['width'],
|
||||||
'thumbnail_height' => config('Images')
|
'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('provider_url', $this->podcast->link);
|
||||||
$oembed->addChild('author_name', $this->podcast->title);
|
$oembed->addChild('author_name', $this->podcast->title);
|
||||||
$oembed->addChild('author_url', $this->podcast->link);
|
$oembed->addChild('author_url', $this->podcast->link);
|
||||||
$oembed->addChild('thumbnail', $this->episode->cover->large_url);
|
$oembed->addChild('thumbnail', $this->episode->cover->og_url);
|
||||||
$oembed->addChild('thumbnail_width', (string) config('Images')->podcastCoverSizes['large']['width']);
|
$oembed->addChild('thumbnail_width', (string) config('Images')->podcastCoverSizes['og']['width']);
|
||||||
$oembed->addChild('thumbnail_height', (string) config('Images')->podcastCoverSizes['large']['height']);
|
$oembed->addChild('thumbnail_height', (string) config('Images')->podcastCoverSizes['og']['height']);
|
||||||
$oembed->addChild(
|
$oembed->addChild(
|
||||||
'html',
|
'html',
|
||||||
htmlentities(
|
htmlentities(
|
||||||
|
@ -24,12 +24,7 @@ class NoteObject extends FediverseNoteObject
|
|||||||
|
|
||||||
if ($post->episode_id) {
|
if ($post->episode_id) {
|
||||||
$this->content =
|
$this->content =
|
||||||
'<a href="' .
|
'<a href="' . $post->episode->link . '">' . $post->episode->title . '</a><br/>' . $post->message_html;
|
||||||
$post->episode->link .
|
|
||||||
'" target="_blank" rel="noopener noreferrer">' .
|
|
||||||
$post->episode->title .
|
|
||||||
'</a><br/>' .
|
|
||||||
$post->message_html;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,11 +30,11 @@ class Fediverse extends BaseConfig
|
|||||||
* Default avatar and cover images
|
* 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 $defaultAvatarImageMimetype = 'image/jpeg';
|
||||||
|
|
||||||
public string $defaultCoverImagePath = 'media/castopod-banner-pine_fediveration.jpg';
|
public string $defaultCoverImagePath = 'media/banner-default.jpg';
|
||||||
|
|
||||||
public string $defaultCoverImageMimetype = 'image/jpeg';
|
public string $defaultCoverImageMimetype = 'image/jpeg';
|
||||||
|
|
||||||
|
@ -469,11 +469,16 @@ class PostModel extends BaseUuidModel
|
|||||||
{
|
{
|
||||||
$this->db->transStart();
|
$this->db->transStart();
|
||||||
|
|
||||||
|
$userId = null;
|
||||||
|
if (function_exists('user_id')) {
|
||||||
|
$userId = user_id();
|
||||||
|
}
|
||||||
|
|
||||||
$reblog = new Post([
|
$reblog = new Post([
|
||||||
'actor_id' => $actor->id,
|
'actor_id' => $actor->id,
|
||||||
'reblog_of_id' => $post->id,
|
'reblog_of_id' => $post->id,
|
||||||
'published_at' => Time::now(),
|
'published_at' => Time::now(),
|
||||||
'created_by' => user_id(),
|
'created_by' => $userId,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// add reblog
|
// add reblog
|
||||||
|
@ -20,17 +20,17 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="flex" style="background: <?= $themeData['background'] ?>; color: <?= $themeData['text'] ?>;">
|
<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" />
|
<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-36">
|
<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', [
|
<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',
|
'castopod' => 'Castopod',
|
||||||
]) ?>" target="_blank" rel="noopener noreferrer"><?= icon('podcasting/castopod') ?></a>
|
]) ?>"><?= icon('podcasting/castopod') ?></a>
|
||||||
<div class="flex gap-x-2">
|
<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) ?>
|
<?= 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>
|
</div>
|
||||||
<a href="<?= $episode->link ?>" class="flex flex-col items-start text-sm" style="color: <?= $themeData['text'] ?>;" target="_blank">
|
<a href="<?= $episode->link ?>" class="flex flex-col items-start text-sm" style="color: <?= $themeData['text'] ?>;">
|
||||||
<h1 class="text-lg font-semibold leading-tight opacity-100 line-clamp-2 hover:opacity-75"><?= $episode->title ?></h1>
|
<h1 class="font-semibold leading-tight opacity-100 line-clamp-2 hover:opacity-75"><?= $episode->title ?></h1>
|
||||||
</a>
|
</a>
|
||||||
<vm-player
|
<vm-player
|
||||||
id="castopod-vm-player"
|
id="castopod-vm-player"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user