MastodonHelp/web/site/mustard/notifsh.php
2023-12-26 11:17:54 +01:00

61 lines
2.8 KiB
PHP

<?php
header('Content-Type: application/json; charset=utf-8');
require '../../lib/glob.php';
require '../../lib/muoribenejson.php';
require '../../lib/sessionstart.php';
require '../../lib/myconn.php';
require '../../lib/getadmacc.php';
if ($account['Level']=='guest')
muoribene('Sorry, you are not authorized.',true);
if (array_key_exists('act', $_GET) && $_GET['act'] == 'markread' && array_key_exists('id', $_GET) && preg_match('/^[0-9]+$/', $_GET['id']) === 1) {
$_GET['id'] += 0;
mysqli_query($link, 'UPDATE Notifications SET Seen=1 WHERE ID=' . $_GET['id'])
or muoribene(mysqli_error($link), true);
$res = mysqli_query($link, 'SELECT ID FROM Notifications WHERE Seen=0')
or muoribene(mysqli_error($link), true);
echo('{"hmunseen":' . mysqli_num_rows($res) . '}' . N);
} elseif (array_key_exists('act', $_GET) && $_GET['act'] == 'delete' && array_key_exists('id', $_GET) && preg_match('/^[0-9]+$/', $_GET['id']) === 1) {
$_GET['id'] += 0;
mysqli_query($link, 'UPDATE Notifications SET Deleted=1 WHERE ID=' . $_GET['id'])
or muoribene(mysqli_error($link), true);
echo('{"deleted":' . true . '}' . N);
} elseif (array_key_exists('act', $_GET) && $_GET['act'] == 'loadchunk' && array_key_exists('chunk', $_GET) && preg_match('/^[0-9]+$/', $_GET['chunk']) === 1) {
$_GET['chunk'] += 0;
$chunksize = 20; // questo dev'essere uguale in include/notifs.php
$res = mysqli_query($link, 'SELECT * FROM Notifications WHERE Deleted=0 ORDER BY Microtime DESC LIMIT ' . ($_GET['chunk'] * $chunksize) . ',' . $chunksize)
or muoribene(mysqli_error($link), true);
$buf = array();
while ($row = mysqli_fetch_assoc($res)) {
($row['Seen'] == 0) ? $notifclass = 'notifunseen' : $notifclass = 'notifseen';
$buf[] = '<div id="notif-' . $row['ID'] . '" class="' . $notifclass . '" onclick="markread(this)">' . gmdate('d/m/Y H:i:s', round($row['Microtime'])) . ': ' . $row['Notification'] . '</div>';
}
echo(json_encode($buf));
} elseif (array_key_exists('act',$_GET) && $_GET['act']=='loadnew' && array_key_exists('lmt',$_GET) && preg_match('/^[0-9]+(\.[0-9]+)?$/',$_GET['lmt'])===1) {
$_GET['lmt']+=0;
$newlmt=$_GET['lmt'];
$newunread=false;
$res=mysqli_query($link,'SELECT * FROM Notifications WHERE Microtime > '.$_GET['lmt'].' AND Deleted = 0 ORDER BY Microtime DESC')
or muoribene(mysqli_error($link),true);
$buf=array();
while ($row=mysqli_fetch_assoc($res)) {
if ($row['Seen']==0) {
$notifclass='notifunseen';
$newunread=true;
} else {
$notifclass='notifseen';
}
$buf[]='<div id="notif-'.$row['ID'].'" class="'.$notifclass.'" onclick="markread(this)">'. gmdate('d/m/Y H:i:s', round($row['Microtime'])).': '.$row['Notification'].'</div>';
if ($row['Microtime']+0>$newlmt) $newlmt=$row['Microtime'];
}
$buf=array('newlmt'=>$newlmt,'newunread'=>$newunread,'buf'=>$buf);
echo(json_encode($buf));
}
mysqli_close($link);
exit(0);
?>