Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Utilises viluon's Google Translate - http://www.computercraft.info/forums2/index.php?/topic/18568-google-translate-in-cc/
- glass = peripheral.wrap("left") -- Terminal Glasses (OpenPeripherals)
- chat = peripheral.wrap("right") -- Chatbox (MoarPeripherals)
- glass.clear()
- in_lang = "en"
- out_lang = "fr"
- me = "playername"
- encode = textutils.urlEncode
- translations = {}
- chatTimers = {}
- term.clear()
- term.setCursorPos(1,1)
- print("Terminal Glasses Translate By ValiarMarcus")
- print("Powered by Google Translate c/o viluon")
- function responseClean(rStr)
- rStr=string.sub(rStr,string.find(rStr,"<parse>(.-)</parse>")) --cleans out crazy header
- rStr=string.gsub(rStr,"<(.-)>","") --cleans out parses
- rStr=string.gsub(rStr,"\n","") --cleans out random newline
- rStr=string.gsub(rStr,"%+"," ") --re-inserts spaces
- return rStr
- end
- function outputFormat(oStr, lang)
- oStr="http://acos.bluefile.cz/translate.php?input="..encode(oStr).."&from=auto&to="..lang
- return oStr
- end
- function translate(str, lang)
- return responseClean(http.get(outputFormat(str,lang)).readAll())
- end
- function glassOutput(user, message)
- local output = string.format("<%s> %s", user, message)
- translations[#translations+1] = output
- chatTimers[os.startTimer(5)]=true
- glassPrint()
- end
- function glassPrint()
- glass.clear()
- glass.addBox(1,10,320,#translations*12,0x000000,0.4)
- for i,j in pairs(translations) do
- glass.addText(5,i*12,j,0xFFFFFF)
- end
- end
- function chatPrint(name, message)
- local output = string.format("<%s> %s", user, message)
- chat.say(output)
- end
- while true do
- local event, param1, param2, param3, param4 = os.pullEvent()
- if event == "chat_message" then
- local translation = translate(param3,in_lang)
- if translation ~= param3 then --only print if it wasn't in English
- glassOutput(param2, translation)
- end
- elseif event == "chat_command" then
- chatPrint(me, translate(param1, out_lang))
- elseif event == "timer" then
- table.remove(translations,1)
- chatTimers[param1]=nil
- glassPrint()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment