X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FNotify.php;h=9ebf5c23b3efc0ee07ef91e6b9b07490560a8727;hb=9acecfd9e6f75fa70b52773d4ed63ee20406894b;hp=1bb9f29047a701d0297fea225b4fbcf4efa261de;hpb=9827e933a2a1b8e93f293d4e6293384126e5784c;p=friendica.git diff --git a/src/Model/Notify.php b/src/Model/Notify.php index 1bb9f29047..9ebf5c23b3 100644 --- a/src/Model/Notify.php +++ b/src/Model/Notify.php @@ -1,23 +1,34 @@ . + * + */ namespace Friendica\Model; -use Exception; use Friendica\BaseModel; use Friendica\Content\Text\BBCode; -use Friendica\Content\Text\HTML; use Friendica\Database\Database; use Friendica\Network\HTTPException\InternalServerErrorException; -use Friendica\Util\DateTimeFormat; -use Friendica\Util\Temporal; use Psr\Log\LoggerInterface; /** * Model for an entry in the notify table - * - Including additional, calculated properties - * - * Is used either for frontend interactions or for API-based interaction - * @see https://github.com/friendica/friendica/blob/develop/doc/API-Entities.md#notification * * @property string hash * @property integer type @@ -36,18 +47,9 @@ use Psr\Log\LoggerInterface; * * @property-read string name_cache Full name of the contact subject * @property-read string msg_cache Plaintext version of the notification text with a placeholder (`{0}`) for the subject contact's name. - * - * @property-read integer timestamp Unix timestamp - * @property-read string dateRel Time since the note was posted, eg "1 hour ago" - * @property-read string $msg_html - * @property-read string $msg_plain */ class Notify extends BaseModel { - const OTYPE_ITEM = 'item'; - const OTYPE_INTRO = 'intro'; - const OTYPE_MAIL = 'mail'; - const OTYPE_PERSON = 'person'; /** @var \Friendica\Repository\Notify */ private $repo; @@ -59,63 +61,26 @@ class Notify extends BaseModel $this->repo = $repo; $this->setNameCache(); - $this->setTimestamp(); - $this->setMsg(); - } - - /** - * Set the notification as seen - * - * @param bool $seen true, if seen - * - * @return bool True, if the seen state could be saved - */ - public function setSeen(bool $seen = true) - { - $this->seen = $seen; - try { - return $this->repo->update($this); - } catch (Exception $e) { - $this->logger->warning('Update failed.', ['$this' => $this, 'exception' => $e]); - return false; - } - } - - /** - * Set some extra properties to the notification from db: - * - timestamp as int in default TZ - * - date_rel : relative date string - */ - private function setTimestamp() - { - try { - $this->timestamp = strtotime(DateTimeFormat::local($this->date)); - } catch (Exception $e) { - } - $this->dateRel = Temporal::getRelativeDate($this->date); + $this->setMsgCache(); } /** * Sets the pre-formatted name (caching) - * - * @throws InternalServerErrorException */ private function setNameCache() { - $this->name_cache = strip_tags(BBCode::convert($this->source_name ?? '')); + try { + $this->name_cache = strip_tags(BBCode::convert($this->source_name)); + } catch (InternalServerErrorException $e) { + } } /** - * Set some extra properties to the notification from db: - * - msg_html: message as html string - * - msg_plain: message as plain text string - * - msg_cache: The pre-formatted message (caching) + * Sets the pre-formatted msg (caching) */ - private function setMsg() + private function setMsgCache() { try { - $this->msg_html = BBCode::convert($this->msg, false); - $this->msg_plain = explode("\n", trim(HTML::toPlaintext($this->msg_html, 0)))[0]; $this->msg_cache = self::formatMessage($this->name_cache, strip_tags(BBCode::convert($this->msg))); } catch (InternalServerErrorException $e) { } @@ -125,12 +90,8 @@ class Notify extends BaseModel { parent::__set($name, $value); - if ($name == 'date') { - $this->setTimestamp(); - } - if ($name == 'msg') { - $this->setMsg(); + $this->setMsgCache(); } if ($name == 'source_name') {