示例#1
0
$bin_name = '';
// name of the bin
$keywords = '';
// separate keywords by 'OR', limit your search to 10 keywords and operators, max 500 characters - https://dev.twitter.com/docs/using-search
$type = 'search';
// specify 'search' if you want this to be a standalone bin, or 'track' if you want to be able to continue tracking these keywords later on via BASE_URL/capture/index.php
if (empty($bin_name)) {
    die("bin_name not set\n");
}
if (empty($keywords)) {
    die("keywords not set\n");
}
if (dbserver_has_utf8mb4_support() == false) {
    die("DMI-TCAT requires at least MySQL version 5.5.3 - please upgrade your server");
}
$querybin_id = queryManagerBinExists($bin_name, $cronjob);
$current_key = 0;
$tweetQueue = new TweetQueue();
// ----- connection -----
$dbh = pdo_connect();
create_bin($bin_name, $dbh);
$ratefree = 0;
queryManagerCreateBinFromExistingTables($bin_name, $querybin_id, $type, explode("OR", $keywords));
search($keywords);
if ($tweetQueue->length() > 0) {
    $tweetQueue->insertDB();
}
function search($keywords, $max_id = null)
{
    global $twitter_keys, $current_key, $ratefree, $bin_name, $dbh, $tweetQueue;
    $ratefree--;
$dbpass_to = '';
$dbdatabase_to = '';
$bin_name = "";
// here you can specify the queries used with ytk
$queries = array();
if (dbserver_has_utf8mb4_support() == false) {
    die("DMI-TCAT requires at least MySQL version 5.5.3 - please upgrade your server\n");
}
$archive_dbh = new PDO("mysql:host={$dbhost_from};dbname=" . $dbdatabase_from, $dbuser_from, $dbpass_from, array(PDO::MYSQL_ATTR_INIT_COMMAND => "set sql_mode='ALLOW_INVALID_DATES'"));
$archive_dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh = new PDO("mysql:host={$dbhost_to};dbname=" . $dbdatabase_to, $dbuser_to, $dbpass_to, array(PDO::MYSQL_ATTR_INIT_COMMAND => "set sql_mode='ALLOW_INVALID_DATES'"));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if (empty($bin_name)) {
    die("bin_name not set\n");
}
$querybin_id = queryManagerBinExists($bin_name);
// Old table, importing tweets from here
$query = $archive_dbh->prepare("SELECT * FROM " . $ytk_table);
$query->execute();
// create new tables
create_bin($bin_name, $dbh);
queryManagerCreateBinFromExistingTables($bin_name, $querybin_id, 'import ytk', $queries);
// insert old data in new tables
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
    $txt = $row['text'];
    $hashtags = $urls = $mentions = $t = array();
    $t["id"] = $row['id'];
    $t["text"] = $txt;
    $t["created_at"] = date("Y-m-d H:i:s", strtotime($row["created_at"]));
    $t["from_user_name"] = $row['from_user'];
    $t["from_user_id"] = $row['from_user_id'];
示例#3
0
function rename_bin($params)
{
    $dbh = pdo_connect();
    if (!table_id_exists($params["bin"])) {
        echo '{"msg":"The query bin could not be found"}';
        return false;
    }
    if (!array_key_exists('newname', $params) || !is_string($params['newname']) || strlen($params['newname']) < 1 || strlen($params['newname'] > 45) || preg_match("/[ `;'\"\\(\\)]/", $params['newname'])) {
        echo '{"msg":"Illegal query bin name"}';
        return false;
    }
    if (queryManagerBinExists($params['newname'])) {
        echo '{"msg":"The new name for the query bin is already in use"}';
        return false;
    }
    $querybin_id = $params["bin"];
    $newname = $params["newname"];
    // get name of the old query_bin
    $sql = "SELECT querybin FROM tcat_query_bins WHERE id = :bin_id";
    $select_querybin = $dbh->prepare($sql);
    $select_querybin->bindParam(':bin_id', $querybin_id, PDO::PARAM_INT);
    $select_querybin->execute();
    if ($select_querybin->rowCount() == 0) {
        echo '{"msg":"The query bin with id [' . $querybin_id . '] cannot be found."}';
        return;
    }
    $results = $select_querybin->fetch();
    $oldname = $results['querybin'];
    // change the name in the TCAT tables
    $sql = "UPDATE tcat_query_bins SET querybin = :newname WHERE id = :querybin_id";
    $modify_bin = $dbh->prepare($sql);
    $modify_bin->bindParam(":newname", $newname, PDO::PARAM_STR);
    $modify_bin->bindParam(":querybin_id", $querybin_id, PDO::PARAM_INT);
    $modify_bin->execute();
    // alter MySQL table names
    $exts = array('tweets', 'mentions', 'urls', 'hashtags', 'withheld', 'places', 'media');
    foreach ($exts as $ext) {
        $oldfull = $oldname . '_' . $ext;
        $newfull = $newname . '_' . $ext;
        $sql = "ALTER TABLE `{$oldfull}` RENAME `{$newfull}`";
        $modify_bin = $dbh->prepare($sql);
        // table may not exist
        try {
            @$modify_bin->execute();
        } catch (Exception $e) {
            // ignore error
        }
    }
    echo '{"msg":"Your query bin has been renamed to ' . $newname . '"}';
    $dbh = false;
}