apiuploadluarobloxpastebin

Lua - Uploading to Pastebin


Note that this is Roblox's version of lua. I want to upload a table to Pastebin. Here is what I have for Pastebin.

h = game:GetService'HttpService'
JSON = h:JSONEncode(ImgScript) --ImgScript is a table formatted like {{x,y,z}, {x,y,z}, {x,y,z}, etc.}
h:PostAsync('http://pastebin.com/api/api_post.php','&api_dev_key=CensoredDevKey&api_option=paste&api_paste_code=' .. JSON)

This doesn't work, and I can't seem to figure out why.

EDIT: I also tried this and it didn't work.

h = game:GetService'HttpService'
api_params = {
    ["api_dev_key"] = "CensoredDevKey",
    ["api_option"] = "paste",
    ["api_paste_code"] = ImgScript
}
api_params = h:JSONEncode(api_params)
h:PostAsync('http://www.pastebin.com/api/api_post.php', api_params)

EDIT: I also tried this and it didn't work:

h = game:GetService'HttpService'
JSON = h:JSONEncode(ImgScript) --ImgScript is a table formatted like {{x,y,z}, {x,y,z}, {x,y,z}, etc.}
data = h:UrlEncode('&api_dev_key=CensoredDevKey&api_option=paste&api_paste_code=' .. JSON)
h:PostAsync('http://pastebin.com/api/api_post.php', data)

Solution

  • So I've finished the code, but sadly, Roblox limits the PostAsync size to 256 bytes so any upload larger than that will be GZIPed (up to 1024kb), which Pastebin doesn't know what to do with.

    Anyhow, I've released the code here: http://www.roblox.com/Pastebin-Upload-item?id=302297532

    It is:

    --Created by GShocked. PM me if you have questions!
    
    h = game:GetService'HttpService'
    api_dev_key = '' --Your Pastebin developer key goes here. Log in first, and then you can find it at pastebin.com/api
    api_paste_code = '' --The content of your new paste
    api_paste_private = '1' --0 public; 1 unlisted; 2 private
    api_paste_name = '' --Name your new paste
    api_paste_expire_date = 'N' --N for never expire, 10M for 10 minutes, etc.
    api_paste_format = 'lua' --The syntax highlighting
    api_user_key = '' --This is generated using the login info
    api_paste_name = h:UrlEncode(api_paste_name)
    api_paste_code = h:UrlEncode(api_paste_code)
    username = '' --Your Pastebin username goes here
    password = '' --Your Pastebin password goes here
    
    api_user_key = h:PostAsync(
        'http://pastebin.com/api/api_login.php',
        'api_dev_key=' .. api_dev_key .. '&api_user_name=' .. username .. '&api_user_password=' .. password,
        2
    )
    print(api_user_key) --DON'T DELETE THIS! IT IS ESSENTIAL FOR THE USER KEY TO BE GENERATED!
    h:PostAsync(
        'http://pastebin.com/api/api_post.php',
        'api_option=paste&api_user_key=' .. api_user_key .. '&api_paste_private=' .. api_paste_private .. '&api_paste_name=' .. api_paste_name .. '&api_paste_expire_date=' .. api_paste_expire_date .. '&api_paste_format=' .. api_paste_format .. '&api_dev_key=' .. api_dev_key .. '&api_paste_code=' .. api_paste_code,
        2
    )