Working on deleting a song and a slight change to how songs are downloaded
This commit is contained in:
+23
-24
@@ -285,11 +285,8 @@ void downloadSong(Song& song, const Token& token, const Str& path) {
|
||||
saveSong.write((char*)&downloadedSong.data[0], downloadedSong.data.size());
|
||||
saveSong.close();
|
||||
|
||||
song.path = downloadedSong.path;
|
||||
repository::local::SongRepository localSongRepo(path);
|
||||
if (!localSongRepo.doesTableExist(path)) {
|
||||
localSongRepo.createSongTable(path);
|
||||
}
|
||||
|
||||
localSongRepo.saveSong(downloadedSong, path);
|
||||
}
|
||||
|
||||
@@ -524,6 +521,28 @@ Java_com_example_mear_repositories_TokenRepository_retrieveTokenRecord(
|
||||
return tokenObj;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
JNIEXPORT jobject
|
||||
JNICALL
|
||||
Java_com_example_mear_repositories_TrackRepository_downloadSong(
|
||||
JNIEnv *env,
|
||||
jobject thisObj,
|
||||
jobject tokenObj,
|
||||
jobject songObj,
|
||||
jstring pathStr
|
||||
) {
|
||||
auto tokenClass = env->GetObjectClass(tokenObj);
|
||||
auto accessTokenId = env->GetFieldID(tokenClass, "accessToken", "Ljava/lang/String;");
|
||||
auto accessTokenVal = (jstring) env->GetObjectField(tokenObj, accessTokenId);
|
||||
model::Token token(env->GetStringUTFChars(accessTokenVal, nullptr));
|
||||
|
||||
auto song = ObjToSong<jobject, JNIEnv>(env, songObj);
|
||||
auto path = env->GetStringUTFChars(pathStr, nullptr);
|
||||
downloadSong(song, token, path);
|
||||
|
||||
return songToObj(env, song);
|
||||
}
|
||||
|
||||
extern "C"
|
||||
JNIEXPORT jobject
|
||||
JNICALL
|
||||
@@ -764,26 +783,6 @@ Java_com_example_mear_repositories_TokenRepository_saveTokenRecord(
|
||||
saveToken(token, path);
|
||||
}
|
||||
|
||||
extern "C"
|
||||
JNIEXPORT void
|
||||
JNICALL
|
||||
Java_com_example_mear_repositories_TrackRepository_downloadSong(
|
||||
JNIEnv *env,
|
||||
jobject thisObj,
|
||||
jobject tokenObj,
|
||||
jobject songObj,
|
||||
jstring pathStr
|
||||
) {
|
||||
auto tokenClass = env->GetObjectClass(tokenObj);
|
||||
auto accessTokenId = env->GetFieldID(tokenClass, "accessToken", "Ljava/lang/String;");
|
||||
auto accessTokenVal = (jstring) env->GetObjectField(tokenObj, accessTokenId);
|
||||
model::Token token(env->GetStringUTFChars(accessTokenVal, nullptr));
|
||||
|
||||
auto song = ObjToSong<jobject, JNIEnv>(env, songObj);
|
||||
auto path = env->GetStringUTFChars(pathStr, nullptr);
|
||||
downloadSong(song, token, path);
|
||||
}
|
||||
|
||||
extern "C"
|
||||
JNIEXPORT void
|
||||
JNICALL
|
||||
|
||||
@@ -93,14 +93,9 @@ namespace manager {
|
||||
|
||||
template<typename Str = std::string, typename B = bool>
|
||||
B deleteSong(const Song& song, const Str& path) {
|
||||
auto s = fullSongPath(song, path);
|
||||
auto result = std::remove(s.c_str());
|
||||
const auto s = fullSongPath(song, path);
|
||||
|
||||
if (result == 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return (remove(s.c_str()) == 0) ? true : false;
|
||||
}
|
||||
|
||||
|
||||
@@ -128,16 +123,7 @@ namespace manager {
|
||||
albumPath.append(song.albumArtist);
|
||||
albumPath.append("/");
|
||||
albumPath.append(song.album);
|
||||
/**
|
||||
if (song.disc == 0) {
|
||||
albumPath.append("/");
|
||||
albumPath.append("disc1");
|
||||
} else {
|
||||
albumPath.append("/");
|
||||
albumPath.append("disc");
|
||||
albumPath.append(std::to_string(song.disc));
|
||||
}
|
||||
*/
|
||||
|
||||
DIR* dir = opendir(albumPath.c_str());
|
||||
|
||||
if (dir) {
|
||||
|
||||
@@ -151,16 +151,6 @@ namespace repository {
|
||||
auto res = curl_easy_perform(curl);
|
||||
curl_easy_cleanup(curl);
|
||||
downloadedSong.data = std::move(std::vector<char>(data.begin(), data.end()));
|
||||
/**
|
||||
downloadedSong.filename = "track";
|
||||
if (song.track < 10) {
|
||||
downloadedSong.filename.append("0");
|
||||
downloadedSong.filename.append(std::to_string(song.track));
|
||||
} else {
|
||||
downloadedSong.filename.append(std::to_string(song.track));
|
||||
}
|
||||
downloadedSong.filename.append(".mp3");
|
||||
*/
|
||||
|
||||
return downloadedSong;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user