mirror of
				https://gitlab.com/hashborgir/d2tools.git
				synced 2025-10-30 16:43:40 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			139 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| /*
 | |
| 
 | |
|   Copyright (C) 2021 Hash Borgir
 | |
| 
 | |
|   This file is part of D2Modder
 | |
| 
 | |
|   Redistribution and use in source and binary forms, with
 | |
|   or without modification, are permitted provided that the
 | |
|   following conditions are met:
 | |
| 
 | |
|  * Redistributions of source code must retain the above
 | |
|   copyright notice, this list of conditions and the
 | |
|   following disclaimer.
 | |
| 
 | |
|  * Redistributions in binary form must reproduce the above
 | |
|   copyright notice, this list of conditions and the
 | |
|   following disclaimer in the documentation and/or other
 | |
|   materials provided with the distribution.
 | |
| 
 | |
|  * This software must not be used for commercial purposes
 | |
|  * without my consent. Any sales or commercial use are prohibited
 | |
|  * without my express knowledge and consent.
 | |
| 
 | |
|   This program is distributed in the hope that it will be useful,
 | |
|   but WITHOUT ANY WARRANTY!
 | |
| 
 | |
|   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 | |
|   CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 | |
|   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 | |
|   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | |
|   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 | |
|   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | |
|   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 | |
|   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | |
|   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
|   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 | |
|   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 | |
|   OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | |
|   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | |
| 
 | |
|  */
 | |
| 
 | |
| // Second step after D2Config. If we made it here, D2Modder.db should
 | |
| // have been created. Config writes active mod to session.
 | |
| 
 | |
| session_start();
 | |
| include "./_pdo.php";
 | |
| include "./config.php";
 | |
| 
 | |
| function processCubeMain() {
 | |
| 
 | |
| 	$bin = getcwd() . DIRECTORY_SEPARATOR . "bin" . DIRECTORY_SEPARATOR . "sqlite3.exe ";
 | |
| 	$dbfile = getcwd() . DIRECTORY_SEPARATOR . DB_FILE;
 | |
| 	$cubemain = TXT_PATH . "cubemain.txt";
 | |
| 
 | |
| 	exec("$bin $dbfile \".separator \\\"\\t\\\"\" \".import \\\"$cubemain\\\" cubemain\"");
 | |
| }
 | |
| 
 | |
| function processCubeMainLinux() {
 | |
| 
 | |
| 	$bin = "/usr/bin/sqlite3";
 | |
| 	$dbfile = getcwd() . DIRECTORY_SEPARATOR . DB_FILE;
 | |
| 	$cubemain = TXT_PATH . "CubeMain.txt";
 | |
| 
 | |
| 	exec("$bin $dbfile \".separator \\\"\\t\\\"\" \".import \\\"$cubemain\\\" cubemain\"");
 | |
| }
 | |
| 
 | |
| // check to see if config db exists or if for some reason it doesn't exist
 | |
| if (file_exists(APP_DB)) {
 | |
| 	if (file_exists($_SESSION['modname'] . ".db")) {
 | |
| 		unlink($_SESSION['modname'] . ".db"); // delete old mod db file
 | |
| 	}
 | |
| 	// Set CONSTANTS (if D2Modder.db exists, D2Config set the session mod correctly)
 | |
| 	define('FILTER_PROPERTIES_FILE', 'filterProperties.txt');
 | |
| 	define('DB_FILE', $_SESSION['modname'] . ".db");
 | |
| 	define('TXT_PATH', $_SESSION['path']);
 | |
| 
 | |
| 	// require src
 | |
| 	require_once "./src/D2Functions.php";
 | |
| 	require_once "./src/D2Database.php";
 | |
| 	require_once './src/D2Files.php';
 | |
| 	require_once './src/D2TxtParser.php';
 | |
| 	require_once './src/D2Tbl.php';
 | |
| 
 | |
| 	// Create objects
 | |
| 	$files = new D2Files();
 | |
| 	$parser = new D2TxtParser();
 | |
| 	$db = new D2Database();
 | |
| 
 | |
| 	// Parse all files
 | |
| 	foreach ($files->files as $k => $v) {
 | |
| 		$data[$v] = $parser->parseFile($v);
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	// Write all parse data to mod db
 | |
| 	foreach ($data as $k => $v) {
 | |
| 		$db->createTables($k, $v);
 | |
| 		$db->fillsTables($k, $v);
 | |
| 	}
 | |
| 
 | |
| 	processCubeMain('cubemain.txt');
 | |
| 	processCubeMainLinux('cubemain.txt');
 | |
| 	// put in html redirect as backup, because
 | |
| 	// for some odd reason windows gives
 | |
| 	// an error on header() but linux does not.
 | |
| 
 | |
| 
 | |
| 	/*
 | |
| 	  Process tbl files
 | |
| 	 *
 | |
| 	 *
 | |
| 	 */
 | |
| 
 | |
| 	$tbl = $_SESSION['tbl'];
 | |
| 
 | |
| 	$string = D2Tbl::getStrings($tbl."string.tbl");
 | |
| 	$stringExpansion = D2Tbl::getStrings($tbl."expansionstring.tbl");
 | |
| 	$stringPatch = D2Tbl::getStrings($tbl."patchstring.tbl");
 | |
| 
 | |
| 	$strings = array_merge($stringPatch, $stringExpansion, $string);
 | |
| 
 | |
| 	$db->writeTbl($strings);
 | |
| 
 | |
| 
 | |
| } else {
 | |
| 	// if config db does not exist, go to configure page
 | |
| 	header("Location: /src/D2Config.php");
 | |
| }
 | |
| ?>
 | |
| <!doctype html>
 | |
| <html lang="en">
 | |
| 	<head>
 | |
| 		<meta http-equiv="refresh" content="0; URL=/" />
 | |
| 	</head>
 | |
| 	<body>
 | |
| 	</body>
 | |
| </html>
 |