mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-13 10:56:26 +00:00
100 lines
4.2 KiB
PHP
100 lines
4.2 KiB
PHP
<?
|
|
authorize();
|
|
|
|
if(empty($_POST['id']) || !is_number($_POST['id']) || empty($_POST['type']) || ($_POST['type'] != "request_update" && empty($_POST['reason']))) {
|
|
error(404);
|
|
}
|
|
|
|
include(SERVER_ROOT.'/sections/reports/array.php');
|
|
|
|
if(!array_key_exists($_POST['type'], $Types)) {
|
|
error(403);
|
|
}
|
|
$Short = $_POST['type'];
|
|
$Type = $Types[$Short];
|
|
$ID = $_POST['id'];
|
|
if($Short == "request_update") {
|
|
if(empty($_POST['year']) || !is_number($_POST['year'])) {
|
|
error('Year must be specified.');
|
|
header('Location: reports.php?action=report&type=request_update&id='.$ID);
|
|
die();
|
|
}
|
|
$Reason = "[b]Year[/b]: ".$_POST['year'].".\n\n";
|
|
// If the release type is somehow invalid, return "Not given"; otherwise, return the release type.
|
|
$Reason .= "[b]Release Type[/b]: ".((empty($_POST['releasetype']) || !is_number($_POST['releasetype']) || $_POST['releasetype'] == 0) ? 'Not given' : $ReleaseTypes[$_POST['releasetype']]).". \n\n";
|
|
$Reason .= "[b]Additional Comments[/b]: ".$_POST['comment'];
|
|
} else {
|
|
$Reason = $_POST['reason'];
|
|
}
|
|
|
|
switch($Short) {
|
|
case "request" :
|
|
case "request_update" :
|
|
$Link = 'requests.php?action=view&id='.$ID;
|
|
break;
|
|
case "user" :
|
|
$Link = 'user.php?id='.$ID;
|
|
break;
|
|
case "collage" :
|
|
$Link = 'collages.php?id='.$ID;
|
|
break;
|
|
case "thread" :
|
|
$Link = 'forums.php?action=viewthread&threadid='.$ID;
|
|
break;
|
|
case "post" :
|
|
$DB->query("SELECT p.ID, p.TopicID, (SELECT COUNT(ID) FROM forums_posts WHERE forums_posts.TopicID = p.TopicID AND forums_posts.ID<=p.ID) AS PostNum FROM forums_posts AS p WHERE ID=".$ID);
|
|
list($PostID,$TopicID,$PostNum) = $DB->next_record();
|
|
$Link = "forums.php?action=viewthread&threadid=".$TopicID."&post=".$PostNum."#post".$PostID;
|
|
break;
|
|
case "requests_comment" :
|
|
$DB->query("SELECT rc.RequestID, rc.Body, (SELECT COUNT(ID) FROM requests_comments WHERE ID <= ".$ID." AND requests_comments.RequestID = rc.RequestID) AS CommentNum FROM requests_comments AS rc WHERE ID=".$ID);
|
|
list($RequestID, $Body, $PostNum) = $DB->next_record();
|
|
$PageNum = ceil($PostNum / TORRENT_COMMENTS_PER_PAGE);
|
|
$Link = "requests.php?action=view&id=".$RequestID."&page=".$PageNum."#post".$ID."";
|
|
break;
|
|
case "torrents_comment" :
|
|
$DB->query("SELECT tc.GroupID, tc.Body, (SELECT COUNT(ID) FROM torrents_comments WHERE ID <= ".$ID." AND torrents_comments.GroupID = tc.GroupID) AS CommentNum FROM torrents_comments AS tc WHERE ID=".$ID);
|
|
list($GroupID, $Body, $PostNum) = $DB->next_record();
|
|
$PageNum = ceil($PostNum / TORRENT_COMMENTS_PER_PAGE);
|
|
$Link = "torrents.php?id=".$GroupID."&page=".$PageNum."#post".$ID;
|
|
break;
|
|
case "artist_comment" :
|
|
$DB->query("SELECT ac.ArtistID, ac.Body, (SELECT COUNT(ID) FROM artist_comments WHERE ID <= ".$ID." AND artist_comments.ArtistID = ac.ArtistID) AS CommentNum FROM artist_comments AS ac WHERE ID=".$ID);
|
|
list($ArtistID, $Body, $PostNum) = $DB->next_record();
|
|
$PageNum = ceil($PostNum / TORRENT_COMMENTS_PER_PAGE);
|
|
$Link = "artist.php?id=".$ArtistID."&page=".$PageNum."#post".$ID;
|
|
break;
|
|
case "collages_comment" :
|
|
$DB->query("SELECT cc.CollageID, cc.Body, (SELECT COUNT(ID) FROM collages_comments WHERE ID <= ".$ID." AND collages_comments.CollageID = cc.CollageID) AS CommentNum FROM collages_comments AS cc WHERE ID=".$ID);
|
|
list($CollageID, $Body, $PostNum) = $DB->next_record();
|
|
$PerPage = POSTS_PER_PAGE;
|
|
$PageNum = ceil($PostNum / $PerPage);
|
|
$Link = "collage.php?action=comments&collageid=".$CollageID."&page=".$PageNum."#post".$ID;
|
|
break;
|
|
}
|
|
|
|
$DB->query("INSERT INTO reports
|
|
(UserID, ThingID, Type, ReportedTime, Reason)
|
|
VALUES
|
|
(".db_string($LoggedUser['ID']).", ".$ID." , '".$Short."', '".sqltime()."', '".db_string($Reason)."')");
|
|
$ReportID = $DB->inserted_id();
|
|
|
|
$Channels = array();
|
|
|
|
if($Short == "request_update") {
|
|
$Channels[] = "#requestedits";
|
|
$Cache->increment('num_update_reports');
|
|
}
|
|
if(in_array($Short, array('collages_comment', 'post', 'requests_comment', 'thread', 'torrents_comment'))) {
|
|
$Channels[] = "#forumreports";
|
|
}
|
|
|
|
foreach($Channels as $Channel) {
|
|
send_irc("PRIVMSG ".$Channel." :".$ReportID." - ".$LoggedUser['Username']." just reported a ".$Short.": https://".SSL_SITE_URL."/".$Link." : ".strtr($Reason, "\n", " "));
|
|
}
|
|
|
|
$Cache->delete_value('num_other_reports');
|
|
|
|
header('Location: '.$Link);
|
|
?>
|