forked from leftypol/leftypol
robot mutes and reply count
This commit is contained in:
parent
29d0cab28e
commit
a62cd3893f
1 changed files with 61 additions and 2 deletions
|
@ -40,7 +40,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function listBoards() {
|
function listBoards() {
|
||||||
$query = query("SELECT * FROM `boards`") or error(db_error());
|
$query = query("SELECT * FROM `boards` ORDER BY `uri`") or error(db_error());
|
||||||
$boards = $query->fetchAll();
|
$boards = $query->fetchAll();
|
||||||
return $boards;
|
return $boards;
|
||||||
}
|
}
|
||||||
|
@ -395,6 +395,10 @@
|
||||||
/* CREATE TABLE `robot` (
|
/* CREATE TABLE `robot` (
|
||||||
`hash` VARCHAR( 40 ) NOT NULL COMMENT 'SHA1'
|
`hash` VARCHAR( 40 ) NOT NULL COMMENT 'SHA1'
|
||||||
) ENGINE = INNODB; */
|
) ENGINE = INNODB; */
|
||||||
|
/* CREATE TABLE `mutes` (
|
||||||
|
`ip` VARCHAR( 15 ) NOT NULL ,
|
||||||
|
`time` INT NOT NULL
|
||||||
|
) ENGINE = MYISAM ; */
|
||||||
|
|
||||||
$body = makerobot($body);
|
$body = makerobot($body);
|
||||||
$query = prepare("SELECT 1 FROM `robot` WHERE `hash` = :hash LIMIT 1");
|
$query = prepare("SELECT 1 FROM `robot` WHERE `hash` = :hash LIMIT 1");
|
||||||
|
@ -413,6 +417,61 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function numPosts($id) {
|
||||||
|
global $board;
|
||||||
|
$query = prepare(sprintf("SELECT COUNT(*) as `count` FROM `posts_%s` WHERE `thread` = :thread", $board['uri']));
|
||||||
|
$query->bindValue(':thread', $id, PDO::PARAM_INT);
|
||||||
|
$query->execute() or error(db_error($query));
|
||||||
|
|
||||||
|
$result = $query->fetch();
|
||||||
|
return $result['count'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function muteTime() {
|
||||||
|
// Find number of mutes in the past X hours
|
||||||
|
$query = prepare("SELECT COUNT(*) as `count` FROM `mutes` WHERE `time` >= :time AND `ip` = :ip");
|
||||||
|
$query->bindValue(':time', time()-(ROBOT_MUTE_HOUR*3600), PDO::PARAM_INT);
|
||||||
|
$query->bindValue(':ip', $_SERVER['REMOTE_ADDR']);
|
||||||
|
$query->execute() or error(db_error($query));
|
||||||
|
|
||||||
|
$result = $query->fetch();
|
||||||
|
if($result['count'] == 0) return 0;
|
||||||
|
return pow(ROBOT_MUTE_MULTIPLIER, $result['count']);
|
||||||
|
}
|
||||||
|
|
||||||
|
function mute() {
|
||||||
|
// Insert mute
|
||||||
|
$query = prepare("INSERT INTO `mutes` VALUES (:ip, :time)");
|
||||||
|
$query->bindValue(':time', time(), PDO::PARAM_INT);
|
||||||
|
$query->bindValue(':ip', $_SERVER['REMOTE_ADDR']);
|
||||||
|
$query->execute() or error(db_error($query));
|
||||||
|
|
||||||
|
return muteTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkMute() {
|
||||||
|
$mutetime = muteTime();
|
||||||
|
if($mutetime > 0) {
|
||||||
|
// Find last mute time
|
||||||
|
$query = prepare("SELECT `time` FROM `mutes` WHERE `ip` = :ip ORDER BY `time` DESC LIMIT 1");
|
||||||
|
$query->bindValue(':ip', $_SERVER['REMOTE_ADDR']);
|
||||||
|
$query->execute() or error(db_error($query));
|
||||||
|
|
||||||
|
if(!$mute = $query->fetch()) {
|
||||||
|
// What!? He's muted but he's not muted...
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($mute['time'] + $mutetime > time()) {
|
||||||
|
// Not expired yet
|
||||||
|
error(sprintf(ERROR_YOUAREMUTED, $mute['time'] + $mutetime - time()));
|
||||||
|
} else {
|
||||||
|
// Already expired
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function buildIndex() {
|
function buildIndex() {
|
||||||
global $board;
|
global $board;
|
||||||
sql_open();
|
sql_open();
|
||||||
|
@ -764,7 +823,7 @@
|
||||||
switch($type) {
|
switch($type) {
|
||||||
case 'jpg':
|
case 'jpg':
|
||||||
case 'jpeg':
|
case 'jpeg':
|
||||||
if(!$image = @imagecreatefromjpeg($source_pic)) {
|
if(!$image = imagecreatefromjpeg($source_pic)) {
|
||||||
unlink($source_pic);
|
unlink($source_pic);
|
||||||
error(ERR_INVALIDIMG);
|
error(ERR_INVALIDIMG);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue