32 lines
2.2 KiB
JavaScript
Executable File
32 lines
2.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
||
|
||
const { argv } = require('yargs')
|
||
.usage('用法: ./$0 <目錄ID> [options]')
|
||
.example('./$0 1ULY8ISgWSOVc0UrzejykVgXfVL_I4r75', '獲取 https://drive.google.com/drive/folders/1ULY8ISgWSOVc0UrzejykVgXfVL_I4r75 内包含的所有文件的統計資訊')
|
||
.example('./$0 root -s size -t html -o out.html', '獲取個人空間根目錄統計資訊,結果以HTML表格輸出,根據總大小降冪排列,保存到本目錄下的out.html文件中(不存在則新建,存在的覆蓋)')
|
||
.example('./$0 root -s name -t json -o out.json', '獲取個人空間根目錄統計資訊,結果以JSON格式輸出,根據文件扩展名排序,保存到本目录下的out.json文件中')
|
||
.example('./$0 root -t all -o all.json', '獲取個人空間根目錄統計資訊,將所有文件資訊(包括資料夾)以JSON格式輸出,保存到本目錄下的all.json文件中')
|
||
.alias('u', 'update')
|
||
.describe('u', '強制從線上獲取資訊(不論是否存在本地快取)')
|
||
.alias('N', 'not_teamdrive')
|
||
.describe('N', '如果不是小組雲端硬碟連結,可以加上此参數以提高接口查詢效率,降低延遲。如果要統計的是帳號下之個人空間,且./sa目錄下的service account沒有相關權限,請加上此參數以使用個人的auth身份進行查詢')
|
||
.alias('S', 'service_account')
|
||
.describe('S', '指定使用service account進行統計,前提是必須在sa路徑下放置SA json文件')
|
||
.alias('s', 'sort')
|
||
.describe('s', '統計結果排序方法,可選值如下: name 或 size,不填則預設根據文件數量降冪排列')
|
||
.alias('t', 'type')
|
||
.describe('t', '統計結果輸出類型,可選值如下: html/tree/json/all,all表示輸出所有文件json數據,最好與 -o 一起使用。不填則預設輸出命令列表格')
|
||
.alias('o', 'output')
|
||
.describe('o', '統計結果輸出文件,適合與 -t 一起使用')
|
||
.help('h')
|
||
.alias('h', 'help')
|
||
|
||
const { count, validate_fid } = require('./src/gd')
|
||
const [fid] = argv._
|
||
if (validate_fid(fid)) {
|
||
const { update, sort, type, output, not_teamdrive, service_account } = argv
|
||
count({ fid, update, sort, type, output, not_teamdrive, service_account }).catch(console.error)
|
||
} else {
|
||
console.warn('無目錄ID或格式錯誤')
|
||
}
|