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