Skip to content

everm4iva/downsrc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☆ DownSrc ☆

"I just want to download my stuff ugh.."

A simple, cute command-line tool for downloading files and websites.

☆-Features

  • Download single files or entire webpages with the resources intact!
  • Deep scraping - Follow same-domain links recursively
  • File extension filtering - Download only specific file types
  • Colorful terminal interface with progress bars
  • Multiple download flags and options
  • Zip downloaded files automatically
  • Generate HTML reports
  • Custom actions for automation
  • Configurable settings
  • Funny commands cat, sheep, bee

☆-Installation

npm install -g @everm4iva/downsrc

☆-Start using it!

# Download a file
downsrc https://example.com/file.zip

# Download a webpage with all resources (just that page)
downsrc https://example.com/page.html

# Download and zip
downsrc -z https://example.com/website

# Download with quality report
downsrc --dr https://example.com/files

# Download only specific file types
downsrc --fe "png & jpg" https://example.com/gallery

# Advanced scraping - follow 5 links on same domain
downsrc --as 5 https://example.com/website

# Combine filters: scrape 3 links, only download PDFs
downsrc --as 3 --fe pdf https://example.com/docs

# Check if link is accessible
downsrc -c https://example.com/file.zip

# Check security/certificates
downsrc -v https://example.com

☆-Available Commands

Basic Usage

  • downsrc <url> - Download from URL
  • downsrc help - Show help with examples
  • downsrc details - Show package information
  • downsrc cat - Display cat symbol

Settings

  • downsrc set <var> <value> - Change configuration
  • downsrc action add <name> <command> - Add custom action
  • downsrc action remove <name> - Remove action
  • downsrc action list - List all actions
  • downsrc run <action> - Run custom action

Flags

Download Options

  • -o - Open file after download
  • -z - Zip files after download
  • -p <path> - Specify download path
  • --tl <seconds> - Set time limit
  • --ms <mb> - Maximum file size (skip)
  • --mss <mb> - Maximum file size (pause and ask)
  • --fe <extensions> - Filter by file extension (e.g., png & jpg & webp)
  • --as <number> - Advanced scraping - follow N links from the page (same-domain links)

Reports and UI

  • --hr - Generate HTML report
  • --hh - Host interactive HTML UI in browser
  • --dr - Show download quality report
  • -d - Include debug.txt in zip

Checking

  • -c - Check link accessibility
  • -v - Check vulnerabilities/security

Automation

  • -y - Yes to all prompts
  • -n - No to all prompts
  • --debug-on - Enable debug mode
  • --debug-off - Disable debug mode

☆-Documentation

For now.. none, keep exploring on ur own

Documentation is available in the docs folder:

☆-Examples

Download and open a file
downsrc -o https://example.com/document.pdf
Download website with time limit
downsrc --tl 60 https://example.com/website
Download only specific file types
# Download only PNG images
downsrc --fe png https://example.com/gallery
# Download multiple image formats
downsrc --fe "png & jpg & webp" https://example.com/gallery
Advanced scraping - follow links
# Follow and download up to 5 links from the page
downsrc --as 5 https://example.com
# Follow all links (prompts if more than 10)
downsrc --as https://example.com
# Download page and follow up to 3 same-domain links
downsrc -as 3 https://example.com/website
# Download page and follow all same-domain links (will prompt if >10)
downsrc -as https://example.com/website
# Download only the page and resources (root-num = 0)
downsrc -as 0 https://example.com/page
File extension filtering
# Download only PNG images
downsrc -fe png https://example.com/gallery
# Download multiple file types
downsrc -fe "png & jpg & webp & svg" https://example.com/images
# Combine with advanced scraping
downsrc -as 5 -fe "pdf & docx" https://example.com/documents
Complete workflow
downsrc -z --hr --dr -p ./downloads https://example.com/project
Create and run custom action
downsrc action add backup "tar -czf backup.tar.gz ./downloads"
downsrc run backup

☆-Configuration

Settings configuration

Settings are stored in resources/coolshits.json:

{
    "accentColor": "orange",
    "defaultDownloadDir": "./downloads",
    "maxConcurrentDownloads": 3,
    "defaultZipAfterDownload": false
}

Change settings via command line:

downsrc set maxConcurrentDownloads 5
downsrc set defaultZipAfterDownload true

☆-Architecture

  • Pure JavaScript (no TypeScript or frameworks)
  • Modular and configurable design
  • All variables in coolshits.json
  • Custom actions in actions.json
  • Simple symbols instead of emoji (»*+-#$!)
  • Orange accent color theme

☆-Project Structure

downsrc/
├── bin/
│   └── downsrc.js          # CLI entry point
├── resources/
│   ├── index.js            # Main module
│   ├── logic.js            # Download logic
│   ├── terminal-wowies.js  # Terminal UI
│   ├── fs.js               # File operations
│   ├── settings.js         # Configuration
│   ├── debugger.js         # Logging system
│   ├── server.js           # Web UI server
│   ├── coolshits.json      # Settings file
│   ├── actions.json        # Custom actions
│   ├── commands/           # Command handlers
│   │   ├── zipper.js
│   │   ├── htmlgen.js
│   │   ├── report.js
│   │   ├── check-vul.js
│   │   ├── timelimit.js
│   │   └── actions.js
│   └── symbols/
│       └── cat.txt
├── docs/                   # Documentation
└── package.json

☆-Dependencies

Big help! thank u so much

  • minimist - Argument parsing
  • chalk - Terminal colors
  • cli-progress - Progress bars
  • archiver - Zip creation
  • cheerio - HTML parsing
  • p-limit - Concurrency control
  • prompts - User input
  • open - Open files

☆-Contributing

Free to do something. in fact.. free to do anything, did u read the LICENSE file??

☆-Author - everm4iva (m4iva)