diff options
| author | winter | 2025-05-08 23:46:20 +0100 |
|---|---|---|
| committer | winter | 2025-05-08 23:46:20 +0100 |
| commit | 09b3847233adbdfbd7496d81d2a2f93fae0d0ee4 (patch) | |
| tree | d114086b014b7713d83e178e45e26a46c9daf19b /Digitigrade/Job/GenerateLinkPreviews.php | |
| parent | 478cf68228b0157da9446354a993804ddac65d51 (diff) | |
automatically generate link previews for new incoming notes after some delay
Diffstat (limited to 'Digitigrade/Job/GenerateLinkPreviews.php')
| -rw-r--r-- | Digitigrade/Job/GenerateLinkPreviews.php | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Digitigrade/Job/GenerateLinkPreviews.php b/Digitigrade/Job/GenerateLinkPreviews.php new file mode 100644 index 0000000..acaccbb --- /dev/null +++ b/Digitigrade/Job/GenerateLinkPreviews.php @@ -0,0 +1,28 @@ +<?php +namespace Digitigrade\Job; + +use Digitigrade\Job; +use Digitigrade\JobQueue; +use Digitigrade\Logger; +use Digitigrade\Model\Note; + +class GenerateLinkPreviews extends Job { + public int $noteId; + + public function __construct(Note $note) { + $this->noteId = $note->id; + $this->remainingTries = 4; + } + + public function run() { + $note = Note::find($this->noteId); + Logger::getInstance()->info('Generating link previews for note: ' . $note->uri); + $note->generateLinkPreviews(); + $note->save(); + } + + public function submit() { + // submit it after a random delay to avoid deluging the websites being previewed + JobQueue::getInstance()->submitDelayed($this, random_int(0, 60 * 15 /* 15 minutes */)); + } +}
\ No newline at end of file |
