LJ/clitools/README.md

71 lines
2.4 KiB
Markdown
Raw Normal View History

2020-09-26 22:33:30 +00:00
# Chaining Lasers In Submission Tools for LJ
Alright everybody, ready for some fun? Here comes The Piping And Plumbing Your Way To The Top Show!
You're going to push so many points to this laser it will hog and cry...
BOOM | WIIIIIZ :: PHHHHHRACKRACKRACK ~~ WOOP ~~###~~ WIIT
## The basic loop
```
python3 generators/dummy.py -f 2 | filters/kaleidoscope.py | exports/toRedis.py -v
------------------------------ --------------------- -------------------
\/ \/ \/
Generator Filter Export
```
2020-09-26 22:37:27 +00:00
### 1. The Generator
2020-09-26 22:33:30 +00:00
Use it to produce some points in any manner, orderly or total chaos.
Don't be that boring Sinusoids bugger! Flash Maps of Dooms, Disbitnic sprites, Dismorphic HexaFonts all over the walls!
2020-09-26 22:37:27 +00:00
### 2. The Filter(s)
2020-09-26 22:33:30 +00:00
These babies will modify data on the wire by passing around the points and modifying them in sequence.
2020-09-26 22:38:23 +00:00
Want your Double Heavy Laser Cannons to Bounce Together Like They Been Drinking Jagerbombs For Two Hours? That's the place.
2020-09-26 22:33:30 +00:00
2020-09-26 22:37:27 +00:00
### 3. The Exporter
2020-09-26 22:33:30 +00:00
Now, this IS the most boring part. Send your points to whatever output system. Yawn. Are we there yet?
## Hacking around
Say what!? Why, this is exactly the place for that!
Take a seat and copy paste the "dummy.py" files, they present the basic structure you need to play around.
Just be cautious to use the `debug` method if you're the kind of miss that debugs by outputing data structures (who does not, yah know, sometimes?). Or you'll break the chain.
### Generators
They must send list of points to standard out. Don't forget the "flush" argument, or the piping will be breaking, ain't no Mario lazering.
* dummy.py : sends always the same list of points. The Monomaniac.
* @todo : read texts from redis and others
### Filters
These do listen and read on STDIN and do the same print'n'flush on STDOUT.
* kaleidoscope.py : mirrors the points based on a pivot
* @todo : fourier analysis and other realtime reaction
### Export
Read from STDIN and send to redis mostly
* toRedis.py : provide a key, server IP, etc.
### Common parameters
Every command can be called with a `-h/--help` flag to get some help
Every command has a `-v/--verbose` flag to send debug info to STDERR.
Generators have a `-f/--fps` param for FPS, to be fast but not so furious on your machine
Filters and Exports are their own beasts