$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'];
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; }