summaryrefslogtreecommitdiff
path: root/src/chatlog.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-08-12 03:47:28 +0300
committerAndrei Karas <akaras@inbox.ru>2011-08-12 03:47:28 +0300
commit2d45a2ca5480ae0fdc03a807787f622444830d44 (patch)
tree793888bce9be79487e7be1b91ccb74738bf25c24 /src/chatlog.cpp
parent383b667c30665377ee5bd5c1167530eb44ce4571 (diff)
downloadmv-2d45a2ca5480ae0fdc03a807787f622444830d44.tar.gz
mv-2d45a2ca5480ae0fdc03a807787f622444830d44.tar.bz2
mv-2d45a2ca5480ae0fdc03a807787f622444830d44.tar.xz
mv-2d45a2ca5480ae0fdc03a807787f622444830d44.zip
Rename file names log and chatlog to correct logger and chatlogger.
Diffstat (limited to 'src/chatlog.cpp')
-rw-r--r--src/chatlog.cpp204
1 files changed, 0 insertions, 204 deletions
diff --git a/src/chatlog.cpp b/src/chatlog.cpp
deleted file mode 100644
index 99fe317c6..000000000
--- a/src/chatlog.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2009-2010 Andrei Karas
- * Copyright (C) 2011 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program 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
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "chatlog.h"
-
-#include <iostream>
-#include <sstream>
-#include <dirent.h>
-
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/time.h>
-
-#ifdef WIN32
-#include <windows.h>
-#elif defined __APPLE__
-#include <Carbon/Carbon.h>
-#endif
-
-#include "log.h"
-#include "configuration.h"
-
-#include "utils/stringutils.h"
-
-#include "debug.h"
-
-ChatLogger::ChatLogger()
-{
-}
-
-ChatLogger::~ChatLogger()
-{
- if (mLogFile.is_open())
- mLogFile.close();
-}
-
-void ChatLogger::setLogFile(const std::string &logFilename)
-{
- if (mLogFile.is_open())
- mLogFile.close();
-
- mLogFile.open(logFilename.c_str(), std::ios_base::app);
-
- if (!mLogFile.is_open())
- {
- std::cout << "Warning: error while opening " << logFilename <<
- " for writing.\n";
- }
-}
-
-void ChatLogger::setLogDir(const std::string &logDir)
-{
- mLogDir = logDir;
-
- if (mLogFile.is_open())
- mLogFile.close();
-
- DIR *dir = opendir(mLogDir.c_str());
- if (!dir)
- makeDir(mLogDir);
- else
- closedir(dir);
-}
-
-void ChatLogger::log(std::string str)
-{
- std::string dateStr = getDateString();
- if (!mLogFile.is_open() || dateStr != mLogDate)
- {
- mLogDate = dateStr;
- setLogFile(strprintf("%s/%s/#General_%s.log", mLogDir.c_str(),
- mServerName.c_str(), dateStr.c_str()));
- }
-
- str = removeColors(str);
- writeTo(mLogFile, str);
-}
-
-void ChatLogger::log(std::string name, std::string str)
-{
- std::ofstream logFile;
- logFile.open(strprintf("%s/%s/%s_%s.log", mLogDir.c_str(),
- mServerName.c_str(), secureName(name).c_str(),
- getDateString().c_str()).c_str(), std::ios_base::app);
-
- if (!logFile.is_open())
- return;
-
- str = removeColors(str);
- writeTo(logFile, str);
-
- if (logFile.is_open())
- logFile.close();
-}
-
-std::string ChatLogger::getDateString() const
-{
- std::string date;
-
- time_t rawtime;
- struct tm *timeinfo;
- char buffer [81];
-
- time (&rawtime);
- timeinfo = localtime(&rawtime);
-
- strftime(buffer, 79, "%y-%m-%d", timeinfo);
- date = buffer;
- return date;
-}
-
-std::string ChatLogger::secureName(std::string &name) const
-{
- for (unsigned int f = 0; f < name.length(); f ++)
- {
- if (name[f] < '0' && name[f] > '9' && name[f] < 'a' && name[f] > 'z'
- && name[f] < 'A' && name[f] > 'Z'
- && name[f] != '-' && name[f] != '+' && name[f] != '='
- && name[f] != '.' && name[f] != ',' && name[f] != ')'
- && name[f] != '(' && name[f] != '[' && name[f] != ']')
- {
- name[f] = '_';
- }
- }
- return name;
-}
-
-void ChatLogger::writeTo(std::ofstream &file, const std::string &str) const
-{
- file << str << std::endl;
-}
-
-void ChatLogger::setServerName(const std::string &serverName)
-{
- mServerName = serverName;
- if (mServerName == "")
- mServerName = config.getStringValue("MostUsedServerName0");
-
- if (mLogFile.is_open())
- mLogFile.close();
-
- secureName(mServerName);
- if (mLogDir != "")
- {
- DIR *dir = opendir((mLogDir + "/" + mServerName).c_str());
- if (!dir)
- makeDir(mLogDir + "/" + mServerName);
- else
- closedir(dir);
- }
-}
-
-void ChatLogger::makeDir(const std::string &dir)
-{
-#ifdef WIN32
- mkdir(dir.c_str());
-#else
- mkdir(dir.c_str(), 0750);
-#endif
-}
-
-void ChatLogger::loadLast(std::string name, std::list<std::string> &list,
- unsigned n)
-{
- std::ifstream logFile;
-
- logFile.open(strprintf("%s/%s/%s_%s.log", mLogDir.c_str(),
- mServerName.c_str(), secureName(name).c_str(),
- getDateString().c_str()).c_str(), std::ios::in);
-
- if (!logFile.is_open())
- return;
-
- char line[710];
- while (logFile.getline(line, 700))
- {
- list.push_back(line);
- if (list.size() > n)
- list.pop_front();
- }
-
- if (logFile.is_open())
- logFile.close();
-}