Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 77 additions & 2 deletions wgetpaste
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ POST_generic() {
}

### services
SERVICES="0x0 bpaste codepad dpaste gists ix_io pgz snippets"
SERVICES="0x0 bpaste codepad dpaste gists ix_io pgz snippets zen"
# 0x0
ENGINE_0x0=0x0
URL_0x0="http://0x0.st"
Expand Down Expand Up @@ -84,6 +84,12 @@ SIZE_sprunge="1000000 1%MB"
ENGINE_tinyurl=tinyurl
URL_tinyurl="http://tinyurl.com/ api-create.php"
REGEX_RAW_tinyurl='s|^\(http://[^/]*/\)\([[:alnum:]]*\)$|\1\2|'
# zen
ENGINE_zen=zen
URL_zen="https://zen.jturnerusa.dev/paste"
SIZE_zen="2000000 2%MB"
REGEX_RAW_zen='s|^https.*|\0|'
REGEX_URL_zen='s|^https.*|\0|p'

### engines
# 0x0
Expand Down Expand Up @@ -332,6 +338,69 @@ POST_sprunge() {
}
REGEX_RAW_sprunge='s|^http.*|\0|'
REGEX_URL_sprunge='s|^http.*|\0|p'
# zen
LANGUAGES_zen="ABAP ABNF ActionScript ActionScript%3 Ada ADL Agda Aheui Alloy AmbientTalk AMDGPU \
Ampl Angular2 ANSYS%parametric%design%language ANTLR ANTLR%With%ActionScript%Target \
ANTLR%With%CPP%Target ANTLR%With%C#%Target ANTLR%With%Java%Target ANTLR%With%ObjectiveC%Target \
ANTLR%With%Perl%Target ANTLR%With%Python%Target ANTLR%With%Ruby%Target ApacheConf APL AppleScript \
Arduino Arrow Arturo ASCII%armored ASN.1 AspectJ aspx-cs aspx-vb Asymptote Augeas autohotkey \
AutoIt Awk BARE Base%Makefile Bash Bash%Session Batchfile BBC%Basic BBCode BC Bdd Befunge Berry \
BibTeX BlitzBasic BlitzMax Blueprint BNF Boa Boo Boogie BQN Brainfuck BST BUGS C C# C++ \
ca65%assembler cADL CAmkES CapDL Cap'n%Proto Carbon CBM%BASIC%V2 CDDL Ceylon CFEngine3 cfstatement \
ChaiScript Chapel Charmci Cheetah Cirru Clay Clean Clojure ClojureScript CMake c-objdump COBOL \
COBOLFree CoffeeScript Coldfusion%CFC Coldfusion%HTML COMAL-80 Common%Lisp Component%Pascal Coq \
cplint cpp-objdump CPSA Crmsh Croc Cryptol Crystal Csound%Document Csound%Orchestra Csound%Score \
CSS CSS+Django/Jinja CSS+Genshi%Text CSS+Lasso CSS+Mako CSS+mozpreproc CSS+Myghty CSS+PHP CSS+Ruby \
CSS+Smarty CSS+UL4 CUDA Cypher Cython D Darcs%Patch Dart DASM16 Dax Debian%Control%file \
Debian%Sourcelist Delphi Desktop%file Devicetree dg Diff Django/Jinja d-objdump Docker DTD Duel \
Dylan DylanLID Dylan%session Earl%Grey Easytrieve EBNF eC ECL Eiffel Elixir Elixir%iex%session Elm \
Elpi EmacsLisp E-mail Embedded%Ragel ERB Erlang Erlang%erl%session Evoque execline Ezhil F# Factor \
Fancy Fantom Felix Fennel Fift Fish Flatline FloScript Forth Fortran FortranFixed FoxPro Freefem \
FStar FunC Futhark GAP GAP%session GAS g-code GDScript Genshi Genshi%Text Gettext%Catalog Gherkin \
GLSL Gnuplot Go Golo GoodData-CL Gosu Gosu%Template GraphQL Graphviz Groff Groovy GSQL Haml \
Handlebars Haskell Haxe Hexdump HLSL HSAIL Hspec HTML HTML%+%Angular2 HTML+Cheetah \
HTML+Django/Jinja HTML+Evoque HTML+Genshi HTML+Handlebars HTML+Lasso HTML+Mako HTML+Myghty \
HTML+PHP HTML+Smarty HTML+Twig HTML+UL4 HTML+Velocity HTTP Hxml Hy Hybris Icon IDL Idris Igor \
Inform%6 Inform%6%template Inform%7 INI Io Ioke IRC%logs Isabelle J JAGS Jasmin Java JavaScript \
JavaScript+Cheetah JavaScript+Django/Jinja JavaScript+Genshi%Text JavaScript+Lasso JavaScript+Mako \
Javascript+mozpreproc JavaScript+Myghty JavaScript+PHP JavaScript+Ruby JavaScript+Smarty \
Javascript+UL4 Java%Server%Page JCL JMESPath JSGF JSLT JSON JSON-LD Jsonnet JSX Julia \
Julia%console Juttle K Kal Kconfig Kernel%log Koka Kotlin Kuin Kusto Lasso LDAP%configuration%file \
LDIF Lean LessCss Lighttpd%configuration%file LilyPond Limbo liquid Literate%Agda Literate%Cryptol \
Literate%Haskell Literate%Idris LiveScript LLVM LLVM- LLVM-MIR%Body Logos Logtalk LSL Lua \
Macaulay2 Makefile Mako MAQL Markdown Mask Mason Mathematica Matlab Matlab%session Maxima \
MCFunction MCSchema Meson MIME MiniD MiniScript MIPS MIR Modelica Modula-2 \
MoinMoin/Trac%Wiki%markup Monkey Monte MOOCode MoonScript Mosel mozhashpreproc mozpercentpreproc \
MQL Mscgen MSDOS%Session MuPAD MXML Myghty MySQL NASM NCL Nemerle nesC NestedText NewLisp Newspeak \
Nginx%configuration%file Nimrod Nit Nix Node.js%REPL%console%session Notmuch NSIS NumPy NuSMV \
objdump objdump-nasm Objective-C Objective-C++ Objective-J OCaml Octave ODIN \
OMG%Interface%Definition%Language Ooc Opa OpenEdge%ABL OpenSCAD PacmanConf Pan ParaSail Pawn PEG \
Perl Perl6 Phix PHP Pig Pike PkgConfig PL/pgSQL Pointless Pony Portugol PostgreSQL%console%(psql) \
PostgreSQL%EXPLAIN%dialect PostgreSQL%SQL%dialect PostScript POVRay PowerShell PowerShell%Session \
Praat Procfile Prolog PromQL Properties Protocol%Buffer PRQL PsySH%console%session%for%PHP PTX Pug \
Puppet PyPy%Log Python Python%2.x Python%2.x%Traceback Python%console%session Python%Traceback \
Python+UL4 Q QBasic Qlik QML QVTO Racket Ragel Ragel%in%C%Host Ragel%in%CPP%Host Ragel%in%D%Host \
Ragel%in%Java%Host Ragel%in%Objective%C%Host Ragel%in%Ruby%Host RConsole Rd ReasonML REBOL Red \
Redcode reg Relax-NG%Compact ResourceBundle reStructuredText Rexx RHTML Ride Rita Roboconf%Graph \
Roboconf%Instances RobotFramework RPMSpec RQL RSL Ruby Ruby%irb%session Rust S SARL SAS Sass Savi \
Scala Scalate%Server%Page Scaml scdoc Scheme Scilab SCSS Sed Shen ShExC Sieve Silver Singularity \
Slash Slim Slurm Smali Smalltalk SmartGameFormat Smarty Smithy SNBT Snobol Snowball Solidity \
Sophia SourcePawn SPARQL Spice SQL sqlite3con SQL+Jinja SquidConf Srcinfo Stan Standard%ML Stata \
SuperCollider Swift SWIG Systemd systemverilog TADS%3 Tal TAP TASM Tcl Tcsh Tcsh%Session Tea teal \
Tera%Term%macro Termcap Terminfo Terraform TeX Text%only Text%output ThingsDB Thrift tiddler Tl-b \
TLS%Presentation%Language Todotxt TOML TrafficScript Transact-SQL Treetop Turtle Twig TypeScript \
Typographic%Number%Theory TypoScript TypoScriptCssData TypoScriptHtmlData ucode UL4 Unicon \
Unix/Linux%config%files UrbiScript urlencoded USD Vala VB.net VBScript VCL VCLSnippets \
VCTreeStatus Velocity Verifpal verilog VGL vhdl VimL Visual%Prolog Visual%Prolog%Grammar Vyper \
WDiff WebAssembly WebGPU%Shading%Language Web%IDL Whiley Wikitext World%of%Warcraft%TOC Wren X++ \
X10 XML XML+Cheetah XML+Django/Jinja XML+Evoque XML+Lasso XML+Mako XML+Myghty XML+PHP XML+Ruby \
XML+Smarty XML+UL4 XML+Velocity Xorg XQuery XSLT Xtend xtlang XUL+mozpreproc YAML YAML+Jinja YANG \
YARA Zeek Zephir Zig Zone"
LANGUAGE_VALUES_zen="${LANGUAGES_zen}"
DEFAULT_LANGUAGE_zen="Text%only"
escape_description_zen() { echo "$*"; }
escape_input_zen() { echo "$*"; }
POST_zen() { echo "${6}"; }

