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
- Added MultiThread uploading of files to neocities. This feature boosts
neocities push; - Moves from
http.rbtofaradaygem; - Fixed
-eflag to exclude folders recursively; - Added
--ignore-dotfilesto ignore all files-folders starts with '.'; - Added
--optimizedforneocities pushflag to upload only modified files; - Fixed bug with neocities info on modern rubies;
- Re-designed
uploadmethod;
TODO'S:
- Check all entire cli and client logic, fix bugs.
- Change dependencies for modern analogs.
- Refactor
cli.rbor userails/thorgem instead. - Add tests
- Make sure that gem is compatible with Linux, Freebsd, Windows
- 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)Contributions ..?
I'm glad to see everyone, so for contribution you need to check issues and take one typing something like "i'd like to take this issue". After that you should to make fork of this repository, create new branch and complete the task.
If there are no tasks, just ping me (o-200) at the new issue, and we will think about what can be implemented or fixed.