2013-07-18 22:26:53 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
function checkRemoteFile($link){
|
|
|
|
if (@file_get_contents($link)): return true;
|
|
|
|
else: return false;
|
|
|
|
endif;
|
|
|
|
}
|
|
|
|
|
|
|
|
class api{
|
|
|
|
function shorten($apidb, $apikey, $sdb, $link, $dpass=null){
|
|
|
|
$apisql = "SELECT * FROM `users` WHERE `key` = '$apikey' LIMIT 1";
|
|
|
|
if(!$result = $apidb->query($apisql)) return 'ERROR: ['.$apidb->error.']';
|
|
|
|
if($row = $result->fetch_assoc()){
|
|
|
|
$canshort = $row['short'];
|
|
|
|
$name = $row['name'];
|
|
|
|
|
|
|
|
$name = addslashes($name);
|
2013-07-20 02:04:11 +00:00
|
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
2013-07-18 22:26:53 +00:00
|
|
|
|
|
|
|
$apisql = "INSERT INTO `apiuse` (time, name, apikey, ip, type, allowed, misc) VALUES (NOW(), '$name', '$apikey', '$ip', 'Link Shorten', '$canshort', '$link')";
|
|
|
|
if(!$result = $apidb->query($apisql)) return 'ERROR: ['.$apidb->error.']';
|
|
|
|
}
|
|
|
|
if($canshort != 1) return 'You are not authorized to shorten links';
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM `links` WHERE `link` = '$link' LIMIT 1;";
|
|
|
|
if($result = $sdb->query($sql)){
|
|
|
|
if($row = $result->fetch_assoc()){
|
|
|
|
$short = $row['shortlink'];
|
|
|
|
return "Existing link: http://unps.us/?l=$short";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(checkRemoteFile($link) !== true) return "Dead Link: $link";
|
|
|
|
$short = substr(number_format(time() * mt_rand(),0,'',''),0,10);
|
|
|
|
$short = base_convert($short, 10, 36);
|
|
|
|
|
|
|
|
$dpass = addslashes($dpass);
|
|
|
|
if($dpass != null): $sql = "INSERT INTO `links` (link, shortlink, dpass) VALUES ('$link', '$short', '$dpass')";
|
|
|
|
else: $sql = "INSERT INTO `links` (link, shortlink, dpass) VALUES ('$link', '$short', '$apikey')";
|
|
|
|
endif;
|
|
|
|
|
|
|
|
if($result = $sdb->query($sql)): return "Shortened: http://unps.us/?l=$short";
|
|
|
|
else: return 'ERROR: ['.$sdb->error.']';
|
|
|
|
endif;
|
|
|
|
}
|
|
|
|
|
|
|
|
function delShort ($apidb, $apikey, $sdb, $link, $dpass=null){
|
|
|
|
$apisql = "SELECT * FROM `users` WHERE `key` = '$apikey' LIMIT 1";
|
|
|
|
if(!$result = $apidb->query($apisql)) return 'ERROR: ['.$apidb->error.']';
|
|
|
|
if($row = $result->fetch_assoc()){
|
|
|
|
$canshort = $row['short'];
|
|
|
|
$name = $row['name'];
|
|
|
|
|
|
|
|
$name = addslashes($name);
|
2013-07-20 02:04:11 +00:00
|
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
2013-07-18 22:26:53 +00:00
|
|
|
|
|
|
|
$apisql = "INSERT INTO `apiuse` (time, name, apikey, ip, type, allowed, misc) VALUES (NOW(), '$name', '$apikey', '$ip', 'Short Link Delete', '$canshort', '$link')";
|
|
|
|
if(!$result = $apidb->query($apisql)) return 'ERROR: ['.$apidb->error.']';
|
|
|
|
}
|
|
|
|
if($canshort != 1) return 'You are not authorized to delete short links';
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM `links` WHERE `link` = '$link' LIMIT 1;";
|
|
|
|
if($result = $sdb->query($sql)){
|
|
|
|
if($row = $result->fetch_assoc()){
|
|
|
|
$short = $row['shortlink'];
|
|
|
|
$password = $row['dpass'];
|
|
|
|
|
|
|
|
if($dpass != null) $apikey = addslashes($dpass);
|
|
|
|
|
|
|
|
if($apikey == $password){
|
|
|
|
$sql = "DELETE FROM `links` WHERE `shortlink` = '$link' AND `dpass` = '$apikey' LIMIT 1;";
|
|
|
|
if(!$result = $sdb->query($sql)) return 'ERROR: ['.$sdb->error.']';
|
|
|
|
return "Deleted: $link";
|
|
|
|
}else return "You are not authorized to delete that link.";
|
|
|
|
}
|
|
|
|
}else{ return 'ERROR: ['.$sdb->error.']'; }
|
|
|
|
}
|
2013-07-20 02:04:11 +00:00
|
|
|
|
|
|
|
function reportLink($apidb, $apikey, $sdb, $link, $reason){
|
|
|
|
$apisql = "SELECT * FROM `users` WHERE `key` = '$apikey' LIMIT 1;";
|
|
|
|
if(!$result = $apidb->query($apisql)) return 'ERROR: ['.$apidb->error.']';
|
|
|
|
if($row = $result->fetch_assoc()){
|
|
|
|
$canshort = $row['short'];
|
|
|
|
$name = $row['name'];
|
|
|
|
|
|
|
|
$name = addslashes($name);
|
|
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
|
|
|
|
|
|
|
$apisql = "INSERT INTO `apiuse` (time, name, apikey, ip, type, allowed, misc) VALUES (NOW(), '$name', '$apikey', '$ip', 'Short Link Delete', '$canshort', '$link')";
|
|
|
|
if(!$result = $apidb->query($apisql)) return 'ERROR: ['.$apidb->error.']';
|
|
|
|
}
|
|
|
|
if($canshort != 1) return 'You are not authorized to shorten links, meaning you also can\'t report false negatives';
|
|
|
|
|
|
|
|
$sql = "INSERT INTO `manual` (time, apikey, ip, link, reason) VALUES(NOW(), '$apikey', '$ip', '$link', '$reason');";
|
|
|
|
if(!$result = $sdb->query($sql)) return 'ERROR: ['.$sdb->error.']';
|
|
|
|
return "Reported $link. Please check back in a day or two";
|
|
|
|
}
|
2013-07-18 22:26:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
?>
|