예제 #1
0
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";
}
예제 #2
0
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 . "')");
        }
    }
}