|
|
@@ -68,6 +68,8 @@ int update_json(char file[]){
|
|
|
json_object *wizard_info = json_object_object_get(root, "wizard_info");
|
|
|
json_object *wizard_name = json_object_object_get(wizard_info, "wizard_name");
|
|
|
printf("\tPlayer name: %s\n", json_object_get_string(wizard_name));
|
|
|
+ json_object *wizard_level = json_object_object_get(wizard_info, "wizard_level");
|
|
|
+ printf("\tPlayer level: %s\n", json_object_get_string(wizard_level));
|
|
|
|
|
|
// Recreate the database tables
|
|
|
int status = recreate_tables();
|
|
|
@@ -785,13 +787,60 @@ int update_json(char file[]){
|
|
|
|
|
|
}
|
|
|
|
|
|
+ int calculate_result = calculate_current_stats();
|
|
|
+ if (SUCCESS != calculate_result){
|
|
|
+ return calculate_result;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Insert into table info
|
|
|
+ time_t t = time(NULL);
|
|
|
+ struct tm tm = *localtime(&t);
|
|
|
+ char ts[130];
|
|
|
+ sprintf(ts, "%d-%02d-%02d %02d:%02d:%02d", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
|
|
|
+ //printf("now: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
|
|
|
+ sqlite3_stmt *stmt_info;
|
|
|
+ char sql[1000];
|
|
|
+ strcpy(
|
|
|
+ sql,
|
|
|
+ "INSERT INTO info ( player_id, player_name, player_level, ts, modified)"
|
|
|
+ "VALUES (?, ?, ?, ?, ?)"
|
|
|
+ );
|
|
|
+ if (SQLITE_OK != sqlite3_prepare_v2(db, sql, -1, &stmt_info, 0)) {
|
|
|
+ fprintf(
|
|
|
+ stderr,
|
|
|
+ "Failed to prepare statement to insert into runes: %s\n",
|
|
|
+ sqlite3_errmsg(db)
|
|
|
+ );
|
|
|
+ sqlite3_finalize(stmt_info);
|
|
|
+ sqlite3_close(db);
|
|
|
+ return ERROR_DB_INSERT_INFO;
|
|
|
+ }
|
|
|
+ sqlite3_bind_text(stmt_info, 1, json_object_get_string(wizard_id), strlen(json_object_get_string(wizard_id)), NULL);
|
|
|
+ sqlite3_bind_text(stmt_info, 2, json_object_get_string(wizard_name), strlen(json_object_get_string(wizard_name)), NULL);
|
|
|
+ sqlite3_bind_int(stmt_info, 3, json_object_get_string(wizard_level));
|
|
|
+ sqlite3_bind_text(stmt_info, 4, ts, strlen(ts), NULL);
|
|
|
+ sqlite3_bind_int(stmt_info, 5, 0);
|
|
|
+ if (SQLITE_DONE != sqlite3_step(stmt_info)){
|
|
|
+ fprintf(
|
|
|
+ stderr,
|
|
|
+ "Failed to execute statement to insert into info: %s\n",
|
|
|
+ sqlite3_errmsg(db)
|
|
|
+ );
|
|
|
+ sqlite3_finalize(stmt_info);
|
|
|
+ sqlite3_close(db);
|
|
|
+ return ERROR_DB_INSERT_INFO;
|
|
|
+ }
|
|
|
+
|
|
|
// All parsed
|
|
|
printf("%d units saved.\n", total_units);
|
|
|
printf("%d runes saved.\n", total_runes);
|
|
|
printf("%d rune stats saved.\n", total_stats);
|
|
|
+ printf("Player info updated");
|
|
|
+
|
|
|
sqlite3_close(db);
|
|
|
|
|
|
- return calculate_current_stats();
|
|
|
+
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1313,6 +1362,59 @@ int recreate_tables(){
|
|
|
sqlite3_close(db);
|
|
|
return ERROR_DB_CREATE_UNITS;
|
|
|
}
|
|
|
+
|
|
|
+ // Table info
|
|
|
+ strcpy(sql, "DROP TABLE IF EXISTS info;");
|
|
|
+ if (SQLITE_OK != sqlite3_prepare_v2(db, sql, -1, &res, 0)) {
|
|
|
+ fprintf(
|
|
|
+ stderr,
|
|
|
+ "Failed to create statement to drop table info: %s\n",
|
|
|
+ sqlite3_errmsg(db)
|
|
|
+ );
|
|
|
+ sqlite3_finalize(res);
|
|
|
+ sqlite3_close(db);
|
|
|
+ return ERROR_DB_DROP_INFO;
|
|
|
+ }
|
|
|
+ if (SQLITE_DONE != sqlite3_step(res)){
|
|
|
+ fprintf(
|
|
|
+ stderr,
|
|
|
+ "Failed to execute statement to drop table info: %s\n",
|
|
|
+ sqlite3_errmsg(db)
|
|
|
+ );
|
|
|
+ sqlite3_finalize(res);
|
|
|
+ sqlite3_close(db);
|
|
|
+ return ERROR_DB_DROP_INFO;
|
|
|
+ }
|
|
|
+ strcpy(
|
|
|
+ sql,
|
|
|
+ "CREATE TABLE info("
|
|
|
+ " player_id CHAR(12),"
|
|
|
+ " player_name CHAR(64),"
|
|
|
+ " player_level INT,"
|
|
|
+ " ts DATETIME,"
|
|
|
+ " modified INT"
|
|
|
+ ");"
|
|
|
+ );
|
|
|
+ if (SQLITE_OK != sqlite3_prepare_v2(db, sql, -1, &res, 0)) {
|
|
|
+ fprintf(
|
|
|
+ stderr,
|
|
|
+ "Failed to create statement to create table info: %s\n",
|
|
|
+ sqlite3_errmsg(db)
|
|
|
+ );
|
|
|
+ sqlite3_finalize(res);
|
|
|
+ sqlite3_close(db);
|
|
|
+ return ERROR_DB_CREATE_INFO;
|
|
|
+ }
|
|
|
+ if (SQLITE_DONE != sqlite3_step(res)){
|
|
|
+ fprintf(
|
|
|
+ stderr,
|
|
|
+ "Failed to execute statement to create table info: %s\n",
|
|
|
+ sqlite3_errmsg(db)
|
|
|
+ );
|
|
|
+ sqlite3_finalize(res);
|
|
|
+ sqlite3_close(db);
|
|
|
+ return ERROR_DB_CREATE_INFO;
|
|
|
+ }
|
|
|
// TODO: Other tables
|
|
|
sqlite3_finalize(res);
|
|
|
sqlite3_close(db);
|