예제 #1
0
function convert_tables($db_config, $rules_config, $table_name)
{
    // connect db
    $mysql = new MeekroDB($db_config['host'], $db_config['user'], $db_config['pass'], $db_config['db'], $db_config['port'], $db_config['enc']);
    // convert list
    $table_list = array();
    if ($table_name != '') {
        $table_list = array($table_name);
    } else {
        $table_list = $mysql->tableList();
    }
    foreach ($table_list as $t) {
        if ($rules_config[$t] == NULL) {
            continue;
            // no convert rule
        }
        // load convert config
        $rule_list = $rules_config[$t];
        // load old data
        $rows = $mysql->query("SELECT * FROM %b", $t);
        foreach ($rows as $r) {
            // for each convert config
            foreach ($rule_list as $rule) {
                $tablename = $rule['table'];
                $convertor = $rule['func'];
                // convert data
                $newrow = $convertor($mysql, $r);
                if (empty($newrow)) {
                    continue;
                    // convert error
                }
                $values = '';
                $keys = array_keys($newrow);
                foreach ($keys as $k) {
                    $values .= ' ' . $k . "='" . mysql_escape_string($newrow[$k]) . "',";
                }
                if (strlen($values) > 0) {
                    $values = substr($values, 0, -1);
                }
                // generate insert sql
                $sql = 'INSERT INTO ' . $tablename . ' SET' . $values . ';';
                echo $sql . "\n";
            }
        }
    }
}
예제 #2
0
파일: musics.php 프로젝트: koala87/backup
<?php 
header("content-type:text/html; charset=utf-8");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$queryString = "SELECT mmid, serial_id, name, singer, path, lyric, prelude\r\nFROM media_music";
$queryParamater = " WHERE enabled=1";
if (!isset($_REQUEST["sid"])) {
    echo json_encode(array("result" => null, "status" => false, "error" => "需提交歌手编号(sid)"));
    exit;
}
$artistid = intval($_REQUEST["sid"]);
$queryParamater = $queryParamater . " AND (artist_sid_1=%d OR artist_sid_2=%d)";
$handle = '';
if (isset($_REQUEST["header"])) {
    $handle = '%' . strval($_REQUEST["header"]) . '%';
    $queryParamater = $queryParamater . " AND header LIKE %s";
} else {
    if (isset($_REQUEST["pinyin"])) {
        $handle = '%' . strval($_REQUEST["pinyin"]) . '%';
        $queryParamater = $queryParamater . " AND pinyin LIKE %s";
    } else {
        if (isset($_REQUEST["name"])) {
            $handle = '%' . strval($_REQUEST["name"]) . '%';
            $queryParamater = $queryParamater . " AND name LIKE %s";
        }
예제 #3
0
파일: songid.php 프로젝트: koala87/backup
<?php

header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (!isset($_REQUEST["serialid"]) && !isset($_REQUEST["mid"])) {
    echo json_encode(array("result" => null, "status" => false, "error" => "请提交正确的参数"));
    exit;
}
$queryString = "SELECT A.mid, A.serial_id, A.name, A.singer, A.path, A.original_track, A.sound_track, A.start_volume_1, A.start_volume_2, A.lyric, A.prelude, A.match, B.name AS effect, C.name AS version \r\nFROM media A \r\nLEFT JOIN media_effect B ON A.effect = B.id \r\nLEFT JOIN media_version C ON A.version=C.id";
$queryParamater = " WHERE A.enabled=1";
$rb = $mdb->queryFirstRow("SELECT value FROM config_resource WHERE name = 'filter_black'");
if ($rb["value"] == 1) {
    $queryParamater = $queryParamater . " AND A.black=0";
}
if (isset($_REQUEST["serialid"])) {
    $queryParamater = $queryParamater . " AND serial_id=%d";
    $handler = $_REQUEST["serialid"];
} else {
    if (isset($_REQUEST["mid"])) {
        $queryParamater = $queryParamater . " AND mid=%d";
        $handler = $_REQUEST["mid"];
    }
}
$queryString = $queryString . $queryParamater;
//echo $queryString."<br />";
$result = $mdb->queryFirstRow($queryString, $handler);
if (!$result) {
    //未获取mv 则查找MP3
    if (isset($_REQUEST["serialid"])) {
예제 #4
0
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$queryString = "SELECT B.mid, B.serial_id, B.name, B.singer, B.path, B.original_track, B.sound_track, B.start_volume_1, B.start_volume_2, B.lyric, B.prelude, B.match, C.name AS effect, D.name AS version \r\nFROM media_recommand A \r\nLEFT JOIN media B ON A.rmid = B.mid \r\nLEFT JOIN media_effect C ON B.effect = C.id \r\nLEFT JOIN media_version D ON B.version=D.id";
$queryParamater = " WHERE B.enabled=1";
if (!isset($_REQUEST["mid"])) {
    echo json_encode(array("result" => null, "status" => false, "error" => "需提交歌曲编号(mid)"));
    exit;
}
$queryParamater = $queryParamater . " AND A.mid=%d";
//Check the black list option is open or not
$rb = $mdb->queryFirstRow("SELECT value FROM config_resource WHERE name = 'filter_black'");
if ($rb["value"] == 1) {
    $queryParamater = $queryParamater . " AND B.black = 0";
}
$queryString = $queryString . $queryParamater;
// echo $queryString."<br />";
$results = $mdb->query($queryString, $_REQUEST["mid"]);
$songs = formatSongsResult($results);
//When ther is no recommend, add songs from this singer.
if (count($songs) < 5) {
    $add_result = $mdb->query("SELECT A.mid, A.serial_id, A.name, A.singer, A.path, A.original_track, A.sound_track, A.start_volume_1, A.start_volume_2, A.lyric, A.prelude,A.match, B.name AS effect, C.name AS version \r\n        FROM media A \r\n        LEFT JOIN media_effect B ON A.effect = B.id \r\n        LEFT JOIN media_version C ON A.version=C.id\r\n        LEFT JOIN media D ON A.mid <> D.mid AND A.artist_sid_1=D.artist_sid_1 OR A.artist_sid_1=D.artist_sid_2\r\n        WHERE D.mid=%d LIMIT 0,10", $_REQUEST["mid"]);
    foreach ($add_result as $row) {
        $song = formatSongResult($row);
        array_push($songs, $song);
        if (count($songs) == 5) {
            break;
        }
    }
예제 #5
0
 function deleteBase($formvars = array())
 {
     global $SERVER_EXTENSIONS;
     $mdb = $this->mdb;
     // add all missing keys to array
     fixFormVars($formvars, array('IDbase'));
     $this->notifs['base_deleted'] = true;
     $mdb->delete('base_client', "IDbase = %i AND IDbase IN (SELECT IDbase FROM base WHERE IDaccount = %i)", $formvars['IDbase'], $_SESSION['IDaccount']);
     $mdb->delete('txserver2base', "IDbase = %i AND IDbase IN (SELECT IDbase FROM base WHERE IDaccount = %i)", $formvars['IDbase'], $_SESSION['IDaccount']);
     // security check for log file deletion
     $base = $mdb->queryFirstRow("SELECT IDbase FROM base WHERE IDbase = %i AND IDaccount = %i", $formvars['IDbase'], $_SESSION['IDaccount']);
     if (count($base) !== NULL) {
         $path = server_basesock_log_path;
         $file = $path . $base['IDbase'] . '.json';
         if (file_exists($file)) {
             unlink($file);
         }
     }
     // Handle Server Extensions deletion
     // first lets check if we own this IDbase... easiest way, not the smartest
     $is_my_base = $this->getBase($formvars['IDbase']);
     if (count($is_my_base) == 1) {
         // Android GCM is here?
         if (isset($SERVER_EXTENSIONS['se_android_gcm']) && $SERVER_EXTENSIONS['se_android_gcm']['enabled'] == 1) {
             $se_mdb = new MeekroDB(mysql_host, mysql_username, mysql_password, $SERVER_EXTENSIONS['se_android_gcm']['mysql_database']);
             $se_mdb->delete('base_config', "IDbase = %i", $formvars['IDbase']);
         }
     }
     // Lastly delete the Base record
     $mdb->delete('base', "IDbase = %i AND IDaccount = %i", $formvars['IDbase'], $_SESSION['IDaccount']);
 }
예제 #6
0
파일: media.php 프로젝트: koala87/backup
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$queryString = "SELECT A.mid, A.serial_id, A.name, A.singer, A.path, A.original_track, A.sound_track, A.start_volume_1, A.start_volume_2, A.lyric, A.prelude,A.match, B.name AS effect, C.name AS version \r\n    FROM songlist_detail D \r\n    LEFT JOIN media A ON D.mid = A.mid \r\n    LEFT JOIN media_effect B ON A.effect = B.id \r\n    LEFT JOIN media_version C ON A.version=C.id";
$queryParamater = " WHERE A.enabled=1";
if (!isset($_REQUEST["lid"])) {
    echo json_encode(array("result" => null, "status" => false, "error" => "需提交歌单编号(lid)"));
    exit;
}
$queryParamater = $queryParamater . " AND D.lid = %d";
//Check the black list option is open or not
$rb = $mdb->queryFirstRow("SELECT value FROM config_resource WHERE name = 'filter_black'");
if ($rb["value"] == 1) {
    $queryParamater = $queryParamater . " AND B.black = 0";
}
$countResult = $mdb->queryFirstRow("SELECT COUNT(*) AS count FROM songlist_detail WHERE lid=%d", intval($_REQUEST["lid"]));
$totalNumber = 0;
$countValue = $countResult['count'];
if ($countValue == 0) {
    $pageCount = 0;
} else {
    $pageCount = (int) ($countValue / $number);
    if ($countValue % $number != 0) {
        $pageCount = $pageCount + 1;
예제 #7
0
파일: _list.php 프로젝트: koala87/backup
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
require_once '../tools/redisCache.php';
// header("content-type:text/html");
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$redis = new redisCache(REDIS_HOST, REDIS_PORT);
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$use_cache = true;
$redis_key = "songlist#media#list";
$queryString = "SELECT A.mid, A.serial_id, A.name, A.singer, A.path, A.original_track, A.sound_track, A.start_volume_1, A.start_volume_2, A.lyric, A.prelude, A.match, B.name AS effect, C.name AS version, A.artist_sid_1 AS singer_id \r\nFROM media A \r\nLEFT JOIN media_effect B ON A.effect = B.id \r\nLEFT JOIN media_version C ON A.version=C.id";
$queryParamater = " WHERE A.enabled=1";
$type = "";
if (isset($_REQUEST["type"])) {
    $r1 = $mdb->queryFirstRow("SELECT id, name FROM media_type WHERE name=%s", $_REQUEST["type"]);
    $type = $r1["id"];
    //set type
    if ($type == "") {
        echo json_encode(array("result" => null, "status" => false, "error" => "请求的类型不存在"));
        exit;
    } else {
        $queryParamater = $queryParamater . " AND A.type=" . $type;
    }
}
if ($type) {
    $redis_key .= "#" . $type;
예제 #8
0
    $mdb = new MeekroDB();
    $mdb->insert('cars', $_POST);
});
$_PUT = $app->request->params();
// PUT route
$app->put('/cars/:id', function ($id) use($_PUT) {
    $columns = array('id', 'brand', 'model', 'year', 'cost');
    // Get a list of cars
    $mdb = new MeekroDB();
    $params = array();
    foreach ($columns as $column) {
        if (isset($_PUT[$column])) {
            $params[] = "`" . $column . "` = '" . $_PUT[$column] . "'";
        }
    }
    $query = "UPDATE cars SET " . implode(',', $params) . " WHERE id=" . $id;
    echo json_encode($mdb->query($query));
});
// DELETE route
$app->delete('/cars/:id', function ($id) {
    $query = 'DELETE FROM cars WHERE id=' . $id;
    $mdb = new MeekroDB();
    echo json_encode($mdb->query($query));
});
/**
 * Step 4: Run the Slim application
 *
 * This method should be called last. This executes the Slim application
 * and returns the HTTP response to the HTTP client.
 */
$app->run();
예제 #9
0
파일: list.php 프로젝트: koala87/backup
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 10;
}
$queryString = "SELECT lid, title, image, type, count, special FROM songlist";
$queryParamater = "";
$type = "";
if (isset($_REQUEST["type"])) {
    $queryParamater = " WHERE type = %s";
    $type = strval($_REQUEST["type"]);
}
$countResult = $mdb->queryFirstRow("SELECT COUNT(*) AS count FROM songlist" . $queryParamater, $type);
$totalNumber = 0;
$countValue = $countResult['count'];
if ($countValue == 0) {
    $pageCount = 0;
} else {
    $pageCount = (int) ($countValue / $number);
    if ($countValue % $number != 0) {
        $pageCount = $pageCount + 1;
    }
    $totalNumber = intval($countValue);
}
//echo $count."<br />";
if (isset($_REQUEST["page"]) && $_REQUEST["page"] > $pageCount) {
예제 #10
0
파일: db.php 프로젝트: koala87/backup
<?php

if (!defined("CHECK_ON")) {
    exit;
}
require_once '../tools/db.php';
require_once '../tools/main.php';
header("Content-type: text/html; charset=utf-8");
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$ret_str = "";
$check_list = array();
if ($check_list) {
    foreach ($check_list as $key => $check_table) {
        $ret = $mdb->query("SHOW COLUMNS FROM {$check_table['table_name']}");
        if ($ret) {
            $field_arr = array();
            foreach ($ret as $key => $value) {
                array_push($field_arr, $value['Field']);
            }
            foreach ($check_table['check_field'] as $key => $value) {
                if (!in_array($value, $field_arr)) {
                    $ret_str .= "数据表{$check_table['table_name']}缺少字段:{$value}" . PHP_EOL;
                }
            }
        }
    }
}
return $ret_str;
예제 #11
0
 require $meekro;
 $queries = array();
 $queries[0] = "\nCREATE TABLE IF NOT EXISTS `activated_plugins` (\n  `plugin_xml_path` varchar(255) NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;\n";
 $queries[1] = "\nCREATE TABLE IF NOT EXISTS `articles` (\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n  `title` text NOT NULL,\n  `content` mediumtext NOT NULL,\n  `tags` text NOT NULL,\n  `authorID` int(11) NOT NULL,\n  `date` date NOT NULL,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;\n";
 $queries[2] = "\nCREATE TABLE IF NOT EXISTS `comments` (\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n  `content` text NOT NULL,\n  `articleID` int(10) unsigned NOT NULL,\n  `authorID` int(10) unsigned NOT NULL,\n  `timestamp` int(11) NOT NULL,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;\n";
 $queries[3] = "\nCREATE TABLE IF NOT EXISTS `notifications` (\n  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n  `title` text NOT NULL,\n  `text` text NOT NULL,\n  `image` text,\n  `time` int(11) NOT NULL,\n  `userID` int(11) unsigned NOT NULL,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=65 ;\n";
 $queries[4] = "\nCREATE TABLE IF NOT EXISTS `pages` (\n  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n  `title` mediumtext NOT NULL,\n  `content` text NOT NULL,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;\n";
 $queries[5] = "\nCREATE TABLE IF NOT EXISTS `plugin_data` (\n  `access_key` text NOT NULL,\n  `setting` text NOT NULL,\n  `setting_type` varchar(255) NOT NULL,\n  `setting_value` text NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;\n";
 $queries[6] = "\nCREATE TABLE IF NOT EXISTS `sessions` (\n  `userID` int(11) NOT NULL,\n  `sessionID` text NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;\n";
 $queries[7] = "\nCREATE TABLE IF NOT EXISTS `settings` (\n  `setting` tinytext NOT NULL,\n  `value` tinytext NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;\n";
 $queries[8] = "\nCREATE TABLE IF NOT EXISTS `storage` (\n  `key` text NOT NULL,\n  `var` text NOT NULL,\n  `is_object` varchar(255) NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;\n";
 $queries[9] = "\nCREATE TABLE IF NOT EXISTS `style_data` (\n  `style_main_class` text NOT NULL,\n  `setting` text NOT NULL,\n  `setting_type` varchar(255) NOT NULL,\n  `setting_value` text NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;\n";
 $queries[10] = "\nCREATE TABLE IF NOT EXISTS `users` (\n  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n  `name` varchar(50) NOT NULL,\n  `password` text NOT NULL,\n  `email` varchar(80) NOT NULL,\n  `rank` tinyint(1) NOT NULL,\n  `activated` tinyint(1) NOT NULL,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=30 ;\n";
 $queries[11] = "\nCREATE TABLE IF NOT EXISTS `user_activations` (\n  `userID` int(11) NOT NULL,\n  `code` text NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;\n";
 $creds = $_SESSION['mysql_creds'];
 $db = new MeekroDB($creds['host'], $creds['username'], $creds['password'], $creds['database']);
 foreach ($queries as $query) {
     $db->query($query);
 }
 unset($_SESSION['mysql_creds']);
 $db->insert("settings", array("setting" => "website_url", "value" => $_POST['website_url']));
 $db->insert("settings", array("setting" => "website_name", "value" => $_POST['website_name']));
 $db->insert("settings", array("setting" => "website_style", "value" => "monk"));
 $db->insert("settings", array("setting" => "website_email", "value" => $_POST['admin_email']));
 $db->insert("settings", array("setting" => "website_lang", "value" => "en_US"));
 $db->insert("settings", array("setting" => "show_archive", "value" => "true"));
 $conf = new ConfigFile();
 $config = array();
 $config['db'] = array();
 $config['security'] = array();
 $config['db']['name'] = $creds['database'];
예제 #12
0
<?php

define('ROOT_PATH', getcwd() . '/');
define('SHARED_PATH', ROOT_PATH . '../Shared/');
define('VENDOR_PATH', SHARED_PATH . './vendor/');
require SHARED_PATH . 'config.inc.php';
require SHARED_PATH . 'helpers.php';
require VENDOR_PATH . 'autoload.php';
require VENDOR_PATH . 'sergeytsalkov/meekrodb/db.class.php';
require VENDOR_PATH . 'erusev/parsedown/Parsedown.php';
set_error_handler("exceptionErrorHandler", E_ALL);
$database = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT, DB_CHARSET);
$database->throw_exception_on_error = true;
$database->error_handler = false;
$parsedown = new Parsedown();
function patch($importEntity, $existingEntity, $mapping)
{
    $result = array();
    $isModified = false;
    if (isset($existingEntity)) {
        $result["Id"] = $existingEntity["Id"];
        if ($existingEntity["IsDeleted"] == 1) {
            $isModified = true;
        }
        //Log::info("  Patching existing id=".$result["Id"]);
    } else {
        $isModified = true;
        $result["Id"] = GUID();
        Log::info("  Creating new id=" . $result["Id"]);
    }
    $result["IsDeleted"] = 0;
define('SHARED_PATH', ROOT_PATH . '../Shared/');
define('VENDOR_PATH', SHARED_PATH . './vendor/');
require SHARED_PATH . 'config.inc.php';
require SHARED_PATH . 'helpers.php';
require VENDOR_PATH . 'autoload.php';
require VENDOR_PATH . 'sergeytsalkov/meekrodb/db.class.php';
require VENDOR_PATH . 'parsecsv/php-parsecsv/parsecsv.lib.php';
use YaLinqo\Enumerable;
set_error_handler("exceptionErrorHandler", E_ALL);
$fileName = isset($argv[1]) ? $argv[1] : "/temp/efschedule.csv";
Log::info("Trying to import from file: " . $fileName);
if (!file_exists($fileName)) {
    Log::error("File dies not exist: " . $fileName);
    die;
}
$database = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT, DB_CHARSET);
$database->throw_exception_on_error = true;
$database->error_handler = false;
$csv = new parseCSV($fileName);
$eventQuery = Enumerable::from($csv->data);
function fixConferenceDayName($name)
{
    $name = str_replace("Mon - ", "", $name);
    $name = str_replace("Tue - ", "", $name);
    $name = str_replace("Wed - ", "", $name);
    $name = str_replace("Thu - ", "", $name);
    $name = str_replace("Fri - ", "", $name);
    $name = str_replace("Sat - ", "", $name);
    $name = str_replace("Sun - ", "", $name);
    return $name;
}
예제 #14
0
function archive_lmt_db($uname, $passw, $yrfrom, $yrto)
{
    $yrfrom = intval($yrfrom);
    $yrto = intval($yrto);
    //Reconnect with the new username/password with more privileges
    $adminDB = new MeekroDB(NULL, $uname, $passw);
    //create new db
    //probably triggers error if already exists
    $adminDB->query("CREATE DATABASE  `lmt-{$yrfrom}` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci");
    $adminDB->useDB('lmt-' . $yrfrom);
    //copy db info to new db
    //This can be done dynamically using SHOW TABLES but this is easier.
    $tables = array('guts', 'individuals', 'map', 'pages', 'schools', 'teams');
    foreach ($tables as $table) {
        $adminDB->query("CREATE TABLE  `lmt-{$yrfrom}`.`{$table}` LIKE `lmt`.`{$table}`");
        $adminDB->query("INSERT `lmt-{$yrfrom}`.`{$table}` SELECT * FROM `lmt`.`{$table}`");
    }
    //truncate necessary fields in LMT db, since it's already archived.
    $tables_truncate = array('guts', 'individuals', 'schools', 'teams');
    foreach ($tables_truncate as $table) {
        $adminDB->query("TRUNCATE TABLE `lmt`.`{$table}`");
    }
}
define('SHARED_PATH', ROOT_PATH . '../Shared/');
define('VENDOR_PATH', SHARED_PATH . './vendor/');
require SHARED_PATH . 'config.inc.php';
require SHARED_PATH . 'helpers.php';
require VENDOR_PATH . 'autoload.php';
require VENDOR_PATH . 'sergeytsalkov/meekrodb/db.class.php';
require VENDOR_PATH . 'parsecsv/php-parsecsv/parsecsv.lib.php';
use YaLinqo\Enumerable;
set_error_handler("exceptionErrorHandler", E_ALL);
$fileName = isset($argv[1]) ? $argv[1] : "/temp/wiki.txt";
Log::info("Trying to import from file: " . $fileName);
if (!file_exists($fileName)) {
    Log::error("File dies not exist: " . $fileName);
    die;
}
$database = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT, DB_CHARSET);
$database->throw_exception_on_error = true;
$database->error_handler = false;
// Full page source of http://wiki.eurofurence.org/doku.php?id=ef22:it:mobileapp:coninfo
$wikiText = file_get_contents($fileName);
$regexParseContent = "/<WRAP[^>]*>PARSE_START<\\/WRAP>(.*)<WRAP[^>]*>PARSE_END<\\/WRAP>/si";
$regexGroup = "/====([^=]+)====(.+?)((?=====)|\$)/siu";
$regexEntry = "/===([^=]+)===.+?<WRAP box[^>]*>(.+?)<\\/WRAP>([^\\<]*<WRAP lo[^>]*>([^\\<]+)<\\/WRAP>){0,1}/si";
$regexLinks = "/  \\* \\[\\[([^\\|]+)\\|([^\\]]+)\\]\\]/si";
preg_match($regexParseContent, $wikiText, $matches);
$wikiTextToParse = trim($matches[1]);
preg_match_all($regexGroup, $wikiTextToParse, $groupMatches);
$position = 0;
$groupIds = array();
try {
    $database->startTransaction();
예제 #16
0
파일: _list.php 프로젝트: koala87/backup
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
require_once '../tools/redisCache.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$redis = new redisCache(REDIS_HOST, REDIS_PORT);
$use_cache = true;
$redis_key = 'songlist#singer#list';
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 12) {
    $number = $_REQUEST["number"];
} else {
    $number = 12;
}
$queryString = "SELECT sid, serial_id, A.name, nation, A.sex, B.name AS sexType, stars, song_count, baiwei_recommend\r\nFROM actor A \r\nLEFT JOIN actor_sex B ON A.sex=B.id\r\n";
$queryParamater = " WHERE enabled = 1";
//Check the black list option is open or not
$rb = $mdb->queryFirstRow("SELECT value FROM config_resource WHERE name = 'filter_black'");
if ($rb["value"] == 1) {
    $queryParamater = $queryParamater . " AND A.black=0";
}
$typeID = -1;
if (isset($_REQUEST["type"])) {
    for ($x = 0; $x <= 15; $x++) {
        if ($singerType[$x] == strval($_REQUEST["type"])) {
            $typeID = $x;
        }
    }
    if ($typeID == -1) {
        echo json_encode(array("result" => null, "status" => false, "error" => "请求的类型不存在"));
        exit;
define('SHARED_PATH', ROOT_PATH . '../Shared/');
define('VENDOR_PATH', SHARED_PATH . './vendor/');
require SHARED_PATH . 'config.inc.php';
require SHARED_PATH . 'helpers.php';
require VENDOR_PATH . 'autoload.php';
require VENDOR_PATH . 'sergeytsalkov/meekrodb/db.class.php';
require VENDOR_PATH . 'parsecsv/php-parsecsv/parsecsv.lib.php';
use YaLinqo\Enumerable;
set_error_handler("exceptionErrorHandler", E_ALL);
$fileName = isset($argv[1]) ? $argv[1] : "/temp/EF22.zip";
Log::info("Trying to import from file: " . $fileName);
if (!file_exists($fileName)) {
    Log::error("File dies not exist: " . $fileName);
    die;
}
$database = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT, DB_CHARSET);
$database->throw_exception_on_error = true;
$database->error_handler = false;
$zipArchiveLocation = $fileName;
$zipContentsQueryable = getZipContentsAsQueryable($zipArchiveLocation);
$csvEntry = $zipContentsQueryable->where(function ($v) {
    return endsWith($v["name"], "csv");
})->single();
$csvData = getZipContentOfFile($zipArchiveLocation, $csvEntry['name']);
while (ord($csvData[0]) > 127) {
    $csvData = substr($csvData, 1);
}
$csvParser = new parseCSV();
$csvParser->delimiter = ";";
$csvContentsQueryable = from($csvParser->parse_string(utf8_decode($csvData)));
try {
예제 #18
0
파일: songs.php 프로젝트: koala87/backup
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$queryString = "SELECT A.mid, A.serial_id, A.name, A.singer, A.path, A.original_track, A.sound_track, A.start_volume_1, A.start_volume_2, A.lyric, A.prelude, A.match, B.name AS effect, C.name AS version \r\nFROM media A \r\nLEFT JOIN media_effect B ON A.effect = B.id \r\nLEFT JOIN media_version C ON A.version=C.id";
$queryParamater = " WHERE A.enabled=1";
if (!isset($_REQUEST["sid"])) {
    echo json_encode(array("result" => null, "status" => false, "error" => "需提交歌手编号(sid)"));
    exit;
}
$artistid = intval($_REQUEST["sid"]);
$queryParamater = $queryParamater . " AND (A.artist_sid_1=%d OR A.artist_sid_2=%d)";
//Check the black list option is open or not
$rb = $mdb->queryFirstRow("SELECT value FROM config_resource WHERE name = 'filter_black'");
if ($rb["value"] == 1) {
    $queryParamater = $queryParamater . " AND A.black=0";
}
$handle = '';
if (isset($_REQUEST["header"])) {
    $handle = '%' . strval($_REQUEST["header"]) . '%';
    $queryParamater = $queryParamater . " AND A.header LIKE %s";
} else {
    if (isset($_REQUEST["pinyin"])) {
        $handle = '%' . strval($_REQUEST["pinyin"]) . '%';
        $queryParamater = $queryParamater . " AND A.pinyin LIKE %s";
예제 #19
0
파일: board.php 프로젝트: koala87/backup
<?php 
// header("content-type:text/html; charset=utf-8");
header("Content-Type: application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
require_once '../tools/redisCache.php';
//排行榜
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$redis = new redisCache(REDIS_HOST, REDIS_PORT);
$use_cache = true;
$redis_key = "songlist#media#board";
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
if (isset($_REQUEST["type"])) {
    $type = strval($_REQUEST["type"]);
    $redis_key .= "#" . $type;
} else {
    echo json_encode(array("result" => null, "status" => false, "error" => "没有上传列表类型"));
    exit;
}
$queryString = "SELECT B.mid, B.serial_id, B.name, B.singer, B.path, B.original_track, B.sound_track, B.start_volume_1, B.start_volume_2, B.lyric, B.prelude, B.match, C.name AS effect, D.name AS version, B.artist_sid_1 AS singer_id\r\nFROM media_list A \r\nLEFT JOIN media B ON A.mid = B.mid \r\nLEFT JOIN media_effect C ON B.effect = C.id \r\nLEFT JOIN media_version D ON B.version=D.id \r\nWHERE B.enabled = 1 AND A.type=%s";
$queryParamater = "";
//Check the black list option is open or not
$black = false;
$rb = $mdb->queryFirstRow("SELECT value FROM config_resource WHERE name = 'filter_black'");
if ($rb["value"] == 1) {
    $black = true;
    $queryParamater = $queryParamater . " AND B.black = 0";
예제 #20
0
파일: songid.php 프로젝트: koala87/backup
<?php

header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (!isset($_REQUEST["serialid"]) && !isset($_REQUEST["mmid"])) {
    echo json_encode(array("result" => null, "status" => false, "error" => "请提交正确的参数"));
    exit;
}
$queryString = "SELECT mmid, serial_id, name, singer, path, lyric, prelude, has_lyric\r\nFROM media_music";
$queryParamater = " WHERE enabled=1";
if (isset($_REQUEST["serialid"])) {
    $queryParamater = $queryParamater . " AND serial_id=%d";
    $handler = $_REQUEST["serialid"];
} else {
    if (isset($_REQUEST["mmid"])) {
        $queryParamater = $queryParamater . " AND mmid=%d";
        $handler = $_REQUEST["mmid"];
    }
}
$queryString = $queryString . $queryParamater;
//echo $queryString."<br />";
$result = $mdb->queryFirstRow($queryString, $handler);
if (!$result) {
    echo json_encode(array("result" => null, "status" => false, "error" => "查询内容不存在"));
    exit;
}
$finalResult = array("song" => formatMusicResult($result));
echo json_encode(array("result" => $finalResult, "status" => true, "error" => ""));
saveLog($GLOBALS['timeStart'], $_SERVER['REQUEST_URI']);
예제 #21
0
파일: music.php 프로젝트: koala87/backup
} else {
    include_once '_music.php';
    exit;
}
//Sphinx 搜索
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
include_once "../tools/sphinxapi.php";
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$pageNum = isset($_REQUEST["page"]) ? intval($_REQUEST["page"]) : 0;
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$sphinx = new SphinxClient();
$sphinx->SetServer(SPHINX_HOST, SPHINX_PORT);
$sphinx->SetArrayResult(true);
$sphinx->SetLimits($pageNum * $number, $number, 5000);
$sphinx->SetMaxQueryTime(10);
$sphinx->SetMatchMode(SPH_MATCH_EXTENDED2);
$sphinx->SetFilter('enabled', array(1));
if (isset($_REQUEST['words'])) {
    if (intval($_REQUEST['words']) < 9) {
        $sphinx->SetFilter('words', array(intval($_REQUEST['words'])));
    } else {
        $sphinx->SetFilterRange('words', 9, 100);
    }
}
$sphinx->SetSortMode(SPH_SORT_EXTENDED, "words ASC, count DESC, head ASC");
예제 #22
0
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$queryString = "SELECT B.mid, B.serial_id, B.name, B.singer, B.path, B.original_track, B.sound_track, B.start_volume_1, B.start_volume_2, B.lyric, B.prelude, B.match, C.name AS effect, D.name AS version \r\nFROM media_list A \r\nLEFT JOIN media B ON A.mid = B.mid \r\nLEFT JOIN media_effect C ON B.effect = C.id \r\nLEFT JOIN media_version D ON B.version=D.id \r\nWHERE A.type='pro'";
$queryParamater = "";
//Check the black list option is open or not
$rb = $mdb->queryFirstRow("SELECT value FROM config_resource WHERE name = 'filter_black'");
if ($rb["value"] == 1) {
    $queryParamater = $queryParamater . " AND B.black = 0";
}
$countResult = $mdb->queryFirstRow("SELECT COUNT(*) as count FROM media_list LEFT JOIN media ON media_list.mid = media.mid WHERE media_list.type = 'pro'" . $queryParamater);
$totalNumber = 0;
$countValue = $countResult['count'];
if ($countValue == 0) {
    $pageCount = 0;
} else {
    $pageCount = (int) ($countValue / $number);
    if ($countValue % $number != 0) {
        $pageCount = $pageCount + 1;
    }
    $totalNumber = intval($countValue);
}
if (isset($_REQUEST["page"]) && intval($_REQUEST["page"]) > $pageCount) {
    echo json_encode(array("result" => null, "status" => false, "error" => "请求页数超过总页数"));
예제 #23
0
파일: _music.php 프로젝트: koala87/backup
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$queryString = "SELECT mmid, serial_id, name, singer, path, lyric, prelude\r\nFROM media_music A";
$queryParamater = " WHERE enabled=1";
if (!isset($_REQUEST["keyword"]) && !isset($_REQUEST["pinyin"]) && !isset($_REQUEST["header"])) {
    echo json_encode(array("result" => null, "status" => false, "error" => "未提交关键字"));
    exit;
}
// if (isset($_REQUEST["keyword"])){
// $queryParamater = $queryParamater." OR name LIKE ".'\'%'.strval($_REQUEST["keyword"]).'%\'';
// }
// if (isset($_REQUEST["pinyin"]) && isset($_REQUEST["header"])){
// $queryParamater = $queryParamater." OR (pinyin LIKE ".'\'%'.strval($_REQUEST["pinyin"]).'%\''."OR header LIKE ".'\'%'.strval($_REQUEST["header"]).'%\''.")";
// }
$par_arr = array();
if (isset($_REQUEST["keyword"])) {
    $str = " A.name LIKE " . '\'%' . strval($_REQUEST["keyword"]) . '%\'';
    array_push($par_arr, $str);
}
if (isset($_REQUEST["pinyin"])) {
    $str = " A.pinyin LIKE " . '\'%' . strval($_REQUEST["pinyin"]) . '%\'';
    array_push($par_arr, $str);
    //$queryParamater = $queryParamater." OR (A.pinyin LIKE ".'\'%'.strval($_REQUEST["pinyin"]).'%\''."OR A.header LIKE ".'\'%'.strval($_REQUEST["header"]).'%\''.")";
예제 #24
0
파일: _list.php 프로젝트: koala87/backup
<?php 
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
require_once '../tools/redisCache.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$redis = new redisCache(REDIS_HOST, REDIS_PORT);
$use_cache = true;
$redis_key = 'songlist#music#list';
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$queryString = "SELECT mmid, serial_id, name, singer, path, lyric, prelude, has_lyric\r\nFROM media_music";
$queryParamater = " WHERE enabled=1";
$handle = '';
if (isset($_REQUEST["header"])) {
    $use_cache = false;
    $handle = '%' . strval($_REQUEST["header"]) . '%';
    $queryParamater = $queryParamater . " AND header LIKE %s";
} else {
    if (isset($_REQUEST["pinyin"])) {
        $use_cache = false;
        $handle = '%' . strval($_REQUEST["pinyin"]) . '%';
        $queryParamater = $queryParamater . " AND pinyin LIKE %s";
    } else {
        if (isset($_REQUEST["name"])) {
            $use_cache = false;
            $handle = '%' . strval($_REQUEST["name"]) . '%';
            $queryParamater = $queryParamater . " AND name LIKE %s";
예제 #25
0
파일: activity.php 프로젝트: koala87/backup
<?php

header("content-type:text/html; charset=utf-8");
require_once 'tools/db.php';
require_once 'tools/main.php';
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
if (isset($_REQUEST["number"]) && $_REQUEST["number"] > 10) {
    $number = $_REQUEST["number"];
} else {
    $number = 10;
}
$queryString = "SELECT aid, title, thumb, type, member_count, start_date, end_date, start_time, end_time, status, address, fee, sponsor, photos, description FROM activity";
$queryParamater = "";
$countResult = $mdb->queryFirstRow("SELECT COUNT(*) AS count FROM activity");
$totalNumber = 0;
$countValue = $countResult['count'];
if ($countValue == 0) {
    $pageCount = 0;
} else {
    $pageCount = (int) ($countValue / $number);
    if ($countValue % $number != 0) {
        $pageCount = $pageCount + 1;
    }
    $totalNumber = intval($countValue);
}
//echo $count."<br />";
if (isset($_REQUEST["page"]) && $_REQUEST["page"] > $count) {
    echo json_encode(array("result" => "", "status" => false, "error" => "请求页数超过总页数"));
    exit;
}
if (isset($_REQUEST["page"]) && $_REQUEST["page"] != 0) {
예제 #26
0
파일: list.php 프로젝트: koala87/backup
        }
    }
}
//$sphinx_index = 'media';
//Sphinx 搜索
header("content-type:application/json");
require_once '../tools/db.php';
require_once '../tools/main.php';
include_once "../tools/sphinxapi.php";
if (isset($_REQUEST["number"]) && intval($_REQUEST["number"]) > 9) {
    $number = $_REQUEST["number"];
} else {
    $number = 9;
}
$pageNum = isset($_REQUEST["page"]) ? intval($_REQUEST["page"]) : 0;
$mdb = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_TABLE_NAME, DB_PORT, DB_CHARSET);
$sphinx = new SphinxClient();
$sphinx->SetServer(SPHINX_HOST, SPHINX_PORT);
$sphinx->SetArrayResult(true);
$sphinx->SetLimits($pageNum * $number, $number, 5000);
$sphinx->SetMaxQueryTime(10);
$sphinx->SetMatchMode(SPH_MATCH_EXTENDED2);
$sphinx->SetFilter('enabled', array(1));
if (isset($_REQUEST["type"])) {
    $r1 = $mdb->queryFirstRow("SELECT id, name FROM media_type WHERE name=%s", $_REQUEST["type"]);
    $type = $r1["id"];
    //set type
    if ($type == "") {
        echo json_encode(array("result" => null, "status" => false, "error" => "请求的类型不存在"));
        exit;
    }
예제 #27
0
<?php

define('ROOT_PATH', getcwd() . '/');
define('SHARED_PATH', ROOT_PATH . '../Shared/');
define('VENDOR_PATH', SHARED_PATH . './vendor/');
require SHARED_PATH . 'config.inc.php';
require VENDOR_PATH . 'autoload.php';
require VENDOR_PATH . 'sergeytsalkov/meekrodb/db.class.php';
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Http\Stream;
$endpointDatabase = new MeekroDB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT, DB_CHARSET);
$endpointDatabase->param_char = "##";
$endpointConfiguration = $endpointDatabase->query("SELECT * FROM EndpointConfiguration");
$endpointEntities = $endpointDatabase->query("SELECT Id, Name, TableName, SelectFields, DATE_FORMAT(DeltaStartDateTimeUtc, '%Y-%m-%dT%TZ') AS DeltaStartDateTimeUtc, JsonFields FROM EndpointEntity");
$app = new \Slim\App(['settings' => ['displayErrorDetails' => true]]);
// Register Endpoint Metadata
$app->get('/Endpoint', function (Request $request, Response $response, $args) use($endpointConfiguration, $endpointEntities, $endpointDatabase) {
    foreach ($endpointEntities as $id => $entity) {
        $row = $endpointDatabase->queryFirstRow("SELECT DATE_FORMAT(MAX(LastChangeDateTimeUtc), '%Y-%m-%dT%TZ') AS LastChangeDateTimeUtc, COUNT(*) AS Count FROM " . $entity["TableName"]);
        $endpointEntities[$id]["LastChangeDateTimeUtc"] = $row["LastChangeDateTimeUtc"];
        $endpointEntities[$id]["Count"] = $row["Count"];
    }
    return $response->withJson(array("CurrentDateTimeUtc" => gmdate("Y-m-d\\TH:i:s\\Z"), "Configuration" => $endpointConfiguration, "Entities" => $endpointEntities));
});
// Register all Endpoints for Table Enumeration & Indexer
foreach ($endpointEntities as $id => $entity) {
    $app->get('/' . $entity["Name"], function (Request $request, Response $response) use($endpointDatabase, $entity) {
        $fields = preg_replace("(date:([^\$^,]+))", "DATE_FORMAT(\\1,'%Y-%m-%dT%TZ') AS \\1", $entity["SelectFields"]);
        $jsonFields = explode(",", $entity["JsonFields"]);
        $queryBase = "SELECT " . $fields . " FROM " . $entity["TableName"] . " tbl ";