Advertisement
guitarplayer616

FFF API2

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