· 4 years ago · Aug 10, 2021, 09:18 PM
1#!/bin/sh
2#pastebin script
3#ripreso e messo a punto da: https://pastebin.com/N3aeBdEa
4
5if test -e ~/.pb_api_key; then
6 API_KEY=`cat ~/.pb_api_key`
7else
8 echo "API Key not set! Place your API key into ~/.pb_api_key."
9 exit
10fi
11if test -e ~/.pb_login_key; then
12 LOGIN_KEY=`cat ~/.pb_login_key`
13fi
14if test "$1" = "--help" -o "$1" = "help"; then
15 if test "$2" = "format"; then
16 echo "Formats:"
17 echo " - 4cs: 4CS"
18 echo " - 6502acme: 6502 ACME Cross Assembler"
19 echo " - 6502kickass: 6502 Kick Assembler"
20 echo " - 6502tasm: 6502 TASM/64TASS"
21 echo " - abap: ABAP"
22 echo " - actionscript: ActionScript"
23 echo " - actionscript3: ActionScript 3"
24 echo " - ada: Ada"
25 echo " - aimms: AIMMS"
26 echo " - algol68: ALGOL 68"
27 echo " - apache: Apache Log"
28 echo " - applescript: AppleScript"
29 echo " - apt_sources: APT Sources"
30 echo " - arduino: Arduino"
31 echo " - arm: ARM"
32 echo " - asm: ASM (NASM)"
33 echo " - asp: ASP"
34 echo " - asymptote: Asymptote"
35 echo " - autoconf: autoconf"
36 echo " - autohotkey: Autohotkey"
37 echo " - autoit: AutoIt"
38 echo " - avisynth: Avisynth"
39 echo " - awk: Awk"
40 echo " - bascomavr: BASCOM AVR"
41 echo " - bash: Bash"
42 echo " - basic4gl: Basic4GL"
43 echo " - dos: Batch"
44 echo " - bibtex: BibTeX"
45 echo " - blitzbasic: Blitz Basic"
46 echo " - b3d: Blitz3D"
47 echo " - bmx: BlitzMax"
48 echo " - bnf: BNF"
49 echo " - boo: BOO"
50 echo " - bf: BrainFuck"
51 echo " - c: C"
52 echo " - c_winapi: C (WinAPI)"
53 echo " - c_mac: C for Macs"
54 echo " - cil: C Intermediate Language"
55 echo " - csharp: C#"
56 echo " - cpp: C++"
57 echo " - cpp-winapi: C++ (WinAPI)"
58 echo " - cpp-qt: C++ (with Qt extension)"
59 echo " - c_loadrunner: C: Loadrunner"
60 echo " - caddcl: CAD DCL"
61 echo " - cadlisp: CAD Lisp"
62 echo " - ceylon: Ceylon"
63 echo " - cfdg: CFDG"
64 echo " - chaiscript: ChaiScript"
65 echo " - chapel: Chapel"
66 echo " - clojure: Clojure"
67 echo " - klonec: Clone C"
68 echo " - klonecpp: Clone C++"
69 echo " - cmake: CMake"
70 echo " - cobol: COBOL"
71 echo " - coffeescript: CoffeeScript"
72 echo " - cfm: ColdFusion"
73 echo " - css: CSS"
74 echo " - cuesheet: Cuesheet"
75 echo " - d: D"
76 echo " - dart: Dart"
77 echo " - dcl: DCL"
78 echo " - dcpu16: DCPU-16"
79 echo " - dcs: DCS"
80 echo " - delphi: Delphi"
81 echo " - oxygene: Delphi Prism (Oxygene)"
82 echo " - diff: Diff"
83 echo " - div: DIV"
84 echo " - dot: DOT"
85 echo " - e: E"
86 echo " - ezt: Easytrieve"
87 echo " - ecmascript: ECMAScript"
88 echo " - eiffel: Eiffel"
89 echo " - email: Email"
90 echo " - epc: EPC"
91 echo " - erlang: Erlang"
92 echo " - euphoria: Euphoria"
93 echo " - fsharp: F#"
94 echo " - falcon: Falcon"
95 echo " - filemaker: Filemaker"
96 echo " - fo: FO Language"
97 echo " - f1: Formula One"
98 echo " - fortran: Fortran"
99 echo " - freebasic: FreeBasic"
100 echo " - freeswitch: FreeSWITCH"
101 echo " - gambas: GAMBAS"
102 echo " - gml: Game Maker"
103 echo " - gdb: GDB"
104 echo " - genero: Genero"
105 echo " - genie: Genie"
106 echo " - gettext: GetText"
107 echo " - go: Go"
108 echo " - groovy: Groovy"
109 echo " - gwbasic: GwBasic"
110 echo " - haskell: Haskell"
111 echo " - haxe: Haxe"
112 echo " - hicest: HicEst"
113 echo " - hq9plus: HQ9 Plus"
114 echo " - html4strict: HTML"
115 echo " - html5: HTML 5"
116 echo " - icon: Icon"
117 echo " - idl: IDL"
118 echo " - ini: INI file"
119 echo " - inno: Inno Script"
120 echo " - intercal: INTERCAL"
121 echo " - io: IO"
122 echo " - ispfpanel: ISPF Panel Definition"
123 echo " - j: J"
124 echo " - java: Java"
125 echo " - java5: Java 5"
126 echo " - javascript: JavaScript"
127 echo " - jcl: JCL"
128 echo " - jquery: jQuery"
129 echo " - json: JSON"
130 echo " - julia: Julia"
131 echo " - kixtart: KiXtart"
132 echo " - kotlin: Kotlin"
133 echo " - latex: Latex"
134 echo " - ldif: LDIF"
135 echo " - lb: Liberty BASIC"
136 echo " - lsl2: Linden Scripting"
137 echo " - lisp: Lisp"
138 echo " - llvm: LLVM"
139 echo " - locobasic: Loco Basic"
140 echo " - logtalk: Logtalk"
141 echo " - lolcode: LOL Code"
142 echo " - lotusformulas: Lotus Formulas"
143 echo " - lotusscript: Lotus Script"
144 echo " - lscript: LScript"
145 echo " - lua: Lua"
146 echo " - m68k: M68000 Assembler"
147 echo " - magiksf: MagikSF"
148 echo " - make: Make"
149 echo " - mapbasic: MapBasic"
150 echo " - markdown: Markdown"
151 echo " - matlab: MatLab"
152 echo " - mirc: mIRC"
153 echo " - mmix: MIX Assembler"
154 echo " - modula2: Modula 2"
155 echo " - modula3: Modula 3"
156 echo " - 68000devpac: Motorola 68000 HiSoft Dev"
157 echo " - mpasm: MPASM"
158 echo " - mxml: MXML"
159 echo " - mysql: MySQL"
160 echo " - nagios: Nagios"
161 echo " - netrexx: NetRexx"
162 echo " - newlisp: newLISP"
163 echo " - nginx: Nginx"
164 echo " - nim: Nim"
165 echo " - text: None"
166 echo " - nsis: NullSoft Installer"
167 echo " - oberon2: Oberon 2"
168 echo " - objeck: Objeck Programming Language"
169 echo " - objc: Objective C"
170 echo " - ocaml: OCaml"
171 echo " - ocaml-brief: OCaml Brief"
172 echo " - octave: Octave"
173 echo " - oorexx: Open Object Rexx"
174 echo " - pf: OpenBSD PACKET FILTER"
175 echo " - glsl: OpenGL Shading"
176 echo " - oobas: Openoffice BASIC"
177 echo " - oracle11: Oracle 11"
178 echo " - oracle8: Oracle 8"
179 echo " - oz: Oz"
180 echo " - parasail: ParaSail"
181 echo " - parigp: PARI/GP"
182 echo " - pascal: Pascal"
183 echo " - pawn: Pawn"
184 echo " - pcre: PCRE"
185 echo " - per: Per"
186 echo " - perl: Perl"
187 echo " - perl6: Perl 6"
188 echo " - php: PHP"
189 echo " - php-brief: PHP Brief"
190 echo " - pic16: Pic 16"
191 echo " - pike: Pike"
192 echo " - pixelbender: Pixel Bender"
193 echo " - pli: PL/I"
194 echo " - plsql: PL/SQL"
195 echo " - postgresql: PostgreSQL"
196 echo " - postscript: PostScript"
197 echo " - povray: POV-Ray"
198 echo " - powerbuilder: PowerBuilder"
199 echo " - powershell: PowerShell"
200 echo " - proftpd: ProFTPd"
201 echo " - progress: Progress"
202 echo " - prolog: Prolog"
203 echo " - properties: Properties"
204 echo " - providex: ProvideX"
205 echo " - puppet: Puppet"
206 echo " - purebasic: PureBasic"
207 echo " - pycon: PyCon"
208 echo " - python: Python"
209 echo " - pys60: Python for S60"
210 echo " - q: q/kdb+"
211 echo " - qbasic: QBasic"
212 echo " - qml: QML"
213 echo " - rsplus: R"
214 echo " - racket: Racket"
215 echo " - rails: Rails"
216 echo " - rbs: RBScript"
217 echo " - rebol: REBOL"
218 echo " - reg: REG"
219 echo " - rexx: Rexx"
220 echo " - robots: Robots"
221 echo " - rpmspec: RPM Spec"
222 echo " - ruby: Ruby"
223 echo " - gnuplot: Ruby Gnuplot"
224 echo " - rust: Rust"
225 echo " - sas: SAS"
226 echo " - scala: Scala"
227 echo " - scheme: Scheme"
228 echo " - scilab: Scilab"
229 echo " - scl: SCL"
230 echo " - sdlbasic: SdlBasic"
231 echo " - smalltalk: Smalltalk"
232 echo " - smarty: Smarty"
233 echo " - spark: SPARK"
234 echo " - sparql: SPARQL"
235 echo " - sqf: SQF"
236 echo " - sql: SQL"
237 echo " - standardml: StandardML"
238 echo " - stonescript: StoneScript"
239 echo " - sclang: SuperCollider"
240 echo " - swift: Swift"
241 echo " - systemverilog: SystemVerilog"
242 echo " - tsql: T-SQL"
243 echo " - tcl: TCL"
244 echo " - teraterm: Tera Term"
245 echo " - thinbasic: thinBasic"
246 echo " - typoscript: TypoScript"
247 echo " - unicon: Unicon"
248 echo " - uscript: UnrealScript"
249 echo " - upc: UPC"
250 echo " - urbi: Urbi"
251 echo " - vala: Vala"
252 echo " - vbnet: VB.NET"
253 echo " - vbscript: VBScript"
254 echo " - vedit: Vedit"
255 echo " - verilog: VeriLog"
256 echo " - vhdl: VHDL"
257 echo " - vim: VIM"
258 echo " - visualprolog: Visual Pro Log"
259 echo " - vb: VisualBasic"
260 echo " - visualfoxpro: VisualFoxPro"
261 echo " - whitespace: WhiteSpace"
262 echo " - whois: WHOIS"
263 echo " - winbatch: Winbatch"
264 echo " - xbasic: XBasic"
265 echo " - xml: XML"
266 echo " - xorg_conf: Xorg Config"
267 echo " - xpp: XPP"
268 echo " - yaml: YAML"
269 echo " - z80: Z80 Assembler"
270 echo " - zxbasic: ZXBasic"
271 else
272 echo "Commands:"
273 echo " - help: show this screen"
274 echo " - login: log into pastebin with '$0 login username password'"
275 echo " - paste: Paste something with '$0 paste pastedata [name] [format] [expire] [privacy] [asguest]' e.g. '$0 paste some_code Code z80 2W public Y'."
276 echo " - pastefile: Paste some file with '$0 pastefile filename [name] [format] [expire] [privacy] [asguest]' e.g. '$0 pastefile ~/test.c Code c 2W public Y'."
277 echo "Expiries:"
278 echo " - N: Never"
279 echo " - 10M: 10 Minutes"
280 echo " - 1H: 1 Hour"
281 echo " - 1D: 1 Day"
282 echo " - 1W: 1 Week"
283 echo " - 2W: 2 Weeks"
284 echo " - 1M: 1 Month"
285 echo " - 6M: 6 Months"
286 echo " - 1Y: 1 Year"
287 echo "Privacies:"
288 echo " - public"
289 echo " - unlisted"
290 echo " - private"
291 echo "For formats, use '$0 help format'"
292 fi
293elif test "$1" = "login"; then
294 curl --data-urlencode "api_dev_key=$API_KEY" --data-urlencode "api_user_name=$2" --data-urlencode "api_user_password=$3" "https://pastebin.com/api/api_login.php" >~/.pb_temp_login_key
295 if grep -i '^Bad' ~/.pb_temp_login_key; then
296 echo "Error logging in: " `cat ~/.pb_temp_login_key`
297 rm ~/.pb_temp_login_key
298 elif test -s ~/.pb_temp_login_key; then
299 echo "Logging in appears to be successful!"
300 mv ~/.pb_temp_login_key ~/.pb_login_key
301 else
302 echo "Login process interrupted. Do you have internet?"
303 fi
304elif test "$1" = "paste"; then
305#'$0 paste pastedata [name] [format] [expire] [privacy] [asguest]' e.g. '$0 paste some_code Code z80 2W public Y'."
306 if test -z "$2"; then
307 echo "No paste data specified!"
308 exit
309 fi
310 if test ! -z "$3"; then
311 PB_NAME="api_paste_name=$3"
312 fi
313 if test ! -z "$4"; then
314 PB_FORMAT="api_paste_format=$4"
315 else
316 PB_FORMAT="api_paste_format=text"
317 fi
318 if test ! -z "$5"; then
319 if test "$5" = "N" -o "$5" = "10M" -o "$5" = "1H" -o "$5" = "1D" -o "$5" = "1W" -o "$5" = "2W" -o "$5" = "1M" -o "$5" = "6M" -o "$5" = "1Y"; then
320 PB_EXPIRE="api_paste_expire_date=$5"
321 else
322 echo "Invalid expiry time '$5'!"
323 exit
324 fi
325 else
326 PB_EXPIRE="api_paste_expire_date=N"
327 fi
328 if test "$6" = "public" -o -z "$6"; then
329 PB_PRIVACY="api_paste_private=0"
330 elif test "$6" = "unlisted"; then
331 PB_PRIVACY="api_paste_private=1"
332 elif test "$6" = "private"; then
333 PB_PRIVACY="api_paste_private=2"
334 else
335 echo "Unknown privacy level '$6'!"
336 exit
337 fi
338 if test -z "$7" -o "$7" = "N"; then
339 PB_USER="api_user_key=$LOGIN_KEY"
340 fi
341 curl --data-urlencode "api_dev_key=$API_KEY" --data-urlencode "api_option=paste" --data-urlencode "api_paste_code=$2" --data-urlencode "$PB_NAME" --data-urlencode "$PB_FORMAT" --data-urlencode "$PB_EXPIRE" --data-urlencode "$PB_PRIVACY" --data-urlencode "$PB_USER" "https://pastebin.com/api/api_post.php" >~/.pb_temp_response
342 if grep -i '^Bad' ~/.pb_temp_response; then
343 echo "Error sending paste data: " `cat ~/.pb_temp_response`
344 rm ~/.pb_temp_response
345 elif test -s ~/.pb_temp_response; then
346 echo "Pasting appears to be successful!"
347 echo "Your paste is at: " `cat ~/.pb_temp_response`
348 mv ~/.pb_temp_response ~/.pb_last_url
349 else
350 echo "Paste process interrupted. Do you have internet?"
351 fi
352elif test "$1" = "pastefile"; then
353#'$0 pastefile filename [name] [format] [expire] [privacy] [asguest]' e.g. '$0 paste ~/test.c Code c 2W public Y'."
354 if test ! -z "$2"; then
355 PASTE_FILE=`cat $2`
356 PB_DATA="api_paste_code=$PASTE_FILE"
357 else
358 echo "No paste file specified!"
359 exit
360 fi
361 if test ! -z "$3"; then
362 PB_NAME="api_paste_name=$3"
363 fi
364 if test ! -z "$4"; then
365 PB_FORMAT="api_paste_format=$4"
366 else
367 PB_FORMAT="api_paste_format=text"
368 fi
369 if test ! -z "$5"; then
370 if test "$5" = "N" -o "$5" = "10M" -o "$5" = "1H" -o "$5" = "1D" -o "$5" = "1W" -o "$5" = "2W" -o "$5" = "1M" -o "$5" = "6M" -o "$5" = "1Y"; then
371 PB_EXPIRE="api_paste_expire_date=$5"
372 else
373 echo "Invalid expiry time '$5'!"
374 exit
375 fi
376 else
377 PB_EXPIRE="api_paste_expire_date=N"
378 fi
379 if test "$6" = "public" -o -z "$6"; then
380 PB_PRIVACY="api_paste_private=0"
381 elif test "$6" = "unlisted"; then
382 PB_PRIVACY="api_paste_private=1"
383 elif test "$6" = "private"; then
384 PB_PRIVACY="api_paste_private=2"
385 else
386 echo "Unknown privacy level '$6'!"
387 exit
388 fi
389 if test -z "$7" -o "$7" = "N"; then
390 PB_USER="api_user_key=$LOGIN_KEY"
391 fi
392 curl --data-urlencode "api_dev_key=$API_KEY" --data-urlencode "api_option=paste" --data-urlencode "$PB_DATA" --data-urlencode "$PB_NAME" --data-urlencode "$PB_FORMAT" --data-urlencode "$PB_EXPIRE" --data-urlencode "$PB_PRIVACY" --data-urlencode "$PB_USER" "https://pastebin.com/api/api_post.php" >~/.pb_temp_response
393 if grep -i '^Bad' ~/.pb_temp_response; then
394 echo "Error sending paste data: " `cat ~/.pb_temp_response`
395 rm ~/.pb_temp_response
396 elif test -s ~/.pb_temp_response; then
397 echo "Pasting appears to be successful!"
398 echo "Your paste is at: " `cat ~/.pb_temp_response`
399 mv ~/.pb_temp_response ~/.pb_last_url
400 else
401 echo "Paste process interrupted. Do you have internet?"
402 fi
403else
404 echo "Unknown command '$1' - use '$0 help' for help."
405fi