File indexing completed on 2024-04-21 04:48:16

0001 /* AUDEX CDDA EXTRACTOR
0002  * SPDX-FileCopyrightText: Copyright (C) 2007 Marco Nelles
0003  * <https://userbase.kde.org/Audex>
0004  *
0005  * SPDX-License-Identifier: GPL-3.0-or-later
0006  */
0007 
0008 #include "upload.h"
0009 
0010 #include <QDebug>
0011 #include <QUrl>
0012 
0013 Upload::Upload(const QUrl &url, QObject *parent)
0014     : QObject(parent)
0015 {
0016     Q_UNUSED(parent);
0017 
0018     base_url = url;
0019 }
0020 
0021 Upload::~Upload()
0022 {
0023 }
0024 
0025 void Upload::upload(const QString &targetpath, const QStringList &filelist)
0026 {
0027     // first create the targetpath on the ftp server
0028     QString dir, olddir;
0029     int i = 0;
0030     Q_FOREVER {
0031         olddir = dir;
0032         dir = targetpath.section('/', 0, i, QString::SectionSkipEmpty);
0033         if (olddir == dir)
0034             break;
0035         ++i;
0036         QUrl url = base_url;
0037         url.setPath(base_url.path() + '/' + dir);
0038         // qDebug() << url;
0039         KIO::Job *job = KIO::mkdir(url);
0040         if (!job->exec()) {
0041             // if it already exists jump over
0042             if (job->error() != 113) {
0043                 Q_EMIT error(job->errorText(), "");
0044                 qDebug() << job->errorText();
0045                 return;
0046             }
0047         }
0048     }
0049 
0050     for (int i = 0; i < filelist.count(); ++i) {
0051         QUrl url = base_url;
0052         QFileInfo fi(filelist.at(i));
0053         url.setPath(base_url.path() + '/' + targetpath + '/' + fi.fileName());
0054         Q_EMIT info(i18n("Uploading file %1 to server. Please wait...", fi.fileName()));
0055         KIO::Job *job = KIO::copy(QUrl(filelist.at(i)), url);
0056         if (!job->exec()) {
0057             Q_EMIT error(job->errorText(), "");
0058             qDebug() << job->errorText();
0059             return;
0060         }
0061         Q_EMIT info(i18n("Finished uploading file %1 to server.", fi.fileName()));
0062     }
0063 }