summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2023-08-08 23:19:14 +0800
committerMole Shang <[email protected]>2023-08-08 23:19:14 +0800
commite63cddca442dd4f8f7124e7827e347fe5046e416 (patch)
tree16987a5114d14f76692a74c84b8c25cd0bfdc0eb /src/utils
parent02c045e6e7217c590acba5f8acc63e25f3b542b9 (diff)
downloadhinata-e63cddca442dd4f8f7124e7827e347fe5046e416.tar.gz
hinata-e63cddca442dd4f8f7124e7827e347fe5046e416.tar.bz2
hinata-e63cddca442dd4f8f7124e7827e347fe5046e416.zip
utils: expose mimeType2ext in utils
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/utils.c19
-rw-r--r--src/utils/utils.h2
2 files changed, 21 insertions, 0 deletions
diff --git a/src/utils/utils.c b/src/utils/utils.c
index ea0b424..ae60eee 100644
--- a/src/utils/utils.c
+++ b/src/utils/utils.c
@@ -140,6 +140,25 @@ int substitute_str(const char *subject, const char *pattern,
return 0;
}
+const char *mimeType2ext(const char *mimeType) {
+ static char mimeType_l[CHAR_MAX];
+ strcpy(mimeType_l, mimeType);
+ const char *exts[2];
+ size_t extsCount = 0;
+
+ char *token = strtok(mimeType_l, "/");
+ while (token != NULL && extsCount < 2) {
+ exts[extsCount++] = token;
+ token = strtok(NULL, "/");
+ }
+
+ if (extsCount == 2) {
+ return exts[1];
+ }
+
+ return "mp4"; // Cannot parse, use default
+}
+
int repchr(char *str, char t, char r) {
int c = 0;
for (size_t i = 0; str[i] != '\0'; i++) {
diff --git a/src/utils/utils.h b/src/utils/utils.h
index f5bf8fc..f6bbad5 100644
--- a/src/utils/utils.h
+++ b/src/utils/utils.h
@@ -9,6 +9,8 @@ int regex_match(const char *, str_array_t, str_array_t *);
int substitute_str(const char *subject, const char *pattern,
const char *replacement, char **presult);
+const char *mimeType2ext(const char *mimeType);
+
int repchr(char *str, char t, char r);
void free_and_nullify(void *p);