Advertisement
Ford

Autotrans / Debug code.

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