Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
彼暗flower
NeteaseCloudMusicApi
提交
0f72d604
N
NeteaseCloudMusicApi
项目概览
彼暗flower
/
NeteaseCloudMusicApi
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NeteaseCloudMusicApi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0f72d604
编写于
10月 07, 2021
作者:
B
binaryify
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
merge
上级
8aad07e6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
102 addition
and
79 deletion
+102
-79
module_example/multi_song_upload.js
module_example/multi_song_upload.js
+89
-0
module_example/song_upload.js
module_example/song_upload.js
+13
-79
未找到文件。
module_example/multi_song_upload.js
0 → 100644
浏览文件 @
0f72d604
const
{
cloud
,
login_cellphone
}
=
require
(
'
../main
'
)
const
fs
=
require
(
'
fs
'
)
const
path
=
require
(
'
path
'
)
const
yargs
=
require
(
'
yargs
'
)
const
MUSIC_FILE_EXTENSIONS
=
new
Set
([
'
.mp3
'
,
'
.flac
'
])
function
getAllMusicFiles
(
dir
,
arrayOfFiles
)
{
arrayOfFiles
=
arrayOfFiles
||
[]
fs
.
readdirSync
(
dir
).
forEach
((
file
)
=>
{
let
fullPath
=
path
.
join
(
dir
,
file
)
if
(
fs
.
lstatSync
(
fullPath
).
isDirectory
())
{
getAllMusicFiles
(
fullPath
,
arrayOfFiles
)
}
else
{
if
(
MUSIC_FILE_EXTENSIONS
.
has
(
path
.
extname
(
fullPath
)))
{
arrayOfFiles
.
push
(
fullPath
)
}
}
})
return
arrayOfFiles
}
function
getParsedArgs
()
{
return
yargs
(
process
.
argv
.
slice
(
2
))
.
option
(
'
country_code
'
,
{
default
:
'
86
'
,
describe
:
'
The country code of your phone number
'
,
type
:
'
string
'
,
})
.
option
(
'
phone_number
'
,
{
demandOption
:
true
,
describe
:
'
Your phone number
'
,
type
:
'
string
'
,
})
.
option
(
'
password
'
,
{
demandOption
:
true
,
describe
:
'
Your password
'
,
type
:
'
string
'
,
})
.
option
(
'
file
'
,
{
describe
:
'
The absolute path to the single music file to be uploaded
'
,
type
:
'
string
'
,
})
.
option
(
'
dir
'
,
{
describe
:
'
The absolute to the directory of music files to be uploaded
'
,
type
:
'
string
'
,
})
.
conflicts
(
'
file
'
,
'
dir
'
)
.
help
()
.
alias
(
'
help
'
,
'
h
'
).
argv
}
async
function
main
()
{
const
args
=
getParsedArgs
()
const
result
=
await
login_cellphone
({
countrycode
:
args
.
country_code
,
phone
:
args
.
phone_number
,
password
:
args
.
password
,
})
const
files
=
args
.
file
?
getAllMusicFiles
(
args
.
file
)
:
getAllMusicFiles
(
args
.
dir
)
let
processed
=
0
let
failed
=
0
for
(
let
k
in
files
)
{
const
file
=
files
[
k
]
try
{
await
cloud
({
songFile
:
{
name
:
path
.
basename
(
file
),
data
:
fs
.
readFileSync
(
file
),
},
cookie
:
result
.
body
.
cookie
,
})
}
catch
(
error
)
{
console
.
log
(
error
)
failed
+=
1
}
processed
+=
1
console
.
log
(
`Processed
${
processed
}
/
${
files
.
length
}
songs...`
)
if
(
failed
)
{
console
.
log
(
`Failed to upload
${
failed
}
songs...`
)
}
}
console
.
log
(
'
Finished!
'
)
}
main
()
module_example/song_upload.js
浏览文件 @
0f72d604
const
{
cloud
,
login_cellphone
}
=
require
(
'
../main
'
)
const
fs
=
require
(
'
fs
'
)
const
path
=
require
(
'
path
'
)
const
yargs
=
require
(
'
yargs
'
)
const
MUSIC_FILE_EXTENSIONS
=
new
Set
([
'
.mp3
'
,
'
.flac
'
])
function
getAllMusicFiles
(
dir
,
arrayOfFiles
)
{
arrayOfFiles
=
arrayOfFiles
||
[]
fs
.
readdirSync
(
dir
).
forEach
((
file
)
=>
{
let
fullPath
=
path
.
join
(
dir
,
file
)
if
(
fs
.
lstatSync
(
fullPath
).
isDirectory
())
{
getAllMusicFiles
(
fullPath
,
arrayOfFiles
)
}
else
{
if
(
MUSIC_FILE_EXTENSIONS
.
has
(
path
.
extname
(
fullPath
)))
{
arrayOfFiles
.
push
(
fullPath
)
}
}
})
return
arrayOfFiles
}
function
getParsedArgs
()
{
return
yargs
(
process
.
argv
.
slice
(
2
))
.
option
(
'
country_code
'
,
{
default
:
'
86
'
,
describe
:
'
The country code of your phone number
'
,
type
:
'
string
'
,
})
.
option
(
'
phone_number
'
,
{
demandOption
:
true
,
describe
:
'
Your phone number
'
,
type
:
'
string
'
,
})
.
option
(
'
password
'
,
{
demandOption
:
true
,
describe
:
'
Your password
'
,
type
:
'
string
'
,
})
.
option
(
'
file
'
,
{
describe
:
'
The absolute path to the single music file to be uploaded
'
,
type
:
'
string
'
,
})
.
option
(
'
dir
'
,
{
describe
:
'
The absolute to the directory of music files to be uploaded
'
,
type
:
'
string
'
,
})
.
conflicts
(
'
file
'
,
'
dir
'
)
.
help
()
.
alias
(
'
help
'
,
'
h
'
).
argv
}
async
function
main
()
{
const
args
=
getParsedArgs
()
const
result
=
await
login_cellphone
({
countrycode
:
args
.
country_code
,
phone
:
args
.
phone_number
,
password
:
args
.
password
,
phone
:
'
手机号
'
,
password
:
'
密码
'
,
})
const
files
=
args
.
file
?
getAllMusicFiles
(
args
.
file
)
:
getAllMusicFiles
(
args
.
dir
)
let
processed
=
0
let
failed
=
0
for
(
let
k
in
files
)
{
const
file
=
files
[
k
]
try
{
await
cloud
({
songFile
:
{
name
:
path
.
basename
(
file
),
data
:
fs
.
readFileSync
(
file
),
},
cookie
:
result
.
body
.
cookie
,
})
}
catch
(
error
)
{
console
.
log
(
error
)
failed
+=
1
}
processed
+=
1
console
.
log
(
`Processed
${
processed
}
/
${
files
.
length
}
songs...`
)
if
(
failed
)
{
console
.
log
(
`Failed to upload
${
failed
}
songs...`
)
}
const
filePath
=
'
./test.mp3
'
try
{
await
cloud
({
songFile
:
{
name
:
path
.
basename
(
filePath
),
data
:
fs
.
readFileSync
(
filePath
),
},
cookie
:
result
.
body
.
cookie
,
})
}
catch
(
error
)
{
console
.
log
(
error
,
'
error
'
)
}
console
.
log
(
'
Finished!
'
)
}
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录