1
0
Fork 0
mirror of https://github.com/deltachat/deltachat-core.git synced 2025-10-06 03:50:08 +02:00

add a function to get the mime type of a message's file

This commit is contained in:
B. Petersen 2017-11-22 16:40:51 +01:00
parent 276daa2614
commit 60572637b3
2 changed files with 43 additions and 2 deletions

View file

@ -297,7 +297,7 @@ cleanup:
* *
* @memberof mrmsg_t * @memberof mrmsg_t
* *
* @param msg the message object * @param msg The message object.
* *
* @return base file name plus extension without part. If there is no file * @return base file name plus extension without part. If there is no file
* associated with the message, an empty string is returned. The returned * associated with the message, an empty string is returned. The returned
@ -324,6 +324,46 @@ cleanup:
} }
/**
* Get mime type of the file. If there is not file, an empty string is returned.
* If there is no associated mime type with the file, the function guesses on; if
* in doubt, `application/octet-stream` is returned. NULL is never returned.
*
* @memberof mrmsg_t
*
* @param msg The message object.
*
* @return String containing the mime type. Must be free()'d after usage. NULL is never returned.
*/
char* mrmsg_get_filemime(mrmsg_t* msg)
{
char* ret = NULL;
char* file = NULL;
if( msg == NULL ) {
goto cleanup;
}
ret = mrparam_get(msg->m_param, MRP_MIMETYPE, NULL);
if( ret == NULL ) {
int dummy_msgtype = 0;
file = mrparam_get(msg->m_param, MRP_FILE, NULL);
if( file == NULL ) {
goto cleanup;
}
mrmsg_guess_msgtype_from_suffix(file, &dummy_msgtype, &ret);
if( ret == NULL ) {
ret = safe_strdup("application/octet-stream");
}
}
cleanup:
free(file);
return ret? ret : safe_strdup(NULL);
}
/** /**
* Get real author and title. * Get real author and title.
* *
@ -334,7 +374,7 @@ cleanup:
* *
* @memberof mrmsg_t * @memberof mrmsg_t
* *
* @param msg the message object * @param msg The message object.
* *
* @return mrpoortext_t object that contains the author as mrpoortext_t::m_text1 and the title as mrpoortext_t::m_text2. * @return mrpoortext_t object that contains the author as mrpoortext_t::m_text1 and the title as mrpoortext_t::m_text2.
* Both may be NULL if unknown. The returned object must be freed using mrpoortext_unref() when no longer used. * Both may be NULL if unknown. The returned object must be freed using mrpoortext_unref() when no longer used.

View file

@ -141,6 +141,7 @@ int mrmsg_get_state (mrmsg_t*);
char* mrmsg_get_text (mrmsg_t*); char* mrmsg_get_text (mrmsg_t*);
char* mrmsg_get_file (mrmsg_t*); char* mrmsg_get_file (mrmsg_t*);
char* mrmsg_get_filename (mrmsg_t*); char* mrmsg_get_filename (mrmsg_t*);
char* mrmsg_get_filemime (mrmsg_t*);
mrpoortext_t* mrmsg_get_mediainfo (mrmsg_t*); mrpoortext_t* mrmsg_get_mediainfo (mrmsg_t*);
int mrmsg_get_showpadlock (mrmsg_t*); int mrmsg_get_showpadlock (mrmsg_t*);
mrpoortext_t* mrmsg_get_summary (mrmsg_t*, mrchat_t*); mrpoortext_t* mrmsg_get_summary (mrmsg_t*, mrchat_t*);