Advertisement
Guest User

Untitled

a guest
Jul 29th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.21 KB | None | 0 0
  1. language = "$GER" -- AVAIABLE LANGUAGES: $GER, $ENG
  2. id = 446 -- ServerID
  3.  
  4. function translate(tString, lang)
  5.  
  6. translateGER = {
  7. ["$DOWNLOADS"] = "Downloads",
  8. ["$SECURED_FILES"] = "Gesicherte Datein",
  9. ["$FOLDER"] = "Ordner",
  10. ["$CHANGE_FOLDER"] = "Ordner waehlen",
  11. ["$LOGOUT"] = "Ausloggen",
  12. ["$SECURITY_ACCESS"] = "Sicherheitszugriff",
  13. ["$USERNAME"] = "Username",
  14. ["$PASSWORD"] = "Passwort",
  15. ["$SERVER_PROBLEM"] = "Keine Verbindung zum Server",
  16. ["$ACCESS_DENIED"] = "Zugriff verweigert",
  17. ["$SAVE"] = " Speichern ",
  18. ["$RUN"] = " Programm starten ",
  19. ["$EDIT"] = " Editieren ",
  20. ["$CANT_CONNECT"] = "Keine Verbindung",
  21. ["$TO_SERVER"] = "zum Server",
  22. ["$DOWNLOAD"] = " Download ",
  23. ["$DOWNLOAD_TOFOLDER"] = " Download in Ordner ",
  24. ["$DELETE"] = " Loeschen ",
  25. ["$SUCCESS_DOWNLOAD"] = "Erfolgreich heruntergeladen",
  26. ["$ALREADY_EXIST"] = "Datei existiert bereits!",
  27. }
  28.  
  29. translateENG = {
  30. ["$DOWNLOADS"] = "Downloads",
  31. ["$SECURED_FILES"] = "Secured Files",
  32. ["$FOLDER"] = "Folder",
  33. ["$CHANGE_FOLDER"] = "Change Folder",
  34. ["$LOGOUT"] = "Logout",
  35. ["$SECURITY_ACCESS"] = "Security Access",
  36. ["$USERNAME"] = "Username",
  37. ["$PASSWORD"] = "Password",
  38. ["$SERVER_PROBLEM"] = "Can't reach the server",
  39. ["$ACCESS_DENIED"] = "Access denied",
  40. ["$SAVE"] = " Save ",
  41. ["$RUN"] = " Run program ",
  42. ["$EDIT"] = " Edit ",
  43. ["$CANT_CONNECT"] = "Can't reach",
  44. ["$TO_SERVER"] = "the server",
  45. ["$DOWNLOAD"] = " Download ",
  46. ["$DOWNLOAD_TOFOLDER"] = " Download to Folder ",
  47. ["$DELETE"] = " Delete ",
  48. ["$SUCCESS_DOWNLOAD"] = "Successfully downloaded",
  49. ["$ALREADY_EXIST"] = "File already exists!",
  50. }
  51.  
  52. if lang == "$GER" then
  53.  
  54. return translateGER[tString]
  55.  
  56. elseif lang == "$ENG" then
  57.  
  58. return translateENG[tString]
  59.  
  60. end
  61.  
  62. end
  63.  
  64.  
  65. function design()
  66.  
  67. term.clear()
  68.  
  69. term.setCursorPos(1,1)
  70. term.setBackgroundColor(colors.lightGray)
  71. term.write(" ")
  72.  
  73. for i = 2,18 do
  74.  
  75. term.setCursorPos(1,i)
  76. term.setBackgroundColor(colors.white)
  77. term.write(" ")
  78. term.setBackgroundColor(colors.lightGray)
  79. term.write(" ")
  80. term.setBackgroundColor(colors.white)
  81. term.write(" ")
  82.  
  83. end
  84.  
  85. term.setCursorPos(1,19)
  86. term.setBackgroundColor(colors.lightGray)
  87. term.write(" ")
  88.  
  89. term.setTextColor(textcolor)
  90. term.setBackgroundColor(color)
  91. term.setCursorPos(9,1)
  92. term.write("| PC |")
  93. term.setCursorPos(36,1)
  94. term.write("| SERVER |")
  95. term.setCursorPos(1,1)
  96. term.write("v^")
  97. term.setCursorPos(29,1)
  98. term.write("v^")
  99. term.setCursorPos(51,19)
  100. term.setTextColor(colors.yellow)
  101. term.write("$")
  102. term.setCursorPos(1,19)
  103. term.setTextColor(colors.red)
  104. term.write("X")
  105. term.setTextColor(textcolor)
  106. term.write(dirText)
  107. term.setCursorPos(29,19)
  108. term.setTextColor(colors.red)
  109. term.write("X")
  110. term.setTextColor(textcolor)
  111. term.write(dirTextServer)
  112. term.setBackgroundColor(colors.red)
  113. term.setCursorPos(51,1)
  114. term.write("X")
  115. term.setBackgroundColor(coloritems)
  116. term.setCursorPos(1,1)
  117.  
  118. end
  119.  
  120.  
  121. function scrolldown()
  122.  
  123. minnumber = minnumber + 1
  124. maxnumber = maxnumber + 1
  125.  
  126. end
  127.  
  128.  
  129. function scrollup()
  130.  
  131. minnumber = minnumber - 1
  132. maxnumber = maxnumber - 1
  133.  
  134. end
  135.  
  136.  
  137. function scrolldowndownload()
  138.  
  139. minnum = minnum + 1
  140. maxnum = maxnum + 1
  141.  
  142. end
  143.  
  144.  
  145. function scrollupdownload()
  146.  
  147. minnum = minnum - 1
  148. maxnum = maxnum - 1
  149.  
  150. end
  151.  
  152.  
  153. function changeDir()
  154.  
  155. term.setBackgroundColor(color)
  156. term.setCursorPos(15,7)
  157. term.write(" ")
  158. term.setCursorPos(15,8)
  159. term.write(" ")
  160. term.setCursorPos(15,9)
  161. term.write(" ")
  162. term.setCursorPos(15,10)
  163. term.write(" ")
  164. term.setCursorPos(15,11)
  165. term.write(" ")
  166. term.setCursorPos(16,7)
  167. term.write("Name: ")
  168. term.write(translate("$CHANGE_FOLDER", language))
  169. term.setBackgroundColor(coloritems)
  170. term.setCursorPos(16,8)
  171. term.write(" ")
  172. term.setCursorPos(16,9)
  173. term.write(" ")
  174. term.setCursorPos(16,9)
  175. term.write(" "..translate("$FOLDER", language)..": ")
  176. term.setCursorPos(16,10)
  177. term.write(" ")
  178. term.setBackgroundColor(coloritems)
  179.  
  180. term.setCursorPos(19 + translate("$FOLDER", language):len(), 9)
  181. folderName = read()
  182.  
  183. if fs.isDir(folderName) then
  184.  
  185. dir = folderName
  186.  
  187. if dir == "" then
  188.  
  189. dir = "/"
  190.  
  191. end
  192.  
  193. dirText = " | "..folderName
  194.  
  195. if dirText == " | " then
  196.  
  197. dirText = " | "..translate("$CHANGE_FOLDER",language)
  198.  
  199. end
  200.  
  201. else
  202.  
  203. term.setCursorPos(1,19)
  204. term.write("Not a directory")
  205. sleep(2)
  206.  
  207. end
  208.  
  209. refreshScreen()
  210.  
  211. end
  212.  
  213.  
  214. function logout()
  215.  
  216. if secureAccess then
  217.  
  218. rednet.send(id, "I;")
  219. secureAccess = false;
  220. dirTextServer = " | ".. translate("$SECURED_FILES", language)
  221.  
  222. refreshScreen()
  223.  
  224. end
  225.  
  226. end
  227.  
  228.  
  229. function accessSecuredFolder()
  230.  
  231. term.setBackgroundColor(color)
  232. term.setCursorPos(15,6)
  233. term.write(" ")
  234. term.setCursorPos(15,7)
  235. term.write(" ")
  236. term.setCursorPos(15,8)
  237. term.write(" ")
  238. term.setCursorPos(15,9)
  239. term.write(" ")
  240. term.setCursorPos(15,10)
  241. term.write(" ")
  242. term.setCursorPos(15,11)
  243. term.write(" ")
  244. term.setCursorPos(16,6)
  245. term.write(translate("$SECURITY_ACCESS", language))
  246. term.setBackgroundColor(coloritems)
  247. term.setCursorPos(16,7)
  248. term.write(" ")
  249. term.setCursorPos(16,8)
  250. term.write(" ".. translate("$USERNAME", language) ..": ")
  251. term.setCursorPos(16,9)
  252. term.write(" ".. translate("$PASSWORD", language) ..": ")
  253. term.setCursorPos(16,10)
  254. term.write(" ")
  255.  
  256. term.setCursorPos(27,8)
  257. user = read()
  258. term.setCursorPos(27,9)
  259. pass = read("*")
  260.  
  261. rednet.send(id,"P;"..pass.."$"..user)
  262. a, b, c = rednet.receive()
  263.  
  264. if a == nil then
  265. term.setBackgroundColor(color)
  266. term.setCursorPos(1,19)
  267. term.write(translate("$SERVER_PROBLEM", language))
  268. sleep(1)
  269. else
  270.  
  271. if b == "DENIED" then
  272.  
  273. term.setBackgroundColor(color)
  274. term.setCursorPos(1,19)
  275. term.write(translate("$ACCESS_DENIED", language))
  276. sleep(1)
  277. secureAccess = false
  278. dirTextServer = " | ".. translate("$SECURED_FILES", language)
  279.  
  280. else
  281.  
  282. secureAccess = true
  283. dirTextServer = " | ".. translate("$LOGOUT", language)
  284.  
  285. end
  286.  
  287. end
  288.  
  289. refreshScreen()
  290.  
  291. end
  292.  
  293.  
  294. function refreshTables()
  295.  
  296. ItemDownloadVisible = 2
  297. ItemDownloadInvisible = 2
  298. y = 2
  299. visible = 2
  300. invisible = 2
  301. items = ";"
  302. listedPrograms = {}
  303. downloadList = {}
  304.  
  305. term.setBackgroundColor(coloritems)
  306. term.setCursorPos(1,2)
  307. term.write(" ")
  308. term.setCursorPos(1,3)
  309. term.write(" ")
  310. term.setCursorPos(1,4)
  311. term.write(" ")
  312. term.setCursorPos(1,5)
  313. term.write(" ")
  314. term.setCursorPos(1,6)
  315. term.write(" ")
  316. term.setCursorPos(1,7)
  317. term.write(" ")
  318. term.setCursorPos(1,8)
  319. term.write(" ")
  320. term.setCursorPos(1,9)
  321. term.write(" ")
  322. term.setCursorPos(1,10)
  323. term.write(" ")
  324. term.setCursorPos(1,11)
  325. term.write(" ")
  326. term.setCursorPos(1,12)
  327. term.write(" ")
  328. term.setCursorPos(1,13)
  329. term.write(" ")
  330. term.setCursorPos(1,14)
  331. term.write(" ")
  332. term.setCursorPos(1,15)
  333. term.write(" ")
  334. term.setCursorPos(1,16)
  335. term.write(" ")
  336. term.setCursorPos(1,17)
  337. term.write(" ")
  338. term.setCursorPos(1,18)
  339. term.write(" ")
  340.  
  341. term.setCursorPos(30,2)
  342. term.write(" ")
  343. term.setCursorPos(30,3)
  344. term.write(" ")
  345. term.setCursorPos(30,4)
  346. term.write(" ")
  347. term.setCursorPos(30,5)
  348. term.write(" ")
  349. term.setCursorPos(30,6)
  350. term.write(" ")
  351. term.setCursorPos(30,7)
  352. term.write(" ")
  353. term.setCursorPos(30,8)
  354. term.write(" ")
  355. term.setCursorPos(30,9)
  356. term.write(" ")
  357. term.setCursorPos(30,10)
  358. term.write(" ")
  359. term.setCursorPos(30,11)
  360. term.write(" ")
  361. term.setCursorPos(30,12)
  362. term.write(" ")
  363. term.setCursorPos(30,13)
  364. term.write(" ")
  365. term.setCursorPos(30,14)
  366. term.write(" ")
  367. term.setCursorPos(30,15)
  368. term.write(" ")
  369. term.setCursorPos(30,16)
  370. term.write(" ")
  371. term.setCursorPos(30,17)
  372. term.write(" ")
  373. term.setCursorPos(30,18)
  374. term.write(" ")
  375.  
  376. progs = fs.list(dir)
  377.  
  378. for index, sItem in pairs(progs) do
  379.  
  380. if fs.isDir(dir.."/"..sItem)==true then
  381.  
  382. listedPrograms[visible] = sItem
  383.  
  384. if visible >= minnumber and visible <= maxnumber then
  385.  
  386. term.setBackgroundColor(coloritems)
  387. term.setTextColor(colors.blue)
  388. term.setCursorPos(3,invisible)
  389. term.write(listedPrograms[visible])
  390. invisible = invisible + 1
  391.  
  392. end
  393.  
  394. visible = visible + 1
  395.  
  396. end
  397.  
  398. end
  399.  
  400. for index, sItem in pairs(progs) do
  401.  
  402. if fs.isDir(dir.."/"..sItem)~=true then
  403.  
  404. listedPrograms[visible] = sItem
  405.  
  406. if visible >= minnumber and visible <= maxnumber then
  407.  
  408. term.setTextColor(textcolor)
  409. term.setCursorPos(3,invisible)
  410. term.write(listedPrograms[visible])
  411. invisible = invisible + 1
  412.  
  413. end
  414.  
  415. visible = visible + 1
  416.  
  417. end
  418.  
  419. end
  420.  
  421. if not secureAccess then
  422.  
  423. rednet.send(id,"L;")
  424.  
  425. else
  426.  
  427. rednet.send(id,"J;")
  428.  
  429. end
  430.  
  431. a, dL, c = rednet.receive(timeout)
  432.  
  433. if a == nil then
  434.  
  435. term.setBackgroundColor(coloritems)
  436. term.setCursorPos(32,2)
  437. term.write(translate("$CANT_CONNECT", language))
  438. term.setCursorPos(32,3)
  439. term.write(translate("$TO_SERVER", language))
  440.  
  441. else
  442.  
  443. while string.find(dL,";") do
  444.  
  445. findNew = string.find(dL.."",";")
  446. downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
  447.  
  448. dL = string.sub(dL,string.find(dL.."",";")+1)
  449.  
  450. if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
  451.  
  452. if secureAccess then
  453. term.setBackgroundColor(colors.green)
  454. else
  455. term.setBackgroundColor(coloritems)
  456. end
  457.  
  458. term.setCursorPos(32,ItemDownloadInvisible)
  459. term.write(downloadList[ItemDownloadVisible])
  460. ItemDownloadInvisible = ItemDownloadInvisible + 1
  461.  
  462. end
  463.  
  464. ItemDownloadVisible = ItemDownloadVisible + 1
  465.  
  466. end
  467.  
  468. end
  469.  
  470. if dir ~= "/" then
  471.  
  472. term.setBackgroundColor(coloritems)
  473. term.setTextColor(colors.red)
  474. term.setCursorPos(1,2)
  475. term.write("<<")
  476. term.setTextColor(textcolor)
  477.  
  478. end
  479.  
  480. end
  481.  
  482.  
  483. function refreshScreen()
  484.  
  485.  
  486. ItemDownloadVisible = 2
  487. ItemDownloadInvisible = 2
  488. y = 2
  489. visible = 2
  490. invisible = 2
  491. items = ";"
  492. listedPrograms = {}
  493. downloadList = {}
  494.  
  495. design()
  496.  
  497. -- Tabellen
  498.  
  499. progs = fs.list(dir)
  500.  
  501. for index, sItem in pairs(progs) do
  502.  
  503. if fs.isDir(dir.."/"..sItem) then
  504.  
  505. listedPrograms[visible] = sItem
  506.  
  507. if visible >= minnumber and visible <= maxnumber then
  508.  
  509. term.setBackgroundColor(coloritems)
  510. term.setTextColor(colors.blue)
  511. term.setCursorPos(3,invisible)
  512. term.write(listedPrograms[visible])
  513. invisible = invisible + 1
  514.  
  515. end
  516.  
  517. visible = visible + 1
  518.  
  519. end
  520.  
  521. end
  522.  
  523. for index, sItem in pairs(progs) do
  524.  
  525. if fs.isDir(dir.."/"..sItem)~=true then
  526.  
  527. listedPrograms[visible] = sItem
  528.  
  529. if visible >= minnumber and visible <= maxnumber then
  530.  
  531. term.setTextColor(textcolor)
  532. term.setCursorPos(3,invisible)
  533. term.write(listedPrograms[visible])
  534. invisible = invisible + 1
  535.  
  536. end
  537.  
  538. visible = visible + 1
  539.  
  540. end
  541.  
  542. end
  543.  
  544. if not secureAccess then
  545.  
  546. rednet.send(id,"L;")
  547.  
  548. else
  549.  
  550. rednet.send(id,"J;")
  551.  
  552. end
  553.  
  554. a, dL, c = rednet.receive(timeout)
  555.  
  556. if a == nil then
  557.  
  558. term.setBackgroundColor(coloritems)
  559. term.setCursorPos(32,2)
  560. term.write(translate("$CANT_CONNECT", language))
  561. term.setCursorPos(32,3)
  562. term.write(translate("$TO_SERVER", language))
  563.  
  564. else
  565.  
  566. while string.find(dL,";") do
  567.  
  568. findNew = string.find(dL.."",";")
  569. downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
  570.  
  571. dL = string.sub(dL,string.find(dL.."",";")+1)
  572.  
  573. if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
  574.  
  575. if secureAccess then
  576. term.setBackgroundColor(colors.green)
  577. else
  578. term.setBackgroundColor(coloritems)
  579. end
  580.  
  581. term.setCursorPos(32,ItemDownloadInvisible)
  582. term.write(downloadList[ItemDownloadVisible])
  583. ItemDownloadInvisible = ItemDownloadInvisible + 1
  584.  
  585. end
  586.  
  587. ItemDownloadVisible = ItemDownloadVisible + 1
  588.  
  589. end
  590.  
  591. end
  592.  
  593. if dir ~= "/" then
  594.  
  595. term.setBackgroundColor(coloritems)
  596. term.setTextColor(colors.red)
  597. term.setCursorPos(1,2)
  598. term.write("<<")
  599. term.setTextColor(textcolor)
  600.  
  601. end
  602.  
  603. end
  604.  
  605.  
  606. function createAuswahlUpload( ypos )
  607.  
  608. if listedPrograms[ypos + minnumber - 2] then
  609.  
  610. term.setBackgroundColor(color)
  611. term.setCursorPos(15,5)
  612. term.write(" ")
  613. term.setCursorPos(15,6)
  614. term.write(" ")
  615. term.setCursorPos(15,7)
  616. term.write(" ")
  617. term.setCursorPos(15,8)
  618. term.write(" ")
  619. term.setCursorPos(15,9)
  620. term.write(" ")
  621. term.setCursorPos(15,10)
  622. term.write(" ")
  623. term.setCursorPos(15,11)
  624. term.write(" ")
  625. term.setCursorPos(15,12)
  626. term.write(" ")
  627. term.setCursorPos(16,5)
  628. term.write("Name: ")
  629. term.write(listedPrograms[ypos + minnumber - 2])
  630. term.setBackgroundColor(coloritems)
  631. term.setCursorPos(16,6)
  632. term.write(" ")
  633. term.setCursorPos(16,7)
  634. term.write(translate("$SAVE", language))
  635. term.setCursorPos(16,8)
  636. term.write(translate("$RUN", language))
  637. term.setCursorPos(16,9)
  638. term.write(translate("$EDIT", language))
  639. term.setCursorPos(16,10)
  640. term.write(translate("$DELETE", language))
  641. term.setCursorPos(16,11)
  642. term.write(" ")
  643. term.setBackgroundColor(coloritems)
  644.  
  645. event, side, x, y = os.pullEvent("mouse_click")
  646.  
  647. if x >= 16 and x <= 37 and y == 7 then
  648.  
  649. program = fs.open(dir.."/"..listedPrograms[ypos + minnumber - 2],"r")
  650. programdata = program.readAll()
  651. program.close()
  652.  
  653. if secureAccess then
  654. rednet.send(id,"R;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
  655. else
  656. rednet.send(id,"U;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
  657. end
  658.  
  659. a,b,c = rednet.receive(timeout)
  660.  
  661. if a == nil then
  662. term.setBackgroundColor(color)
  663. term.setCursorPos(1,19)
  664. term.write(translate("$SERVER_PROBLEM", language))
  665. sleep(1)
  666. else
  667. term.setBackgroundColor(color)
  668. term.setCursorPos(1,19)
  669. term.write(" ")
  670. term.setCursorPos(1,19)
  671. term.write(b)
  672. sleep(1)
  673. end
  674.  
  675. elseif x >= 16 and x <= 37 and y == 8 then
  676.  
  677. terminateProc = true;
  678. shell.run(dir.."/"..listedPrograms[ypos + minnumber - 2])
  679.  
  680. elseif x >= 16 and x <= 37 and y == 9 then
  681.  
  682. shell.run("edit "..dir.."/"..listedPrograms[ypos + minnumber - 2])
  683.  
  684. elseif x >= 16 and x <= 37 and y == 10 then
  685.  
  686. fs.delete(dir.."/"..listedPrograms[ypos + minnumber - 2])
  687.  
  688. end
  689.  
  690. refreshScreen()
  691.  
  692. end
  693.  
  694. end
  695.  
  696.  
  697. function createAuswahlDownload( ypos )
  698.  
  699. if downloadList[ypos + minnum - 2] then
  700.  
  701. term.setBackgroundColor(color)
  702. term.setCursorPos(15,5)
  703. term.write(" ")
  704. term.setCursorPos(15,6)
  705. term.write(" ")
  706. term.setCursorPos(15,7)
  707. term.write(" ")
  708. term.setCursorPos(15,8)
  709. term.write(" ")
  710. term.setCursorPos(15,9)
  711. term.write(" ")
  712. term.setCursorPos(15,10)
  713. term.write(" ")
  714. term.setCursorPos(15,11)
  715. term.write(" ")
  716. term.setCursorPos(16,5)
  717. term.write("Name: ")
  718. term.write(downloadList[ypos + minnum - 2])
  719. term.setBackgroundColor(coloritems)
  720. term.setCursorPos(16,6)
  721. term.write(" ")
  722. term.setCursorPos(16,7)
  723. term.write(translate("$DOWNLOAD", language))
  724. term.setCursorPos(16,8)
  725. term.write(translate("$DOWNLOAD_TOFOLDER", language))
  726. term.setCursorPos(16,9)
  727. term.write(translate("$DELETE", language))
  728. term.setCursorPos(16,10)
  729. term.write(" ")
  730. term.setBackgroundColor(color)
  731.  
  732. event, side, x, y = os.pullEvent("mouse_click")
  733.  
  734. if x >= 16 and x <= 37 and y == 7 then
  735.  
  736. if secureAccess then
  737. rednet.send(id, "V;"..downloadList[ypos + minnum - 2])
  738. else
  739. rednet.send(id,"D;"..downloadList[ypos + minnum - 2])
  740. end
  741.  
  742. a, b, c = rednet.receive(timeout)
  743.  
  744. if a == nil then
  745.  
  746. term.setBackgroundColor(color)
  747. term.setCursorPos(1,19)
  748. term.write(" ")
  749. term.setCursorPos(1,19)
  750. term.write(translate("$SERVER_PROBLEM", language))
  751.  
  752. else
  753.  
  754. if not fs.exists("Downloads/"..downloadList[ypos + minnum - 2]) then
  755.  
  756. File = fs.open("Downloads/"..downloadList[ypos + minnum - 2],"w")
  757. File.write(b)
  758. File.close()
  759. term.setCursorPos(1,19)
  760. term.write(" ")
  761. term.setCursorPos(1,19)
  762. term.write(translate("$SUCCESS_DOWNLOAD", language))
  763. sleep(1)
  764.  
  765. else
  766.  
  767. term.setCursorPos(1,19)
  768. term.write(" ")
  769. term.setCursorPos(1,19)
  770. term.write(translate("$ALREADY_EXIST", language))
  771. sleep(1)
  772.  
  773. end
  774.  
  775. end
  776.  
  777. elseif x >= 16 and x <= 37 and y == 8 then
  778.  
  779. if secureAccess then
  780. rednet.send(id, "V;"..downloadList[ypos + minnum - 2])
  781. else
  782. rednet.send(id,"D;"..downloadList[ypos + minnum - 2])
  783. end
  784.  
  785. a, b, c = rednet.receive(timeout)
  786.  
  787. if a == nil then
  788.  
  789. term.setBackgroundColor(color)
  790. term.setCursorPos(1,19)
  791. term.write(" ")
  792. term.setCursorPos(1,19)
  793. term.write(translate("$SERVER_PROBLEM", language))
  794.  
  795. else
  796.  
  797. if not fs.exists(dir.."/"..downloadList[ypos + minnum - 2]) then
  798.  
  799. File = fs.open(dir.."/"..downloadList[ypos + minnum - 2],"w")
  800. File.write(b)
  801. File.close()
  802. term.setCursorPos(1,19)
  803. term.write(" ")
  804. term.setCursorPos(1,19)
  805. term.write(translate("$SUCCESS_DOWNLOAD", language))
  806. sleep(1)
  807.  
  808. else
  809.  
  810. term.setCursorPos(1,19)
  811. term.write(" ")
  812. term.setCursorPos(1,19)
  813. term.write(translate("$ALREADY_EXIST", language))
  814. sleep(1)
  815.  
  816. end
  817.  
  818. end
  819.  
  820.  
  821. elseif x >= 16 and x <= 37 and y == 9 then
  822.  
  823. if secureAccess then
  824. rednet.send(id,"W;"..downloadList[ypos + minnum - 2])
  825. else
  826. rednet.send(id,"B;"..downloadList[ypos + minnum - 2])
  827. end
  828.  
  829. a,b,c = rednet.receive(timeout)
  830.  
  831. if a == nil then
  832.  
  833. term.setBackgroundColor(color)
  834. term.setCursorPos(1,19)
  835. term.write(" ")
  836. term.setCursorPos(1,19)
  837. term.write(translate("$SERVER_PROBLEM", language))
  838. sleep(1)
  839.  
  840. else
  841.  
  842. term.setBackgroundColor(color)
  843. term.setCursorPos(1,19)
  844. term.write(" ")
  845. term.setCursorPos(1,19)
  846. term.write(b)
  847. sleep(1)
  848.  
  849. end
  850.  
  851. end
  852.  
  853. refreshScreen()
  854.  
  855. end
  856.  
  857.  
  858. end
  859.  
  860.  
  861. -- Programm
  862.  
  863.  
  864.  
  865. dir = "/"
  866. dirText = " | ".. translate("$CHANGE_FOLDER", language)
  867. dirTextServer = " | ".. translate("$SECURED_FILES", language)
  868.  
  869. modemside = ""
  870.  
  871. while modemside == "" do
  872.  
  873. for i, side in pairs(peripheral.getNames()) do
  874.  
  875. if (peripheral.getType(side) == "modem") then
  876.  
  877. modemside = side
  878.  
  879. end
  880.  
  881. end
  882.  
  883. if modemside == "" then
  884.  
  885. sleep(2)
  886.  
  887. end
  888.  
  889. end
  890.  
  891. color = colors.lightGray
  892. coloritems = colors.white
  893. textcolor = colors.black
  894.  
  895. secureAccess = false;
  896.  
  897. minnumber = 2
  898. maxnumber = 18
  899. minnum = 2
  900. maxnum = 18
  901. timeout = 0.5
  902. downloadList = {}
  903.  
  904. rednet.open(modemside)
  905.  
  906. fs.makeDir("Downloads")
  907.  
  908. ItemDownloadVisible = 2
  909. ItemDownloadInvisible = 2
  910. y = 2
  911. visible = 2
  912. invisible = 2
  913. items = ";"
  914. listedPrograms = {}
  915. downloadList = {}
  916.  
  917. design()
  918.  
  919. -- Tabellen
  920.  
  921. progs = fs.list(dir)
  922.  
  923. for index, sItem in pairs(progs) do
  924.  
  925. if fs.isDir(dir.."/"..sItem)==true then
  926.  
  927. listedPrograms[visible] = sItem
  928.  
  929. if visible >= minnumber and visible <= maxnumber then
  930.  
  931. term.setBackgroundColor(coloritems)
  932. term.setTextColor(colors.blue)
  933. term.setCursorPos(3,invisible)
  934. term.write(listedPrograms[visible])
  935. invisible = invisible + 1
  936.  
  937. end
  938.  
  939. visible = visible + 1
  940.  
  941. end
  942.  
  943. end
  944.  
  945. for index, sItem in pairs(progs) do
  946.  
  947. if fs.isDir(dir.."/"..sItem)~=true then
  948.  
  949. listedPrograms[visible] = sItem
  950.  
  951. if visible >= minnumber and visible <= maxnumber then
  952.  
  953. term.setTextColor(textcolor)
  954. term.setCursorPos(3,invisible)
  955. term.write(listedPrograms[visible])
  956. invisible = invisible + 1
  957.  
  958. end
  959.  
  960. visible = visible + 1
  961.  
  962. end
  963.  
  964. end
  965.  
  966. if not secureAccess then
  967.  
  968. rednet.send(id,"L;")
  969.  
  970. else
  971.  
  972. rednet.send(id,"J;")
  973.  
  974. end
  975.  
  976. a, dL, c = rednet.receive(timeout)
  977.  
  978. if a == nil then
  979.  
  980. term.setBackgroundColor(coloritems)
  981. term.setCursorPos(32,2)
  982. term.write(translate("$CANT_CONNECT", language))
  983. term.setCursorPos(32,3)
  984. term.write(translate("$TO_SERVER", language))
  985.  
  986. else
  987.  
  988. while string.find(dL,";") do
  989.  
  990. findNew = string.find(dL.."",";")
  991. downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
  992.  
  993. dL = string.sub(dL,string.find(dL.."",";")+1)
  994.  
  995. if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
  996.  
  997. if secureAccess then
  998. term.setBackgroundColor(colors.green)
  999. else
  1000. term.setBackgroundColor(coloritems)
  1001. end
  1002.  
  1003. term.setCursorPos(32,ItemDownloadInvisible)
  1004. term.write(downloadList[ItemDownloadVisible])
  1005. ItemDownloadInvisible = ItemDownloadInvisible + 1
  1006.  
  1007. end
  1008.  
  1009. ItemDownloadVisible = ItemDownloadVisible + 1
  1010.  
  1011. end
  1012.  
  1013. end
  1014.  
  1015.  
  1016. -- Programm
  1017.  
  1018.  
  1019. while true do
  1020.  
  1021. event, side, x, y = os.pullEvent()
  1022.  
  1023. terminateProc = false
  1024.  
  1025. if event == "mouse_click" then
  1026.  
  1027. if x > 2 and x < 25 and y > 1 and y < 19 then
  1028.  
  1029. if listedPrograms[y + minnumber - 2] then
  1030.  
  1031. if not fs.isDir(dir.."/"..listedPrograms[y + minnumber - 2]) then
  1032.  
  1033. createAuswahlUpload(y)
  1034.  
  1035. else
  1036.  
  1037. dir = dir.."/"..listedPrograms[y + minnumber - 2]
  1038. dirText = " | "..listedPrograms[y + minnumber - 2]
  1039. refreshScreen()
  1040.  
  1041. end
  1042.  
  1043. end
  1044.  
  1045. elseif x >= 1 and x <= 2 and y == 2 then
  1046.  
  1047. if dir ~= "/" then
  1048.  
  1049. dir = "/"
  1050. dirText = " | "..translate("$CHANGE_FOLDER", language)
  1051.  
  1052. refreshScreen()
  1053.  
  1054. end
  1055.  
  1056. elseif x > 31 and x < 46 and y > 1 and y < 19 then
  1057.  
  1058. createAuswahlDownload(y)
  1059.  
  1060. elseif x == 51 and y == 1 then
  1061.  
  1062. term.setBackgroundColor(colors.black)
  1063. term.clear()
  1064. term.setCursorPos(1,1)
  1065. terminateProc = true
  1066.  
  1067. elseif x == 51 and y == 19 then
  1068.  
  1069. refreshScreen()
  1070.  
  1071. elseif x == 1 and y == 1 and maxnumber < visible-1 and minnumber < visible then
  1072.  
  1073. scrolldown()
  1074. refreshTables()
  1075.  
  1076. elseif x == 2 and y == 1 and maxnumber > 18 and minnumber > 2 then
  1077.  
  1078. scrollup()
  1079. refreshTables()
  1080.  
  1081. elseif x == 29 and y == 1 and maxnum < ItemDownloadVisible-1 and minnum < ItemDownloadVisible then
  1082.  
  1083. scrolldowndownload()
  1084. refreshTables()
  1085.  
  1086. elseif x == 30 and y == 1 and maxnum > 18 and minnum > 2 then
  1087.  
  1088. scrollupdownload()
  1089. refreshTables()
  1090.  
  1091. elseif x == 1 and y == 19 then
  1092.  
  1093. changeDir()
  1094. refreshScreen()
  1095.  
  1096. elseif x == 29 and y == 19 then
  1097.  
  1098. if secureAccess then
  1099.  
  1100. logout()
  1101.  
  1102. else
  1103.  
  1104. accessSecuredFolder()
  1105.  
  1106. end
  1107.  
  1108. end
  1109.  
  1110. elseif event == "mouse_scroll" then
  1111.  
  1112. if side == 1 and maxnumber < visible - 1 and minnumber < visible then
  1113.  
  1114. scrolldown()
  1115. refreshTables()
  1116.  
  1117. elseif side == -1 and maxnumber > 18 and minnumber > 2 then
  1118.  
  1119. scrollup()
  1120. refreshTables()
  1121.  
  1122. elseif side == 1 and maxnum < ItemDownloadVisible-1 and minnum < ItemDownloadVisible then
  1123.  
  1124. scrolldowndownload()
  1125. refreshTables()
  1126.  
  1127. elseif side == -1 and maxnum > 18 and minnum > 2 then
  1128.  
  1129. scrollupdownload()
  1130. refreshTables()
  1131.  
  1132. end
  1133.  
  1134. end
  1135.  
  1136. if (terminateProc) then
  1137.  
  1138. break
  1139.  
  1140. end
  1141.  
  1142. end
  1143.  
  1144. -- Scripted by Streetboy_xD
  1145. -- Please keep this text in the program.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement