summaryrefslogtreecommitdiff
path: root/src/extractors
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2023-08-07 21:25:05 +0800
committerMole Shang <[email protected]>2023-08-07 22:59:18 +0800
commit1a5e67daaae24b2bdf17d3ea04fbbdf5e0ab9a60 (patch)
tree2a04cd7208df80d7bd7fbf9181711e652d78ced8 /src/extractors
parent930e47faebd878fe29cfabe80286189f9113a58b (diff)
downloadhinata-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.c11
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);