### errors
die() {
Expand Down Expand Up @@ -381,7 +450,10 @@ converttoraw() {
regex=REGEX_RAW_$ENGINE
if [[ -n ${!regex} ]]; then
RAWURL=$(sed -e "${!regex}" <<< "$URL")
[[ -n $RAWURL ]] && return 0
if [[ -n $RAWURL ]]; then
[[ $ENGINE == "zen" ]] && RAWURL=$(echo "${RAWURL}?raw=true")
return 0
fi
echo "Conversion to raw url failed." >&2
else
echo "Raw download of pastes is not supported by $(getrecipient)." >&2
Expand Down Expand Up @@ -687,6 +759,7 @@ getrecipient() {
else
serv="$SERVICE: "
fi

echo "${serv}${!urls% *}${target}"
return 0
fi
Expand Down Expand Up @@ -1076,6 +1149,8 @@ RECIPIENT=$(getrecipient RAW)
if [[ $SERVICE == tinyurl ]]; then
URL=$(LC_ALL=C wget -qO - "$RECIPIENT?url=$INPUT")
else
[[ $SERVICE == "zen" ]] && RECIPIENT="${RECIPIENT}?syntax=${LANGUAGE}"

# create temp file (wget is much more reliable reading
# large input via --post-file rather than --post-data)
[[ -f $TMPF ]] || TMPF=$(mktemp -q --tmpdir wgetpaste.XXXXXX)
Expand Down