scan-categorizer
Scan and forget!
AI Summary
Scan Categorizer
Categorizes PDFs by content in Drive.
Target Users
Beginner GAS developers automating PDF scan organization in Drive.
Problems Solved
Manual organization of PDF scans in Drive is time-consuming.
Script ID
- In GAS Editor: Click "Libraries +" → Paste into "Script ID" field → Click "Look up"
- "scan-categorizer" will appear in the search results
- Select the latest version (highest number) from "Version" dropdown
- Click "Add"
Tags
Main Features
1
No-code setup
UI generates conditions to paste in Code.gs. No coding needed.
2
Flexible matching
Chain or/and conditions and RegExp for precise content matching.
3
Helper utils
Path validation, name sanitization, date helpers included.
Examples
Main Functions
| Function | Description |
|---|---|
| sc.categorize | Categorize PDFs by content |
| sc.isValidPath | Validate path string |
| sc.sanitizeFileName | Sanitize file names |
Examples
Category setup and execution
/**
* 分類条件設定と実行
* ・or条件: or('lorem', 'ipsum')
* ・and条件連鎖: [or(...), and(...) ]
* ・categorize実行: sc.categorize(categories, src)
*/
function categorizeScans() {
const categories = [
{name: 'Lorem', conditions: [and('lorem', 'ipsum')], path: 'Lorem/$y'},
{name: 'Ipsum', conditions: [or('ipsum', 'dolor')], path: 'Ipsum/$y'},
{
name: 'Ipsum',
conditions: [or('ipsum', 'dolor'), and('lorem', 'ipsum')],
path: 'Ipsum/$y',
},
];
sc.categorize(categories, ['source-folder-id']);
}Using helper functions
/**
* ヘルパー関数活用
* ・パス検証: sc.isValidPath('Lorem/$y')
* ・ファイル名検証: sc.isValidPdfFileName('scan.pdf')
* ・名サニタイズ: sc.sanitizeFileName('bad<name>.pdf')
*/
function useHelpers() {
sc.isValidPath('Lorem/$y');
sc.isValidPdfFileName('scan.pdf');
const safeName = sc.sanitizeFileName('scan <bad> name.pdf');
}Date processing
/**
* 日付処理
* ・日付フォーマット: sc.formatDate(new Date())
* ・ファイルから抽出: sc.extractDateFromFileName('2024-01-01.pdf')
*/
function handleDates() {
const formatted = sc.formatDate(new Date());
const date = sc.extractDateFromFileName('invoice-2024-01-15.pdf');
}