diff options
author | Mole Shang <[email protected]> | 2023-08-07 21:25:05 +0800 |
---|---|---|
committer | Mole Shang <[email protected]> | 2023-08-07 22:59:18 +0800 |
commit | 1a5e67daaae24b2bdf17d3ea04fbbdf5e0ab9a60 (patch) | |
tree | 2a04cd7208df80d7bd7fbf9181711e652d78ced8 /src/extractors | |
parent | 930e47faebd878fe29cfabe80286189f9113a58b (diff) | |
download | hinata-1a5e67daaae24b2bdf17d3ea04fbbdf5e0ab9a60.tar.gz hinata-1a5e67daaae24b2bdf17d3ea04fbbdf5e0ab9a60.tar.bz2 hinata-1a5e67daaae24b2bdf17d3ea04fbbdf5e0ab9a60.zip |
extractors/bilibili: append page info in filename (if possible)
Also fixes an malloc size error. Previously we allocated too small memory
for callback_struct.filename, which in turn leads to unexpected memory corruption.
Diffstat (limited to 'src/extractors')
-rw-r--r-- | src/extractors/bilibili.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/extractors/bilibili.c b/src/extractors/bilibili.c index 7eaa0bc..9d1ede6 100644 --- a/src/extractors/bilibili.c +++ b/src/extractors/bilibili.c @@ -409,9 +409,14 @@ static int download(Bilibili_options *bilibili_options) { static callback_struct_t callback_struct = {0}; const char *ext = mimeType2ext(video->mimeType); callback_struct.filename = malloc(strlen(bilibili_options->title) + - strlen(quality_desc) + strlen(ext) + 1); - sprintf(callback_struct.filename, "%s[%s].%s", bilibili_options->title, - quality_desc, ext); + strlen(quality_desc) + strlen(ext) + 10); + if (bilibili_options->is_page) { + sprintf(callback_struct.filename, "%s-P%d-[%s].%s", bilibili_options->title, + bilibili_options->page, quality_desc, ext); + } else { + sprintf(callback_struct.filename, "%s-[%s].%s", bilibili_options->title, + quality_desc, ext); + } { callback_struct.videofn = malloc(strlen(callback_struct.filename) + 6); |