pony

working trans

Apr 5th, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.08 KB | None | 0 0
  1. ; Translate v1.0.1 - by entropy 2020
  2. ; Simple to use Google Translator mIRC Script.
  3.  
  4. ; Example: /trans vous là-bas? - msgs active window the settings for "FROM/TO"
  5. ; Set From/To under: "Translate".
  6. ; To auto translate on query, you right click a nickname (in query/nicklist) and set the: "TO" and "FROM" and "COLOR".
  7.  
  8. ;============================================================== START/EXIT
  9.  
  10. on *:start:{ if (!$hget(trans)) { hmake trans 100 } | if ($isfile($qt($scriptdirtrans.dat))) { hload trans $qt($scriptdirtrans.dat) } }
  11. on *:exit:{ if ($hget(trans)) { hsave -o $qt($scriptdirtrans.dat) } }
  12.  
  13. ;============================================================== MENUS
  14.  
  15. menu status,channel,menubar {
  16. -
  17. Translate $sversion
  18. .Network Translate $chr(9) (/trans) { dialogtrans $+($network,.net) }
  19. -
  20. }
  21. menu query,nicklist {
  22. -
  23. Translate $sversion
  24. .Network Translate $chr(9) (/trans) { dialogtrans $+($network,.net) }
  25. .Nickname Translate $chr(9) $+([,$iif($menu == query,$active,$snick(#,1)),]) { dialogtrans $iif($menu == query,$active,$snick(#,1)) }
  26. -
  27. }
  28.  
  29. ;============================================================== ON TEXT
  30.  
  31. on *:text:*:*:{ if ($hget(trans,$+($nick,.to)) && $hget(trans,$+($nick,.from)) && http*://* !iswm $1-) { %_target = $target | %_nick = $nick | google $hget(trans,$+($nick,.from)) $hget(trans,$+($nick,.to)) $hget(trans,$+($nick,.color)) $remove($strip($1-),") } }
  32.  
  33. ;============================================================== VERSION
  34.  
  35. ctcp *:version:?:{ .ctcpreply $nick VERSION Translate $sversion - by $sauthor $syear }
  36.  
  37. ;============================================================== MAIN ALIASES
  38.  
  39. alias trans { if (!$server) { echo 11 -gat * You are not on a server! } | elseif ($me !ison $active && !$query($active)) { echo 11 -gat * You can't translate to this window! } | elseif (!$1) { echo 11 -gat * Nothing to translate! } | elseif (!$hget(trans,$+($network,.net.to)) || !$hget(trans,$+($network,.net.from))) { echo 11 -gat * You have not specified TO/FROM languages! } | else { %_target = $active | %_nick = $me | google $hget(trans,$+($network,.net.from)) $hget(trans,$+($network,.net.to)) $hget(trans,$+($network,.net.color)) $remove($strip($1-),") } }
  40. alias -l dialogtrans { %_to = $+($1,.to) | %_from = $+($1,.from) | %_color = $+($1,.color) | dialog $iif($dialog(trans),-x,-m) trans trans }
  41. alias -l emoticons { var %a = $replace($1-,\u003e,>,\u003d,=,\u003c,<,$+(;,$chr(41)),$+($chr(32),;,$chr(41)),$+(;,$chr(40)),$+($chr(32),;,$chr(40))) | return $regsubex(%a,/([\x3A\x3B\x3D])( )([oO0PDSb\x28\x29\x5B\x5D\x3C\x3E])/g,\2\1\3) }
  42. alias -l sversion { return v1.0.1 }
  43. alias -l syear { return 2020 }
  44. alias -l sauthor { return entropy }
  45.  
  46. alias -l xlang {
  47. var %a = trans $1
  48. did $+(-a,$iif($2 == ar,c)) %a AR - Arabic
  49. did $+(-a,$iif($2 == zh,c)) %a ZH - Chinese
  50. did $+(-a,$iif($2 == da,c)) %a DA - Danish
  51. did $+(-a,$iif($2 == nl,c)) %a NL - Dutch
  52. did $+(-a,$iif($2 == en,c)) %a EN - English
  53. did $+(-a,$iif($2 == fi,c)) %a FI - Finnish
  54. did $+(-a,$iif($2 == fr,c)) %a FR - French
  55. did $+(-a,$iif($2 == de,c)) %a DE - German
  56. did $+(-a,$iif($2 == el,c)) %a EL - Greek
  57. did $+(-a,$iif($2 == hi,c)) %a HI - Hindi
  58. did $+(-a,$iif($2 == it,c)) %a IT - Italian
  59. did $+(-a,$iif($2 == la,c)) %a LA - Latin
  60. did $+(-a,$iif($2 == ms,c)) %a MS - Malay
  61. did $+(-a,$iif($2 == no,c)) %a NO - Norwegian
  62. did $+(-a,$iif($2 == pl,c)) %a PL - Polish
  63. did $+(-a,$iif($2 == pt,c)) %a PT - Portuguese
  64. did $+(-a,$iif($2 == ru,c)) %a RU - Russian
  65. did $+(-a,$iif($2 == es,c)) %a ES - Spanish
  66. did $+(-a,$iif($2 == tr,c)) %a TR - Turkish
  67. }
  68. alias -l xcolor {
  69. var %a = trans $1
  70. did $+(-a,$iif($2 == 00,c)) %a 00 - White
  71. did $+(-a,$iif($2 == 01,c)) %a 01 - Black
  72. did $+(-a,$iif($2 == 02,c)) %a 02 - Dark Blue
  73. did $+(-a,$iif($2 == 03,c)) %a 03 - Green
  74. did $+(-a,$iif($2 == 04,c)) %a 04 - Red
  75. did $+(-a,$iif($2 == 05,c)) %a 05 - Brown
  76. did $+(-a,$iif($2 == 06,c)) %a 06 - Purple
  77. did $+(-a,$iif($2 == 07,c)) %a 07 - Orange
  78. did $+(-a,$iif($2 == 08,c)) %a 08 - Yellow
  79. did $+(-a,$iif($2 == 09,c)) %a 09 - Light Green
  80. did $+(-a,$iif($2 == 10,c)) %a 10 - Teal
  81. did $+(-a,$iif($2 == 11,c)) %a 11 - Light Blue
  82. did $+(-a,$iif($2 == 12,c)) %a 12 - Blue
  83. did $+(-a,$iif($2 == 13,c)) %a 13 - Pink
  84. did $+(-a,$iif($2 == 14,c)) %a 14 - Dark Grey
  85. did $+(-a,$iif($2 == 15,c)) %a 15 - Grey
  86. }
  87.  
  88. ;============================================================== DIALOG
  89.  
  90. dialog trans {
  91. title "Translate"
  92. size -1 -1 235 41
  93. option dbu notheme
  94. text "From:", 1, 3 7 15 8, right
  95. combo 2, 21 5 60 189, size drop
  96. text "To:", 3, 84 7 10 8, right
  97. combo 4, 97 5 60 189, size drop
  98. text "Color:", 5, 159 7 17 8, right
  99. combo 6, 179 5 52 189, size drop
  100. box "", 7, -5 17 296 50
  101. button "OK", 8, 193 25 37 12, ok
  102. button "Delete", 9, 156 25 37 12
  103. }
  104.  
  105. ;============================================================== DIALOG EVENTS
  106.  
  107. on *:dialog:trans:close:0:{ hsave -o trans $qt($scriptdirtrans.dat) }
  108. on *:dialog:trans:init:0:{ xlang 2 $hget(trans,%_from) | xlang 4 $hget(trans,%_to) | xcolor 6 $hget(trans,%_color) | did -f trans 8 | dialog -t trans $iif(%_to == $+($network,.net.to),Network Translate,Nickname Translate) - $+([,$remove(%_from,.net,.from),]) $iif(%_to == $+($network,.net.to), (/trans) ) }
  109. on *:dialog:trans:sclick:2:{ hadd -m trans %_from $lower($gettok($did(2).seltext,1,32)) }
  110. on *:dialog:trans:sclick:4:{ hadd -m trans %_to $lower($gettok($did(4).seltext,1,32)) }
  111. on *:dialog:trans:sclick:6:{ hadd -m trans %_color $lower($gettok($did(6).seltext,1,32)) }
  112. on *:dialog:trans:sclick:9:{ hdel -m trans %_from | hdel -m trans %_to | hdel -m trans %_color | dialog -x trans | unset %_to %_from %_color }
  113. on *:dialog:trans:sclick:8:{ unset %_to %_from %_color }
  114.  
  115. ;============================================================== GOOGLE SOCKETS
  116.  
  117. alias -l google {
  118. sockclose googletrans
  119. sockopen -e46 googletrans translate.googleapis.com 443
  120. sockmark googletrans $1-
  121. }
  122. on *:sockopen:googletrans:{
  123. if ($sockerr) { return }
  124. var %from = $gettok($sock($sockname).mark,1,32)
  125. var %to = $gettok($sock($sockname).mark,2,32)
  126. var %color = $gettok($sock($sockname).mark,3,32)
  127. var %text = $replace($gettok($sock($sockname).mark,4-,32),$chr(32),+)
  128.  
  129. sockwrite -n $sockname GET $+(https://translate.googleapis.com/translate_a/single?client=gtx&ie=UTF-8&oe=UTF-8&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&sl=,%from,&tl=,%to,&hl=hl&q=,%text) HTTP/1.1
  130. sockwrite -n $sockname Content-Type: application/json; charset=utf-8
  131. sockwrite -n $sockname Content-Disposition: inline; filename=json.txt
  132. sockwrite -n $sockname User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
  133. sockwrite -n $sockname Host: translate.googleapis.com
  134. sockwrite -n $sockname $str($crlf,2)
  135. }
  136. on *:sockread:googletrans:{
  137. if ($sockerr) { return }
  138. var %from = $gettok($sock($sockname).mark,1,32)
  139. var %to = $gettok($sock($sockname).mark,2,32)
  140. var %color = $gettok($sock($sockname).mark,3,32)
  141. var %text = $gettok($sock($sockname).mark,4-,32)
  142. var %a
  143. sockread -f %a
  144. tokenize 32 %a
  145. if ($1) {
  146. if (*null,null,3,null,null,null* iswm $1- || *null,null,1]* iswm $1-) { var %t = $gettok($replace($1-,",$chr(1)),2,1) | if (%t !isin %final) { %final = %final %t } }
  147. if ([[["*"* iswm $1- && *null,null,1] iswm $1- && !%final) { %final = $gettok($replace($1-,",$chr(1)),2,1) }
  148. if (?1.0?[* iswm $1- && %final) {
  149. if ($gettok(%final,1-3,32) == $gettok(%text,1-3,32)) { unset %final %_nick %_target | return }
  150. %final = $emoticons($replace(%final,',"))
  151. if (%_nick == $me) { msg %_target %final | echo %color -tg %_target * $+([,$upper(%from),/,$upper(%to),]) ( $+ %_nick $+ ) $replace(%text,+,$chr(32)) }
  152. elseif (%_target ischan) { echo %color -tg %_target * $+([,$upper(%from),/,$upper(%to),]) ( $+ %_nick $+ ) %final }
  153. else { echo %color -tg %_nick * $+([,$upper(%from),/,$upper(%to),]) ( $+ %_nick $+ ) %final }
  154. unset %final %_nick %_target
  155. sockclose $sockname
  156. }
  157. }
  158. }
  159.  
  160. ;============================================================== EOF
Advertisement
Add Comment
Please, Sign In to add comment