Advertisement
guitarplayer616

FFF API

Jun 23rd, 2015
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.19 KB | None | 0 0
  1. function convertList(html)
  2.         local tmp = fs.open("tmp", "w")
  3.         tmp.write(html)
  4.         tmp.close()
  5.         local trends = {}
  6.         while #html > 0 do
  7.                 local _, st = html:find("<paste_key>")
  8.                 local en = html:find("</paste_key>")
  9.                 local key = html:sub(st + 1, en - 1)
  10.                 local _, st = html:find("<paste_title>")
  11.                 local en = html:find("</paste_title>")
  12.                 local title = html:sub(st + 1, en - 1)
  13.                 local _, st = html:find("<paste_size>")
  14.                 local en = html:find("</paste_size>")
  15.                 local size = html:sub(st + 1, en - 1)
  16.                 local _, st = html:find("<paste_hits>")
  17.                 local en = html:find("</paste_hits>")
  18.                 local hits = html:sub(st + 1, en - 1)
  19.                 trends[#trends + 1] = {title, key, size, hits}
  20.                 _, en = html:find("</paste>")
  21.                 html = html:sub(en + 1)
  22.         end
  23.         return trends --trends[n] = {title, key, size, hits}
  24. end
  25.  
  26. function uWords(string, x, y, txtcol, bakcol)
  27.         local w, h = term.getSize()
  28.         string = string or ""
  29.         txtcol = txtcol or colors.white
  30.         bakcol = bakcol or colors.black
  31.         if not tonumber(x) then
  32.                 x = x:gsub(" ", "")
  33.                 if x:sub(1, 1) == "l" then
  34.                         if x:find("+") then
  35.                                 offset = tonumber(x:sub(x:find("+") + 1))
  36.                                 term.setCursorPos(1 + offset, y)
  37.                         else
  38.                                 term.setCursorPos(1, y)
  39.                         end
  40.                 elseif x:sub(1, 1) == "c" then
  41.                         if x:find("+") then
  42.                                 offset = tonumber(x:sub(x:find("+") + 1))
  43.                                 term.setCursorPos(w/2 - #string/2 + 1 + offset, y)
  44.                         elseif x:find("-") then
  45.                                 offset = tonumber(x:sub(x:find("-") + 1))
  46.                                 term.setCursorPos(w/2 - #string/2 + 1 - offset, y)
  47.                         else
  48.                                 term.setCursorPos(w/2 - #string/2 + 1, y)
  49.                         end
  50.                 elseif x:sub(1, 1) == "r" then
  51.                         if x:find("-") then
  52.                                 offset = tonumber(x:sub(x:find("-") + 1))
  53.                                 term.setCursorPos(w - #string + 1 - offset, y)
  54.                         else
  55.                                 term.setCursorPos(w - #string + 1, y)
  56.                         end
  57.                 end
  58.         else
  59.                 term.setCursorPos(x, y)
  60.         end
  61.         term.setBackgroundColor(bakcol)
  62.         term.setTextColor(txtcol)
  63.         term.write(string)
  64. end
  65.  
  66. function displayTrends(trends)
  67.         local w, h = term.getSize()
  68.         local yPos = 1
  69.         while true do
  70.                 term.setBackgroundColor(colors.black)
  71.                 term.clear()
  72.                 paintutils.drawFilledBox(1, 1, w, 2, colors.gray)
  73.                 uWords("Trending Pastes", "c", 1, colors.white, colors.lightGray)
  74.                 uWords("Back", "r", 1, colors.white, colors.red)
  75.                 uWords("Title", 1, 2, colors.orange, colors.gray)
  76.                 uWords("|Size", "r - 6", 2, colors.orange, colors.gray)
  77.                 uWords("|Hits", "r", 2, colors.orange, colors.gray)
  78.                 for i = yPos, h + yPos - 3 do
  79.                         uWords(trends[i][1], 1, i - yPos + 3, colors.lightBlue, colors.black)
  80.                         uWords("          ", w - 10, i - yPos + 3, colors.black, colors.black)
  81.                         uWords("|" .. tostring(trends[i][3]), w - 10, i - yPos + 3, colors.lightBlue, colors.black)
  82.                         uWords("|" .. tostring(trends[i][4]), w - 4, i - yPos + 3, colors.lightBlue, colors.black)
  83.                 end
  84.                 local events = {coroutine.yield()}
  85.                 if events[1] == "key" then
  86.                         if events[2] == keys.up then
  87.                                 yPos = yPos - 1
  88.                         elseif events[2] == keys.down then
  89.                                 yPos = yPos + 1
  90.                         end
  91.                 elseif events[1] == "mouse_scroll" then
  92.                         yPos = yPos + events[2]
  93.                 end
  94.                 if yPos + h - 3 > #trends then
  95.                         yPos = yPos - 1
  96.                 elseif yPos < 1 then
  97.                         yPos = 1
  98.                 end
  99.                 if events[1] == "mouse_click" and events[2] == 1 then
  100.                         if events[3] >= w - 4 and events[4] == 1 then
  101.                                 uWords("Back", "r", 1, colors.white, colors.orange)
  102.                                 sleep(.2)
  103.                                 break
  104.                         elseif events[4] > 3 and events[3] < w/2 then
  105.                 local key = trends[events[4]][2]
  106.                 local file = 'read'
  107.                 local h = http.get("http://pastebin.com/raw.php?i="..textutils.urlEncode(key))
  108.                 local code = h.readAll()
  109.                 h.close()
  110.                 new = fs.open(file,"w")
  111.                 new.write(code)
  112.                 new.close()
  113.                
  114.             end
  115.                 end
  116.         end
  117. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement