Ford

Autotrans debug version

May 18th, 2012
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 10.57 KB | None | 0 0
  1. ;Auto Translator by Ford_Lawnmower irc.GeekShed.net #Script-Help
  2. menu Channel {
  3.   .$iif($gettok($hget(autotrans,$+($network,$chan)),3,32) == On && $group(#AutoTrans) == On,$style(1)) AutoTrans
  4.   ..$iif($group(#AutoTrans) == On,$style(1)) Auto Trans Master On/Off: $iif($group(#AutoTrans) == On,.disable,.enable) #AutoTrans  
  5.   ..Auto Trans Setup:dialog $iif($dialog(auto_translator),-v,-m) auto_translator auto_translator
  6.   ..Manage Exclusions:dialog $iif($dialog(auto_translator_exclude),-v,-m) auto_translator_exclude auto_translator_exclude
  7. }
  8. #AutoTrans On
  9. On *:Text:*:#: {
  10.   if (!$timer($+(AutoTrans,$network,$nick))) {
  11.     .timer $+ $+(AutoTrans,$network,$nick) 1 1 noop
  12.     if ($gettok($hget(autotrans,$+($network,$chan)),3,32) == On) && (!$regex($1,/^[!.@.#.+./.:.-.+]/S)) {
  13.       var %text $urlencode($utfdecode($utfencode($exclude($1-))))
  14.       tokenize 32 $hget(autotrans,$+($network,$chan))
  15.       AutoTrans $2 $iif($2 == .Msg,$chan,$iif($2 == Echo,$chan,$me)) $iif($4,$+(09[04,$nick,09]),0) $langpair($1),1,32)) %text 0
  16.     }
  17.   }
  18. }
  19. On *:Action:*:#: {
  20.   if (!$timer($+(AutoTrans,$network,$nick))) {
  21.     .timer $+ $+(AutoTrans,$network,$nick) 1 1 noop
  22.     if ($gettok($hget(autotrans,$+($network,$chan)),3,32) == On) {
  23.       var %text $urlencode($exclude($1-))
  24.       tokenize 32 $hget(autotrans,$+($network,$chan))
  25.       AutoTrans $2 $iif($2 == .Msg,$chan,$iif($2 == Echo,$chan,$me)) $iif($4,$+(09[04,$nick,09]),0) $langpair($1),1,32)) %text 0
  26.     }
  27.   }
  28. }
  29. #AutoTrans End
  30. On *:input:*: {
  31.   if ($left($strip($1),2) == \\) && (!$ctrlenter) {
  32.     haltdef
  33.     var %text $inputencode($2-)
  34.     AutoTrans msg $iif($chan,$chan,$active) $me $remove($1,\\) %text 1
  35.   }  
  36. }
  37. on ^$*:Hotlink:/\[([a-zA-Z]{2})\]-\[([a-zA-Z]{2})\]/:#,?:{
  38.   if ($mouse.key == 16) && ($input(Respond through translator $+($regml(2),-,$regml(1)),yn)) {
  39.     if ($?="Please Input your text to be translated") {
  40.       AutoTrans msg $iif($chan,$chan,$nick) $me $regml(1) $urlencode($!) 1
  41.     }  
  42.   }
  43.   halt
  44. }
  45. alias EchoAutoTrans { AutoTrans echo -a $1- }
  46. alias -l AutoTrans {
  47.   var %sockname $+(AutoTrans,$network,$3,$ticks,$r(1,$ticks))
  48.   sockopen %sockname translate.google.com 80
  49.   sockmark %sockname $1-2 $+(/translate_t?langpair=auto|,$4,&text=,$5) $3 $6
  50. }
  51. On *:sockopen:AutoTrans*: {
  52.   if (!$sockerr) {
  53.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.1
  54.     sockwrite -n $sockname Host: translate.google.com
  55.     sockwrite -n $sockname Referer: $+(http://,$ip)
  56.     sockwrite -n $sockname $crlf
  57.   }
  58.   else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  59. }
  60. On *:sockread:AutoTrans*: {
  61.   if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  62.   else {
  63.     var %AutoTrans | sockread %AutoTrans
  64.     if (%AutoTrans) echo -gat $v1
  65.     if ($regex(lan,%AutoTrans,/id=headingtext\sclass="">(.*?)\sto\s(.*?)\stranslation<\/h3>/i)) noop
  66.     if ($regex(%AutoTrans,/backgroundColor='#fff'">(.*?)<\/span>/i)) {
  67.       var %country $langpair($+([,$regml(lan,1),]-[,$regml(lan,2),],)), %text $replace($fixhtml($regml(1)),quot;,")
  68.       if ($gettok($sock($sockname).mark,5,32)) { $gettok($sock($sockname).mark,1-2,32) %text | sockclose $sockname | return }
  69.       elseif ($matches(%text,$recode($mid($gettok($gettok($sock($sockname).mark,3,32),-2,38),3-)))) {
  70.         $gettok($sock($sockname).mark,1-2,32) 06Translation07 %country $&
  71.           $iif($gettok($sock($sockname).mark,4,32),$gettok($sock($sockname).mark,4,32)) %text
  72.         sockclose $sockname
  73.         return  
  74.       }
  75.     }    
  76.   }
  77. }
  78. alias -l inputencode { return $regsubex($strip($1-),/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2)) }
  79. alias -l exclude { return $regsubex($strip($1-),/(http:\/\/[\S]{1,}|www\.[\S]{1,})/g,$null) }
  80. alias -l urlencode { return $regsubex($1-,/([^a-z0-9])/ig,$urlpairs($asc(\t))) }
  81. alias -l recode { return $regsubex($1-,/%([A-Fa-f0-9]{2})/g,$chr($base(\t,16,10))) }
  82. alias -l fixhtml { return $replace($remove($regsubex($remove($regsubex($1-,/#([\d][\d][\d]?);/g,$chr(\t)),&amp;,gt;,lt;),/\\u([A-Fa-f0-9]{4})/g,$chr($base(\t,16,10))),&amp;,&),&quot;,") }
  83. alias -l notrans { return $iif($hfind(notrans,$1),1,0) }
  84. alias -l matches {
  85.   var %w $numtok($1,32),%x 1,%y 0,%z $numtok($2,32)
  86.   while (%x <= %z) {
  87.     if ($istok($1,$gettok($2,%x,32),32)) || ($notrans($gettok($2,%x,32))) { inc %y }
  88.     inc %x
  89.   }
  90.   return $iif($calc(%y / %w * 100) >= 80,0,1)
  91. }
  92. alias -l UrlPairs {
  93.   if ($1 < 255) { return $+(%,$base($1,10,16)) }
  94.   if ($1 >= 256) && ($1 < 2048) { return $+(%,$base($calc(192 + $div($1,64)),10,16),%,$base($calc(128 + $mod($1,64)),10,16)) }
  95.   if ($1 >= 2048) && ($1 < 65536) { return $+(%,$base($calc(224 + $div($1,4096)),10,16),%,$base($calc(128 + $mod($div($1,64),64)),10,16),%,$base($calc(128 + $mod($1,64)),10,16)) }
  96. }
  97. alias -l div { return $int($calc($1 / $2)) }
  98. alias -l mod {
  99.   var %int $int($calc($1 / $2))
  100.   return $calc($1 - (%int * $2))
  101. }
  102. dialog Auto_Translator {
  103.   title "Auto Translator Setup"
  104.   size -1 -1 118 126
  105.   option dbu
  106.   text "Target Language:", 1, 4 9 45 8, right
  107.   text "Network:", 2, 4 25 45 8, right
  108.   text "Channel:", 3, 4 42 45 8, right
  109.   text "Output Type:", 4, 4 59 45 8, right
  110.   combo 5, 51 8 62 11, drop
  111.   combo 6, 51 24 62 11, drop
  112.   combo 7, 51 41 62 11, drop
  113.   combo 8, 51 58 62 11, drop
  114.   combo 9, 51 77 62 11, drop
  115.   text "Status:", 10, 4 78 45 8, right
  116.   button "Accept", 11, 78 110 34 12
  117.   button "Cancel", 12, 39 110 34 12, cancel
  118.   check "Show Nickname", 13, 63 97 50 10
  119. }
  120. dialog Auto_Translator_Exclude {
  121.   title "Auto Translator Exclusion Manager"
  122.   size -1 -1 144 144
  123.   option dbu
  124.   text "Exclusion:", 1, 4 7 27 8, right
  125.   text "Exclusions", 2, 1 21 142 8, center
  126.   edit "", 3, 33 6 72 10, autohs
  127.   list 4, 6 33 131 94, vsbar
  128.   button "Add", 5, 107 5 29 12
  129.   button "Delete", 6, 50 130 37 12
  130.   button "Close", 7, 97 130 37 12, cancel
  131. }
  132. On *:dialog:Auto_Translator_Exclude:Sclick:5,6: {
  133.   if ($did == 5) && ($did($dname,3).text) { hadd -m notrans $v1 | did -r $dname 3 }
  134.   if ($did == 6) && ($did($dname,4).seltext) { hdel notrans $v1 }
  135.   did -r $dname 4
  136.   didtok $dname 4 32 $regsubex($str(.,$hget(notrans,0).item),/./g,$hget(notrans,\n).item $+ $chr(32))
  137. }
  138. On *:dialog:Auto_Translator_Exclude:init:*: {
  139.   didtok $dname 4 32 $regsubex($str(.,$hget(notrans,0).item),/./g,$hget(notrans,\n).item $+ $chr(32))
  140. }
  141. on *:dialog:Auto_Translator:Sclick:6,7,11: {
  142.   if ($did == 11) {
  143.     tokenize 32 $did($dname,6).seltext $did($dname,7).seltext $did($dname,5).seltext $did($dname,8).seltext $did($dname,9).seltext
  144.     hadd -m autotrans $+($1,$chr(35),$2) $3- $did($dname,13).state
  145.     dialog -x $dname
  146.   }
  147.   if ($did == 6) {
  148.     did -r $dname 7
  149.     didtok $dname 7 35 $chans($did($dname,6).seltext)
  150.     did -fc $dname 7 1
  151.   }
  152.   if ($hget(autotrans,$+($did($dname,6).seltext,$chr(35),$did($dname,7).seltext))) {
  153.     var %match $v1
  154.     did -c $dname 5 $didwm($dname,5,$gettok(%match,1,32))
  155.     did -c $dname 8 $didwm($dname,8,$gettok(%match,2,32))
  156.     did -c $dname 9 $didwm($dname,9,$gettok(%match,3,32))
  157.     did $iif($gettok(%match,4,32),-c,-u) $dname 13
  158.   }
  159. }
  160. on *:dialog:Auto_Translator:init:*: {
  161.   didtok $dname 5 44 AFRIKAANS,ALBANIAN,AMHARIC,ARABIC,ARMENIAN,AZERBAIJANI,BASQUE,BELARUSIAN,BENGALI,BIHARI,BULGARIAN,BURMESE,CATALAN,CHEROKEE
  162.   didtok $dname 5 44 CHINESE,CHINESE_SIMPLIFIED,CHINESE_TRADITIONAL,CROATIAN,CZECH,DANISH,DHIVEHI,DUTCH,ENGLISH,ESPERANTO,ESTONIAN,FILIPINO
  163.   didtok $dname 5 44 FINNISH,FRENCH,GALICIAN,GEORGIAN,GERMAN,GREEK,GUARANI,GUJARATI,HEBREW,HINDI,HUNGARIAN,ICELANDIC,INDONESIAN,INUKTITUT
  164.   didtok $dname 5 44 IRISH,ITALIAN,JAPANESE,KANNADA,KAZAKH,KHMER,KOREAN,KURDISH,KYRGYZ,LAOTHIAN,LATVIAN,LITHUANIAN,MACEDONIAN,MALAY,MALAYALAM
  165.   didtok $dname 5 44 MALTESE,MARATHI,MONGOLIAN,NEPALI,NORWEGIAN,ORIYA,PASHTO,PERSIAN,POLISH,PORTUGUESE,PUNJABI,ROMANIAN,RUSSIAN,SANSKRIT,SERBIAN
  166.   didtok $dname 5 44 SINDHI,SINHALESE,SLOVAK,SLOVENIAN,SPANISH,SWAHILI,SWEDISH,TAJIK,TAMIL,TAGALOG,TELUGU,THAI,TIBETAN,TURKISH,UKRAINIAN
  167.   didtok $dname 5 44 URDU,UZBEK,UIGHUR,VIETNAMESE,WELSH,YIDDISH
  168.   did -c $dname 5 $didwm($dname,5,ENGLISH)
  169.   var %nets $scon(0)
  170.   while (%nets) { scon %nets did -a $dname 6 $!network | dec %nets }
  171.   did -c $dname 6 $didwm($dname,6,$network)
  172.   didtok $dname 7 35 $chans($network)
  173.   did -c $dname 7 $didwm($dname,7,$mid($active,2-))
  174.   didtok $dname 8 44 Echo,.Msg,.Notice
  175.   did -c $dname 8 1
  176.   didtok $dname 9 44 On,Off
  177.   did -c $dname 9 2
  178.   if ($hget(autotrans,$+($network,$active))) {
  179.     var %match $v1
  180.     did -c $dname 5 $didwm($dname,5,$gettok(%match,1,32))
  181.     did -c $dname 8 $didwm($dname,8,$gettok(%match,2,32))
  182.     did -c $dname 9 $didwm($dname,9,$gettok(%match,3,32))
  183.     did $iif($gettok(%match,4,32),-c,-u) $dname 13
  184.   }
  185. }
  186. alias -l LangPair {
  187.   var %return $replace($1-,AFRIKAANS,af,ALBANIAN,sq,AMHARIC,am,ARABIC,ar,ARMENIAN,hy,AZERBAIJANI,az,BASQUE,eu,BELARUSIAN,be,BENGALI,bn,$&
  188.     BIHARI,bh,BULGARIAN,bg,BURMESE,my,CATALAN,ca,CHEROKEE,chr,CHINESE,zh,CHINESE_SIMPLIFIED,CN,CHINESE_TRADITIONAL,TW,$&
  189.     CROATIAN,hr,CZECH,cs,DANISH,da,DHIVEHI,dv,DUTCH,nl,ENGLISH,en,ESPERANTO,eo,ESTONIAN,et,FILIPINO,tl,FINNISH,fi,FRENCH,fr,$&
  190.     GALICIAN,gl,GEORGIAN,ka,GERMAN,de,GREEK,el,GUARANI,gn,GUJARATI,gu,HEBREW,iw,HINDI,hi,HUNGARIAN,hu,ICELANDIC,is,$&
  191.     INDONESIAN,id,INUKTITUT,iu,IRISH,ga,ITALIAN,it,JAPANESE,ja,KANNADA,kn,KAZAKH,kk,KHMER,km,KOREAN,ko,KURDISH,ku,KYRGYZ,ky)
  192.   return $replace(%return,LAOTHIAN,lo,LATVIAN,lv,LITHUANIAN,lt,MACEDONIAN,mk,MALAY,ms,MALAYALAM,ml,MALTESE,mt,MARATHI,mr,MONGOLIAN,mn,NEPALI,ne,$&
  193.     NORWEGIAN,no,ORIYA,or,PASHTO,ps,PERSIAN,fa,POLISH,pl,PORTUGUESE,pt,PUNJABI,pa,ROMANIAN,ro,RUSSIAN,ru,SANSKRIT,sa,$&
  194.     SERBIAN,sr,SINDHI,sd,SINHALESE,si,SLOVAK,sk,SLOVENIAN,sl,SPANISH,es,SWAHILI,sw,SWEDISH,sv,TAJIK,tg,TAMIL,ta,TAGALOG,tl,$&
  195.     TELUGU,te,THAI,th,TIBETAN,bo,TURKISH,tr,UKRAINIAN,uk,URDU,ur,UZBEK,uz,UIGHUR,ug,VIETNAMESE,vi,WELSH,cy,YIDDISH,yi)
  196. }
  197. alias -l chans { scon $netid($1) return $!regsubex($str(.,$chan(0)),/./g,$chan(\n)) }
  198. alias -l netid {
  199.   var %netcount $scon(0)
  200.   while %netcount {
  201.     if ($scon(%netcount).network == $1) { return %netcount }
  202.     dec %netcount
  203.   }
  204. }
  205. On *:Start:{
  206.   hmake AutoTrans 5
  207.   hmake NoTrans 5
  208.   if ($exists(AutoTrans.hsh)) { hload AutoTrans AutoTrans.hsh  }
  209.   if ($exists(NoTrans.hsh)) { hload NoTrans NoTrans.hsh  }
  210. }
  211. On *:Disconnect:{
  212.   if ($hget(AutoTrans)) { hsave AutoTrans AutoTrans.hsh }
  213.   if ($hget(NoTrans)) { hsave NoTrans NoTrans.hsh }  
  214. }
  215. On *:Exit:{
  216.   if ($hget(AutoTrans)) {
  217.     hsave AutoTrans AutoTrans.hsh
  218.     hfree AutoTrans
  219.   }
  220.   if ($hget(NoTrans)) {
  221.     hsave NoTrans NoTrans.hsh
  222.     hfree NoTrans
  223.   }  
  224. }
  225. On *:Unload:{ hfree AutoTrans | hfree NoTrans }
Advertisement
Add Comment
Please, Sign In to add comment