hab des script mit ein bischen fummelei zum laufen gebracht. des problem is, das da etliche " zuviel sind. deswegen motzt der immer wieder wenn du des script laden willst.
hier mal die version so wie sie bei mir jetzt läuft.
Code:
'--------------------------------------------------------------------------- -- -- -
' TRANSLATE.ASC - Version 1.6 (C) by Hippo, |Hotaru| and SailorCM
'--------------------------------------------------------------------------- -- -- -
' This script enhances your bot in the following ways:
'
' - You can make the bot translate a sentence to another language.
'
' Command: Translation:
' ------------- -------------------------
' !en-de From English to German
' !en-fr From English to French
' !en-es From English to Spanish
' !en-it From English to Italian
' !en-pt From English to Portugese
' !de-en From German to English
' !fr-en From French to English
' !es-en From Spanish to English
' !it-en From Italian to English
' ... and so on ...
'
'--------------------------------------------------------------------------- -- -- -
'ProxyHost = "www-proxy.btx.dtag.de"
'ProxyPort = 80
'=====================================================================------ -- -- -
' If you've changed all variables to fit your needs, you can save and upload the
' script to your bot now. Please don't change anything below this line unless you
' know what you're doing.
'=====================================================================------ -- -- -
Dim FloodCounter, LastRequest, FloodTriggered, ConnectErrors, CorrectURL
TranslationHost = "babelfish.altavista.com"
Sub Init
Script "Translate V1.6"
Hook "Chan_msg"
Hook "Priv_msg"
SpreadFlagMessage 0, "+m", " 14*** Translate V1.6 by Hippo loaded"
SpreadFlagMessage 0, "+m", " 14*** Translate patched by |Hotaru| & SailorCM"
FloodCounter = 0
ConnectErrors = 0
FloodTriggered = False
ResetLastRequest
If ProxyHost <> "" Then CorrectURL = "http://babelfish.altavista.com/babelfish/tr" Else CorrectURL = "/babelfish/tr"
End Sub
Sub Priv_msg(Nick, RegUser, Line)
Select Case LCase(Param(Line,1))
Case "!en-de", "!en-fr", "!en-es", "!en-it", "!en-pt", "!de-en", "!fr-en", "!es-en", "!it-en", "!pt-en", "!ru-en", "!de-fr", "!de-es", "!de-it", "!de-pt", "!fr-de", "!fr-es", "!fr-it", "!fr-pt", "!es-de", "!es-fr", "!es-it", "!es-pt", "!it-de", "!it-fr", "!it-es", "!it-pt", "!pt-de", "!pt-fr", "!pt-es", "!pt-it", "!en-ja", "!ja-en", "!ru-en", "!en-ru","!en-zh","!zh-en","!ja-de","!de-ja","!de-ru","!ru-de","!de-zh","!zh-de","!de-ko","!ko-de", "!stillepost", "!stillepost2", "!stillepost3", "!stillepost4", "!stillepost5", "!stillepost6"
Chan_msg Nick, Nick, RegUser, Line
HaltDefault
End Select
End Sub
Sub Chan_msg(Chan, Nick, RegUser, Line)
Select Case LCase(Param(Line,1))
Case "!en-de", "!en-fr", "!en-es", "!en-it", "!en-pt", "!de-en", "!fr-en", "!es-en", "!it-en", "!pt-en", "!ru-en", "!de-fr", "!de-es", "!de-it", "!de-pt", "!fr-de", "!fr-es", "!fr-it", "!fr-pt", "!es-de", "!es-fr", "!es-it", "!es-pt", "!it-de", "!it-fr", "!it-es", "!it-pt", "!pt-de", "!pt-fr", "!pt-es", "!pt-it", "!en-ja", "!ja-en", "!ru-en", "!en-ru","!en-zh","!zh-en","!ja-de","!de-ja","!de-ru","!ru-de","!de-zh","!zh-de","!de-ko","!ko-de", "!stillepost", "!stillepost2", "!stillepost3", "!stillepost4", "!stillepost5", "!stillepost6"
If FloodTriggered Then Exit Sub
If FloodCounter > 4 Then
FloodTriggered = True
Sendline "PRIVMSG " & Chan & " :" & Nick & ": Behave, you damn flooder! Owing to you I'll stop responding to translations for 1 minute. ;P", 3
TimedCommand "FloodTriggered = False", 60
Exit Sub
End if
If LastRequest = LCase(Param(Line,1)) & GetRest(Line,2) Then Exit Sub
LastRequest = LCase(Param(Line,1)) & GetRest(Line,2)
If RegUser <> "°°silent°°" Then FloodCounter = FloodCounter + 1: TimedCommand "FloodCounter = FloodCounter - 1", 10
If Param(Line,2) = "" Then
Sendline "PRIVMSG " & Chan & " :" & Nick & ": You forgot to specify something to translate! :)", 3
Exit Sub
End If
LineToTranslate = RPL(TranslationTable2(TranslationTable(GetRest(Line,2))))
Select Case LCase(Param(Line,1))
Case "!en-de": LanguagePair = "en_de": LanguagePair2 = "-": LineToTranslate = Replace(Replace(Replace(Replace(LineToTranslate, "fuck", "have sex"), "nope", "no"), "crap", "a piece of shit"), "cum", "come")
Case "!en-fr": LanguagePair = "en_fr": LanguagePair2 = "-"
'---
Case "!zh-en": LanguagePair = "zh_en": LanguagePair2 = "-"
Case "!en-zh": LanguagePair = "en_zh": LanguagePair2 = "-"
Case "!en-ja": LanguagePair = "en_ja": LanguagePair2 = "-"
Case "!ja-en": LanguagePair = "ja_en": LanguagePair2 = "-"
Case "!en-ko": LanguagePair = "en_ko": LanguagePair2 = "-"
Case "!ko-en": LanguagePair = "ko_en": LanguagePair2 = "-"
Case "!ru-en": LanguagePair = "ru_en": LanguagePair2 = "-"
Case "!en-ru": LanguagePair = "en_ru": LanguagePair2 = "-"
'---
Case "!zh-de": LanguagePair = "en_de": LanguagePair2 = "zh_en"
Case "!ja-de": LanguagePair = "en_de": LanguagePair2 = "ja_en"
Case "!ko-de": LanguagePair = "en_de": LanguagePair2 = "ko_en"
Case "!ru-de": LanguagePair = "en_de": LanguagePair2 = "ru_en"
Case "!de-ru": LanguagePair = "de_en": LanguagePair2 = "en_ru"
Case "!de-zh": LanguagePair = "de_en": LanguagePair2 = "en_zh"
Case "!de-ja": LanguagePair = "de_en": LanguagePair2 = "en_ja"
Case "!de-ko": LanguagePair = "de_en": LanguagePair2 = "en_ko"
'---
Case "!en-es": LanguagePair = "en_es": LanguagePair2 = "-"
Case "!en-it": LanguagePair = "en_it": LanguagePair2 = "-"
Case "!en-pt": LanguagePair = "en_pt": LanguagePair2 = "-"
Case "!de-en": LanguagePair = "de_en": LanguagePair2 = "-": LineToTranslate = Replace(Replace(Replace(Replace(Replace(Replace(LineToTranslate, "******", "sex haben"), "nö", "nein"), "stimmts", "stimmt es"), "kacke", "shit"), "scheisse", "shit"), "******", "shit")
Case "!fr-en": LanguagePair = "fr_en": LanguagePair2 = "-"
Case "!es-en": LanguagePair = "es_en": LanguagePair2 = "-"
Case "!it-en": LanguagePair = "it_en": LanguagePair2 = "-"
Case "!pt-en": LanguagePair = "pt_en": LanguagePair2 = "-"
Case "!ru-en": LanguagePair = "ru_en": LanguagePair2 = "-"
Case "!de-fr": LanguagePair = "de_fr": LanguagePair2 = "-"
Case "!de-es": LanguagePair = "de_en": LanguagePair2 = "en_es"
Case "!de-it": LanguagePair = "de_en": LanguagePair2 = "en_it"
Case "!de-pt": LanguagePair = "de_en": LanguagePair2 = "en_pt"
Case "!fr-de": LanguagePair = "fr_de": LanguagePair2 = "-"
Case "!fr-es": LanguagePair = "fr_en": LanguagePair2 = "en_es"
Case "!fr-it": LanguagePair = "fr_en": LanguagePair2 = "en_it"
Case "!fr-pt": LanguagePair = "fr_en": LanguagePair2 = "en_pt"
Case "!es-de": LanguagePair = "es_en": LanguagePair2 = "en_de"
Case "!es-fr": LanguagePair = "es_en": LanguagePair2 = "en_fr"
Case "!es-it": LanguagePair = "es_en": LanguagePair2 = "en_it"
Case "!es-pt": LanguagePair = "es_en": LanguagePair2 = "en_pt"
Case "!it-de": LanguagePair = "it_en": LanguagePair2 = "en_de"
Case "!it-fr": LanguagePair = "it_en": LanguagePair2 = "en_fr"
Case "!it-es": LanguagePair = "it_en": LanguagePair2 = "en_es"
Case "!it-pt": LanguagePair = "it_en": LanguagePair2 = "en_pt"
Case "!pt-de": LanguagePair = "pt_en": LanguagePair2 = "en_de"
Case "!pt-fr": LanguagePair = "pt_en": LanguagePair2 = "en_fr"
Case "!pt-es": LanguagePair = "pt_en": LanguagePair2 = "en_es"
Case "!pt-it": LanguagePair = "pt_en": LanguagePair2 = "en_it"
Case "!stillepost": LanguagePair = "de_en": LanguagePair2 = "stillepost2"
Case "!stillepost2": LanguagePair = "en_fr": LanguagePair2 = "stillepost3"
Case "!stillepost3": LanguagePair = "fr_en": LanguagePair2 = "stillepost4"
Case "!stillepost4": LanguagePair = "en_es": LanguagePair2 = "stillepost5"
Case "!stillepost5": LanguagePair = "es_en": LanguagePair2 = "stillepost6"
Case "!stillepost6": LanguagePair = "en_de": LanguagePair2 = "-"
End Select
WantedSockTag = Chan & " " & Nick & " " & LanguagePair & " " & LanguagePair2 & " " & LineToTranslate
If ProxyHost <> "" Then
TheSock = SockConnect(ProxyHost, ProxyPort, "SockEvent")
Else
TheSock = SockConnect(TranslationHost, 80, "SockEvent")
End If
If TheSock = 0 Then
If ConnectErrors > 2 Then
SpreadFlagMessage 0, "+m", " 14*** {Translate} Connect to translation server failed."
Sendline "PRIVMSG " & Chan & " :" & Nick & ": Sorry, I couldn't connect to the translation server. Please try again later.", 3
Exit Sub
End If
SpreadFlagMessage 0, "+m", " 14*** {Translate} Error in SockConnect - retrying..."
ConnectErrors = ConnectErrors + 1
TimedCommand "ConnectErrors = ConnectErrors - 1", 20
TimedCommand "ConnectWithThisTag """ & MSS(WantedSockTag) & """", 1
Exit Sub
End If
SetSockTag TheSock, WantedSockTag
If RegUser <> "°°silent°°" Then SpreadFlagMessage 0, "+m", " 14[" + Left(Time, 5) + "] " & Chan & ": <" & Nick & "> " & Line
Case "!de-fr", "!de-es", "!de-it", "!de-jp", "!fr-de", "!fr-es", "!fr-it", "!es-de", "!es-fr", "!es-it", "!it-de", "!it-fr", "!it-es", "!jp-de", "!jp-en", "!jp-fr", "!jp-es", "!en-jp"
Sendline "PRIVMSG " & Chan & " :" & Nick & ": Sorry, I only support 'en', 'de', 'fr', 'es', 'it' and 'pt'.", 3
End Select
End Sub
Sub ResetLastRequest
LastRequest = "_"
TimedCommand "ResetLastRequest", 120
End Sub
Sub SockEvent(vsock, SEvent, SData)
If FloodTriggered Then Exit Sub
Select Case SEvent
Case SE_ConnectFailed
If ConnectErrors > 2 Then
SpreadFlagMessage 0, "+m", " 14*** {Translate} Connect to translation server failed."
Chan = Param(GetSockTag(vsock), 1)
Nick = Param(GetSockTag(vsock), 2)
Sendline "PRIVMSG " & Chan & " :" & Nick & ": Sorry, I couldn't connect to the translation server. Please try again later.", 3
Exit Sub
End If
SpreadFlagMessage 0, "+m", " 14*** {Translate} Error in SockEvent - retrying..."
ConnectErrors = ConnectErrors + 1
TimedCommand "ConnectErrors = ConnectErrors - 1", 20
TimedCommand "ConnectWithThisTag """ & MSS(GetSockTag(vsock)) & """", 1
Case SE_Connected
LineToTranslate = GetRest(GetSockTag(vsock), 5)
For u = 1 to Len(LineToTranslate)
TheChar = Hex(Asc(Mid(LineToTranslate,u,1)))
TheLine = TheLine + "%" & String(2 - Len(TheChar), "0") & TheChar
Next
SetSockTag vsock, Param(GetSockTag(vsock), 1) & " " & Param(GetSockTag(vsock), 2) & " " & Param(GetSockTag(vsock), 3) & " " & Param(GetSockTag(vsock), 4) & " "
SockWrite vsock, "GET " & CorrectUrl & "?doit=done&tt=urltext&intl=1&urltext=" & TheLine & "&lp=" & Param(GetSockTag(vsock), 3) & " HTTP/1.0" & vbCrLf & _
"Accept: */*" & vbCrLf & _
"Accept-Language: de" & vbCrLf & _
"Accept-Encoding: gzip, deflate" & vbCrLf & _
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; AnGeL " & BotVersion(0) & ")" & vbCrLf & _
"Host: " & TranslationHost & vbCrLf & _
"Pragma: no-cache" & vbCrLf & _
"Connection: close" & vbCrLf & vbCrLf
Case SE_Read
SetSockTag vsock, GetSockTag(vsock) & Replace(SData, vbLf, " ")
CheckForTranslation vsock
Case SE_Closed
Chan = Param(GetSockTag(vsock), 1)
Nick = Param(GetSockTag(vsock), 2)
SpreadFlagMessage 0, "+m", " 14*** {Translate} No translation found."
Sendline "PRIVMSG " & Chan & " :" & Nick & ": Sorry, no translation found.", 3
End Select
End Sub
Sub ConnectWithThisTag(TagLine)
If ProxyHost <> "" Then
TheSock = SockConnect(ProxyHost, ProxyPort, "SockEvent")
Else
TheSock = SockConnect(TranslationHost, 80, "SockEvent")
End If
If TheSock <> 0 Then
SetSockTag TheSock, TagLine
End If
End Sub
Function CheckForTranslation(vsock)
ReceivedSite = GetRest(GetSockTag(vsock), 5)
FoundA = Instr(lcase(ReceivedSite), "style=padding:10px;")
If FoundA > 0 Then FoundB = Instr(FoundA, lcase(ReceivedSite), "</div>" ) Else FoundB = 0
If (FoundA = 0) or (FoundB = 0) Then CheckForTranslation = "": Exit Function
FoundA = Instr(FoundA, ReceivedSite, ">")
AnswerStr = Trim(Mid(ReceivedSite, FoundA + 1, FoundB - FoundA - 1))
If instr(AnswerStr,"<") > 0 then
AnswerStr = Mid(AnswerStr,InStr(AnswerStr,">")+1)
If InStr(AnswerStr,"</") > 0 Then
AnswerStr = Mid(AnswerStr,1,InStr(AnswerStr,"</")-1)
End If
End If
Chan = Param(GetSockTag(vsock), 1)
Nick = Param(GetSockTag(vsock), 2)
AnswerStr = Replace(AnswerStr, "<", "<")
AnswerStr = Replace(AnswerStr, ">", ">")
AnswerStr = Replace(AnswerStr, "<P>", "")
AnswerStr = Replace(AnswerStr, Chr(9), "")
AnswerStr = Trim(AnswerStr)
If Param(GetSockTag(vsock), 4) = "-" Then
AnswerStr = TranslationTable(AnswerStr)
Sendline "PRIVMSG " & Chan & " :" & Nick & ": " & AnswerStr, 3
SpreadFlagMessage 0, "+m", " 14*** {Translate} " & Nick & ": " & AnswerStr
SockClose vsock
Else
Chan_msg Chan, Nick, "°°silent°°", "!" & Replace(Param(GetSockTag(vsock), 4), "_", "-") & " " & AnswerStr
SockClose vsock
End If
End Function
Function RPL(DAT)
On Error Resume Next
RPL = dat
End Function
Function TranslationTable(InText)
Dim A(255)
A(128) = "â": A(129) = "Â": A(130) = "â": A(131) = "Æ'": A(132) = "â": A(133) = "â¦": A(134) = "â ": A(135) = "â¡"
A(136) = "Ë": A(137) = "â°": A(138) = "Å ": A(139) = "â¹": A(140) = "Å'": A(141) = "Â": A(142) = "Ž": A(143) = "Â"
A(144) = "Â": A(145) = "â": A(146) = "â": A(147) = "â": A(148) = "â": A(149) = "â¢": A(150) = "â": A(151) = "â"
A(152) = "Ë": A(153) = "â¢": A(154) = "Å¡": A(155) = "âº": A(156) = "Å": A(157) = "Â": A(158) = "ž": A(159) = "Ÿ"
A(161) = "¡": A(162) = "¢": A(163) = "£": A(164) = "¤": A(165) = "¥": A(166) = "¦": A(167) = "§": A(168) = "¨"
A(169) = "©": A(170) = "ª": A(171) = "Â": A(172) = "Â": A(173) = "Â": A(174) = "®": A(175) = "¯": A(176) = "°"
A(177) = "±": A(178) = "²": A(179) = "³": A(180) = "´": A(181) = "µ": A(182) = "Â": A(183) = "·": A(184) = "¸"
A(185) = "¹": A(186) = "º": A(187) = "Â": A(188) = "¼": A(189) = "½": A(190) = "¾": A(191) = "¿": A(192) = "Ã"
A(193) = "Ã": A(194) = "Ã": A(195) = "Ã": A(196) = "Ã": A(197) = "Ã
": A(198) = "Ã": A(199) = "Ã": A(200) = "Ã"
A(201) = "Ã": A(202) = "Ã": A(203) = "Ã": A(204) = "Ã": A(205) = "Ã": A(206) = "Ã": A(207) = "Ã": A(208) = "Ã"
A(209) = "Ã'": A(210) = "Ã'": A(211) = "Ã": A(212) = "Ã": A(213) = "Ão": A(214) = "Ã-": A(215) = "Ã-": A(216) = "Ã"
A(217) = "Ã": A(218) = "Ã": A(219) = "Ã": A(220) = "Ã": A(221) = "Ã": A(222) = "Ã": A(223) = "Ã": A(224) = "Ã "
A(225) = "á": A(226) = "â": A(227) = "ã": A(228) = "ä": A(229) = "å": A(230) = "æ": A(231) = "ç": A(232) = "è"
A(233) = "é": A(234) = "ê": A(235) = "Ã": A(236) = "Ã": A(237) = "Ã": A(238) = "î": A(239) = "ï": A(240) = "ð"
A(241) = "ñ": A(242) = "ò": A(243) = "ó": A(244) = "ô": A(245) = "õ": A(246) = "Ã": A(247) = "÷": A(248) = "ø"
A(249) = "ù": A(250) = "ú": A(251) = "Ã": A(252) = "ü": A(253) = "ý": A(254) = "þ": A(255) = "ÿ"
TranslationTable = InText
For I = 128 to 255
TranslationTable = Replace(TranslationTable, A(I), CHR(I))
Next
End Function
Function TranslationTable2(InText)
Dim A(255)
A(128) = "â": A(129) = "Â": A(130) = "â": A(131) = "Æ'": A(132) = "â": A(133) = "â¦": A(134) = "â ": A(135) = "â¡"
A(136) = "Ë": A(137) = "â°": A(138) = "Å ": A(139) = "â¹": A(140) = "Å'": A(141) = "Â": A(142) = "Ž": A(143) = "Â"
A(144) = "Â": A(145) = "â": A(146) = "â": A(147) = "â": A(148) = "â": A(149) = "â¢": A(150) = "â": A(151) = "â"
A(152) = "Ë": A(153) = "â¢": A(154) = "Å¡": A(155) = "âº": A(156) = "Å": A(157) = "Â": A(158) = "ž": A(159) = "Ÿ"
A(161) = "¡": A(162) = "¢": A(163) = "£": A(164) = "¤": A(165) = "¥": A(166) = "¦": A(167) = "§": A(168) = "¨"
A(169) = "©": A(170) = "ª": A(171) = "Â": A(172) = "Â": A(173) = "Â": A(174) = "®": A(175) = "¯": A(176) = "°"
A(177) = "±": A(178) = "²": A(179) = "³": A(180) = "´": A(181) = "µ": A(182) = "Â": A(183) = "·": A(184) = "¸"
A(185) = "¹": A(186) = "º": A(187) = "Â": A(188) = "¼": A(189) = "½": A(190) = "¾": A(191) = "¿": A(192) = "Ã"
A(193) = "Ã": A(194) = "Ã": A(195) = "Ã": A(196) = "Ã": A(197) = "Ã
": A(198) = "Ã": A(199) = "Ã": A(200) = "Ã"
A(201) = "Ã": A(202) = "Ã": A(203) = "Ã": A(204) = "Ã": A(205) = "Ã": A(206) = "Ã": A(207) = "Ã": A(208) = "Ã"
A(209) = "Ã'": A(210) = "Ã'": A(211) = "Ã": A(212) = "Ã": A(213) = "Ão": A(214) = "Ã-": A(215) = "Ã-": A(216) = "Ã"
A(217) = "Ã": A(218) = "Ã": A(219) = "Ã": A(220) = "Ã": A(221) = "Ã": A(222) = "Ã": A(223) = "Ã": A(224) = "Ã "
A(225) = "á": A(226) = "â": A(227) = "ã": A(228) = "ä": A(229) = "å": A(230) = "æ": A(231) = "ç": A(232) = "è"
A(233) = "é": A(234) = "ê": A(235) = "Ã": A(236) = "Ã": A(237) = "Ã": A(238) = "î": A(239) = "ï": A(240) = "ð"
A(241) = "ñ": A(242) = "ò": A(243) = "ó": A(244) = "ô": A(245) = "õ": A(246) = "Ã": A(247) = "÷": A(248) = "ø"
A(249) = "ù": A(250) = "ú": A(251) = "Ã": A(252) = "ü": A(253) = "ý": A(254) = "þ": A(255) = "ÿ"
TranslationTable2 = InText
For I = 128 to 255
TranslationTable2 = Replace(TranslationTable2,CHR(I), A(I))
Next
End Function
so ich hoffe das hat jetzt mit der formatierung geklappt.
muß auch noch dazu sagen das die übersetzungen teilweise echt übel sind. :twisted: