[SciTE/Notepad++] Send To Pastebin / Get From Pastebin

  • Send To Pastebin
    Kleine Bastelei nebenher, vlt. kann's ja jemand gebrauchen.

    • Ein markierter Abschnitt oder die gesammte Datei wird per POST an pastebin.com verschickt und der Link geholt.
    • Die aktuellen Einstellungen zu Name, Syntax, Ablaufdatum etc. werden in einer .ini abgelegt und beim nächsten Skriptaufruf wieder geladen.
    • Starten per Tool-Menü oder Ctrl+Shift+Alt+P (SciTE).


    Keine Ahnung ob es soetwas ähnliches schon gibt, mir war nur langweilig.

    [Blockierte Grafik: http://www.abload.de/img/2bkk5.gif]

    SciTE:

    "in \AutoIt3\SciTE\Paste\paste.au3 speichern"
    [autoit]


    #region include
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    #include <String.au3>
    #endregion include

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    Opt("GUIResizeMode", 544)
    ;Orginal by i2c @http://www.autoit.de | Login & New API support by Sprenger120
    #region
    Global $oReceived, $cLoginPasswort, $toggle = 0
    Global $settings = @ScriptDir & "\settings.ini"
    Global $aSyntax[139][2] = [["abap", "ABAP"], _
    ["actionscript", "ActionScript"], _
    ["actionscript3", "ActionScript 3"], _
    ["ada", "Ada"], _
    ["apache", "ApacheLog"], _
    ["applescript", "AppleScript"], _
    ["apt_sources", "APT Sources"], _
    ["asm", "ASM"], _
    ["asp", "ASP"], _
    ["autoit", "AutoIt"], _
    ["avisynth", "Avisynth"], _
    ["bash", "Bash"], _
    ["basic4gl", "Basic4GL"], _
    ["bibtex", "BibTeX"], _
    ["blitzbasic", "Blitz Basic"], _
    ["bnf", "BNF"], _
    ["boo", "BOO"], _
    ["bf", "BrainFuck"], _
    ["c", "C"], _
    ["c_mac", "C for Macs"], _
    ["cill", "C Intermediate Language"], _
    ["csharp", "C#"], _
    ["cpp", "C++"], _
    ["caddcl", "CAD DCL"], _
    ["cadlisp", "CAD Lisp"], _
    ["cfdg", "CFDG"], _
    ["klonec", "Clone C"], _
    ["klonecpp", "Clone C++"], _
    ["cmake", "CMake"], _
    ["cobol", "COBOL"], _
    ["cfm", "ColdFusion"], _
    ["css", "CSS"], _
    ["d", "D"], _
    ["dcs", "DCS"], _
    ["delphi", "Delphi"], _
    ["dff", "Diff"], _
    ["div", "DIV"], _
    ["dos", "DOS"], _
    ["dot", "DOT"], _
    ["eiffel", "Eiffel"], _
    ["email", "Email"], _
    ["erlang", "Erlang"], _
    ["fo", "FO Language"], _
    ["fortran", "Fortran"], _
    ["freebasic", "FreeBasic"], _
    ["gml", "Game Maker"], _
    ["genero", "Genero"], _
    ["gettext", "GetText"], _
    ["groovy", "Groovy"], _
    ["haskell", "Haskell"], _
    ["hq9plus", "HQ9 Plus"], _
    ["html4strict", "HTML"], _
    ["idl", "IDL"], _
    ["ini", "INI file"], _
    ["inno", "Inno Script"], _
    ["intercal", "INTERCAL"], _
    ["io", "IO"], _
    ["java", "Java"], _
    ["java5", "Java 5"], _
    ["javascript", "JavaScript"], _
    ["kixtart", "KiXtart"], _
    ["latex", "Latex"], _
    ["lsl2", "Linden Scripting"], _
    ["lisp", "Lisp"], _
    ["locobasic", "Loco Basic"], _
    ["lolcode", "LOL Code"], _
    ["lotusformulas", "Lotus Formulas"], _
    ["lotusscript", "Lotus Script"], _
    ["lscript", "LScript"], _
    ["lua", "Lua"], _
    ["m68k", "M68000 Assembler"], _
    ["make", "Make"], _
    ["matlab", "MatLab"], _
    ["mirc", "mIRC"], _
    ["modula3", "Modula 3"], _
    ["mpasm", "MPASM"], _
    ["mxml", "MXML"], _
    ["mysql", "MySQL"], _
    ["text", "None"], _
    ["nsis", "NullSoft Installer"], _
    ["oberon2", "Oberon 2"], _
    ["objc", "Objective C"], _
    ["ocaml-brief", "OCalm Brief"], _
    ["ocaml", "OCaml"], _
    ["glsl", "OpenGL Shading"], _
    ["oobas", "Openoffice BASIC"], _
    ["oracle11", "Oracle 11"], _
    ["oracle8", "Oracle 8"], _
    ["pascal", "Pascal"], _
    ["pawn", "PAWN"], _
    ["per", "Per"], _
    ["perl", "Perl"], _
    ["php", "PHP"], _
    ["php-brief", "PHP Brief"], _
    ["pic16", "Pic 16"], _
    ["pixelbender", "Pixel Bender"], _
    ["plsql", "PL/SQL"], _
    ["povray", "POV-Ray"], _
    ["powershell", "Power Shell"], _
    ["progress", "Progress"], _
    ["prolog", "Prolog"], _
    ["properties", "Properties"], _
    ["providex", "ProvideX"], _
    ["python", "Python"], _
    ["qbasic", "QBasic"], _
    ["rails", "Rails"], _
    ["rebol", "REBOL"], _
    ["reg", "REG"], _
    ["robots", "Robots"], _
    ["ruby", "Ruby"], _
    ["gnuplot", "Ruby Gnuplot"], _
    ["sas", "SAS"], _
    ["scala", "Scala"], _
    ["scheme", "Scheme"], _
    ["scilab", "Scilab"], _
    ["sdlbasic", "SdlBasic"], _
    ["smalltalk", "Smalltalk"], _
    ["smarty", "Smarty"], _
    ["sql", "SQL"], _
    ["tsql", "T-SQL"], _
    ["tcl", "TCL"], _
    ["teraterm", "Tera Term"], _
    ["thinbasic", "thinBasic"], _
    ["typoscript", "TypoScript"], _
    ["unreal", "unrealScript"], _
    ["vbnet", "VB.NET"], _
    ["verilog", "VeriLog"], _
    ["vhdl", "VHDL"], _
    ["vim", "VIM"], _
    ["visualprolog", "Visual Pro Log"], _
    ["vb", "VisualBasic"], _
    ["visualfoxpro", "VisualFoxPro"], _
    ["whitespace", "WhiteSpace"], _
    ["8whois", "WHOIS"], _
    ["winbatch", "Win Batch"], _
    ["xml", "XML"], _
    ["xorg_conf", "Xorg Config"], _
    ["xpp", "XPP"], _
    ["z80", "Z80 Assembler"]]

    [/autoit] [autoit][/autoit] [autoit]

    Global $aExposure[2][2] = [["0", "public"], _
    ["1", "private"]]

    [/autoit] [autoit][/autoit] [autoit]

    Global $aExpiration[5][2] = [["N", "Never"], _
    ["10M", "10 Minutes"], _
    ["1H", "1 Hour"], _
    ["1D", "1 Day"], _
    ["1M", "1 Month"]]
    #endregion

    [/autoit] [autoit][/autoit] [autoit]

    #region write/read .ini
    If Not FileExists($settings) Then
    IniWrite($settings, "main", "syntax", "autoit")
    IniWrite($settings, "main", "expiration", "N")
    IniWrite($settings, "main", "exposure", "0")
    IniWrite($settings, "main", "Username", "")
    IniWrite($settings, "main", "Password", "")
    IniWrite($settings, "main", "PostAsGuest", "1")
    IniWrite($settings, "main", "SavePassword", "4")
    EndIf
    $syntax = _FindInArray($aSyntax, IniRead($settings, "main", "syntax", "autoit"), 1)
    $expiration = _FindInArray($aExpiration, IniRead($settings, "main", "expiration", "N"), 1)
    $exposure = _FindInArray($aExposure, IniRead($settings, "main", "exposure", "0"), 1)
    $DevKey = IniRead($settings, "main", "DevKey", "")
    $Username = IniRead($settings, "main", "Username", "")
    $Passwort = IniRead($settings, "main", "Password", "")
    If $Passwort <> "" Then $Passwort = _StringEncrypt(0, $Passwort, "sdfSFDSsr24234")
    If $Passwort = "0" Then $Passwort = ""
    $SavePassword = IniRead($settings, "main", "SavePassword", "4")
    $PostAsGuest = IniRead($settings, "main", "PostAsGuest", "1")
    #endregion write/read .ini

    [/autoit] [autoit][/autoit] [autoit]

    #region gui
    $gui = GUICreate("Send To Pastebin", 613, 145, -1, -1)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateGroup("Send", 8, 8, 161, 130)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    $rFile = GUICtrlCreateRadio("complete file", 24, 32, 113, 17)
    $rSelected = GUICtrlCreateRadio("selected code", 24, 56, 113, 17)
    $bSend = GUICtrlCreateButton("send", 50, 92, 75, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateGroup("Settings", 176, 8, 262, 130)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Syntax highlighting:", 184, 36, 95, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cSyntax = GUICtrlCreateCombo($syntax, 288, 32, 145, 25)
    GUICtrlCreateLabel("Post expiration:", 184, 60, 76, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cExpiration = GUICtrlCreateCombo($expiration, 288, 56, 145, 25)
    GUICtrlCreateLabel("Post exposure:", 184, 84, 88, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cExposure = GUICtrlCreateCombo($exposure, 288, 80, 145, 25)
    GUICtrlCreateLabel("Name / Title: ", 184, 110, 83, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $iName = GUICtrlCreateInput("", 288, 104, 145, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;Login
    GUICtrlCreateGroup("Login", 445, 8, 161, 130)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Name:", 455, 38, 70, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Passwort: ", 455, 66, 83, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $cLoginName = GUICtrlCreateInput($Username, 510, 32, 83, 25)
    $cLoginPasswort = GUICtrlCreateInput($Passwort, 510, 60, 83, 25, BitOR($ES_PASSWORD, $GUI_SS_DEFAULT_INPUT))
    $cGuest = GUICtrlCreateCheckbox("als Gast posten", 455, 88, 100, 20)
    GUICtrlSetState(-1, $PostAsGuest)
    $cSavePassword = GUICtrlCreateCheckbox("Password speichern", 455, 106, 120, 20)
    GUICtrlSetState(-1, $SavePassword)
    If BitAND($PostAsGuest, $Gui_CHECKED) Then
    GUICtrlSetState($cLoginName, $GUI_DISABLE)
    GUICtrlSetState($cLoginPasswort, $GUI_DISABLE)
    GUICtrlSetState($cSavePassword, $GUI_DISABLE)
    EndIf
    GUISetState(@SW_SHOW)
    #endregion gui

    [/autoit] [autoit][/autoit] [autoit]

    #region events
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUICtrlSetOnEvent($bSend, "_send")
    GUICtrlSetOnEvent($cGuest, "_Checkbox")
    #endregion events

    [/autoit] [autoit][/autoit] [autoit]

    #region set data
    If $cmdline[0] < 1 Then
    MsgBox(64, "Error", "missing parameter")
    Exit
    EndIf
    If $cmdline[2] <> "" Then
    GUICtrlSetState($rSelected, $Gui_CHECKED)
    Else
    GUICtrlSetState($rFile, $Gui_CHECKED)
    GUICtrlSetState($rSelected, $GUI_DISABLE)
    EndIf
    For $i = 0 To UBound($aSyntax) - 1
    GUICtrlSetData($cSyntax, $aSyntax[$i][1])
    Next
    For $i = 0 To UBound($aExpiration) - 1
    GUICtrlSetData($cExpiration, $aExpiration[$i][1])
    Next
    For $i = 0 To UBound($aExposure) - 1
    GUICtrlSetData($cExposure, $aExposure[$i][1])
    Next
    #endregion set data

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Checkbox()
    Switch BitAND(GUICtrlRead($cGuest), $Gui_CHECKED)
    Case True
    GUICtrlSetState($cLoginName, $GUI_DISABLE)
    GUICtrlSetState($cLoginPasswort, $GUI_DISABLE)
    GUICtrlSetState($cSavePassword, $GUI_DISABLE)
    Case False
    GUICtrlSetState($cLoginName, $GUI_ENABLE)
    GUICtrlSetState($cLoginPasswort, $GUI_ENABLE)
    GUICtrlSetState($cSavePassword, $GUI_ENABLE)
    EndSwitch
    EndFunc ;==>_Checkbox

    [/autoit] [autoit][/autoit] [autoit]

    Func _FindInArray($array, $value, $switch)
    $index = _ArraySearch($array, $value)
    If $index = -1 Then Return -1

    [/autoit] [autoit][/autoit] [autoit]

    If $switch = 0 Then
    $result = $array[$index][0]
    ElseIf $switch = 1 Then
    $result = $array[$index][1]
    Else
    SetError(1, 0, False)
    EndIf
    Return $result
    EndFunc ;==>_FindInArray

    [/autoit] [autoit][/autoit] [autoit]

    Func _URIEncode($sData)
    ; Prog@ndy
    Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
    Local $nChar
    $sData = ""
    For $i = 1 To $aData[0]
    $nChar = Asc($aData[$i])
    Switch $nChar
    Case 45, 46, 48 - 57, 65 To 90, 95, 97 To 122, 126
    $sData &= $aData[$i]
    Case 32
    $sData &= "+"
    Case Else
    $sData &= "%" & Hex($nChar, 2)
    EndSwitch
    Next
    Return $sData
    EndFunc ;==>_URIEncode

    [/autoit] [autoit][/autoit] [autoit]

    Func _send()
    Local $bPostAsGuest, $LoginKey
    Local Static $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    GUISetState(@SW_DISABLE, $gui)
    If BitAND(GUICtrlRead($rFile), $Gui_CHECKED) = $Gui_CHECKED Then
    $open = FileOpen($cmdline[1], 0)
    $paste_code = _URIEncode(FileRead($open))
    FileClose($open)
    ElseIf BitAND(GUICtrlRead($rSelected), $Gui_CHECKED) = $Gui_CHECKED Then
    $paste_code = _URIEncode($cmdline[2])
    EndIf
    $paste_name = GUICtrlRead($iName)
    $paste_private = _FindInArray($aExposure, GUICtrlRead($cExposure), 0)
    $paste_expire_date = _FindInArray($aExpiration, GUICtrlRead($cExpiration), 0)
    $paste_format = _FindInArray($aSyntax, GUICtrlRead($cSyntax), 0)
    $paste_devkey = "52b07d8a33022af5c03f899c734818c8"
    $Username = GUICtrlRead($cLoginName)
    $Passwort = GUICtrlRead($cLoginPasswort)
    $bPostAsGuest = GUICtrlRead($cGuest)
    If BitAND($bPostAsGuest, $Gui_CHECKED) Then
    $bPostAsGuest = True
    Else
    $bPostAsGuest = False
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Login
    If Not $bPostAsGuest Then
    $oHTTP.Open("POST", "http://pastebin.com/api/api_login.php", False)
    $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 4.0.20506)")
    $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    $oHTTP.Send("api_dev_key=" & $paste_devkey & "&api_user_name=" & $Username & "&api_user_password=" & $Passwort)

    [/autoit] [autoit][/autoit] [autoit]

    $oReceived = $oHTTP.ResponseText
    If Not StringRegExp($oReceived, "^[\d\w]+$") Then
    MsgBox(48, "SciTe Send to Pastebin", "Fehler beim Login. Quellcode wird als Gast gepostet." & @CRLF & $oReceived)
    $LoginKey = ""
    Else
    $LoginKey = "&api_user_key=" & $oReceived
    EndIf
    Else
    $LoginKey = ""
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $oHTTP.Open("POST", "http://pastebin.com/api/api_post.php", False)
    $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 4.0.20506)")
    $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")

    [/autoit] [autoit][/autoit] [autoit]

    $oHTTP.Send("api_dev_key=" & $paste_devkey & "&api_paste_code=" & $paste_code & "&api_option=paste" & "&api_paste_name=" & $paste_name & "&api_paste_private=" & $paste_private & _
    "&api_paste_expire_date=" & $paste_expire_date & "&api_paste_format=" & $paste_format & $LoginKey)

    [/autoit] [autoit][/autoit] [autoit]

    $oReceived = $oHTTP.ResponseText
    If $oReceived <> "" Then
    $gui2 = GUICreate("url", 258, 76, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Input = GUICtrlCreateInput($oReceived, 8, 8, 241, 21)
    $Button1 = GUICtrlCreateButton("copy to clipboard", 24, 40, 115, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_clipput")
    $Button2 = GUICtrlCreateButton("open url", 152, 40, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_execute")
    GUISetState(@SW_SHOW)
    Else
    MsgBox(64, "Error", "no response")
    EndIf
    EndFunc ;==>_send

    [/autoit] [autoit][/autoit] [autoit]

    Func _execute()
    ShellExecute($oReceived)
    EndFunc ;==>_execute

    [/autoit] [autoit][/autoit] [autoit]

    Func _clipput()
    If ClipPut($oReceived) Then
    _exit()
    Else
    MsgBox(64, "Error", "unable to copy url to clipboard")
    EndIf
    EndFunc ;==>_clipput

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    If $cmdline[0] < 1 Then Return
    IniWrite($settings, "main", "syntax", _FindInArray($aSyntax, GUICtrlRead($cSyntax), 0))
    IniWrite($settings, "main", "expiration", _FindInArray($aExpiration, GUICtrlRead($cExpiration), 0))
    IniWrite($settings, "main", "exposure", _FindInArray($aExposure, GUICtrlRead($cExposure), 0))
    IniWrite($settings, "main", "Username", GUICtrlRead($cLoginName))
    If BitAND(GUICtrlRead($cSavePassword), $Gui_CHECKED) Then
    IniWrite($settings, "main", "Password", _StringEncrypt(1, GUICtrlRead($cLoginPasswort), "sdfSFDSsr24234"))
    Else
    IniWrite($settings, "main", "Password", "")
    EndIf
    IniWrite($settings, "main", "PostAsGuest", GUICtrlRead($cGuest))
    IniWrite($settings, "main", "SavePassword", GUICtrlRead($cSavePassword))
    Exit
    EndFunc ;==>_exit

    [/autoit]
    &quot;SciTE -&gt; Options -&gt; Open User Options File - am Ende einfügen


    # 40 SendToPastebin
    command.40.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\paste.au3" "$(FilePath)" "$(CurrentSelection)"
    command.name.40.*=Send to Pastebin
    command.shortcut.40.*=Ctrl+Shift+Alt+P

    Notepad++:

    • falls noch nicht vorhanden, das Plugin NppExec über Erweiterungen->Plugin Manager installieren
    • folgendes ans Ende von @UserProfileDir\AppData\Roaming\Notepad++\plugins\config\npes_saved.txt einfügen.
      Datei erstellen fall's nicht vorhanden.

      Spoiler anzeigen
      Code
      ::Send To Pastebin
      NPP_SAVE
      "$(SYS.ProgramFiles)\AutoIt3\SciTE\Paste\paste.exe" "$(FULL_CURRENT_PATH)" "$(CURRENT_WORD)"


      Die paste.au3 muss kompiliert werden. Der Pfad zur paste.exe kann natürlich angepasst werden.
      Notepad++ neu starten.

    • über Erweiterungen->NppExec->Advanced Options in der Combobox Associated script -Send To Pastebin- auswählen und mit Add/Modify hinzufügen. Notepad++ neu starten.
    • Der Eintrag ist dann unter Makro zu finden.

    Get From Pastebin
    edit: Auf Wunsch einer einzelnen Person noch was kleines um den Sourcecode von Pastebin direkt in SciTE zu holen. Das Skript ist eher ein Schnellschuss, also bitte keine Kommentare zum gruseligen Quellcode :P:). Sollte sich jemand fragen ob das erlaubt ist - ja, ist es.

    • Befindet sich kein pastebin.com Link in der Zwischenablage, wird eine kleine GUI zur Eingabe geöffnet.
    • Alle Dateien werden als .au3 im @TempDir abgelegt und in SciTE geöffnet.
    • Starten per Tool-Menü oder Ctrl+Shift+Alt+G.

    SciTE:

    &quot;in \AutoIt3\SciTE\Paste\getpaste.au3 speichern&quot;
    [autoit]


    #region includes
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>
    #endregion includes

    [/autoit] [autoit][/autoit] [autoit]

    $clip = ClipGet()
    If StringInStr($clip, "pastebin.com/") Then
    _get($clip)
    Else
    #region GUI
    Opt("GUIOnEventMode", 1)
    $GUI = GUICreate("Get From Pastebin", 345, 75)
    $Group = GUICtrlCreateGroup("URL", 8, 8, 329, 57)
    $Input = GUICtrlCreateInput("", 16, 32, 249, 21)
    $Button = GUICtrlCreateButton("Get", 272, 32, 59, 23, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #endregion GUI
    #region Events
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUICtrlSetOnEvent($Button, "_dummy")
    #endregion Events
    EndIf
    While 1
    Sleep(100)
    WEnd
    #region Functions
    Func _get($URL)
    $aString = StringSplit($URL, "/")
    If IsArray($aString) Then
    $domain = $aString[$aString[0] - 1]
    $tmp = InetGet("http://" & $domain & "/download.php?i=" & $aString[$aString[0]], @TempDir & "\" & $aString[$aString[0]] & ".au3", 1, 1)
    $timer = TimerInit()
    Do
    Sleep(200)
    If TimerDiff($timer) > 15000 Then
    MsgBox(48, "Fehler", "Timeout - Die maximale Verbindungszeit wurde überschritten" & @CRLF & "Internetverbindung prüfen!")
    InetClose($tmp)
    _exit()
    EndIf
    Until InetGetInfo($tmp, 2)
    InetClose($tmp)
    $hFile = FileOpen(@TempDir & "\" & $aString[$aString[0]] & ".au3", 0)
    $string = FileRead($hFile, 500)
    FileClose($hFile)
    If Not StringInStr($string, "<title>Pastebin.com - #1 paste tool since 2002!</title>") Then
    If $CMDLINE[0] <> 0 Then
    ShellExecute($CMDLINE[1] & "\notepad++.exe", '"' & $aString[$aString[0]] & '.au3"', @TempDir)
    _exit()
    Else
    ShellExecute("scite.exe", "-open:" & $aString[$aString[0]] & ".au3", @TempDir)
    _exit()
    EndIf
    Else
    MsgBox(48, "Fehler", "Konnte keinen Sourcecode finden.")
    FileDelete(@TempDir & "\" & $aString[$aString[0]] & ".au3")
    _exit()
    EndIf
    Else
    MsgBox(64, "Fehler", "Der angegebene Link konnte nicht verarbeitet werden.")
    EndIf
    EndFunc ;==>_get

    [/autoit] [autoit][/autoit] [autoit]

    Func _dummy()
    $dummy = GUICtrlRead($Input)
    If StringInStr($dummy, "pastebin.com") Then
    _get($dummy)
    Else
    MsgBox(48, "Fehler", "Das ist kein pastebin.com Link.")
    EndIf
    EndFunc ;==>_dummy

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    Exit
    EndFunc ;==>_exit
    #endregion Functions

    [/autoit]
    &quot;SciTE -&gt; Options -&gt; Open User Options File - am Ende einfügen


    # 41 Get From Pastebin
    command.41.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\getpaste.au3"
    command.name.41.*=Get From Pastebin
    command.shortcut.41.*=Ctrl+Shift+Alt+G

    Notepad++:

    • falls noch nicht vorhanden, das Plugin NppExec über Erweiterungen->Plugin Manager installieren
    • folgendes ans Ende von @UserProfileDir\AppData\Roaming\Notepad++\plugins\config\npes_saved.txt einfügen.
      Datei erstellen fall's nicht vorhanden.

      Spoiler anzeigen
      Code
      ::Get From Pastebin
      NPP_SAVE
      "$(SYS.ProgramFiles)\AutoIt3\SciTE\Paste\getpaste.exe" "$(NPP_DIRECTORY)"


      Die getpaste.au3 muss kompiliert werden. Der Pfad zur paste.exe kann natürlich angepasst werden.
      Notepad++ neu starten.

    • über Erweiterungen->NppExec->Advanced Options in der Combobox Associated script -Get From Pastebin- auswählen und mit Add/Modify hinzufügen. Notepad++ neu starten.
    • Der Eintrag ist dann unter Makro zu finden.

    Mehr zum Thema Notepad++ und AutoIt gibt's HIER

  • Cool! Ich habs gleich mal bei mir integriert :D
    NUR: Sobald ich aufs rote Kreuz drücke, kommt folgende Fehlermeldung

    Code
    Line 265  (File "C:\Programme\AutoIt3\SciTE\Paste\paste.au3"):
    
    
    $result = $array[$index][0]
    $result = $array[^ ERROR
    
    
    Error: Array variable subscript badly formatted.
    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Ja, ich seh's auch grad. Passiert beim ersten Aufruf des Skripts. Die Controls werden dann auch nur mit 1en gefüllt. Wenn dann die .ini erstellt wurde, klappt's ab dem nächsten Aufruf ohne Probleme. Hab ich wohl irgendwo geschlammpt.

    Nein, dafür muss man nirgendwo angemeldet sein. Das Skript nutzt die API von pastebin.com, macht also nix anderes als das was man auch direkt auf der Seite machen würde.

    edit: Ah jo, liegt an den IniWrites. Natürlich ziemlich blöd $syntax in die Combo zu schreiben wenn $syntax = IniWrite($settings, "main", "syntax", "autoit"). Da kommt natürlich nur 1 zurück. 8|

    edit2: Skript angepasst. Sorry, as war wirklich ein blöder Fehler.

  • Sehr schön, funktioniert einwandfrei.

  • Nein, eigentlich ist es nicht nur für kurze Skripte gedacht. Aber danke für den Hinweis.

    Das Problem waren die & im Quelltext. In einem POST Request indiziert ein & einen neuen Parameter. Deshalb wurde jeder Quelltext am ersten & abgeschnitten.
    Wieder so eine kleine Flüchtigkeit. Hab das Skript nochmal angepasst.

  • Jup, funktioniert jetzt ohne Probleme.
    Super gemacht!

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Ich habe den Thread grade eben erst entdeckt. :)

    Muss aber sagen das mir diese Erweiterung für Scite sehr gut gefällt. :)

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

  • Ich habe den Thread grade eben erst entdeckt. :)

    Muss aber sagen das mir diese Erweiterung für Scite sehr gut gefällt. :)

    Dito..

    Gefällt mir sehr gut und ist auch nützlich :)

  • Funktioniert gut, danke.

    Allerdings hast du in der Datei im Anhang

    Code
    .40.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\paste.au3" "$(FilePath)" "$(CurrentSelection)"


    anstatt

    Code
    command.40.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\paste.au3" "$(FilePath)" "$(CurrentSelection)"


    geschrieben ;)

  • Guten Abend,

    Leider funktioniert dein "Plugin" nicht mehr, am Ende erhalte ich keine URL sondern einen recht grossen HTML-Quelltext ;)

    Würde mich sehr freuen, wenn dieses "Plugin" wieder zum laufen gebracht wird.

    Lg, Fabian

  • Ersetz dein Skript mit der Version aus dem Startpost, dann geht's wieder.

    Das hätte ich doch als erstes machen sollen.. meine Version überprüfen -.-

    Vielen Dank, funktioniert natürlich :thumbup:

  • Kleines Update in Post#1.

    Sprenger120 war so nett und hat das Skript an die neue API angepasst.
    Pastebin.com unterstützt jetzt Benutzeraccounts. Dafür fallen die Subdomains
    weg. Das Feature hab ich deshalb gleich mit aus dem Skript geputzt.

    Die alte settings.ini sollte vor dem Gebrauch gelöscht werden.

  • ich hab mir die beiden Skripte heruntergeladen, ich habe aber keine SciteUser.properties es erscheint bei mir nur ein leeres Tabsheet. Kann mir einer die SciteUserProperties einstellen. Ich habe englisch als Sprache (also nichts verändert) und Version 1.79

    danke autoBert