Version_2.0_Preview
parent
3d865af692
commit
29889ddfbe
Binary file not shown.
@ -1,216 +0,0 @@ |
|||||||
// main.c
|
|
||||||
// Jedi Academy Server Log Converter - Version 1.1
|
|
||||||
//
|
|
||||||
// Created By Steven Mattera on August 30th 2010.
|
|
||||||
// Copyright (c) 2010 Steven Mattera <stevenmattera@gmail.com>
|
|
||||||
//
|
|
||||||
// Jedi Academy Server Log Converter is free software; you can
|
|
||||||
// redistribute it and/or modify it under the terms of the GNU General
|
|
||||||
// Public License as published by the Free Software Foundation; either
|
|
||||||
// version 2 of the License, or (at your option) any later version.
|
|
||||||
//
|
|
||||||
// Jedi Academy Server Log Converter is distributed in the hope that it
|
|
||||||
// will be useful, but WITHOUT ANY WARRENTY; without even the implied
|
|
||||||
// warrenty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more deails.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Jedi Academy Server Log Converter; if not, write to the Free
|
|
||||||
// Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
|
||||||
// USA
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <stdio.h> |
|
||||||
#include <stdlib.h> |
|
||||||
#include <string.h> |
|
||||||
#include <limits.h> |
|
||||||
#include <unistd.h> |
|
||||||
|
|
||||||
FILE * openLogFile(char *path); |
|
||||||
FILE * openConvFile(char *argv[]); |
|
||||||
|
|
||||||
int main(int argc, char *argv[]) { |
|
||||||
FILE * logFile; |
|
||||||
FILE * convFile; |
|
||||||
|
|
||||||
printf("Jedi Academy Server Log Converter\n"); |
|
||||||
printf("Copyright (c) 2010 Steven Mattera <stevenmattera@gmail.com>\n\n"); |
|
||||||
printf("Jedi Academy Server Log Converter is free software; you can redistribute it\n"); |
|
||||||
printf("and/or modify it under the terms of the GNU General Public License as published\n"); |
|
||||||
printf("by the Free Software Foundation; either version 2 of the License, or (at your\n"); |
|
||||||
printf("option) any later version.\n\n"); |
|
||||||
printf("Jedi Academy Server Log Converter is distributed in the hope that it will be\n"); |
|
||||||
printf("useful, but WITHOUT ANY WARRENTY; without even the implied warrenty of \n"); |
|
||||||
printf("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n"); |
|
||||||
printf("License for more deails.\n\n"); |
|
||||||
printf("You should have received a copy of the GNU General Public License along with\n"); |
|
||||||
printf("Jedi Academy Server Log Converter; if not, write to the Free Software\n"); |
|
||||||
printf("Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n\n"); |
|
||||||
|
|
||||||
if(argc != 2) { |
|
||||||
printf("Usage: JALOG_CONV.EXE <PATH_TO_LOG>\n"); |
|
||||||
system("pause"); |
|
||||||
|
|
||||||
return -1; |
|
||||||
} |
|
||||||
|
|
||||||
logFile = openLogFile(argv[1]); |
|
||||||
if (logFile == NULL) return -1; |
|
||||||
|
|
||||||
convFile = openConvFile(argv); |
|
||||||
if (convFile == NULL) return -1; |
|
||||||
|
|
||||||
fputs("<html><head><style>body{background-color:gray}b{font-weight:normal}.r{color:red}.g{color:green}.y{color:yellow}.b{color:blue}.c{color:cyan}.m{color:magenta}.w{color:white}.l{color:black}</style></head><body><span class='w'>", convFile); |
|
||||||
|
|
||||||
char * line; |
|
||||||
char * lineProcessing; |
|
||||||
char * convLine; |
|
||||||
size_t currentPosition; |
|
||||||
int color = 7; |
|
||||||
|
|
||||||
while(!feof(logFile)) { |
|
||||||
line = (char *)malloc(sizeof(char)*512); |
|
||||||
memset(line, '\0', sizeof(char)*512); |
|
||||||
|
|
||||||
fgets(line, 512, logFile); |
|
||||||
if(color != 7) { |
|
||||||
fputs("</b><b class=w>", convFile); |
|
||||||
color = 7; |
|
||||||
} |
|
||||||
|
|
||||||
int n; |
|
||||||
for (n = 0; n < strlen(line); n++) { |
|
||||||
if(line[n] == '^') { |
|
||||||
switch (atoi(&line[n+1])) { |
|
||||||
case 1: |
|
||||||
if(color != 1) { |
|
||||||
color = 1; |
|
||||||
fputs("</b><b class='r'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
case 2: |
|
||||||
if(color != 2) { |
|
||||||
color = 2; |
|
||||||
fputs("</b><b class='g'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
case 3: |
|
||||||
if(color != 3) { |
|
||||||
color = 3; |
|
||||||
fputs("</b><b class=y'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
case 4: |
|
||||||
if(color != 4) { |
|
||||||
color = 4; |
|
||||||
fputs("</b><b class='b'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
case 5: |
|
||||||
if(color != 5) { |
|
||||||
color = 5; |
|
||||||
fputs("</b><b class='c'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
case 6: |
|
||||||
if(color != 6) { |
|
||||||
color = 6; |
|
||||||
fputs("</b><b class='m'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
case 7: |
|
||||||
if(color != 7) { |
|
||||||
color = 7; |
|
||||||
fputs("</b><b class='w'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
case 0: |
|
||||||
if(color != 8) { |
|
||||||
color = 8; |
|
||||||
fputs("</b><b class='l'>", convFile); |
|
||||||
} |
|
||||||
break; |
|
||||||
default: |
|
||||||
fputc('^', convFile); |
|
||||||
fputc(line[n+1], convFile); |
|
||||||
break; |
|
||||||
} |
|
||||||
n++; |
|
||||||
} |
|
||||||
else if (line[n] == ':' && color != 7) { |
|
||||||
fputs("</b><b class='w'>", convFile); |
|
||||||
fputc(':', convFile); |
|
||||||
} |
|
||||||
else if (line[n] == '\\' && color != 7) { |
|
||||||
fputs("</b><b class='w'>", convFile); |
|
||||||
fputc('\\', convFile); |
|
||||||
} |
|
||||||
else if (line[n] == ' ' && line[n+1] == 'k' && line[n+2] == 'i' && line[n+3] == 'l' && line[n+4] == 'l' && line[n+5] == 'e' && line[n+6] == 'd' && line[n+7] == ' ' && color != 7) { |
|
||||||
fputs("</b><b class='w'>", convFile); |
|
||||||
fputc(' ', convFile); |
|
||||||
} |
|
||||||
else if (line[n] == ' ' && line[n+1] == 'b' && line[n+2] == 'y' && line[n+3] == ' ' && color != 7) { |
|
||||||
fputs("</b><b class='w'>", convFile); |
|
||||||
fputc(' ', convFile); |
|
||||||
} |
|
||||||
else if (line[n] == '<') { |
|
||||||
fputs("<", convFile); |
|
||||||
} |
|
||||||
else if (line[n] == '>') { |
|
||||||
fputs(">", convFile); |
|
||||||
} |
|
||||||
else if (line[n] == '&') { |
|
||||||
fputs("&", convFile); |
|
||||||
} |
|
||||||
else if (line[n] != '\n' || line[n] != '\r') { |
|
||||||
fputc(line[n], convFile); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
fputs("<br>", convFile); |
|
||||||
|
|
||||||
free(line); |
|
||||||
} |
|
||||||
|
|
||||||
fputs("</body></html>", convFile); |
|
||||||
|
|
||||||
fclose(convFile); |
|
||||||
fclose(logFile); |
|
||||||
|
|
||||||
return 0; |
|
||||||
} |
|
||||||
|
|
||||||
FILE * openLogFile(char *path) { |
|
||||||
FILE * logFile = fopen(path, "r"); |
|
||||||
|
|
||||||
if(logFile == NULL) { |
|
||||||
printf("Error: Opening reading stream.\n\n"); |
|
||||||
system("pause"); |
|
||||||
|
|
||||||
return NULL; |
|
||||||
}
|
|
||||||
|
|
||||||
return logFile; |
|
||||||
} |
|
||||||
|
|
||||||
FILE * openConvFile(char *argv[]) { |
|
||||||
char abs_exe_path[MAX_PATH]; |
|
||||||
|
|
||||||
char * pch = strrchr(argv[0],'\\'); |
|
||||||
strncpy(abs_exe_path, argv[0], pch-argv[0]+1); |
|
||||||
free(pch); |
|
||||||
|
|
||||||
char convPath[PATH_MAX]; |
|
||||||
sprintf(convPath, "%sJALOG_CONV.HTML", abs_exe_path); |
|
||||||
FILE * convFile = fopen(convPath, "w+"); |
|
||||||
|
|
||||||
|
|
||||||
if(convFile == NULL) { |
|
||||||
printf("Error: Opening writing stream.\n\n"); |
|
||||||
system("pause"); |
|
||||||
|
|
||||||
return NULL; |
|
||||||
} |
|
||||||
|
|
||||||
return convFile; |
|
||||||
} |
|
@ -0,0 +1,140 @@ |
|||||||
|
#include <windows.h> |
||||||
|
#include "resource.h" |
||||||
|
|
||||||
|
enum { |
||||||
|
ID_LOADEDIT = 1, |
||||||
|
ID_LOADBUTTON, |
||||||
|
ID_SAVEEDIT, |
||||||
|
ID_SAVEBUTTON, |
||||||
|
ID_CONVERTBUTTON |
||||||
|
}; |
||||||
|
|
||||||
|
const char g_szClassName[] = "defaultWindow"; |
||||||
|
|
||||||
|
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); |
||||||
|
int WINAPI showError(LPCTSTR lpText); |
||||||
|
|
||||||
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { |
||||||
|
WNDCLASSEX wc; |
||||||
|
MSG Msg; |
||||||
|
HWND hwnd; |
||||||
|
|
||||||
|
wc.cbSize = sizeof(WNDCLASSEX); |
||||||
|
wc.style = 0; |
||||||
|
wc.lpfnWndProc = WndProc; |
||||||
|
wc.cbClsExtra = 0; |
||||||
|
wc.cbWndExtra = 0; |
||||||
|
wc.hInstance = hInstance; |
||||||
|
wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON)); |
||||||
|
wc.hCursor = LoadCursor(NULL, IDC_ARROW); |
||||||
|
wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); |
||||||
|
wc.lpszMenuName = NULL; |
||||||
|
wc.lpszClassName = g_szClassName; |
||||||
|
wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON), IMAGE_ICON, 16, 16, 0); |
||||||
|
|
||||||
|
if (!RegisterClassEx(&wc)) { |
||||||
|
showError("Window Registration Failed!"); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
hwnd = CreateWindowEx(0, g_szClassName, "Jedi Academy Server Log Converter", WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX , (GetSystemMetrics(SM_CXSCREEN) - 500)/2, (GetSystemMetrics(SM_CYSCREEN) - 72)/2, 500, 100, NULL, NULL, hInstance, NULL); |
||||||
|
|
||||||
|
if (hwnd == NULL) { |
||||||
|
showError("Window Creation Failed!"); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
ShowWindow(hwnd, nCmdShow); |
||||||
|
UpdateWindow(hwnd); |
||||||
|
|
||||||
|
while(GetMessage(&Msg, NULL, 0, 0) > 0) { |
||||||
|
TranslateMessage(&Msg); |
||||||
|
DispatchMessage(&Msg); |
||||||
|
} |
||||||
|
|
||||||
|
return Msg.wParam; |
||||||
|
} |
||||||
|
|
||||||
|
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { |
||||||
|
char szFileName[MAX_PATH] = ""; |
||||||
|
OPENFILENAME ofn; |
||||||
|
|
||||||
|
switch(msg) { |
||||||
|
case WM_CREATE: |
||||||
|
HFONT hfDefault; |
||||||
|
HWND hLoadEdit; |
||||||
|
HWND hLoadButton; |
||||||
|
HWND hSaveEdit; |
||||||
|
HWND hSaveButton; |
||||||
|
HWND hConvertButton; |
||||||
|
|
||||||
|
hLoadEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL, 10, 10, 300, 21, hwnd, (HMENU)ID_LOADEDIT, GetModuleHandle(NULL), NULL); |
||||||
|
hLoadButton = CreateWindowEx(0, "BUTTON", "Input", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 320, 10, 70, 21, hwnd, (HMENU)ID_LOADBUTTON, GetModuleHandle(NULL), NULL); |
||||||
|
hSaveEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL, 10, 41, 300, 21, hwnd, (HMENU)ID_SAVEEDIT, GetModuleHandle(NULL), NULL); |
||||||
|
hSaveButton = CreateWindowEx(0, "BUTTON", "Output", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 320, 41, 70, 21, hwnd, (HMENU)ID_SAVEBUTTON, GetModuleHandle(NULL), NULL); |
||||||
|
hConvertButton = CreateWindowEx(0, "BUTTON", "Convert", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 400, 10, 80, 52, hwnd, (HMENU)ID_CONVERTBUTTON, GetModuleHandle(NULL), NULL); |
||||||
|
|
||||||
|
hfDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT); |
||||||
|
SendMessage(hLoadEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||||
|
SendMessage(hLoadButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||||
|
SendMessage(hSaveEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||||
|
SendMessage(hSaveButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||||
|
SendMessage(hConvertButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||||
|
break; |
||||||
|
case WM_CLOSE: |
||||||
|
DestroyWindow(hwnd); |
||||||
|
break; |
||||||
|
case WM_DESTROY: |
||||||
|
PostQuitMessage(0); |
||||||
|
break; |
||||||
|
case WM_COMMAND: |
||||||
|
|
||||||
|
|
||||||
|
switch(wParam) { |
||||||
|
case ID_LOADBUTTON: |
||||||
|
ZeroMemory(&ofn, sizeof(ofn)); |
||||||
|
|
||||||
|
ofn.lStructSize = sizeof(ofn); |
||||||
|
ofn.hwndOwner = hwnd; |
||||||
|
ofn.lpstrFilter = "Log Files (*.log)\0*.log\0Log Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0"; |
||||||
|
ofn.lpstrFile = szFileName; |
||||||
|
ofn.nMaxFile = MAX_PATH; |
||||||
|
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; |
||||||
|
ofn.lpstrDefExt = "log"; |
||||||
|
|
||||||
|
if(GetOpenFileName(&ofn)) { |
||||||
|
HWND hLoadEdit = GetDlgItem(hwnd, ID_LOADEDIT); |
||||||
|
SetWindowText(hLoadEdit, szFileName); |
||||||
|
} |
||||||
|
break; |
||||||
|
case ID_SAVEBUTTON: |
||||||
|
ZeroMemory(&ofn, sizeof(ofn)); |
||||||
|
|
||||||
|
ofn.lStructSize = sizeof(ofn); |
||||||
|
ofn.hwndOwner = hwnd; |
||||||
|
ofn.lpstrFilter = "HTML Files (*.html)\0*.html\0RTF Files (*.rtf)\0*.rtf\0Text Files (*.txt)\0*.txt\0"; |
||||||
|
ofn.lpstrFile = szFileName; |
||||||
|
ofn.nMaxFile = MAX_PATH; |
||||||
|
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; |
||||||
|
ofn.lpstrDefExt = "html"; |
||||||
|
|
||||||
|
if(GetSaveFileName(&ofn)) { |
||||||
|
HWND hSaveEdit = GetDlgItem(hwnd, ID_SAVEEDIT); |
||||||
|
SetWindowText(hSaveEdit, szFileName); |
||||||
|
} |
||||||
|
break; |
||||||
|
case ID_CONVERTBUTTON: |
||||||
|
showError("Conversion starts here."); |
||||||
|
break; |
||||||
|
} |
||||||
|
break; |
||||||
|
default: |
||||||
|
return DefWindowProc(hwnd, msg, wParam, lParam); |
||||||
|
} |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
int WINAPI showError(LPCTSTR lpText) { |
||||||
|
return MessageBox(NULL, lpText, "Error", MB_ICONEXCLAMATION|MB_OK);
|
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
#define IDI_MYICON 101 |
@ -0,0 +1,3 @@ |
|||||||
|
#include "resource.h" |
||||||
|
|
||||||
|
IDI_MYICON ICON "JALOG_CONV.ico" |
Loading…
Reference in new issue