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 };