File indexing completed on 2024-05-19 05:49:15

0001 /*
0002     SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "cupsPageAnalyzer.h"
0008 
0009 CupsPageAnalyzer::CupsPageAnalyzer(LogMode *logMode)
0010     : FileAnalyzer(logMode)
0011     , mCupsPageRegex(QStringLiteral("(\\S*) (\\S*) (\\S*) \\[(.*)\\] (\\S*) (\\S*) (\\S*)"))
0012 {
0013 }
0014 
0015 LogViewColumns CupsPageAnalyzer::initColumns()
0016 {
0017     LogViewColumns columns;
0018 
0019     columns.addColumn(LogViewColumn(i18n("Date"), true, false));
0020     columns.addColumn(LogViewColumn(i18n("Printer"), true, true));
0021     columns.addColumn(LogViewColumn(i18n("User"), true, true));
0022     columns.addColumn(LogViewColumn(i18n("Job Id"), true, true));
0023     columns.addColumn(LogViewColumn(i18n("Page Number"), true, false));
0024     columns.addColumn(LogViewColumn(i18n("Num Copies"), true, true));
0025     columns.addColumn(LogViewColumn(i18n("Job Billing"), true, false));
0026 
0027     return columns;
0028 }
0029 
0030 LogFileReader *CupsPageAnalyzer::createLogFileReader(const LogFile &logFile)
0031 {
0032     return new LocalLogFileReader(logFile);
0033 }
0034 
0035 Analyzer::LogFileSortMode CupsPageAnalyzer::logFileSortMode()
0036 {
0037     return Analyzer::AscendingSortedLogFile;
0038 }
0039 
0040 LogLine *CupsPageAnalyzer::parseMessage(const QString &logLine, const LogFile &originalLogFile)
0041 {
0042     const int firstPosition = mCupsPageRegex.indexIn(logLine);
0043     if (firstPosition == -1) {
0044         qCDebug(KSYSTEMLOG) << "Unable to parse line " << logLine;
0045         return nullptr;
0046     }
0047 
0048     QStringList capturedTexts = mCupsPageRegex.capturedTexts();
0049 
0050     // Remove full line
0051     capturedTexts.removeAt(0);
0052 
0053     const QDateTime dateTime = ParsingHelper::instance()->parseHttpDateTime(capturedTexts.takeAt(3));
0054 
0055     return new LogLine(mLogLineInternalIdGenerator++,
0056                        dateTime,
0057                        capturedTexts,
0058                        originalLogFile.url().toLocalFile(),
0059                        Globals::instance().informationLogLevel(),
0060                        mLogMode);
0061 }
0062 
0063 #include "moc_cupsPageAnalyzer.cpp"