diff --git a/doc/index.md b/doc/index.md new file mode 100644 index 0000000000000000000000000000000000000000..9e2d5338fdd291a13da990c3d9771680c0193e45 --- /dev/null +++ b/doc/index.md @@ -0,0 +1,117 @@ +<style> +code {color:white;} +</style> +# lainsafecli documentation + +## History + +[delegao](https://kill-9.xyz/rocks/people/delegao) and I were talking about how much I hate the modern web. He runs <https://safe.delegao.moe> which is the same but with JS, so I think it sucked. I started to make lainsafe to replace lolisafe. + +## Lainsafe installation + +Just put index.html and upload.cgi in a http directory. I use fcgi to run my cgi scripts. So it's what i recommend. To install fcgi on debian, run: ```# apt install fcgiwrap``` + +here's an example configuration for lainsafe, using nginx. + +~~~ +server +{ +server_name lainsafe.foo.tld; + +listen 80; +listen [::]:80; + +root /var/www/lainsafe; + +location ~ \.cgi$ { +gzip off; +include /etc/nginx/fastcgi_params; +fastcgi_pass unix:/var/run/fcgiwrap.socket; +fastcgi_index index.cgi; +fastcgi_param SCRIPT_FILENAME /var/www/lainsafe/$fastcgi_script_name; +} +} +~~~ + +## lainsafecli + +lainsafecli is a command line interface for lainsafe. It can be used in whatever that runs perl. Instalation is simple: if you're running debian install the libwww-perl package. If you are not running debian, search for that package in your repositories. Or use ```# cpan -i LWP::UserAgent``` + +### Installation + +I haven't made a package for lainsafecli yet. So instalation is basically: + +~~~ +# wget https://raw.githubusercontent.com/qorg11/lainsafe/master/lainsafecli \ +-O /bin/lainsafecli && chmod +x /bin/lainsafecli +~~~ + +That will install lainsafecli, run ```lainsafecli``` to make sure it is installed. + +### Configuration + +lainsafecli is a simple software. So it has just 2 configurable +parameters. lainsafecli do not have a config file. So you have to +change these parameters in the executable file. + +These parameters are located in the line 34 of lainsafecli. + +```$DEFAULT_SERVER``` the server that will be used if --server is not +specified. +```$DISPLAY_ASCII``` By default is true, change to 0 if you don't want +the Lain ascii art to appear when you upload a file. + +the most "official" lainsafe instance is <https://lainsafe.delegao.moe>. + +### Usage + +Before 1b8373 + +~~~ +USAGE: lainsafecli [--server] --file=FILE +~~~ + +After 1b8373 + +~~~ +USAGE: lainsafecli [--server] FILE +~~~ + + +for example: + +```lainsafe --server=https://lainsafe.foo.bar sicp.pdf``` + +will upload sicp.pdf to lainsafe.foo.bar + +### Sample output + +In this output, ```$DEFAULT_SERVER``` is lainsafe.delegao.moe. and ``` +$DISPLAY_ASCII``` equals 1 (true) + +~~~ +lainsafecli sicp.pdf + + _..-- ----- --.._ + ,-'' `-. + , \ + / \ + / ` . \ + ' / || ; + ; ^/| |/ | | + | /v /\`-'v√\'-|\ , + | /v` ,--- ---- .^.| ; + : | /´@@`, ,@@`\ | ; + ' | '. @@ / \@@ / |\ |; + | ^| ----- --- | \/|| + ` |` | /\ / + \ \ |/ |, + ' ; \ /| | + ` \ -- / | | + ` `. .-' | / + v,- `;._ _.; | | + `'`\ |-_ -^'^'| | + ------ |/ + +https://lainsafe.delegao.moe/files/nzOhDKtB.pdf +~~~ diff --git a/http/upload.cgi b/http/upload.cgi index 146d2e7f2624cbed6d580553eabd8a238b89620b..7ac5d94bae152e7891318544248d77a18e368e4f 100755 --- a/http/upload.cgi +++ b/http/upload.cgi @@ -24,6 +24,7 @@ my $filename = $q->param('file'); my $upload_dir = "files/"; print $q->header(); $size = $ENV{CONTENT_LENGTH}; + # Configuration $MAX_SIZE = 1024*1024*10; # Change for your size @@ -34,6 +35,7 @@ if($filename eq "") print("What are you looking for?"); exit; } + if($size > $MAX_SIZE) { print("Max size for a file is $MAX_SIZE_MB MBs"); @@ -41,7 +43,7 @@ if($size > $MAX_SIZE) } my $extension = $filename; -$extension =~ s/.*\.//; +$extension =~ s/.*\.//; # tar.gz sucks with this my @chars = ("A".."Z", "a".."z"); my $string; diff --git a/lainsafecli b/lainsafecli index 17c1be565018f0e5fe3136778576545d11a4dd9b..18c0bf57f04056f99f8df58867057cbdb7b3ebc9 100755 --- a/lainsafecli +++ b/lainsafecli @@ -115,4 +115,3 @@ $req = $ua->post($url_to_upload, print $ASCII_ART if $DISPLAY_ASCII; print $DEFAULT_SERVER . "/" . $req->{_content} . "\n"; -