Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
e29fdaf850 | |||
b812fe4e30 | |||
8c4ec2ab0a | |||
22768594ba | |||
6af854b376 | |||
ed6c05b4bf | |||
dc2830d5c3 |
21
.github/ISSUE_TEMPLATE/bug_report.md
vendored
21
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -1,25 +1,21 @@
|
|||||||
---
|
---
|
||||||
name: "[请按照此模板填写] 报告 Bug"
|
name: "[请按照此模板填写] 报告 Bug"
|
||||||
about: "创建一个 Bug 报告,不按照模板的 Issue 会被关闭。"
|
about: "创建一个 Bug 报告,不按照模板的 Issue 会被直接关闭,不予回复。"
|
||||||
title: "[Bug] 总结你的 Bug 报告"
|
title: "[Bug] 总结你的 Bug 报告"
|
||||||
labels: bug
|
labels: bug
|
||||||
assignees: taurusxin
|
assignees: taurusxin
|
||||||
---
|
---
|
||||||
|
|
||||||
**Bug 描述**
|
**Bug 描述**
|
||||||
清晰地描述一下 Bug 的大致问题。
|
|
||||||
|
清晰地描述一下 Bug 的大致问题,例如无法转换,或者其他问题。
|
||||||
|
|
||||||
**复现方法**
|
**复现方法**
|
||||||
|
|
||||||
复现此 Bug 的方法
|
复现此 Bug 的方法
|
||||||
|
|
||||||
1. 打开 '...'
|
1. 使用本项目处理文件 '...'
|
||||||
2. 点击 '....'
|
2. 发生报错
|
||||||
3. 发生报错
|
|
||||||
|
|
||||||
**预期行为**
|
|
||||||
|
|
||||||
解释一下原本应该出现的结果。
|
|
||||||
|
|
||||||
**屏幕截图**
|
**屏幕截图**
|
||||||
|
|
||||||
@ -27,9 +23,10 @@ assignees: taurusxin
|
|||||||
|
|
||||||
**环境**
|
**环境**
|
||||||
|
|
||||||
- OS: [e.g. Windows 11]
|
- 操作系统: Windows / macOS / Linux
|
||||||
- 软件版本: [e.g. 1.3.2]
|
- 网易云版本(重要): [e.g. 3.0.1]
|
||||||
|
- 所选择的音质: 极高、无损等
|
||||||
|
|
||||||
**附加内容**
|
**附加内容**
|
||||||
|
|
||||||
添加更多其他内容以帮助开发者更好地了解这个 Bug。
|
如果遇到无法转换的问题,请将样本附加到这里,便于分析。
|
||||||
|
2
.github/workflows/autobuild.yml
vendored
2
.github/workflows/autobuild.yml
vendored
@ -1,6 +1,6 @@
|
|||||||
name: CI
|
name: CI
|
||||||
env:
|
env:
|
||||||
BUILD_TYPE: Release
|
BUILD_TYPE: MinSizeRel
|
||||||
BUILD_PATH: build
|
BUILD_PATH: build
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,3 +5,5 @@ ncmdump
|
|||||||
.idea
|
.idea
|
||||||
|
|
||||||
build
|
build
|
||||||
|
|
||||||
|
cmake-build-*
|
@ -48,19 +48,19 @@ ncmdump -v
|
|||||||
ncmdump 1.ncm 2.ncm...
|
ncmdump 1.ncm 2.ncm...
|
||||||
```
|
```
|
||||||
|
|
||||||
你可以使用 `-d` 参数来指定一个文件夹,对文件夹下的所有以 ncm 为扩展名的文件进行批量处理
|
使用 `-d` 参数来指定一个文件夹,对文件夹下的所有以 ncm 为扩展名的文件进行批量处理
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
ncmdump -d source_dir
|
ncmdump -d source_dir
|
||||||
```
|
```
|
||||||
|
|
||||||
你可以使用 `-r` 配合 `-d` 参数来递归处理文件夹下的所有以 ncm 为扩展名的文件
|
使用 `-r` 配合 `-d` 参数来递归处理文件夹下的所有以 ncm 为扩展名的文件
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
ncmdump -d source_dir -r
|
ncmdump -d source_dir -r
|
||||||
```
|
```
|
||||||
|
|
||||||
你可以使用 `-o` 参数来指定输出目录,将转换后的文件输出到指定目录,该参数支持与 `-r` 参数一起使用
|
使用 `-o` 参数来指定输出目录,将转换后的文件输出到指定目录,该参数支持与 `-r` 参数一起使用
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 处理单个或多个文件并输出到指定目录
|
# 处理单个或多个文件并输出到指定目录
|
||||||
|
@ -47,7 +47,7 @@ private:
|
|||||||
NcmFormat mFormat;
|
NcmFormat mFormat;
|
||||||
std::string mImageData;
|
std::string mImageData;
|
||||||
std::ifstream mFile;
|
std::ifstream mFile;
|
||||||
unsigned char mKeyBox[256];
|
unsigned char mKeyBox[256]{};
|
||||||
NeteaseMusicMetadata* mMetaData;
|
NeteaseMusicMetadata* mMetaData;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -224,7 +224,7 @@ void NeteaseCrypt::FixMetadata()
|
|||||||
audioFile = new TagLib::MPEG::File(mDumpFilepath.c_str());
|
audioFile = new TagLib::MPEG::File(mDumpFilepath.c_str());
|
||||||
tag = dynamic_cast<TagLib::MPEG::File *>(audioFile)->ID3v2Tag(true);
|
tag = dynamic_cast<TagLib::MPEG::File *>(audioFile)->ID3v2Tag(true);
|
||||||
|
|
||||||
if (mImageData.length() > 0)
|
if (!mImageData.empty())
|
||||||
{
|
{
|
||||||
TagLib::ID3v2::AttachedPictureFrame *frame = new TagLib::ID3v2::AttachedPictureFrame;
|
TagLib::ID3v2::AttachedPictureFrame *frame = new TagLib::ID3v2::AttachedPictureFrame;
|
||||||
|
|
||||||
@ -239,7 +239,7 @@ void NeteaseCrypt::FixMetadata()
|
|||||||
audioFile = new TagLib::FLAC::File(mDumpFilepath.c_str());
|
audioFile = new TagLib::FLAC::File(mDumpFilepath.c_str());
|
||||||
tag = audioFile->tag();
|
tag = audioFile->tag();
|
||||||
|
|
||||||
if (mImageData.length() > 0)
|
if (!mImageData.empty())
|
||||||
{
|
{
|
||||||
TagLib::FLAC::Picture *cover = new TagLib::FLAC::Picture;
|
TagLib::FLAC::Picture *cover = new TagLib::FLAC::Picture;
|
||||||
cover->setMimeType(mimeType(mImageData));
|
cover->setMimeType(mimeType(mImageData));
|
||||||
@ -257,7 +257,7 @@ void NeteaseCrypt::FixMetadata()
|
|||||||
tag->setAlbum(TagLib::String(mMetaData->album(), TagLib::String::UTF8));
|
tag->setAlbum(TagLib::String(mMetaData->album(), TagLib::String::UTF8));
|
||||||
}
|
}
|
||||||
|
|
||||||
tag->setComment(TagLib::String("Create by taurusxin/ncmdump.", TagLib::String::UTF8));
|
// tag->setComment(TagLib::String("Create by taurusxin/ncmdump.", TagLib::String::UTF8));
|
||||||
|
|
||||||
audioFile->save();
|
audioFile->save();
|
||||||
audioFile->~File();
|
audioFile->~File();
|
||||||
@ -301,7 +301,7 @@ void NeteaseCrypt::Dump(std::string const &outputDir = "")
|
|||||||
mFormat = NeteaseCrypt::FLAC;
|
mFormat = NeteaseCrypt::FLAC;
|
||||||
}
|
}
|
||||||
|
|
||||||
output.open(mDumpFilepath, output.out | output.binary);
|
output.open(mDumpFilepath, std::ofstream::out | std::ofstream::binary);
|
||||||
}
|
}
|
||||||
|
|
||||||
output.write((char *)buffer.data(), n);
|
output.write((char *)buffer.data(), n);
|
||||||
|
2
taglib
2
taglib
@ -1 +1 @@
|
|||||||
Subproject commit 0896fb90920c125e55248360d271d1a1674e2a4d
|
Subproject commit e3de03501ff66221d1f1f971022b248d5b38ba06
|
Loading…
x
Reference in New Issue
Block a user