71 lines
2.0 KiB
PHP
71 lines
2.0 KiB
PHP
|
<?php
|
||
|
/*
|
||
|
Copyright 2010 Pieter Iserbyt
|
||
|
|
||
|
This file is part of Pamela.
|
||
|
|
||
|
Pamela is free software: you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation, either version 3 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
Pamela is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with Pamela. If not, see <http://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
require_once("lib/db.php");
|
||
|
|
||
|
function data_check_table() {
|
||
|
static $table_exists = FALSE;
|
||
|
|
||
|
// already checked? skip...
|
||
|
if ($table_exists == TRUE) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// get db handle
|
||
|
$db = get_db();
|
||
|
|
||
|
// already in db? skip and remember...
|
||
|
$q = $db->query("select name from sqlite_master where type='table' and name='data'");
|
||
|
if ($q->fetchArray()) {
|
||
|
$table_exists = TRUE;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// create the table and remember...
|
||
|
$table_exists = $db->exec("create table data (data text unique on conflict replace, committime integer)");
|
||
|
}
|
||
|
|
||
|
function data_get() {
|
||
|
$results = array();
|
||
|
data_check_table();
|
||
|
$db = get_db();
|
||
|
$q = $db->query("select data from data where committime > strftime('%s','now') - ".DATA_TTL);
|
||
|
if (!$q) return $results;
|
||
|
while($row = $q->fetchArray(SQLITE3_ASSOC)) {
|
||
|
$results[] = $row['data'];
|
||
|
}
|
||
|
return $results;
|
||
|
}
|
||
|
|
||
|
function data_add($data) {
|
||
|
$db = get_db();
|
||
|
data_check_table();
|
||
|
$data = $db->escapeString($data);
|
||
|
#echo "insert or replace into data values (\"$data\", strftime('%s','now'))\n";
|
||
|
$result = $db->exec("insert or replace into data values (\"$data\", strftime('%s','now'))");
|
||
|
if (!$result)
|
||
|
echo "ERROR: ".$db->lastErrorMsg()."\n";
|
||
|
}
|
||
|
|
||
|
function data_purge() {
|
||
|
$db = get_db();
|
||
|
data_check_table();
|
||
|
return $db->exec("delete from data where committime <= strftime('%s','now') - ".DATA_TTL);
|
||
|
}
|