gd-utils/count

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/allall表示輸出所有文件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或格式錯誤')
}