gd-utils/count
2020-07-15 14:36:39 +08:00

32 lines
2.2 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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或格式錯誤')
}