- Set up csv storage
- Sort CSV array by timestamp - Build transaction table from CSV
This commit is contained in:
+106
-18
@@ -1,30 +1,118 @@
|
||||
<?php
|
||||
function searchForId($id, $array)
|
||||
{
|
||||
setlocale(LC_MONETARY, "en_US");
|
||||
|
||||
// Open CSV file in read & append mode ('a+')
|
||||
$fp = fopen('vault.csv', 'a+');
|
||||
|
||||
$csvVault = [];
|
||||
$csv = [];
|
||||
|
||||
$lines = file('vault.csv', FILE_IGNORE_NEW_LINES);
|
||||
|
||||
foreach ($lines as $key => $value) {
|
||||
$csv[$key] = str_getcsv($value);
|
||||
}
|
||||
|
||||
$zarTxn = getLog('zarathos', $csv);
|
||||
$symTxn = getLog('symos', $csv);
|
||||
|
||||
$txnVault = array_merge($zarTxn, $symTxn);
|
||||
|
||||
foreach ($txnVault as $key => $value) {
|
||||
$csvComp = searchForId($value['timestamp'], $csv);
|
||||
|
||||
if (!$csvComp) {
|
||||
$csvVault[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// Loop through file pointer and add a line
|
||||
foreach ($csvVault as $fields) {
|
||||
fputcsv($fp, $fields);
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
|
||||
// searchForID(): Serach CSV array for timestamp ID
|
||||
function searchForId($id, $array) {
|
||||
foreach ($array as $key => $val) {
|
||||
if ($val[1] == $id) {
|
||||
return $key;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return false;
|
||||
}
|
||||
|
||||
// formatMoney(): Format raw transaction vaule to display as money
|
||||
// cents: 0=never, 1=if needed, 2=always
|
||||
function formatMoney($number, $cents = 1) {
|
||||
if (is_numeric($number)) {
|
||||
if (!$number) {
|
||||
$money = ($cents == 2 ? '0.00' : '0');
|
||||
} else {
|
||||
if (floor($number) == $number) {
|
||||
$money = number_format($number, ($cents == 2 ? 2 : 0));
|
||||
} else {
|
||||
$money = number_format(round($number, 2), ($cents == 0 ? 0 : 2));
|
||||
}
|
||||
}
|
||||
|
||||
function formatMoney($number, $cents = 1)
|
||||
{ // cents: 0=never, 1=if needed, 2=always
|
||||
if (is_numeric($number)) { // a number
|
||||
if (!$number) { // zero
|
||||
$money = ($cents == 2 ? '0.00' : '0'); // output zero
|
||||
} else { // value
|
||||
if (floor($number) == $number) { // whole number
|
||||
$money = number_format($number, ($cents == 2 ? 2 : 0)); // format
|
||||
} else { // cents
|
||||
$money = number_format(round($number, 2), ($cents == 0 ? 0 : 2)); // format
|
||||
} // integer or decimal
|
||||
} // value
|
||||
return '$' . $money;
|
||||
} // numeric
|
||||
} // formatMoney
|
||||
}
|
||||
}
|
||||
|
||||
// getLog(): Get log entries for user. Uses CSV array for dupe checking. Returns array.
|
||||
function getLog($user, $csv) {
|
||||
$tornURL = 'https://api.torn.com/user/?selections=log&key=';
|
||||
$i = 0;
|
||||
|
||||
if ($user == 'zarathos') {
|
||||
$usrKey = 'LDtibInYMdgVnM9n';
|
||||
$user = 'Zarathos';
|
||||
} else {
|
||||
$usrKey = 'lne9TZLuqvFXtK3V';
|
||||
$user = 'Symos';
|
||||
}
|
||||
|
||||
$usrURL = $tornURL . $usrKey;
|
||||
$usrLog = json_decode(file_get_contents($usrURL));
|
||||
$usrData = $usrLog->log;
|
||||
$usrVault = [];
|
||||
|
||||
foreach ($usrData as $entry) {
|
||||
if ($entry->log == 5851) {
|
||||
$usrVault[$i]['user'] = $user;
|
||||
$usrVault[$i]['timestamp'] = $entry->timestamp;
|
||||
$usrVault[$i]['operation'] = $entry->title;
|
||||
$usrVault[$i]['amount'] = $entry->data->withdrawn;
|
||||
|
||||
$csvComp = searchForId($entry->timestamp, $csv);
|
||||
|
||||
if ($csvComp) {
|
||||
//echo 'Withdrawal (ID: ' . $entry->timestamp . ') already in vault';
|
||||
}
|
||||
|
||||
// fputcsv($fp, $usrVault[i]);
|
||||
} elseif ($entry->log == 5850) {
|
||||
$usrVault[$i]['user'] = $user;
|
||||
$usrVault[$i]['timestamp'] = $entry->timestamp;
|
||||
$usrVault[$i]['operation'] = $entry->title;
|
||||
$usrVault[$i]['amount'] = $entry->data->deposited;
|
||||
|
||||
$csvComp = searchForId($entry->timestamp, $csv);
|
||||
|
||||
if ($csvComp) {
|
||||
//echo 'Deposit (ID: ' . $entry->timestamp . ') already in vault';
|
||||
}
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
return $usrVault;
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,76 +1,5 @@
|
||||
<?php
|
||||
setlocale(LC_MONETARY, "en_US");
|
||||
include('functions.php');
|
||||
|
||||
// Open CSV file in read & append mode ('a+')
|
||||
$fp = fopen('vault.csv', 'a+');
|
||||
|
||||
$csvVault = [];
|
||||
$csv = array();
|
||||
|
||||
$lines = file('vault.csv', FILE_IGNORE_NEW_LINES);
|
||||
|
||||
foreach ($lines as $key => $value) {
|
||||
$csv[$key] = str_getcsv($value);
|
||||
}
|
||||
|
||||
function getLog($user) {
|
||||
$tornURL = 'https://api.torn.com/user/?selections=log&key=';
|
||||
$i = 0;
|
||||
|
||||
if ($user == 'zarathos') {
|
||||
$usrKey = 'LDtibInYMdgVnM9n';
|
||||
} else {
|
||||
$usrKey = 'lne9TZLuqvFXtK3V';
|
||||
}
|
||||
|
||||
$usrURL = $tornURL.$usrKey;
|
||||
$usrLog = json_decode(file_get_contents($usrURL));
|
||||
$usrData = $usrLog->log;
|
||||
$usrVault = [];
|
||||
|
||||
foreach ($usrData as $entry) {
|
||||
if ($entry->log == 5851) {
|
||||
$usrVault[$i]['user'] = $user;
|
||||
$usrVault[$i]['timestamp'] = $entry->timestamp;
|
||||
$usrVault[$i]['operation'] = $entry->title;
|
||||
$usrVault[$i]['amount'] = $entry->data->withdrawn;
|
||||
|
||||
$csvComp = searchForId($entry->timestamp, $csv);
|
||||
|
||||
if ($csvComp) {
|
||||
echo 'Withdrawal (ID: ' . $entry->timestamp . ') already in vault';
|
||||
}
|
||||
|
||||
// fputcsv($fp, $usrVault[i]);
|
||||
} elseif ($entry->log == 5850) {
|
||||
$usrVault[$i]['user'] = $user;
|
||||
$usrVault[$i]['timestamp'] = $entry->timestamp;
|
||||
$usrVault[$i]['operation'] = $entry->title;
|
||||
$usrVault[$i]['amount'] = $entry->data->deposited;
|
||||
|
||||
$csvComp = searchForId($entry->timestamp, $csv);
|
||||
|
||||
if ($csvComp) {
|
||||
echo 'Deposit (ID: ' . $entry->timestamp . ') already in vault';
|
||||
}
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
return $usrVault;
|
||||
}
|
||||
|
||||
// Loop through file pointer and a line
|
||||
// foreach ($zarVault as $fields) {
|
||||
// fputcsv($fp, $fields);
|
||||
// }
|
||||
|
||||
fclose($fp);
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -97,21 +26,27 @@ fclose($fp);
|
||||
</thead>
|
||||
|
||||
<?php
|
||||
setlocale(LC_MONETARY, "en_US");
|
||||
// Sort the multidimensional array
|
||||
usort($csv, "custom_sort");
|
||||
|
||||
foreach ($zarVault as $entry) {
|
||||
// Define the custom sort function
|
||||
function custom_sort($a, $b) {
|
||||
return $a[1] > $b[1];
|
||||
}
|
||||
|
||||
foreach ($csv as $entry) {
|
||||
echo '<tr>';
|
||||
echo '<td>';
|
||||
echo $entry['user'];
|
||||
echo $entry[0];
|
||||
echo '</td>';
|
||||
echo '<td>';
|
||||
echo date("d/m/Y", $entry['timestamp']);
|
||||
echo date("d/m/Y", $entry[1]);
|
||||
echo '</td>';
|
||||
echo '<td>';
|
||||
echo $entry['operation'];
|
||||
echo $entry[2];
|
||||
echo '</td>';
|
||||
echo '<td>';
|
||||
echo formatMoney($entry['amount']);
|
||||
echo formatMoney($entry[3]);
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
@@ -2,3 +2,9 @@ Zarathos,1671111614,"Vault withdraw",5000000
|
||||
Zarathos,1670871611,"Vault withdraw",4000000
|
||||
Zarathos,1670698196,"Vault withdraw",1000000
|
||||
Zarathos,1671108304,"Vault deposit",3203752
|
||||
Zarathos,1671306102,"Vault withdraw",6000000
|
||||
Zarathos,1671306091,"Vault deposit",3915202
|
||||
Symos,1671136332,"Vault withdraw",750000
|
||||
Zarathos,1671313291,"Vault withdraw",8000000
|
||||
Zarathos,1671313285,"Vault deposit",3000000
|
||||
Zarathos,1671313280,"Vault deposit",3000000
|
||||
|
||||
|
Reference in New Issue
Block a user