File indexing completed on 2024-05-12 16:21:17

0001 // SPDX-FileCopyrightText: 2023 Théophile Gilgien <theophile@gilgien.net>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 
0005 #pragma once
0006 
0007 #include "ytmusic.h"
0008 #include <QObject>
0009 #include <ThreadedDatabase>
0010 
0011 class PlaylistImporter : public QObject
0012 {
0013     Q_OBJECT
0014 
0015 public:
0016     PlaylistImporter(QObject *parent = nullptr);
0017 
0018     Q_INVOKABLE void importPlaylist(const QString &url);
0019     Q_SIGNAL void importFinished();
0020     Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const QString &videoId, const QString &title, const QString &artist, const QString &album);
0021     Q_INVOKABLE void addPlaylistEntry(qint64 playlistId, const playlist::Track &track);
0022 
0023     Q_INVOKABLE void renamePlaylist(qint64 playlistId, const QString &name, const QString &description);
0024 
0025     Q_SIGNAL void playlistEntriesChanged(quint64 playlistId);
0026     Q_SIGNAL void refreshModel();
0027 
0028 private:
0029     QStringView cropURL(QStringView srcURL);
0030 };