Skip to content
Snippets Groups Projects
Commit 0dc2c4c0 authored by Thomas Hackl's avatar Thomas Hackl
Browse files

check for news expiration in cronjob

parent 63aa7084
No related branches found
No related tags found
No related merge requests found
...@@ -77,34 +77,41 @@ class MatrixPostNewsCronjob extends CronJob ...@@ -77,34 +77,41 @@ class MatrixPostNewsCronjob extends CronJob
print_r($news); print_r($news);
} }
foreach (StudipNews::findMany($news) as $one) { foreach (StudipNews::findMany($news) as $one) {
foreach ($one->news_ranges as $range) { if ($one->date + $one->expire >= time()) {
$success = false; foreach ($one->news_ranges as $range) {
if ($range->course && MatrixRoom::hasRoom($range->course->id)) { $success = false;
$room = MatrixRoom::find($range->course->id); if ($range->course && MatrixRoom::hasRoom($range->course->id)) {
$room = MatrixRoom::find($range->course->id);
$success = MatrixClient::get()->postMessage( $success = MatrixClient::get()->postMessage(
MatrixAccount::requireSystemAccount(), MatrixAccount::requireSystemAccount(),
$room->getLinkedRoom(), $room->getLinkedRoom(),
'Ankündigung: ' . $one->topic . ' ' . strip_tags($one->body), 'Ankündigung: ' . $one->topic . ' ' . strip_tags($one->body),
'<strong>Ankündigung: ' . $one->topic . '</strong><br>' . $one->body '<strong>Ankündigung: ' . $one->topic . '</strong><br>' . $one->body
); );
// Mark entry as done after message has been posted to Matrix room successfully.
if ($success) {
// Verbose output
if ($parameters['verbose']) {
echo sprintf(
"Posted news entry $1%s to Matrix room $2%s in course $3%s.\n",
$one->id, $room->matrix_room_id, $room->range_id
);
}
// Mark entry as done after message has been posted to Matrix room successfully. DBManager::get()->execute(
if ($success) { "UPDATE `matrix_upcoming_news` SET `posted` = 1 WHERE `news_id` = :id AND `range_id` = :range",
// Verbose output ['id' => $one->id, 'range' => $range->course->id]
if ($parameters['verbose']) {
echo sprintf(
"Posted news entry $1%s to Matrix room $2%s in course $3%s.\n",
$news->id, $room->matrix_room_id, $room->range_id
); );
} }
DBManager::get()->execute(
"UPDATE `matrix_upcoming_news` SET `posted` = 1 WHERE `news_id` = :id AND `range_id` = :range",
['id' => $one->id, 'range' => $range->course->id]
);
} }
} }
} else {
DBManager::get()->execute(
"DELETE FROM `matrix_upcoming_news` WHERE `news_id` = :id",
['id' => $one->id]
);
} }
} }
......
pluginname=Matrix-Chat pluginname=Matrix-Chat
pluginclassname=MatrixPlugin pluginclassname=MatrixPlugin
origin=data-quest origin=data-quest
version=1.4.3 version=1.4.4
screenshot=assets/images/matrix_logo.png screenshot=assets/images/matrix_logo.png
description=Matrix chat for Stud.IP courses description=Matrix chat for Stud.IP courses
studipMinVersion=4.5 studipMinVersion=4.5
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment