'// Based off FiftyToo's StealthBot Translate Script

Dim oHTTP

Sub Script(Name, Major, Minor, Build, Author, Commands, Description)
	Name = "Translate Script"
	Major = 1
	Minor = 0
	Build = 0
	Author = "Chriso"
	Commands = "translate"
	Description = "Translate text into a different language."
End Sub

Sub Event_Load()
	Set oHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
	CreateCommand "translate", "Translate", "Command_Translate", "", "language1, language2, text", "Translate text into a different language.", 0, True
End Sub

Sub Command_Translate(CS)
	If InStr(CS.Message, " ") > 0 Then
		Dim S
		S = Split(CS.Message, " ", 3)
		If UBound(S) = 2 Then
			Dim sLang1, sLang2, sLang
			sLang1 = ExpandLanguage(S(0))
			sLang2 = ExpandLanguage(S(1))
			If Len(sLang1) = 0 Or Len(sLang2) = 0 Then
				Send "Invalid language specified!"
				Exit Sub
			End If
			sLang = sLang1 & "/" & sLang2
			Send "Translation in progress (" & sLang & ")..."
			Translate S(2), sLang
		Else
			Send "Invalid syntax, use: Language1 Language2 Text"
		End If
	End If
End Sub

Sub Translate(strText, strLanguage)

	On Error Resume Next

	'// Create our post information
	strData = "sequence=core&mode=html&template=results_en-us.htm&language=" & strLanguage & "&srctext=" & strText & "&Submit=FREE Translation"

	'// Send the POST request
	Call oHTTP.Open("POST", "http://ets.freetranslation.com/", False)
	Call oHTTP.SetRequestHeader("Content-type", "application/x-www-form-urlencoded")
	Call oHTTP.Send(strData)
	
	strHTML = oHTTP.ResponseText

	'// Parse the results
	pos1 = InStr(strHTML, "dsttext")
	pos1 = InStr(pos1 + 1, strHTML, "dsttext")
	pos1 = InStr(pos1, strHTML, ">")
	pos2 = InStr(pos1, strHTML, "<")

	strTrans = Mid(strHTML, pos1+1, pos2-pos1-1)

	If strTrans = "" Then
		Send "/me Error Translating!"
	Else
		Send "/me " & strTrans
	End If
	
End Sub
 
Private Function ExpandLanguage(lng)
	Dim retval
	Select Case LCase(lng)
		Case "en","english" : retval = "English"
		Case "sp","spanish" : retval = "Spanish"
		Case "fr","french" : retval = "French"
		Case "ge","german" : retval = "German"
		Case "it","italian" : retval = "Italian"
		Case "du","dutch" : retval = "Dutch"
		Case "po","polish" : retval = "Polish"
		Case "ru","russian" : retval = "Russian"
		Case Else : retval = ""
	End Select
	ExpandLanguage = retval
End Function
