function pullLibrary($libraryName, $info, $baseDirectory, $targetDirectory) { if ($info["updates"] === "onlyOnce" && is_dir($targetDirectory)) { echo "---------------------------------------------------------------------\n"; echo "library {$libraryName} is already in {$targetDirectory} => no updates\n"; echo "---------------------------------------------------------------------\n"; echo "The update mode is declared as " . $info["updates"] . " in the configuration file\n"; echo "so this library is created but not updated. You can still remove the existing one\n"; echo "or change the configuration file if needed"; return; } createDir($targetDirectory); echo "\n"; echo "----------------------------------------------------------------\n"; echo "pulling library '{$libraryName}' to {$targetDirectory}\n"; echo "----------------------------------------------------------------\n"; if (isset($info['github'])) { pullGithub($info['github'], $targetDirectory); } elseif (isset($info['dir'])) { pullDirectory($baseDirectory . '/' . $info['dir'], $targetDirectory); } elseif (isset($info['urls'])) { foreach ($info['urls'] as $url => $targetBasename) { pullUrl($url, $targetDirectory, $targetBasename); } } else { echo "Don't know what to do with library {$libraryName}. No type recognized"; exit(5); } echo "library {$libraryName} pulled\n"; }
function getEvents() { global $db; $token = trim(file_get_contents('config/token.txt')); $mainPage = pullUrl("https://techspring.nationbuilder.com/api/v1/sites/v2/pages/events?starting=" . date("Y-m-d") . "&access_token=" . $token . ""); $obj = json_decode($mainPage); //echo "<pre>" . json_encode($obj, JSON_PRETTY_PRINT) . "</pre>"; if ($db = new SQLite3('local_db.sql')) { $q = @$db->query('CREATE TABLE IF NOT EXISTS events (eid INTEGER, start_time TEXT, end_time TEXT, name TEXT, description TEXT, PRIMARY KEY(eid))'); $q = @$db->query('CREATE TABLE IF NOT EXISTS rsvp (eid INTEGER, uid INTEGER)'); } foreach ($obj->results as $eventObj) { echo "<br/>{$eventObj->id} - {$eventObj->name} - {$eventObj->start_time} - {$eventObj->end_time} - {$eventObj->intro} <br />"; $startTime = strtotime($eventObj->start_time); $endTime = strtotime($eventObj->end_time); echo "Date: " . date("l, F jS", $startTime); echo "<br />Time:" . date("g:i a", $startTime) . " - " . date("g:i a", $endTime) . "<br />"; @$db->query("INSERT OR IGNORE INTO `events` (eid, start_time, end_time, name, description) VALUES " . "('" . $eventObj->id . "'," . "'" . $eventObj->start_time . "'," . "'" . $eventObj->end_time . "'," . "'" . $eventObj->name . "'," . "'" . $eventObj->intro . "');"); } $eventRes = @$db->query("SELECT * FROM `events`"); while ($event = $eventRes->fetchArray()) { $json = pullUrl("https://techspring.nationbuilder.com/api/v1/sites/v2/pages/events/" . $event['eid'] . "/rsvps?limit=10&__proto__=&access_token=" . $token); $rsvpData = json_decode($json); foreach ($rsvpData->results as $rsvp) { @$db->query("INSERT OR IGNORE INTO `rsvp` (eid, uid) VALUES ('" . $event['eid'] . "','" . $rsvp->person_id . "')"); } } }