Added tagging

This commit is contained in:
DWW 2022-07-20 17:18:40 +03:00
parent 445ba013f4
commit c85c83f46a
2 changed files with 102 additions and 4 deletions

2
TODO
View File

@ -1,4 +1,2 @@
Add Cover Resize via lib or command ???
Add MP3 Tagging
Add FLAC Tagging
Implement main

104
main.cpp
View File

@ -572,6 +572,94 @@ bool rename_cover(const string& path, bool is_jpg)
return true;
}
bool tag_MP3(const string& path, const string& filename, bool is_single_dir,
const string& title, const string& album, const string& artist,
const string& tracknum)
{
string cmd;
cmd = "id3edit --set-name \"";
cmd += title;
cmd += "\" --set-album \"";
cmd += album;
cmd += "\" --set-artist \"";
cmd += artist;
cmd += "\" --set-track ";
cmd += tracknum;
cmd += " --set-artwork \"";
cmd += path;
cmd += FOLDER_DELIM;
cmd += "Cover_small.jpg\" \"";
cmd += path;
cmd += FOLDER_DELIM;
if (!is_single_dir)
{
cmd += "MP3";
cmd += FOLDER_DELIM;
}
cmd += filename;
cmd += ".mp3\"";
return system_command(cmd);
}
bool tag_FLAC(const string& path, const string& filename, bool is_single_dir,
const string& title, const string& album, const string& artist,
const string& tracknum)
{
string cmd;
bool ok;
// First command - remove metadata
cmd = "metaflac --preserve-modtime --no-utf8-convert ";
cmd += "--remove --block-type=PICTURE ";
cmd += "--remove-tag=TITLE ";
cmd += "--remove-tag=ARTIST ";
cmd += "--remove-tag=ALBUM ";
cmd += "--remove-tag=TRACKNUMBER \"";
cmd += path;
cmd += FOLDER_DELIM;
if (!is_single_dir)
{
cmd += "FLAC";
cmd += FOLDER_DELIM;
}
cmd += filename;
cmd += ".flac\"";
ok = system_command(cmd);
if (!ok)
{
return false;
}
// Second command - set metadata
cmd = "metaflac --preserve-modtime --no-utf8-convert --dont-use-padding ";
cmd += "\"--import-picture-from=3|image/jpeg|||";
cmd += path;
cmd += FOLDER_DELIM;
cmd += "Cover_small.jpg\" \"--set-tag=TITLE=";
cmd += title;
cmd += "\" \"--set-tag=ARTIST=";
cmd += artist;
cmd += "\" \"--set-tag=ALBUM=";
cmd += album;
cmd += "\" --set-tag=TRACKNUMBER=";
cmd += tracknum;
cmd += " \"";
cmd += path;
cmd += FOLDER_DELIM;
if (!is_single_dir)
{
cmd += "FLAC";
cmd += FOLDER_DELIM;
}
cmd += filename;
cmd += ".flac\"";
return system_command(cmd);
}
bool full_donwload(const string& path, const string& release_prefix,
int release_num, const string& release_suffix)
{
@ -686,7 +774,13 @@ bool full_donwload(const string& path, const string& release_prefix,
return false;
}
// TODO: Tag MP3
// Tag MP3
ok = tag_MP3(release_dir, track_filename, is_single_dir, tags[i].title,
release_artist_title.second, tags[i].artist, tags[i].number);
if (!ok)
{
return false;
}
// Download Track (FLAC)
ok = download_track(info["Release"]["Id"], info["Tracks"][i]["Id"],
@ -696,7 +790,13 @@ bool full_donwload(const string& path, const string& release_prefix,
return false;
}
// TODO: Tag FLAC
// Tag FLAC
ok = tag_FLAC(release_dir, track_filename, is_single_dir, tags[i].title,
release_artist_title.second, tags[i].artist, tags[i].number);
if (!ok)
{
return false;
}
}
return true;