66 nlohmann::json j = nlohmann::json::parse(str);
68 TLOG() <<
"debug : Loading metadata from string " << str;
70 if (j.contains(
"file_path")) {
73 if (j.contains(
"hash")) {
74 set_hash(j[
"hash"].get<std::string>());
76 if (j.contains(
"size")) {
79 if (j.contains(
"transfered")) {
82 if (j.contains(
"speed")) {
85 if (j.contains(
"source")) {
88 if (j.contains(
"destination")) {
91 if (j.contains(
"status")) {
93 if (status.has_value()) {
96 ers::error(InvalidProtocolError(
ERS_HERE,
"reading metadata string process", j[
"status"].get<std::string>()));
99 if (j.contains(
"magnet_link")) {
102 if (j.contains(
"group_id")) {
105 if (j.contains(
"error_code")) {
108 if (j.contains(
"start_t")) {
111 if (j.contains(
"end_t")) {
114 if (j.contains(
"duration")) {
122 std::ofstream metadata_file;
127 metadata_file.close();
133 std::ifstream metadata_file;
135 metadata_file.open(src.string());
136 }
catch (
const std::exception& e) {
141 std::stringstream buffer;
142 buffer << metadata_file.rdbuf();
146 metadata_file.close();
void error(const Issue &issue)
static std::string status_to_string(e_status e)
static std::optional< e_status > string_to_status(std::string s)