Neocities Red
Hello, there is a fork of neocities-ruby gem with my own features and implementations. A much of my changes doesn't make sense to be pushed into original repository, so i pushed it here.
Main changes/Features:
Currently, this gems tests with ruby 3.4.*, it doesn't supports ruby 4 due of dependencies
1) Added MultiThread uploading of files to neocities. This feature boosts neocities push;
2) Moves from http.rb to faraday gem;
3) Fixed -e flag to exclude folders recursively;
4) Added --ignore-dotfiles to ignore all files-folders starts with '.';
5) Added --optimized for neocities push flag to upload only modified files;
6) Fixed bug with neocities info on modern rubies;
7) Re-designed upload method;
TODO'S:
1) Check all entire cli and client logic, fix bugs.
2) Change dependencies for modern analogs.
3) Refactor cli.rb or use rails/thor gem instead.
4) Add tests
5) Make sure that gem is compatible with Linux, Freebsd, Windows
6) Make it compatible with ruby 4.0.0
The Neocities Gem
A CLI and library for using the Neocities API. Makes it easy to quickly upload, push, delete, and list your Neocities site.
Installation
gem install neocities-red
Running
After that, you are all set! Run neocities-red in a command line to see the options and get started.
Gem modules
This gem also transpose all processes to several class in lib/neocities, which could be used to write code that interfaces with the Neocities API.
require 'neocities-red'
# use api key
params = {
api_key: 'MyKeyFromNeocities'
}
# or sitename and password
# params = {
# sitename: 'petrapixel,
# password: 'mypass'
# }
client = Neocities::Client.new(params)
client.key
client.upload(path, remote_path)
client.info(sitename)
client.delete(path)
client.push(path)
client.list(path)