File indexing completed on 2024-05-05 05:00:05

0001 /* This file is part of Webarchiver
0002 
0003     SPDX-FileCopyrightText: 2020 Jonathan Marten <jjm@keelhaul.me.uk>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include <QApplication>
0009 #include <QCommandLineParser>
0010 #include <QUrl>
0011 #include <QIcon>
0012 
0013 #include <kaboutdata.h>
0014 #include <klocalizedstring.h>
0015 #include <kcrash.h>
0016 
0017 #include "archivedialog.h"
0018 #include "webarchiverdebug.h"
0019 
0020 
0021 int main(int argc,char *argv[])
0022 {
0023     QApplication app(argc, argv);
0024 
0025     KAboutData aboutData(QStringLiteral("kcreatwebearchive"),       // componentName
0026                          i18n("Web Archiver"),      // displayName
0027                          i18n("0.0.1"),         // version
0028                          i18n("Archive a web page"),
0029                          KAboutLicense::GPL_V3,
0030                          i18n("Copyright (c) 2020 Jonathan Marten"));
0031     aboutData.addAuthor(i18n("Jonathan Marten"),
0032                         QString(),
0033                         QStringLiteral("jjm@keelhaul.me.uk"),
0034                         QStringLiteral("http://www.keelhaul.me.uk"));
0035 
0036     KAboutData::setApplicationData(aboutData);
0037     app.setWindowIcon(QIcon::fromTheme(QStringLiteral("webarchiver")));
0038     KCrash::setDrKonqiEnabled(true);
0039 
0040     QCommandLineParser parser;
0041     parser.setApplicationDescription(aboutData.shortDescription());
0042 
0043     parser.addPositionalArgument(QStringLiteral("url"), i18n("URL of the web page to archive"), i18n("url"));
0044 
0045     aboutData.setupCommandLine(&parser);
0046     parser.process(app);
0047     aboutData.processCommandLine(&parser);
0048 
0049     QUrl url;
0050     QStringList args = parser.positionalArguments();
0051     if (!args.isEmpty())
0052     {
0053         if (args.count()>1)
0054         {
0055             qCWarning(WEBARCHIVERPLUGIN_LOG) << "Only one URL argument is accepted";
0056         }
0057 
0058         url = QUrl::fromUserInput(args.first());
0059         if (!url.isValid())
0060         {
0061             qCCritical(WEBARCHIVERPLUGIN_LOG) << "Invalid URL argument";
0062             std::exit(EXIT_FAILURE);
0063         }
0064     }
0065 
0066     ArchiveDialog *ad = new ArchiveDialog(url);
0067     ad->show();
0068     return (app.exec());
0069 }