Advertisement
MoonlightOwl

Bash Printer by Totoro

Sep 15th, 2014
660
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.23 KB | None | 0 0
  1. uni = require('unicode')
  2. event = require('event')
  3. inet = require('internet')
  4. com = require('component')
  5. gpu = com.gpu
  6. printer = com.printer
  7.  
  8. width, height = gpu.getResolution()
  9. dist = '-'
  10. for i=1, width-2 do dist = dist..'=' end
  11. dist = dist..'-'
  12.  
  13. print("Press any key to get.")
  14.  
  15. function checkPaper()
  16.   while printer.getPaperLevel() == 0 do
  17.     print("[ERROR] No paper! 'Q' to cancel, any key to continue...")
  18.     while true do
  19.       name, add, a, b, c, d = event.pull(2)
  20.       if name == 'key_down' then
  21.         if b == 16 then return false
  22.         else break end
  23.       end
  24.     end
  25.   end
  26.   while printer.getInkLevel() == 0 do
  27.     print("[ERROR] No ink! 'Q' to cancel, any key to continue...")
  28.     while true do
  29.       name, add, a, b, c, d = event.pull(2)
  30.       if name == 'key_down' then
  31.         if b == 16 then return false
  32.         else break end
  33.       end
  34.     end
  35.   end
  36.   return true
  37. end
  38.  
  39. while true do
  40.   name, add, a, b, c, d = event.pull(2)
  41.   if name == 'key_down' then
  42.     if b == 16 then break
  43.     elseif b == 25 then
  44.       print('[>>> Printing quote <<<]')
  45.       if checkPaper() then
  46.         printer.newPage()
  47.         printer.setPageTitle("Totoro Inc.")
  48.         y = 1
  49.         q = uni.upper(q)
  50.         for i=1, uni.len(q) do
  51.           -- type
  52.           c = uni.sub(q, i, i)
  53.           if c == 'Ё' then printer.write('Е')
  54.           elseif c ~= '\n' then printer.write(c) end
  55.           -- rewind
  56.           if i%25 == 0 or c == '\n' then
  57.             y = y+1
  58.             -- new page
  59.             if y>21 then
  60.               y = 1
  61.               printer.endPage()
  62.               if checkPaper() then
  63.                 printer.newPage()
  64.               end
  65.             end
  66.             printer.setCursorPos(1,y)
  67.           end
  68.         end
  69.         printer.endPage()
  70.       end
  71.     end
  72.  
  73.     print(dist)
  74.     q = ''
  75.  
  76.     for line in inet.request('http://bash.im/forweb/?u') do
  77.       q = q..line
  78.     end
  79.  
  80.     q = string.gsub(q, '.*1em 0;">', '')
  81.     q = string.gsub(q, "<' %+ '/div>.*", '')
  82.     q = string.gsub(q, "<' %+ 'br.?.?>", '\n')
  83.     q = string.gsub(q, "&quot;", '"')
  84.     q = string.gsub(q, "&lt;", '<')
  85.     q = string.gsub(q, "&gt;", '>')
  86.     q = string.gsub(q, "&#39;", "'")
  87.  
  88.     print(q)
  89.   end
  90. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement