dheadshot icon

PasteBin API Shell Script

dheadshot | PRO | 02/28/19 09:59:10 PM UTC | 0 ⭐ | 7520 👁️ | Never ⏰ | []
Bash |

13.17 KB

|

None

|

0 👍

/

0 👎

#!/bin/sh
#pastebin script
if test -e ~/.pb_api_key; then
  API_KEY=`cat ~/.pb_api_key`
else
  echo "API Key not set!  Place your API key into ~/.pb_api_key."
  exit
fi
if test -e ~/.pb_login_key; then
  LOGIN_KEY=`cat ~/.pb_login_key`
fi
if test "$1" = "--help" -o "$1" = "help"; then
  if test "$2" = "format"; then
    echo "Formats:"
    echo " -  4cs: 4CS"
    echo " -  6502acme: 6502 ACME Cross Assembler"
    echo " -  6502kickass: 6502 Kick Assembler"
    echo " -  6502tasm: 6502 TASM/64TASS"
    echo " -  abap: ABAP"
    echo " -  actionscript: ActionScript"
    echo " -  actionscript3: ActionScript 3"
    echo " -  ada: Ada"
    echo " -  aimms: AIMMS"
    echo " -  algol68: ALGOL 68"
    echo " -  apache: Apache Log"
    echo " -  applescript: AppleScript"
    echo " -  apt_sources: APT Sources"
    echo " -  arduino: Arduino"
    echo " -  arm: ARM"
    echo " -  asm: ASM (NASM)"
    echo " -  asp: ASP"
    echo " -  asymptote: Asymptote"
    echo " -  autoconf: autoconf"
    echo " -  autohotkey: Autohotkey"
    echo " -  autoit: AutoIt"
    echo " -  avisynth: Avisynth"
    echo " -  awk: Awk"
    echo " -  bascomavr: BASCOM AVR"
    echo " -  bash: Bash"
    echo " -  basic4gl: Basic4GL"
    echo " -  dos: Batch"
    echo " -  bibtex: BibTeX"
    echo " -  blitzbasic: Blitz Basic"
    echo " -  b3d: Blitz3D"
    echo " -  bmx: BlitzMax"
    echo " -  bnf: BNF"
    echo " -  boo: BOO"
    echo " -  bf: BrainFuck"
    echo " -  c: C"
    echo " -  c_winapi: C (WinAPI)"
    echo " -  c_mac: C for Macs"
    echo " -  cil: C Intermediate Language"
    echo " -  csharp: C#"
    echo " -  cpp: C++"
    echo " -  cpp-winapi: C++ (WinAPI)"
    echo " -  cpp-qt: C++ (with Qt extension)"
    echo " -  c_loadrunner: C: Loadrunner"
    echo " -  caddcl: CAD DCL"
    echo " -  cadlisp: CAD Lisp"
    echo " -  ceylon: Ceylon"
    echo " -  cfdg: CFDG"
    echo " -  chaiscript: ChaiScript"
    echo " -  chapel: Chapel"
    echo " -  clojure: Clojure"
    echo " -  klonec: Clone C"
    echo " -  klonecpp: Clone C++"
    echo " -  cmake: CMake"
    echo " -  cobol: COBOL"
    echo " -  coffeescript: CoffeeScript"
    echo " -  cfm: ColdFusion"
    echo " -  css: CSS"
    echo " -  cuesheet: Cuesheet"
    echo " -  d: D"
    echo " -  dart: Dart"
    echo " -  dcl: DCL"
    echo " -  dcpu16: DCPU-16"
    echo " -  dcs: DCS"
    echo " -  delphi: Delphi"
    echo " -  oxygene: Delphi Prism (Oxygene)"
    echo " -  diff: Diff"
    echo " -  div: DIV"
    echo " -  dot: DOT"
    echo " -  e: E"
    echo " -  ezt: Easytrieve"
    echo " -  ecmascript: ECMAScript"
    echo " -  eiffel: Eiffel"
    echo " -  email: Email"
    echo " -  epc: EPC"
    echo " -  erlang: Erlang"
    echo " -  euphoria: Euphoria"
    echo " -  fsharp: F#"
    echo " -  falcon: Falcon"
    echo " -  filemaker: Filemaker"
    echo " -  fo: FO Language"
    echo " -  f1: Formula One"
    echo " -  fortran: Fortran"
    echo " -  freebasic: FreeBasic"
    echo " -  freeswitch: FreeSWITCH"
    echo " -  gambas: GAMBAS"
    echo " -  gml: Game Maker"
    echo " -  gdb: GDB"
    echo " -  genero: Genero"
    echo " -  genie: Genie"
    echo " -  gettext: GetText"
    echo " -  go: Go"
    echo " -  groovy: Groovy"
    echo " -  gwbasic: GwBasic"
    echo " -  haskell: Haskell"
    echo " -  haxe: Haxe"
    echo " -  hicest: HicEst"
    echo " -  hq9plus: HQ9 Plus"
    echo " -  html4strict: HTML"
    echo " -  html5: HTML 5"
    echo " -  icon: Icon"
    echo " -  idl: IDL"
    echo " -  ini: INI file"
    echo " -  inno: Inno Script"
    echo " -  intercal: INTERCAL"
    echo " -  io: IO"
    echo " -  ispfpanel: ISPF Panel Definition"
    echo " -  j: J"
    echo " -  java: Java"
    echo " -  java5: Java 5"
    echo " -  javascript: JavaScript"
    echo " -  jcl: JCL"
    echo " -  jquery: jQuery"
    echo " -  json: JSON"
    echo " -  julia: Julia"
    echo " -  kixtart: KiXtart"
    echo " -  kotlin: Kotlin"
    echo " -  latex: Latex"
    echo " -  ldif: LDIF"
    echo " -  lb: Liberty BASIC"
    echo " -  lsl2: Linden Scripting"
    echo " -  lisp: Lisp"
    echo " -  llvm: LLVM"
    echo " -  locobasic: Loco Basic"
    echo " -  logtalk: Logtalk"
    echo " -  lolcode: LOL Code"
    echo " -  lotusformulas: Lotus Formulas"
    echo " -  lotusscript: Lotus Script"
    echo " -  lscript: LScript"
    echo " -  lua: Lua"
    echo " -  m68k: M68000 Assembler"
    echo " -  magiksf: MagikSF"
    echo " -  make: Make"
    echo " -  mapbasic: MapBasic"
    echo " -  markdown: Markdown"
    echo " -  matlab: MatLab"
    echo " -  mirc: mIRC"
    echo " -  mmix: MIX Assembler"
    echo " -  modula2: Modula 2"
    echo " -  modula3: Modula 3"
    echo " -  68000devpac: Motorola 68000 HiSoft Dev"
    echo " -  mpasm: MPASM"
    echo " -  mxml: MXML"
    echo " -  mysql: MySQL"
    echo " -  nagios: Nagios"
    echo " -  netrexx: NetRexx"
    echo " -  newlisp: newLISP"
    echo " -  nginx: Nginx"
    echo " -  nim: Nim"
    echo " -  text: None"
    echo " -  nsis: NullSoft Installer"
    echo " -  oberon2: Oberon 2"
    echo " -  objeck: Objeck Programming Language"
    echo " -  objc: Objective C"
    echo " -  ocaml: OCaml"
    echo " -  ocaml-brief: OCaml Brief"
    echo " -  octave: Octave"
    echo " -  oorexx: Open Object Rexx"
    echo " -  pf: OpenBSD PACKET FILTER"
    echo " -  glsl: OpenGL Shading"
    echo " -  oobas: Openoffice BASIC"
    echo " -  oracle11: Oracle 11"
    echo " -  oracle8: Oracle 8"
    echo " -  oz: Oz"
    echo " -  parasail: ParaSail"
    echo " -  parigp: PARI/GP"
    echo " -  pascal: Pascal"
    echo " -  pawn: Pawn"
    echo " -  pcre: PCRE"
    echo " -  per: Per"
    echo " -  perl: Perl"
    echo " -  perl6: Perl 6"
    echo " -  php: PHP"
    echo " -  php-brief: PHP Brief"
    echo " -  pic16: Pic 16"
    echo " -  pike: Pike"
    echo " -  pixelbender: Pixel Bender"
    echo " -  pli: PL/I"
    echo " -  plsql: PL/SQL"
    echo " -  postgresql: PostgreSQL"
    echo " -  postscript: PostScript"
    echo " -  povray: POV-Ray"
    echo " -  powerbuilder: PowerBuilder"
    echo " -  powershell: PowerShell"
    echo " -  proftpd: ProFTPd"
    echo " -  progress: Progress"
    echo " -  prolog: Prolog"
    echo " -  properties: Properties"
    echo " -  providex: ProvideX"
    echo " -  puppet: Puppet"
    echo " -  purebasic: PureBasic"
    echo " -  pycon: PyCon"
    echo " -  python: Python"
    echo " -  pys60: Python for S60"
    echo " -  q: q/kdb+"
    echo " -  qbasic: QBasic"
    echo " -  qml: QML"
    echo " -  rsplus: R"
    echo " -  racket: Racket"
    echo " -  rails: Rails"
    echo " -  rbs: RBScript"
    echo " -  rebol: REBOL"
    echo " -  reg: REG"
    echo " -  rexx: Rexx"
    echo " -  robots: Robots"
    echo " -  rpmspec: RPM Spec"
    echo " -  ruby: Ruby"
    echo " -  gnuplot: Ruby Gnuplot"
    echo " -  rust: Rust"
    echo " -  sas: SAS"
    echo " -  scala: Scala"
    echo " -  scheme: Scheme"
    echo " -  scilab: Scilab"
    echo " -  scl: SCL"
    echo " -  sdlbasic: SdlBasic"
    echo " -  smalltalk: Smalltalk"
    echo " -  smarty: Smarty"
    echo " -  spark: SPARK"
    echo " -  sparql: SPARQL"
    echo " -  sqf: SQF"
    echo " -  sql: SQL"
    echo " -  standardml: StandardML"
    echo " -  stonescript: StoneScript"
    echo " -  sclang: SuperCollider"
    echo " -  swift: Swift"
    echo " -  systemverilog: SystemVerilog"
    echo " -  tsql: T-SQL"
    echo " -  tcl: TCL"
    echo " -  teraterm: Tera Term"
    echo " -  thinbasic: thinBasic"
    echo " -  typoscript: TypoScript"
    echo " -  unicon: Unicon"
    echo " -  uscript: UnrealScript"
    echo " -  upc: UPC"
    echo " -  urbi: Urbi"
    echo " -  vala: Vala"
    echo " -  vbnet: VB.NET"
    echo " -  vbscript: VBScript"
    echo " -  vedit: Vedit"
    echo " -  verilog: VeriLog"
    echo " -  vhdl: VHDL"
    echo " -  vim: VIM"
    echo " -  visualprolog: Visual Pro Log"
    echo " -  vb: VisualBasic"
    echo " -  visualfoxpro: VisualFoxPro"
    echo " -  whitespace: WhiteSpace"
    echo " -  whois: WHOIS"
    echo " -  winbatch: Winbatch"
    echo " -  xbasic: XBasic"
    echo " -  xml: XML"
    echo " -  xorg_conf: Xorg Config"
    echo " -  xpp: XPP"
    echo " -  yaml: YAML"
    echo " -  z80: Z80 Assembler"
    echo " -  zxbasic: ZXBasic"
  else
    echo "Commands:"
    echo " -  help: show this screen"
    echo " -  login: log into pastebin with '$0 login username password'"
    echo " -  paste: Paste something with '$0 paste pastedata [name] [format] [expire] [privacy] [asguest]' e.g. '$0 paste some_code Code z80 2W public Y'."
    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'."
    echo "Expiries:"
    echo " -  N: Never"
    echo " -  10M: 10 Minutes"
    echo " -  1H: 1 Hour"
    echo " -  1D: 1 Day"
    echo " -  1W: 1 Week"
    echo " -  2W: 2 Weeks"
    echo " -  1M: 1 Month"
    echo " -  6M: 6 Months"
    echo " -  1Y: 1 Year"
    echo "Privacies:"
    echo " -  public"
    echo " -  unlisted"
    echo " -  private"
    echo "For formats, use '$0 help format'"
  fi
