aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Job/GenerateLinkPreviews.php
blob: acaccbbec54d563b23cb09fcd584eb80f2eadbd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 */));
    }
}