Downloading songs needs some work

This commit is contained in:
kdeng00
2020-01-07 22:27:51 -05:00
parent 1fa7df4aa2
commit 65dbe0d69f
12 changed files with 74 additions and 39 deletions
+4 -7
View File
@@ -271,24 +271,21 @@ void downloadSong(Song& song, const Token& token, const Str& path) {
repository::local::APIRepository apiRepo;
auto apiInfo = apiRepo.retrieveAPIInfo(path);
repository::SongRepository songRepo;
auto downloadedSong = songRepo.downloadSong(token, song, apiInfo);
manager::DirectoryManager dirMgr;
if (dirMgr.doesSongExist(song, path)) {
std::cout << "song already exists\n";
return;
}
auto downloadedSong = songRepo.downloadSong(token, song, apiInfo);
dirMgr.createSongDirectory(song, path);
downloadedSong.path = dirMgr.fullSongPath(song, path);
std::fstream saveSong(downloadedSong.path, std::ios::out | std::ios::binary);
saveSong.write((char*)&downloadedSong.data[0], downloadedSong.data.size());
saveSong.close();
repository::local::SongRepository localSongRepo;
if (!localSongRepo.databaseExist(path)) {
localSongRepo.initializedDatabase(path);
}
repository::local::SongRepository localSongRepo(path);
if (!localSongRepo.doesTableExist(path)) {
localSongRepo.createSongTable(path);
}
@@ -405,7 +402,7 @@ Java_com_example_mear_repositories_TrackRepository_retrieveSongsIncludingDownloa
auto i = 0;
repository::local::SongRepository localSongRepo(appPath);
auto localSongs = (localSongRepo.isTableEmpty(appPath)) ?
auto localSongs = (!localSongRepo.isTableEmpty(appPath)) ?
localSongRepo.retrieveAllSongs(appPath) : std::vector<model::Song>();
for (auto& sng: allSongs) {
+3 -2
View File
@@ -52,11 +52,12 @@ namespace repository { namespace local {
queryStr.append(m_tableName);
SQLite::Statement query(db, queryStr);
auto r = query.exec();
auto r = query.executeStep();
const auto result = query.hasRow();
return result;
return !result;
} catch (std::exception& ex) {
auto msg = ex.what();
}
+1 -2
View File
@@ -298,7 +298,6 @@ namespace repository {
std::string queryString("DELETE FROM ");
queryString.append(m_tableName);
queryString.append(" WHERE Id = ?");
// queryString.append("Duration, Track, Disc, Filename, Path, CoverArtId)");
SQLite::Statement query(db, queryString);
query.bind(1, song.id);
@@ -334,7 +333,7 @@ namespace repository {
query.bind(12, song.path);
query.bind(13, song.coverArtId);
query.exec();
auto result = query.exec();
} catch (std::exception& ex) {
auto msg = ex.what();
}
+2 -5
View File
@@ -34,11 +34,8 @@ namespace repository { namespace local {
auto result = query.executeStep();
auto valZero = query.getColumn(1);
auto valOne = query.getColumn(2);
user.username = valZero.getString();
user.password = valOne.getString();
user.username = std::move(query.getColumn(1).getString());
user.password = std::move(query.getColumn(2).getString());
return user;