elif test "$1" = "login"; then
  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
  if grep -i '^Bad' ~/.pb_temp_login_key; then
    echo "Error logging in: " `cat  ~/.pb_temp_login_key`
    rm  ~/.pb_temp_login_key
  elif test -s  ~/.pb_temp_login_key; then
    echo "Logging in appears to be successful!"
    mv  ~/.pb_temp_login_key  ~/.pb_login_key
  else
    echo "Login process interrupted.  Do you have internet?"
  fi
elif test "$1" = "paste"; then
#'$0 paste pastedata [name] [format] [expire] [privacy] [asguest]' e.g. '$0 paste some_code Code z80 2W public Y'."
  if test -z "$2"; then
    echo "No paste data specified!"
    exit
  fi
  if test ! -z "$3"; then
    PB_NAME="api_paste_name=$3"
  fi
  if test ! -z "$4"; then
    PB_FORMAT="api_paste_format=$4"
  else
    PB_FORMAT="api_paste_format=text"
  fi
  if test ! -z "$5"; then
    if test "$5" = "10M" -o "$5" = "1H" -o "$5" = "1D" -o "$5" = "1W" -o "$5" = "2W" -o "$5" = "1M" -o "$5" = "6M" -o "$5" = "1Y"; then
      PB_EXPIRE="api_paste_expire_date=$5"
    else
      echo "Invalid expiry time '$5'!"
      exit
    fi
  else
    PB_EXPIRE="api_paste_expire_date=N"
  fi
  if test "$6" = "public" -o -z "$6"; then
    PB_PRIVACY="api_paste_private=0"
  elif test "$6" = "unlisted"; then
    PB_PRIVACY="api_paste_private=1"
  elif test "$6" = "private"; then
    PB_PRIVACY="api_paste_private=2"
  else
    echo "Unknown privacy level '$6'!"
    exit
  fi
  if test -z "$7" -o "$7" = "N"; then
    PB_USER="api_user_key=$LOGIN_KEY"
  fi
  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
  if grep -i '^Bad' ~/.pb_temp_response; then
    echo "Error sending paste data: " `cat  ~/.pb_temp_response`
    rm  ~/.pb_temp_response
  elif test -s  ~/.pb_temp_response; then
    echo "Pasting appears to be successful!"
    echo "Your paste is at: " `cat ~/.pb_temp_response`
    mv  ~/.pb_temp_response ~/.pb_last_url
  else
    echo "Paste process interrupted.  Do you have internet?"
  fi
