table of contents
plowup(1) | Plowshare for Bash 4 | plowup(1) |
NAME¶
plowup - Simple upload manager for file sharing websites
SYNOPSIS¶
plowup [OPTIONS]... [MODULE_OPTIONS]... MODULE URL|FILE[:DESTNAME]...
DESCRIPTION¶
plowup is a command-line tool designed for automatic upload on file-sharing websites. It acts like a web browser, retrieving pages and filling HTML forms.
Anonymous upload is not allowed by all sites, some of them may require authentication. See specific module options below.
OPTIONS¶
Common options¶
- -i, --interface=IFACE
- If your machine has several network interfaces, force using IFACE interface.
- -r, --max-retries=N
- Set maximum retries for upload failures. Apply on module exit value: 1 (fatal error), 3 (network error), 7 (captcha error). Default option value is 0 (no retry) and applies for one single upload.
- -t, --timeout=SECS
- Cancel upload download after SECS seconds of waits. Apply on module exit value: 10 (temporary unavailable error). This error mainly occurs on remote upload operations. Default option value is disabled (no timeout, infinite) and applies for one single upload.
- --cache=METHOD
- Cache policy regarding module storage space. Each module is able to save data (credentials, authentication session, or tokens) in order to be reused later. Available values:
Example: Multiple file upload using a premium account. If supported by module, login stage could be performed once.
Captcha options¶
- --9kweu=KEY
- Use 9kw.eu service to solve captchas.
- --antigate=KEY
- Use Antigate.com service to solve captchas.
- --captchabhood=USER:PASSWORD
- Use Captcha Brotherhood service to solve captchas.
- --captchacoin=KEY
- Use CaptchaCoin service to solve captchas.
- --deathbycaptcha=USER:PASSWORD
- Use Death by Captcha service to solve captchas.
- --captchamethod=METHOD
- Force specific captcha solving method (if unspecified it is autodetected). Available values:
- --captchaprogram=PROGRAM
- Call external program or script for solving captchas. Provided executable
can be located in PATH environment variable.
Three arguments are given:
Return value (on stdout) and exit status:
Note: plowup legacy exit errors can also be returned, for example: 1 (fatal) or 3 (network).
Tuning settings¶
- --max-rate=SPEED
- Limit upload maximum speed in bytes per second. Suffixes are:
- --min-rate=SPEED
- Limit upload minimum speed in bytes per second (for a delay of 30 seconds). Suffixes are the same than --max-rate.
- --temp-directory=DIRECTORY
- Directory for temporary files: cookies, images, ...
- --name=FORMAT
- Format destination filename (applies on each file argument). Can be useful is you want to append or prepend a string to all your files. Default format string is "%f". Interpreted sequences are:
- %%
- raw % character
- %f
- destination (remote) filename
- %g
- destination (remote) filename (without extension)
- %G
- destination (remote) filename (without extension, greedy)
- %h
- MD5 hash (32-digit hexadecimal number, lowercase letters)
- %l
- source (local) filename
- %m
- module name
- %s
- file size (in bytes)
- %x
- extension (without dot character) of %f (not greedy)
- --run-before=PROGRAM
- Call external program or script before upload file processing. Provided
executable can be located in PATH environment variable. Messages
can be sent to stderr, stdout is trashed.
Three arguments are given:
Exit status:
Note: Any other script exit status like 1 (fatal) or 3 (network) will be ignored (an error message will be reported).
- --printf=FORMAT
- Print results (on stdout) in a given format (for each successful upload). Default format string is "%L%M%u%n". Interpreted sequences are:
- %%
- raw % character
- %a
- admin url or admin code (rare case)
- %A
- same as %a but url is escaped for JSON usage
- %M
- empty if %a is empty, or alias to "#ADM %a%n".
- %d
- delete url
- %D
- same as %d but url is escaped for JSON usage
- %L
- empty if %d is empty, or alias to "#DEL %d%n".
- %f
- destination (remote) filename
- %l
- source (local) filename
- %m
- module name
- %n
- newline
- %s
- filesize (positive integer in bytes)
- %t
- tabulation character
- %T
- 24-hour clock time of finished file upload. 8 characters string in the format "HH:MM:SS" (invoke /bin/date +%T).
- %u
- download url
- %U
- same as %u but url is escaped for JSON usage
Logging options¶
- -v, --verbose=LEVEL
- Set output verbosity level:
- -q, --quiet
- Alias for -v0. Do not print any debug messages.
Miscellaneous options¶
- --no-color
- Disables log messages (stderr only) output coloring.
- --no-curlrc
- Do not use curl config file (~/.curlrc).
- --curlrc=FILE
- Force using an alternate curl configuration file. Replaces ~/.curlrc if it exists. This option has no effect when --no-curlrc is defined.
- Do not consider any configuration file.
- --plowsharerc=FILE
- Force using an alternate configuration file (instead of per-user or systemwide plowshare.conf). This option has no effect when --no-plowsharerc is defined.
- --modules
- Display all supported module names (one per line) and exit. Useful for wrappers.
Generic program information¶
- -h, --help
- Display main help and exit.
- -H, --longhelp
- Display complete help (with module options) and exit.
- --version
- Output version information and exit.
MODULE OPTIONS¶
Common options¶
- -a, --auth=USER:PASSWORD
- Use premium account.
- -b, --auth-free=USER:PASSWORD
- Use free account.
- -d, --description=DESCRIPTION
- Set file description.
- --folder=FOLDER
- Folder to upload files into. Usually a (leaf) folder name (no hierarchy assumed).
- -p, --link-password=PASSWORD
- Protect your files with a password. May require premium account.
- --email-from=EMAIL
- <From> field for notification email.
- --email-to=EMAIL
- <To> field for notification email.
Advanced options¶
- --async
- Asynchronous remote upload (only start upload, don't wait for link).
- --private
- Do not allow others to download the file.
All switches are not implemented nor required for all modules. See long help message for detailed modules option list.
FILES¶
- /etc/plowshare.conf
- Systemwide configuration file.
- ~/.config/plowshare/plowshare.conf
- This is the per-user configuration file.
The file format is described in plowshare.conf(5).
- ~/.config/plowshare/exec/
- Additional directory considered when searching for executable. See --captchaprogram switch.
- ~/.config/plowshare/modules.d/
- User directory considered when searching for modules at startup (plowup will try to open ~/.config/plowshare/modules.d/*/config). One file per module (hoster).
- ~/.config/plowshare/storage/
- Directory used for storing data (one file per module) among sessions. See --cache=shared switch.
ENVIRONMENT VARIABLES¶
The following environment variables may affect plowup:
- DISPLAY
- The X11 display server address is considered to display captchas. See --captchamethod=x11 documentation below.
- FRAMEBUFFER
- This variable is considered to display captchas. See --captchamethod=fb documentation below.
- HOME
- Search for user configuration directory in ~/.config/plowshare (see FILES section above). If found, ~/.curlrc will be used (use --no-curlrc to disable it).
- PLOWSHARE_CURL
- Specifies an alternate curl command ($PATH search is considered). If not defined, curl is used.
- PLOWSHARE_JS
- Specifies an alternate js command ($PATH search is considered). If not defined, js is used.
- PLOWSHARE_DEBIAN_JS
- When set to yes javascript is enabled, otherwise it is blocked per #791467. Note that arbitrary javascript downloaded from the Internet will be run without any sandboxing if this is enabled.
- XDG_CONFIG_HOME
- The directory to store user configuration files. If not defined, ~/.config is assumed.
EXIT CODES¶
Possible exit codes are:
- 0
- Success.
- 1
- Fatal error. Upstream site updated or unexpected result.
- 2
- No available module (provided module name does not exist).
- 3
- Network error. Mostly curl related.
- 4
- Authentication failed (bad login/password).
- 5
- Timeout reached (refer to -t/--timeout command-line option).
- 6
- Maximum tries reached (refer to -r/--max-retries command-line option).
- 7
- Captcha generic error.
- 8
- System generic error.
- 10
- Feature (upload service) seems temporarily unavailable from upstream (user account may be temporarily banned).
- 12
- Authentication required (example: anonymous users can't do remote upload).
- 14
- Can't upload too big file (hoster limitation or requires more permissions).
- 15
- Unknown command line parameter or incompatible options.
- 16
- Asynchronous remote upload started (can't predict final status).
If plowup is invoked with multiple files and one or several errors occur, the first error code is returned added with 100.
AUTHORS¶
Plowshare was initially written by Arnau Sanchez. See the AUTHORS file for a list of some of the many other contributors.
Plowshare is (C) 2010-2016 The Plowshare Team
SEE ALSO¶
plowdown(1), plowdel(1), plowlist(1), plowprobe(1), plowshare.conf(5), plowmod(1).
July 13, 2016 | GPL |