Code Monkey home page Code Monkey logo

neomanager's Introduction

Neomanager

An unofficial CLI for Neocities. It uploads folders quicker than the official CLI by batching them, and comes with the ability to download your website.

Note: I'm new when it comes to FOSS and CLI

Comparison

Neomanager is way faster than the official one. In some cases, it finishes by the time the official CLI even starts uploading anything. See for yourself in the video.

comparison.mp4
Neomanager Official CLI
Uploading
Stress test (video above) 21s 2m 5s
Downloading
Progress bar
Install method npm RubyGems
File list
Deleting ➖¹
.gitignore support ➖²
Site info
Pizza

¹: Manual

²: Uses .neomanager-ignore. Lacks an option to disable or set using flags, but includes a catch-all for supporter-only files.


Install

Make sure you have Node installed, and then run:

$ npm install --global neomanager

Usage

$ neomanager upload .
224 uploading (4364 skipped)
▐█████████████████████████▌ 100%
507.15KB/507.15KB


Done.

Skipping

If Neomanager detects that the exact file is already uploaded to your website, it'll skip it.

It also supports an ignore file called .neomanager-ignore. It uses the same syntax as .gitignore, but with some differences:

  • Adding #*supporter will ignore all supporter-only file types.
  • You have to specifically ignore .neomanager-ignore.

What's (finishing up) mean?

Neocities will error out and fail to upload if you upload too many files at a time. So, Neomanager gets around this by uploading files 20 at a time. The downside to this is that Neomanager has to wait on Neocities has to process the upload, which is what's going on during the (finishing up) phase.

neomanager's People

Contributors

hf02 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

neomanager's Issues

A push command (upload new files and delete others)

Would be nice. Especially when it comes to cache busting; I have a ton of start-(hash here).jses on my website due to SvelteKit, and since I don't know a CLI with a push command that also deletes, they just sort of accumulated.

Another factor is that sometimes you have multiple projects on your website. Not sure how to handle this one...maybe Neomanager is pointed to several directories, merges them, and uploads the files?

Send several requests at a time when uploading

As of right now, it waits for every request to finish before going onto the next one. That's not the best because the majority of the waiting is from Neocities taking a bit after the files were uploaded.

I wonder if this is even possible. Neocities already 500s if you give it too many files at a time, despite what the documentation says. Thus, maybe sending multiple requests at a time will also just cause it to 500?

Deleting files

A way to delete files would be nice.

It also could be a feature of the upload task. For example, it'll delete files on the website if they're not in the directory you're uploading. This would be opt-in though, or perhaps it should be its own task (push?) as it's doing more than just uploading.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.