Skip to main content
Glama
organize-files.jsโ€ข4.61 kB
#!/usr/bin/env node import fs from 'fs'; import path from 'path'; function organizeFiles() { console.log('๐Ÿ“ ORGANIZING EMAIL ORGANIZATION FILES\n'); const baseDir = '/Users/ceverson/Development/email_organization/core'; // Define directory structure const directories = { 'scripts': 'Main organization and utility scripts', 'analysis': 'Email analysis and reporting scripts', 'setup': 'Initial setup and configuration scripts', 'sieve': 'FastMail Sieve filtering rules', 'src': 'Core library and client code', 'docs': 'Documentation and guides' }; // File categorization const fileCategories = { 'scripts': [ 'organize-everything.js', 'final-organization.js', 'conversation-based-organization.js', 'smart-inbox-organization.js', 'final-inbox-cleanup.js', 'move-final-newsletters.js', 'organize-todays-inbox.js' ], 'analysis': [ 'count-all-emails.js', 'check-inbox-contents.js', 'check-todays-emails.js', 'comprehensive-spam-review.js', 'check-spam-folder.js' ], 'setup': [ 'create-hierarchical-labels.js', 'delete-excess-labels.js', 'delete-remaining-empty-folders.js' ], 'sieve': [ 'fastmail-sieve-rules.txt' ], 'src': [ 'src/' // This is already a directory ] }; // Create directories console.log('๐Ÿ“‚ Creating directory structure:'); for (const [dirName, description] of Object.entries(directories)) { const dirPath = path.join(baseDir, dirName); if (!fs.existsSync(dirPath)) { fs.mkdirSync(dirPath, { recursive: true }); console.log(` โœ… Created: ${dirName}/ - ${description}`); } else { console.log(` โœ“ Exists: ${dirName}/ - ${description}`); } } console.log('\n๐Ÿ“„ Moving files to appropriate directories:'); // Move files to their categories for (const [category, files] of Object.entries(fileCategories)) { if (category === 'src') continue; // src is already organized console.log(`\n๐Ÿ“ ${category.toUpperCase()}:`); for (const fileName of files) { const sourcePath = path.join(baseDir, fileName); const targetDir = path.join(baseDir, category); const targetPath = path.join(targetDir, fileName); if (fs.existsSync(sourcePath)) { if (!fs.existsSync(targetPath)) { fs.renameSync(sourcePath, targetPath); console.log(` โœ… Moved: ${fileName} โ†’ ${category}/`); } else { console.log(` โœ“ Already in place: ${fileName}`); } } else { console.log(` โš ๏ธ Not found: ${fileName}`); } } } // Create docs directory content const docsDir = path.join(baseDir, 'docs'); const readmePath = path.join(docsDir, 'README.md'); if (!fs.existsSync(readmePath)) { const readmeContent = `# Email Organization System This directory contains documentation for the comprehensive email organization system. ## Quick Start 1. **Setup**: Run scripts in \`setup/\` to create hierarchical labels 2. **Organization**: Use scripts in \`scripts/\` to organize emails 3. **Analysis**: Use scripts in \`analysis/\` to review and monitor 4. **Filtering**: Deploy sieve rules from \`sieve/\` to FastMail ## Directory Structure - \`scripts/\` - Main organization and utility scripts - \`analysis/\` - Email analysis and reporting scripts - \`setup/\` - Initial setup and configuration scripts - \`sieve/\` - FastMail Sieve filtering rules - \`src/\` - Core library and client code - \`docs/\` - Documentation and guides ## Key Features - **Hierarchical Organization**: 5 main categories with subcategories - **Auto-purge Settings**: Automatic cleanup of old newsletters/promotions - **Comprehensive Spam Detection**: Multi-year threat intelligence - **Conversation-based Logic**: Preserves actionable emails - **100% Organization**: Processes all 8,000+ emails ## Maintenance - Run \`analysis/check-todays-emails.js\` daily to monitor new emails - Use \`scripts/organize-todays-inbox.js\` for daily inbox management - Review spam folder monthly with \`analysis/comprehensive-spam-review.js\` `; fs.writeFileSync(readmePath, readmeContent); console.log('\n๐Ÿ“„ Created: docs/README.md'); } console.log('\n๐ŸŽ‰ FILE ORGANIZATION COMPLETE!'); console.log('='.repeat(60)); console.log('๐Ÿ“ All scripts organized into logical directories'); console.log('๐Ÿ“š Documentation created in docs/'); console.log('โœ… System ready for easy maintenance and use'); } organizeFiles();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gr3enarr0w/fastmail-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server