diff --git a/src/model/account.c b/src/model/account.c index d301769..d043c93 100644 --- a/src/model/account.c +++ b/src/model/account.c @@ -548,6 +548,7 @@ void account_save( struct account* a ) { char path[512]; get_account_path( a->id, path, 512 ); + create_account_skeleton(a->id); char filename[512]; snprintf( filename, 512, "%s/data.json", path ); diff --git a/src/model/media.c b/src/model/media.c index cac8f92..c254349 100644 --- a/src/model/media.c +++ b/src/model/media.c @@ -14,6 +14,7 @@ #define OBJ_TYPE struct media struct json_object_field media_layout[] = { + JSON_FIELD_INTEGER( duplicate_of_id, false ), JSON_FIELD_STRING( content_type, false ), JSON_FIELD_STRING( preview_url, false ), JSON_FIELD_STRING( remote_url, false ), @@ -46,6 +47,13 @@ struct media* media_from_id( int id ) return NULL; } + if( m->duplicate_of_id != 0 ) { + int new_id = m->duplicate_of_id; + media_free(m); + + return media_from_id( new_id ); + } + return m; } struct media* media_from_local_uri( const char* uri ) diff --git a/src/model/media.h b/src/model/media.h index 9c14d0a..a34085e 100644 --- a/src/model/media.h +++ b/src/model/media.h @@ -5,6 +5,7 @@ struct media { int id; + int duplicate_of_id; char* remote_url; char* preview_url; char* content_type;