netrosly

PastebinWrapper - Visual Basic

Jul 24th, 2016
609
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 18.49 KB | None | 0 0
  1. Imports System.Collections.Specialized
  2. Imports System.Net
  3. Imports System.Net.Http
  4.  
  5. '▓███████▓ Pastbin Wrapper ▓███████▓
  6. '▓▓▓▓▓▓▓▓▓▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▓▓▓▓▓▓▓▓▓
  7. '▓  Credits:                       ▓
  8. '▓      ├ Kevin(Nettro - HF)       ▓
  9. '▓      └ Marco(Virility - HF)     ▓
  10. '▓  Version: 1.0.0.0               ▓
  11. '▓  Date Published: July 31, 2016  ▓
  12. '▓█████████████████████████████████▓
  13. '▓Leave credit where credit is due.▓
  14. '▓█████████████████████████████████▓
  15.  
  16. Public Class PasteBin
  17.  
  18.     Implements IDisposable
  19.     Private ReadOnly _apiDevKey As String
  20.     Private ReadOnly _client As HttpClient
  21.     Public ApiUserKey As String
  22.     Public Credential As NetworkCredential
  23.  
  24.     Sub New(apiDevKey As String)
  25.         _apiDevKey = apiDevKey
  26.         _client = New HttpClient()
  27.         _client.BaseAddress = New Uri("http://pastebin.com/api/")
  28.     End Sub
  29.  
  30.     Public Async Function Login(credential As NetworkCredential) As Task(Of ApiResponse)
  31.         credential = credential
  32.  
  33.         Dim postData = New Dictionary(Of String, String)()
  34.         postData.Add("api_dev_key", _apiDevKey)
  35.         postData.Add("api_user_name", credential.UserName)
  36.         postData.Add("api_user_password", credential.Password)
  37.  
  38.         Dim response = Await _client.PostAsync("api_login.php", New FormUrlEncodedContent(postData))
  39.         Dim content = Await response.Content.ReadAsStringAsync()
  40.  
  41.         Return New ApiResponse(Me, content, "Login")
  42.     End Function
  43.  
  44.     Public Async Function GetRaw(pasteKey As String) As Task(Of ApiResponse)
  45.         If (String.IsNullOrWhiteSpace(ApiUserKey)) Then
  46.             Return New ApiResponse(Me, String.Empty, "GetRaw")
  47.         End If
  48.  
  49.         Dim postData = New Dictionary(Of String, String)()
  50.         postData.Add("api_dev_key", _apiDevKey)
  51.         postData.Add("api_user_key", ApiUserKey)
  52.         postData.Add("api_option", "show_paste")
  53.         postData.Add("api_paste_key", pasteKey)
  54.  
  55.         Dim response = Await _client.PostAsync("api_raw.php", New FormUrlEncodedContent(postData))
  56.         Dim content = Await response.Content.ReadAsStringAsync()
  57.  
  58.         Return New ApiResponse(Me, content, "GetRaw")
  59.     End Function
  60.     Public Async Function GetUserInfo() As Task(Of ApiResponse)
  61.         If (String.IsNullOrWhiteSpace(ApiUserKey)) Then
  62.             Return New ApiResponse(Me, String.Empty, "GetUserInfo")
  63.         End If
  64.  
  65.         Dim postData = New Dictionary(Of String, String)()
  66.         postData.Add("api_dev_key", _apiDevKey)
  67.         postData.Add("api_user_key", ApiUserKey)
  68.         postData.Add("api_option", "userdetails")
  69.  
  70.         Dim response = Await _client.PostAsync("api_post.php", New FormUrlEncodedContent(postData))
  71.         Dim content = Await response.Content.ReadAsStringAsync()
  72.  
  73.         Return New ApiResponse(Me, content, "GetUserInfo")
  74.     End Function
  75.     Public Async Function GetPastes() As Task(Of ApiResponse)
  76.         If (String.IsNullOrWhiteSpace(ApiUserKey)) Then
  77.             Return New ApiResponse(Me, String.Empty, "GetPastes")
  78.         End If
  79.  
  80.         Dim postData = New Dictionary(Of String, String)()
  81.         postData.Add("api_dev_key", _apiDevKey)
  82.         postData.Add("api_user_key", ApiUserKey)
  83.         postData.Add("api_option", "list")
  84.  
  85.         Dim response = Await _client.PostAsync("api_post.php", New FormUrlEncodedContent(postData))
  86.         Dim content = Await response.Content.ReadAsStringAsync()
  87.  
  88.         Return New ApiResponse(Me, content, "GetPastes")
  89.     End Function
  90.  
  91.     Public Async Function CreatePaste(paste As Paste) As Task(Of ApiResponse)
  92.         If (String.IsNullOrWhiteSpace(ApiUserKey)) Then
  93.             Return New ApiResponse(Me, String.Empty, "CreatePaste")
  94.         End If
  95.  
  96.         Dim postData = New Dictionary(Of String, String)()
  97.         postData.Add("api_dev_key", _apiDevKey)
  98.         postData.Add("api_user_key", ApiUserKey)
  99.         postData.Add("api_option", "paste")
  100.         postData.Add("api_paste_code", paste.Code)
  101.         postData.Add("api_paste_name", paste.Name)
  102.         postData.Add("api_paste_format", paste.Language)
  103.         postData.Add("api_paste_private", paste.Exposure.ToString())
  104.         postData.Add("api_paste_expire_date", paste.ExpireDate)
  105.  
  106.         Dim response = Await _client.PostAsync("api_post.php", New FormUrlEncodedContent(postData))
  107.         Dim content = Await response.Content.ReadAsStringAsync()
  108.  
  109.         Return New ApiResponse(Me, content, "CreatePaste")
  110.     End Function
  111.  
  112.     Public Async Function DeletePaste(pasteKey As String) As Task(Of ApiResponse)
  113.         If (String.IsNullOrWhiteSpace(ApiUserKey)) Then
  114.             Return New ApiResponse(Me, String.Empty, "DeletePaste")
  115.         End If
  116.  
  117.         Dim postData = New Dictionary(Of String, String)()
  118.         postData.Add("api_dev_key", _apiDevKey)
  119.         postData.Add("api_user_key", ApiUserKey)
  120.         postData.Add("api_option", "delete")
  121.         postData.Add("api_paste_key", pasteKey)
  122.  
  123.         Dim response = Await _client.PostAsync("api_post.php", New FormUrlEncodedContent(postData))
  124.         Dim content = Await response.Content.ReadAsStringAsync()
  125.  
  126.         Return New ApiResponse(Me, content, "DeletePaste")
  127.     End Function
  128.  
  129.     Public Overloads Sub Dispose() Implements IDisposable.Dispose
  130.         _client.Dispose()
  131.     End Sub
  132. End Class
  133.  
  134. Public Class ApiResponse
  135.     Private Const BadApiRequest = "Bad API request, "
  136.  
  137.     Public ContentData As String
  138.     Public [Error] As String
  139.     Public Success As Boolean
  140.  
  141.     Public Sub New(pasteBin As PasteBin, content As String, source As String)
  142.         ContentData = content
  143.         Success = Not (content.StartsWith(BadApiRequest) Or String.IsNullOrWhiteSpace(content))
  144.  
  145.         If (Not Success) Then
  146.             [Error] = content.Substring(BadApiRequest.Length, content.Length - BadApiRequest.Length)
  147.         ElseIf (source = "Login") Then
  148.             pasteBin.ApiUserKey = content
  149.         End If
  150.     End Sub
  151. End Class
  152.  
  153. Public Class ExpireDate
  154.     Public Const Never As String = "N"
  155.     Public Const TenMinutes As String = "10M"
  156.     Public Const OneHour As String = "1H"
  157.     Public Const OneDay As String = "1D"
  158.     Public Const OneWeek As String = "1W"
  159.     Public Const TwoWeeks As String = "2W"
  160.     Public Const OneMonth As String = "1M"
  161. End Class
  162.  
  163.  Public Enum Exposure
  164.     [Public] = 0
  165.     Unlisted = 1  
  166.     [Private] = 2  
  167. End Enum
  168.  
  169. Public Class Paste                  
  170.     Public Name As String
  171.     Public Code As String
  172.     Public Exposure As Integer
  173.     Public ExpireDate As String        
  174.     Public Language As String  
  175.        
  176.     Public Sub New()
  177.         Exposure = PasteBinWrapperThingy.Exposure.Public
  178.         ExpireDate = PasteBinWrapperThingy.ExpireDate.Never    
  179.         Language = Languages.None  
  180.     End Sub  
  181. End Class
  182.  
  183. Public Class Languages
  184.     Public Const _4CS As String = "4cs"
  185.     Public Const _6502ACMECrossAssembler As String = "6502acme"
  186.     Public Const _6502KickAssembler As String = "6502kickass"
  187.     Public Const _6502TASM64TASS As String = "6502tasm"
  188.     Public Const _ABAP As String = "abap"
  189.     Public Const ActionScript As String = "actionscript"
  190.     Public Const ActionScript3 As String = "actionscript3"
  191.     Public Const Ada As String = "ada"
  192.     Public Const AIMMS As String = "aimms"
  193.     Public Const ALGOL68 As String = "algol68"
  194.     Public Const ApacheLog As String = "apache"
  195.     Public Const AppleScript As String = "applescript"
  196.     Public Const APTSources As String = "apt_sources"
  197.     Public Const ARM As String = "arm"
  198.     Public Const ASM As String = "asm"
  199.     Public Const ASP As String = "asp"
  200.     Public Const Asymptote As String = "asymptote"
  201.     Public Const autoconf As String = "autoconf"
  202.     Public Const Autohotkey As String = "autohotkey"
  203.     Public Const AutoIt As String = "autoit"
  204.     Public Const Avisynth As String = "avisynth"
  205.     Public Const Awk As String = "awk"
  206.     Public Const BASCOMAVR As String = "bascomavr"
  207.     Public Const Bash As String = "bash"
  208.     Public Const Basic4GL As String = "basic4gl"
  209.     Public Const Batch As String = "dos"
  210.     Public Const BibTeX As String = "bibtex"
  211.     Public Const BlitzBasic As String = "blitzbasic"
  212.     Public Const Blitz3D As String = "b3d"
  213.     Public Const BlitzMax As String = "bmx"
  214.     Public Const BNF As String = "bnf"
  215.     Public Const BOO As String = "boo"
  216.     Public Const BrainFuck As String = "bf"
  217.     Public Const C As String = "c"
  218.     Public Const CWinAPI As String = "c_winapi"
  219.     Public Const CforMacs As String = "c_mac"
  220.     Public Const CIntermediateLanguage As String = "cil"
  221.     Public Const CSharp As String = "csharp"
  222.     Public Const CPlusPlus As String = "cpp"
  223.     Public Const CPlusPlusWinApi As String = "cpp-winapi"
  224.     Public Const CPlusPlusWithQtextensions As String = "cpp-qt"
  225.     Public Const CLoadrunner As String = "c_loadrunner"
  226.     Public Const CADDCL As String = "caddcl"
  227.     Public Const CADLisp As String = "cadlisp"
  228.     Public Const CFDG As String = "cfdg"
  229.     Public Const ChaiScript As String = "chaiscript"
  230.     Public Const Chapel As String = "chapel"
  231.     Public Const Clojure As String = "clojure"
  232.     Public Const CloneC As String = "klonec"
  233.     Public Const CloneCPlusPlus As String = "klonecpp"
  234.     Public Const CMake As String = "cmake"
  235.     Public Const COBOL As String = "cobol"
  236.     Public Const CoffeeScript As String = "coffeescript"
  237.     Public Const ColdFusion As String = "cfm"
  238.     Public Const CSS As String = "css"
  239.     Public Const Cuesheet As String = "cuesheet"
  240.     Public Const D As String = "d"
  241.     Public Const Dart As String = "dart"
  242.     Public Const DCL As String = "dcl"
  243.     Public Const DCPU16 As String = "dcpu16"
  244.     Public Const DCS As String = "dcs"
  245.     Public Const Delphi As String = "delphi"
  246.     Public Const Oxygene As String = "oxygene"
  247.     Public Const Diff As String = "diff"
  248.     Public Const DIV As String = "div"
  249.     Public Const DOT As String = "dot"
  250.     Public Const E As String = "e"
  251.     Public Const Easytrieve As String = "ezt"
  252.     Public Const ECMAScript As String = "ecmascript"
  253.     Public Const Eiffel As String = "eiffel"
  254.     Public Const Email As String = "email"
  255.     Public Const EPC As String = "epc"
  256.     Public Const Erlang As String = "erlang"
  257.     Public Const Euphoria As String = "euphoria"
  258.     Public Const FSharp As String = "fsharp"
  259.     Public Const Falcon As String = "falcon"
  260.     Public Const Filemaker As String = "filemaker"
  261.     Public Const FOLanguage As String = "fo"
  262.     Public Const FormulaOne As String = "f1"
  263.     Public Const Fortran As String = "fortran"
  264.     Public Const FreeBasic As String = "freebasic"
  265.     Public Const FreeSWITCH As String = "freeswitch"
  266.     Public Const GAMBAS As String = "gambas"
  267.     Public Const GameMaker As String = "gml"
  268.     Public Const GDB As String = "gdb"
  269.     Public Const Genero As String = "genero"
  270.     Public Const Genie As String = "genie"
  271.     Public Const GetText As String = "gettext"
  272.     Public Const Go As String = "go"
  273.     Public Const Groovy As String = "groovy"
  274.     Public Const GwBasic As String = "gwbasic"
  275.     Public Const Haskell As String = "haskell"
  276.     Public Const Haxe As String = "haxe"
  277.     Public Const HicEst As String = "hicest"
  278.     Public Const HQ9Plus As String = "hq9plus"
  279.     Public Const HTML As String = "html4strict"
  280.     Public Const HTML5 As String = "html5"
  281.     Public Const Icon As String = "icon"
  282.     Public Const IDL As String = "idl"
  283.     Public Const INIfile As String = "ini"
  284.     Public Const InnoScript As String = "inno"
  285.     Public Const INTERCAL As String = "intercal"
  286.     Public Const IO As String = "io"
  287.     Public Const ISPFPanelDefinition As String = "ispfpanel"
  288.     Public Const J As String = "j"
  289.     Public Const Java As String = "java"
  290.     Public Const Java5 As String = "java5"
  291.     Public Const JavaScript As String = "javascript"
  292.     Public Const JCL As String = "jcl"
  293.     Public Const jQuery As String = "jquery"
  294.     Public Const JSON As String = "json"
  295.     Public Const Julia As String = "julia"
  296.     Public Const KiXtart As String = "kixtart"
  297.     Public Const Latex As String = "latex"
  298.     Public Const LDIF As String = "ldif"
  299.     Public Const LibertyBASIC As String = "lb"
  300.     Public Const LindenScripting As String = "lsl2"
  301.     Public Const Lisp As String = "lisp"
  302.     Public Const LLVM As String = "llvm"
  303.     Public Const LocoBasic As String = "locobasic"
  304.     Public Const Logtalk As String = "logtalk"
  305.     Public Const LOLCode As String = "lolcode"
  306.     Public Const LotusFormulas As String = "lotusformulas"
  307.     Public Const LotusScript As String = "lotusscript"
  308.     Public Const LScript As String = "lscript"
  309.     Public Const Lua As String = "lua"
  310.     Public Const M68000Assembler As String = "m68k"
  311.     Public Const MagikSF As String = "magiksf"
  312.     Public Const Make As String = "make"
  313.     Public Const MapBasic As String = "mapbasic"
  314.     Public Const MatLab As String = "matlab"
  315.     Public Const mIRC As String = "mirc"
  316.     Public Const MIXAssembler As String = "mmix"
  317.     Public Const Modula2 As String = "modula2"
  318.     Public Const Modula3 As String = "modula3"
  319.     Public Const Motorola68000HiSoftDev As String = "68000devpac"
  320.     Public Const MPASM As String = "mpasm"
  321.     Public Const MXML As String = "mxml"
  322.     Public Const MySQL As String = "mysql"
  323.     Public Const Nagios As String = "nagios"
  324.     Public Const NetRexx As String = "netrexx"
  325.     Public Const newLISP As String = "newlisp"
  326.     Public Const Nginx As String = "nginx"
  327.     Public Const Nimrod As String = "nimrod"
  328.     Public Const None As String = "text"
  329.     Public Const NullSoftInstaller As String = "nsis"
  330.     Public Const Oberon2 As String = "oberon2"
  331.     Public Const ObjeckProgrammingLangua As String = "objeck"
  332.     Public Const ObjectiveC As String = "objc"
  333.     Public Const OCalmBrief As String = "ocaml-brief"
  334.     Public Const OCaml As String = "ocaml"
  335.     Public Const Octave As String = "octave"
  336.     Public Const OpenObjectRexx As String = "oorexx"
  337.     Public Const OpenBSDPACKETFILTER As String = "pf"
  338.     Public Const OpenGLShading As String = "glsl"
  339.     Public Const OpenofficeBASIC As String = "oobas"
  340.     Public Const Oracle11 As String = "oracle11"
  341.     Public Const Oracle8 As String = "oracle8"
  342.     Public Const Oz As String = "oz"
  343.     Public Const ParaSail As String = "parasail"
  344.     Public Const PARIGP As String = "parigp"
  345.     Public Const Pascal As String = "pascal"
  346.     Public Const Pawn As String = "pawn"
  347.     Public Const PCRE As String = "pcre"
  348.     Public Const Per As String = "per"
  349.     Public Const Perl As String = "perl"
  350.     Public Const Perl6 As String = "perl6"
  351.     Public Const PHP As String = "php"
  352.     Public Const PHPBrief As String = "php-brief"
  353.     Public Const Pic16 As String = "pic16"
  354.     Public Const Pike As String = "pike"
  355.     Public Const PixelBender As String = "pixelbender"
  356.     Public Const PLI As String = "pli"
  357.     Public Const PLSQL As String = "plsql"
  358.     Public Const PostgreSQL As String = "postgresql"
  359.     Public Const PostScript As String = "postscript"
  360.     Public Const POVRay As String = "povray"
  361.     Public Const PowerShell As String = "powershell"
  362.     Public Const PowerBuilder As String = "powerbuilder"
  363.     Public Const ProFTPd As String = "proftpd"
  364.     Public Const Progress As String = "progress"
  365.     Public Const Prolog As String = "prolog"
  366.     Public Const Properties As String = "properties"
  367.     Public Const ProvideX As String = "providex"
  368.     Public Const Puppet As String = "puppet"
  369.     Public Const PureBasic As String = "purebasic"
  370.     Public Const PyCon As String = "pycon"
  371.     Public Const Python As String = "python"
  372.     Public Const PythonforS60 As String = "pys60"
  373.     Public Const qkdbplus As String = "q"
  374.     Public Const QBasic As String = "qbasic"
  375.     Public Const QML As String = "qml"
  376.     Public Const R As String = "rsplus"
  377.     Public Const Racket As String = "racket"
  378.     Public Const Rails As String = "rails"
  379.     Public Const RBScript As String = "rbs"
  380.     Public Const REBOL As String = "rebol"
  381.     Public Const REG As String = "reg"
  382.     Public Const Rexx As String = "rexx"
  383.     Public Const Robots As String = "robots"
  384.     Public Const RPMSpec As String = "rpmspec"
  385.     Public Const Ruby As String = "ruby"
  386.     Public Const RubyGnuplot As String = "gnuplot"
  387.     Public Const Rust As String = "rust"
  388.     Public Const SAS As String = "sas"
  389.     Public Const Scala As String = "scala"
  390.     Public Const Scheme As String = "scheme"
  391.     Public Const Scilab As String = "scilab"
  392.     Public Const SCL As String = "scl"
  393.     Public Const SdlBasic As String = "sdlbasic"
  394.     Public Const Smalltalk As String = "smalltalk"
  395.     Public Const Smarty As String = "smarty"
  396.     Public Const SPARK As String = "spark"
  397.     Public Const SPARQL As String = "sparql"
  398.     Public Const SQF As String = "sqf"
  399.     Public Const SQL As String = "sql"
  400.     Public Const StandardML As String = "standardml"
  401.     Public Const StoneScript As String = "stonescript"
  402.     Public Const SuperCollider As String = "sclang"
  403.     Public Const Swift As String = "swift"
  404.     Public Const SystemVerilog As String = "systemverilog"
  405.     Public Const TSQL As String = "tsql"
  406.     Public Const TCL As String = "tcl"
  407.     Public Const TeraTerm As String = "teraterm"
  408.     Public Const thinBasic As String = "thinbasic"
  409.     Public Const TypoScript As String = "typoscript"
  410.     Public Const Unicon As String = "unicon"
  411.     Public Const UnrealScript As String = "uscript"
  412.     Public Const UPC As String = "upc"
  413.     Public Const Urbi As String = "urbi"
  414.     Public Const Vala As String = "vala"
  415.     Public Const VBNET As String = "vbnet"
  416.     Public Const VBScript As String = "vbscript"
  417.     Public Const Vedit As String = "vedit"
  418.     Public Const VeriLog As String = "verilog"
  419.     Public Const VHDL As String = "vhdl"
  420.     Public Const VIM As String = "vim"
  421.     Public Const VisualProLog As String = "visualprolog"
  422.     Public Const VisualBasic As String = "vb"
  423.     Public Const VisualFoxPro As String = "visualfoxpro"
  424.     Public Const WhiteSpace As String = "whitespace"
  425.     Public Const WHOIS As String = "whois"
  426.     Public Const Winbatch As String = "winbatch"
  427.     Public Const XBasic As String = "xbasic"
  428.     Public Const XML As String = "xml"
  429.     Public Const XorgConfig As String = "xorg_conf"
  430.     Public Const XPP As String = "xpp"
  431.     Public Const YAML As String = "yaml"
  432.     Public Const Z80Assembler As String = "z80"
  433.     Public Const ZXBasic As String = "zxbasic"
  434. End Class
Advertisement
Add Comment
Please, Sign In to add comment