Skip to content

Commit ffb39be

Browse files
committed
Add reference version of market from turtlescripts.com
1 parent c585a0f commit ffb39be

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

market.cc.lua

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
--Market by: TurtleScripts.com
2+
--This is a modified version of the PasteBin script to work directly with TurtleScript project files.
3+
local tArgs = { ... }
4+
5+
local function printUsage()
6+
term.clear()
7+
term.setCursorPos(1,1)
8+
print( "TurtleMarket v1.0 BETA [#gjdgyl]" )
9+
print( "-------------------------------------------------" )
10+
print( "by: TurtleScripts.com (update file_key: #gjdgz7)" )
11+
print( " " )
12+
print( "Usages:" )
13+
print( " ==UPLOAD==" )
14+
print( " market put (file_key) (filename) (write_pin)" )
15+
print( " [pin req'd]" )
16+
print( " ==DOWNLOAD==" )
17+
print( " market get (file_key) (filename) (read_pin) [y]" )
18+
print( " [pin req'd for private/drafts]" )
19+
print( " " )
20+
end
21+
22+
local function putFile(sCode, sFile, sPin, sOverride)
23+
local sPath = shell.resolve( sFile )
24+
if not fs.exists( sPath ) or fs.isDir( sPath ) then
25+
print( "No such file" )
26+
return
27+
end
28+
local sName = fs.getName( sPath )
29+
local file = fs.open( sPath, "r" )
30+
local sText = file.readAll()
31+
file.close()
32+
write( "Connecting to TurtleScripts.com... " )
33+
local response = http.post("http://api.turtlescripts.com/putFileRaw/"..textutils.urlEncode( sCode ),"pin="..sPin.."&".."data="..textutils.urlEncode(sText))
34+
if response then
35+
print( "Success." )
36+
local sResponse = response.readAll()
37+
response.close()
38+
print( " " )
39+
print( "Local: "..sFile )
40+
print( "Remote: #"..sCode )
41+
print( "[==========================================] 100%" )
42+
print(string.len(sText).." bytes")
43+
print( " " )
44+
print( "Upload Complete." )
45+
else
46+
print( "Failed." )
47+
print( " " )
48+
print( "ERROR: The file key is bad or project pin is wrong." )
49+
end
50+
end
51+
local function getFile(sCode, sFile, sPin, sOverride)
52+
local sPath = shell.resolve( sFile )
53+
if sCode == "" then
54+
print( "You must specify a File Key from TurtleScripts.com!" )
55+
return
56+
end
57+
if sFile == "" then
58+
print( "You must specify a Filename to write to!" )
59+
return
60+
end
61+
if fs.exists( sPath ) then
62+
print( "File already exists" )
63+
if sOverride == "" and (sPin ~= "y" or sOverride ~= "") then
64+
return
65+
end
66+
end
67+
write( "Connecting to TurtleScripts.com... " )
68+
local response = http.post("http://api.turtlescripts.com/getFileRaw/"..textutils.urlEncode( sCode ),"pin="..sPin)
69+
if response then
70+
print( "Success." )
71+
local sResponse = response.readAll()
72+
response.close()
73+
local file = fs.open( sPath, "w" )
74+
file.write( sResponse )
75+
file.close()
76+
print( " " )
77+
print( "Remote: #"..sCode )
78+
print( "Local: "..sFile )
79+
print( "[==========================================] 100%" )
80+
print(string.len(sResponse).." bytes")
81+
print( " " )
82+
print( "Downloaded Complete." )
83+
else
84+
print( "Failed." )
85+
print( " " )
86+
print( "ERROR: The file key is bad or project is private (in which case, did you specify your project pin??)." )
87+
end
88+
end
89+
90+
local gui_mode = false
91+
if #tArgs < 3 then
92+
printUsage()
93+
return
94+
end
95+
local sCommand = tArgs[1]
96+
local sCode = tArgs[2] or ""
97+
local sFile = tArgs[3] or ""
98+
local sPin = tArgs[4] or ""
99+
if sCommand == "put" then
100+
putFile(sCode, sFile, sPin)
101+
elseif sCommand == "get" then
102+
local sOverride = tArgs[5] or ""
103+
getFile(sCode, sFile, sPin, sOverride)
104+
else
105+
printUsage()
106+
return
107+
end

0 commit comments

Comments
 (0)