elif test "$1" = "pastefile"; then
#'$0 pastefile filename [name] [format] [expire] [privacy] [asguest]' e.g. '$0 paste ~/test.c Code c 2W public Y'."
  if test ! -z "$2"; then
    PASTE_FILE=`cat $2`
    PB_DATA="api_paste_code=$PASTE_FILE"
  else
    echo "No paste file specified!"
    exit
  fi
  if test ! -z "$3"; then
    PB_NAME="api_paste_name=$3"
  fi
  if test ! -z "$4"; then
    PB_FORMAT="api_paste_format=$4"
  else
    PB_FORMAT="api_paste_format=text"
  fi
  if test ! -z "$5"; then
    if test "$5" = "10M" -o "$5" = "1H" -o "$5" = "1D" -o "$5" = "1W" -o "$5" = "2W" -o "$5" = "1M" -o "$5" = "6M" -o "$5" = "1Y"; then
      PB_EXPIRE="api_paste_expire_date=$5"
    else
      echo "Invalid expiry time '$5'!"
      exit
    fi
  else
    PB_EXPIRE="api_paste_expire_date=N"
  fi
  if test "$6" = "public" -o -z "$6"; then
    PB_PRIVACY="api_paste_private=0"
  elif test "$6" = "unlisted"; then
    PB_PRIVACY="api_paste_private=1"
  elif test "$6" = "private"; then
    PB_PRIVACY="api_paste_private=2"
  else
    echo "Unknown privacy level '$6'!"
    exit
  fi
  if test -z "$7" -o "$7" = "N"; then
    PB_USER="api_user_key=$LOGIN_KEY"
  fi
  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
  if grep -i '^Bad' ~/.pb_temp_response; then
    echo "Error sending paste data: " `cat  ~/.pb_temp_response`
    rm  ~/.pb_temp_response
  elif test -s  ~/.pb_temp_response; then
    echo "Pasting appears to be successful!"
    echo "Your paste is at: " `cat ~/.pb_temp_response`
    mv  ~/.pb_temp_response ~/.pb_last_url
  else
    echo "Paste process interrupted.  Do you have internet?"
  fi
else
  echo "Unknown command '$1' - use '$0 help' for help."
fi

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