View difference between Paste ID: kHAFyh0a and i48kFL9X
SHOW: | | - or go back to the newest paste.
1
-- Download i48kFL9X and save it as paste --
2
local function printUsage()
3
print( "Usages:" )
4
print( "paste put <filename>" )
5
print( "paste get <code> <filename>" )
6
end
7
local tArgs = { ... }
8
if #tArgs < 2 then
9
printUsage()
10
return
11
end
12
local sCommand = tArgs[1]
13
if sCommand == "put" then
14
-- Upload a file to pastebin.com
15
-- Determine file to upload
16
local sFile = tArgs[2]
17
local sPath = shell.resolve( sFile )
18
if not fs.exists( sPath ) or fs.isDir( sPath ) then
19
print( "No such file" )
20
return
21
end
22
write("Enter paste name: ")
23
sName = read()
24
25
-- Read in the file
26
if sName == "" then local sName = fs.getName( sPath ) end
27
local file = fs.open( sPath, "r" )
28
local sText = file.readAll()
29
file.close()
30
-- Log in
31
print("Log in? y/n")
32
while true do
33
login = read()
34
if login == "y" or login == "n" then break end
35
end
36
if login == "y" then
37
write("Username: ")
38
username = textutils.urlEncode(read())
39
write("Password: ")
40
password = textutils.urlEncode(read("*"))
41
end
42
write( "Connecting to pastebin.com... " )
43
local key = "0ec2eb25b6166c0c27a394ae118ad829"
44
if login == "y" then
45
local userraw = http.post(
46
"http://pastebin.com/api/api_login.php",
47
"api_dev_key="..key.."&"..
48
"api_user_name="..username.."&"..
49
"api_user_password="..password
50
)
51
-- get user code in annoying roundabout way
52
-- error/bug/?: userraw[1]() doesn't work
53
for i,v in pairs(userraw) do
54
user = v()
55
break
56
end
57
-- check for errors with pastebin
58
if string.sub(user, 1, 3) == "Bad" then print("\n"..user) error("") end
59
local response = http.post(
60
"http://pastebin.com/api/api_post.php",
61
"api_option=paste&"..
62
"api_dev_key="..key.."&"..
63
"api_user_key="..user.."&"..
64
"api_paste_format=lua&"..
65
"api_paste_name="..textutils.urlEncode(sName).."&"..
66
"api_paste_code="..textutils.urlEncode(sText)
67
)
68
69
print("Done")
70
print("Check your pastes for find your file")
71
else
72
local response = http.post(
73
"http://pastebin.com/api/api_post.php",
74
"api_option=paste&"..
75
"api_dev_key="..key.."&"..
76
"api_paste_format=lua&"..
77
"api_paste_name="..textutils.urlEncode(sName).."&"..
78
"api_paste_code="..textutils.urlEncode(sText)
79
)
80
if response then
81
print( "Success." )
82
83
local sResponse = response.readAll()
84
response.close()
85
86
local sCode = string.match( sResponse, "[^/]+$" )
87
print( "Uploaded as "..sResponse )
88
print( "Run \"pastebin get "..sCode.."\" to download anywhere" )
89
else
90
print( "Failed." )
91
end
92
end
93
94
elseif sCommand == "get" then
95
-- Download a file from pastebin.com
96
if #tArgs < 3 then
97
printUsage()
98
return
99
end
100
-- Determine file to download
101
local sCode = tArgs[2]
102
local sFile = tArgs[3]
103
local sPath = shell.resolve( sFile )
104
if fs.exists( sPath ) then
105
print( "File already exists" )
106
return
107
end
108
109
-- GET the contents from pastebin
110
write( "Connecting to pastebin.com... " )
111
local response = http.get(
112
"http://pastebin.com/raw.php?i="..textutils.urlEncode( sCode )
113
)
114
115
if response then
116
print( "Success." )
117
118
local sResponse = response.readAll()
119
response.close()
120
121
local file = fs.open( sPath, "w" )
122
file.write( sResponse )
123
file.close()
124
125
print( "Downloaded as "..sFile )
126
127
else
128
print( "Failed." )
129
end
130
else
131
printUsage()
132
return
133
end