From caae2982bb1b77e86dab3a02d20102e71e299ea8 Mon Sep 17 00:00:00 2001 From: John Turner Date: Wed, 10 Sep 2025 02:34:03 -0400 Subject: add support for zen.jturnerusa.dev/paste --- wgetpaste | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/wgetpaste b/wgetpaste index f96ed08..77c730e 100755 --- a/wgetpaste +++ b/wgetpaste @@ -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" @@ -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 @@ -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() { @@ -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 @@ -687,6 +759,7 @@ getrecipient() { else serv="$SERVICE: " fi + echo "${serv}${!urls% *}${target}" return 0 fi @@ -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) -- cgit v1.2.3