Hey,
aufgrund eines Missverständnisses habe ich eine RetroAPI
(vorerst nur mit der Phoenix Database (ReCMS) benutzbar) gecodet.
Bisherige Funktionen:
Spoiler anzeigen
/**
* RetroAPI Version 1.0
*
* Copyright ©2013, Silas R. alias xBl4ckx.
*
* Die RetroAPI kann genutzt werden um per Username an diverse Infos eines Habbos zu kommen.
*
* Benutzung:
*
* getMotto('USERNAME') -> Gibt des Spielers Motto / Mission zurück.
* getID('USERNAME') -> Gibt des Spielers ID zurück.
* getLastLogin('USERNAME', 'date' oder 'diff') -> Gibt, // hinzugefügt
* falls zweites Argument ist gleich 'date' oder weggelassen,
* das Datum und falls zweites Argument ist gleich 'diff' die
* Differenz (Bsp.: '9 Minuten her') zurück.
* getStatus('USERNAME') -> Gibt Status des Spielers zurück (online / offline).
* isOnline('USERNAME') -> Gibt einen Boolean zurück (Wenn Spieler online: true; Wenn Spieler offline: false)
*
* @author Silas R. alias xBl4ckx
*/
Alles anzeigen
Die vollständige API + Beispiele:
Spoiler anzeigen
Download RetroAPI + Beispiele:
Spoiler anzeigen
Version 1.0
RetroAPI Version 1.0.rar
Version 1.1
http://www.mediafire.com/?dyed3a18st7bsil
Version 1.0
PHP Code RetroAPI:
Spoiler anzeigen
<?php
/**
* RetroAPI Version 1.0
*
* Copyright ©2013, Silas R. alias xBl4ckx.
*
* Die RetroAPI kann genutzt werden um per Username an diverse Infos eines Habbos zu kommen.
*
* Benutzung:
*
* getMotto('USERNAME') -> Gibt des Spielers Motto / Mission zurück.
* getID('USERNAME') -> Gibt des Spielers ID zurück.
* getLastLogin('USERNAME', 'date' oder 'diff') -> Gibt, // hinzugefügt
* falls zweites Argument ist gleich 'date' oder weggelassen,
* das Datum und falls zweites Argument ist gleich 'diff' die
* Differenz (Bsp.: '9 Minuten her') zurück.
* getStatus('USERNAME') -> Gibt Status des Spielers zurück (online / offline).
* isOnline('USERNAME') -> Gibt einen Boolean zurück (Wenn Spieler online: true; Wenn Spieler offline: false)
*
* @author Silas R. alias xBl4ckx
*/
class RetroAPI {
const EMULATOR = 'PHOENIX';
/**
* Start der Funktionen von selfphp.de
*/
public static function makeDifference($first, $second){
if($first > $second)
$td['dif'][0] = $first - $second;
else
$td['dif'][0] = $second - $first;
$td['sec'][0] = $td['dif'][0] % 60; // 67 = 7
$td['min'][0] = (($td['dif'][0] - $td['sec'][0]) / 60) % 60;
$td['std'][0] = (((($td['dif'][0] - $td['sec'][0]) /60)-
$td['min'][0]) / 60) % 24;
$td['day'][0] = floor( ((((($td['dif'][0] - $td['sec'][0]) /60)-
$td['min'][0]) / 60) / 24) );
$td = self::makeString($td);
return $td;
}
public static function makeString($td){
if ($td['sec'][0] == 1)
$td['sec'][1] = 'Sekunde';
else
$td['sec'][1] = 'Sekunden';
if ($td['min'][0] == 1)
$td['min'][1] = 'Minute';
else
$td['min'][1] = 'Minuten';
if ($td['std'][0] == 1)
$td['std'][1] = 'Stunde';
else
$td['std'][1] = 'Stunden';
if ($td['day'][0] == 1)
$td['day'][1] = 'Tag';
else
$td['day'][1] = 'Tage';
return $td;
}
/**
* Ende der Funktionen von selfphp.de
*/
public static function getUserData($column, $username) {
$sql = 'SELECT
id AS ID,
motto AS MOTTO,
last_online AS LASTLOGIN,
online AS STATUS
FROM users
WHERE username = \'' . $username . '\'';
$query = mysql_query($sql) OR die (mysql_error());
$result = mysql_fetch_assoc($query);
return $result[$column];
}
public static function getID($username) {
return self::getUserData('ID', $username);
}
public static function getMotto($username) {
return self::getUserData('MOTTO', $username);
}
public static function getLastLogin($username, $modus = 'date') {
switch($modus) {
case('date');
case('Date');
case('DATE');
$userData = self::getUserData('LASTLOGIN', $username);
$result = date('d.m.y H:i', $userData);
break;
case('diff');
case('Diff');
case('DIFF');
$date = new DateTime();
$userData = self::getUserData('LASTLOGIN', $username);
$secLast = $date->getTimestamp();
$secNow = $userData;
$td = self::makeDifference($secLast, $secNow);
if($td['day'][0] > 0)
if(!isset($result))
$result = $td['day'][0] . ' ' . $td['day'][1] . ' her';
else
$result .= $td['day'][0] . ' ' . $td['day'][1] . ' her';
elseif($td['std'][0] > 0)
if(!isset($result))
$result = $td['std'][0] . ' ' . $td['std'][1] . ' her';
else
$result .= $td['std'][0] . ' ' . $td['std'][1] . ' her';
elseif($td['min'][0] > 0)
if(!isset($result))
$result = $td['min'][0] . ' ' . $td['min'][1] . ' her';
else
$result .= $td['min'][0] . ' ' . $td['min'][1] . ' her';
elseif($td['sec'][0] > 0)
if(!isset($result))
$result = $td['sec'][0] . ' ' . $td['sec'][1] . ' her';
else
$result .= $td['sec'][0] . ' ' . $td['sec'][1] . ' her';
break;
}
return $result;
}
public static function getStatus($username) {
return self::getUserData('STATUS', $username) === '0' ? 'offline' : 'online';
}
public static function isOnline($username) {
return self::getUserData('STATUS', $username) === '0' ? false : true;
}
}
?>
Alles anzeigen
PHP Code Beispiel:
Spoiler anzeigen
<?php
require_once('./data_classes/server-data.php_data_classes-core.php.php');
include('./RetroAPI/retroapi.class.php');
// Beispiele
@$username = $_GET['username'];
if(!isset($username))
$username = 'JayEngine';
print $username . '\'s ID: ';
print RetroAPI::getID($username);
print '<br/><br/>';
print $username . '\'s Motto: ';
print RetroAPI::getMotto($username);
print '<br/><br/>';
print $username . '\'s Status: ';
print RetroAPI::getStatus($username);
print '<br/><br/>';
if(RetroAPI::isOnline($username))
print $username . ' ist Online';
else
print $username . ' ist Offline';
print '<br/><br/>';
print RetroAPI::isOnline($username) ? "Er's on, yo!" : "Er's off, bro!";
print '<br/><br/>';
print $username . '\'s Letzter Login: ';
print RetroAPI::getLastLogin($username, 'date');
print '<br/><br/>';
print $username . '\'s Letzter Login: ';
print RetroAPI::getLastLogin($username, 'diff');
?>
Alles anzeigen
Beispiel Ausgabe des Beispiels:
Spoiler anzeigen
Hardwell's ID: 11
Hardwell's Motto: Ich bin Gay
Hardwell's Status: offline
Hardwell ist Offline
Er's off, bro!
Hardwell's Letzter Login: 27.06.13 13:41
Hardwell's Letzter Login: 4 Stunden her
Changelog
Spoiler anzeigen
Version 1.1
* Für Leute ohne eingebauten SQL Injections Schutz, String Escape eingebaut
* Somit eine kritische Lücke für schlechte ReCMS'en entfernt
Version 1.0:
* getMotto('USERNAME') -> Gibt des Spielers Motto / Mission zurück. // hinzugefügt
* getID('USERNAME') -> Gibt des Spielers ID zurück. // hinzugefügt
* getLastLogin('USERNAME', 'date' oder 'diff') -> Gibt, // hinzugefügt
* falls zweites Argument ist gleich 'date' oder weggelassen,
* das Datum und falls zweites Argument ist gleich 'diff' die
* Differenz (Bsp.: '9 Minuten her') zurück.
* getStatus('USERNAME') -> Gibt Status des Spielers zurück (online / offline). // hinzugefügt
* isOnline('USERNAME') -> Gibt einen Boolean zurück (Wenn Spieler online: true; Wenn Spieler offline: false) // hinzugefügt
Wenn ihr denkt, meine Arbeit war nützlich, könnt ihr euch auch bedanken
Wer noch Ideen hat, die ich einbauen soll, immer her damit!
Mit freundlichen Grüßen
Silas R