File indexing completed on 2025-05-04 04:51:07
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "viewerpluginexternalscriptparseargument.h" 0008 ViewerPluginExternalScriptParseArgument::ViewerPluginExternalScriptParseArgument() = default; 0009 0010 void ViewerPluginExternalScriptParseArgument::setMessage(const KMime::Message::Ptr &msg) 0011 { 0012 mMessage = msg; 0013 } 0014 0015 void ViewerPluginExternalScriptParseArgument::setAkonadiUrl(const QString &akonadiUrl) 0016 { 0017 mAkonadiUrl = akonadiUrl; 0018 } 0019 0020 QStringList ViewerPluginExternalScriptParseArgument::parse(const QStringList &scriptArguments) 0021 { 0022 if (mMessage.isNull()) { 0023 return scriptArguments; 0024 } 0025 0026 QStringList newArguments; 0027 newArguments.reserve(scriptArguments.count()); 0028 for (const QString &arg : scriptArguments) { 0029 if (arg == QLatin1StringView("%s")) { 0030 const KMime::Headers::Subject *const subject = mMessage ? mMessage->subject(false) : nullptr; 0031 newArguments << QStringLiteral("\"%1\"").arg(subject ? subject->asUnicodeString() : QString()); 0032 } else if (arg == QLatin1StringView("%from")) { 0033 const KMime::Headers::From *const from = mMessage ? mMessage->from(false) : nullptr; 0034 newArguments << QStringLiteral("\"%1\"").arg(from ? from->asUnicodeString() : QString()); 0035 } else if (arg == QLatin1StringView("%to")) { 0036 const KMime::Headers::To *const to = mMessage ? mMessage->to(false) : nullptr; 0037 newArguments << QStringLiteral("\"%1\"").arg(to ? to->asUnicodeString() : QString()); 0038 } else if (arg == QLatin1StringView("%cc")) { 0039 const KMime::Headers::Cc *const cc = mMessage ? mMessage->cc(false) : nullptr; 0040 newArguments << QStringLiteral("\"%1\"").arg(cc ? cc->asUnicodeString() : QString()); 0041 } else if (arg == QLatin1StringView("%bcc")) { 0042 const KMime::Headers::Bcc *const bcc = mMessage ? mMessage->bcc(false) : nullptr; 0043 newArguments << QStringLiteral("\"%1\"").arg(bcc ? bcc->asUnicodeString() : QString()); 0044 } else if (arg == QLatin1StringView("%body")) { 0045 const QByteArray body = mMessage ? mMessage->body() : nullptr; 0046 newArguments << QStringLiteral("\"%1\"").arg(QLatin1StringView(body)); 0047 } else if (arg == QLatin1StringView("%inreplyto")) { 0048 KMime::Headers::InReplyTo *inReplyTo = mMessage ? mMessage->inReplyTo(false) : nullptr; 0049 newArguments << QStringLiteral("\"%1\"").arg(inReplyTo ? inReplyTo->asUnicodeString() : QString()); 0050 } else if (arg == QLatin1StringView("%akonadiUrl")) { 0051 newArguments << mAkonadiUrl; 0052 } else { 0053 newArguments << arg; 0054 } 0055 } 0056 return newArguments; 0057 }