Bradjoe96
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Bradjoe96


 
HomeSearchLatest imagesRegisterLog in

 

 Dictionary Script

Go down 
AuthorMessage
bradjoe96
Founder
Founder
bradjoe96


Warning Level : Dictionary Script WarningBar-Gloss1
Posts : 159
Points : 69347
Reputation : 600
Join date : 2009-03-29
Age : 28
Location : United States

Dictionary Script Empty
PostSubject: Dictionary Script   Dictionary Script Icon_minitimeMon Aug 31, 2009 9:58 am

Code:

; DictIRC v1.0.6 by Riamus 2005-2008
; #OldGames on irc.undernet.org
; Dictionary Data from http://www.onelook.com/
;
; The most common types of words (nouns, verbs, etc) have color settings
; that can be set up.  Uncommon types like Definite Articles and Conjunctions
; do not have settings for colors and use a default dark grey color.  If for
; some reason, anyone wants these to have color settings in the dialog, just
; let me know.  If you just want to manually change them, do Ctrl-F and
; search for 14 ... change those to whatever color you want them to be.
;
; Note that depending on the search, this can easily flood a channel with many
; definitions.
;
; Use the flood protection if you don't want words with long definitions to
; fill your channel.  Although you won't get all your definitions for each
; word, you may not want to see 36 definitions for a word like "go".
;
; Credits: Indenting idea thanks to XMog on irc.irchighway.net in #Invision.


ctcp *:version:*: {
  .ctcpreply $nick version DictIRC v1.0.6 by Riamus.  For more information, contact Riamus on irc.undernet.org in #OldGames.
}

menu * {
  -
  DictIRC Setup: dialog -m DictionarySetup DictionarySetup
}

on *:load:{
  dialog -m DictionarySetup DictionarySetup
}

alias dictionarysock {
  set %word $replace($1-,$chr(32),+)
  sockopen dictionarysock www.onelook.com 80
}

on *:sockopen:dictionarysock: {
  sockwrite -n $sockname GET /?w= $+ %word $+ &ls=a HTTP/1.0
  sockwrite -n $sockname User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)
  sockwrite -n $sockname Host: www.onelook.com
  sockwrite -n $sockname Accept-Language: en-us
  sockwrite -n $sockname Accept-Encoding: gzip, deflate
  sockwrite -n $sockname Accept: */* $+ $crlf $+ $crlf
}

on *:sockread:dictionarysock: {
  if ($sockerr) {
    echo -a Error.
    halt
  }
  else {
    var %temptext
    sockread %temptext
    if (*Quick definitions* iswm %temptext) {
      set %dictionary.word $htmlfree($gettok($gettok(%temptext,2,40),1,41))
    }
    if (*<b>▸ <i>* iswm %temptext && Add a new definition or comment !isin %temptext) {
      inc %defcnt
      var %arrow = ▸
      set %definitions [ $+ [ %defcnt ] ] $remove($htmlfree($replace(%temptext,$chr(40) $+ <font color=green>,$chr(40) $+ Example: <font color=green>)),%arrow)
    }
    ; ************ These lines may no longer be needed (below) ************
    if (<LI> $+ $chr(40) $+ <I>* iswm %temptext) {
      inc %defcnt
      set %definitions [ $+ [ %defcnt ] ] $htmlfree(%temptext)
    }
    if (<P><B> $+ %word $+ </B>* iswm %temptext) {
      inc %defcnt
      set %definitions [ $+ [ %defcnt ] ] $gettok($htmlfree(%temptext),2-,32)
    }
    ; ************ These lines may no longer be needed (above) ************
    if (<br><table border=0 cellpadding=0 bgcolor="#ffcccc" width=95%>* iswm %temptext) {
      sockclose dictionarysock
      DisplayDefinitions
    }
    if (*</html> iswm %temptext) {
      sockclose dictionarysock
      DisplayDefinitions
    }
  }
}

alias DisplayDefinitions {
  if (%defcnt == $null) {
    msg %dictchan Word cannot be found.
    unset %dict.delay
    return
  }
  var %z = 1
  while (%z <= 13) {
    set %dcol [ $+ [ %z ] ] $gettok(%dictionary.settings,%z,32)
    if ($gettok(%dictionary.settings,$calc(%z + 13),32) == 1) { set %dcol [ $+ [ %z ] ] %dcol [ $+ [ %z ] ] $+  }
    if ($gettok(%dictionary.settings,$calc(%z + 26),32) == 1) { set %dcol [ $+ [ %z ] ] %dcol [ $+ [ %z ] ] $+  }
    inc %z
  }
  msg %dictchan  $+ %dcol1 $+ Word:  $+ %dcol11 $+ %dictionary.word
  var %c = 1
  msg %dictchan  $+ %dcol2 $+ Definitions:
  while (%c <= %defcnt) {
    var %output = $replace(%definitions [ $+ [ %c ] ],noun:, $+ %dcol3 $+ Noun:,verb:, $+ %dcol4 $+ Verb:,ad $+ %dcol4 $+ Verb:, $+ %dcol6 $+ Adverb:,name:, $+ %dcol10 $+ Name: ,adjective:, $+ %dcol5 $+ Adjective:,$chr(40) $+ pron. $+ $chr(41), $+ %dcol7 $+ Pronoun:,$chr(40) $+ imp. $+ $chr(41), $+ %dcol8 $+ Imperative:,$chr(40) $+ prep. $+ $chr(41), $+ %dcol9 $+ Preposition:,(definite article.),14Definite Article:,(adv.), $+ %dcol6 $+ Adverb:,$chr(40) $+ $chr(41),14*:,$chr(40) $+ conj. $+ $chr(41),14Conjunction:,$chr(40) $+ a. $+ $chr(41), $+ %dcol5 $+ Adjective:,$chr(40) $+ n. $+ $chr(41), $+ %dcol3 $+ Noun:,$chr(40) $+ v. i. $+ $chr(41), $+ %dcol4 $+ Verb (Intransitive):,$chr(40) $+ v. t. $+ $chr(41), $+ %dcol4 $+ Verb (Transitive):,$chr(40) $+ v. T. & i. $+ $chr(41), $+ %dcol4 $+ Verb (Transitive) $+ $chr(44) $+  $+ %dcol4 $+ Verb (Intransitive):)
    var %output = $replace(%output,$chr(40) $+ pron. $+ $chr(44) A. $+ $chr(44) conj. $+ $chr(44) & adv. $+ $chr(41), $+ %dcol7 $+ Pronoun $+ $chr(44)  $+ %dcol5 $+ Adjective $+ $chr(44) 14Conjunction $+ $chr(44)  $+ %dcol6 $+ Adverb:,$chr(40) $+ pron. & a. $+ $chr(41), $+ %dcol7 $+ Pronoun $+ $chr(44)  $+ %dcol5 $+ Adjective:,$chr(40) $+ pron. $+ $chr(44) A. $+ $chr(44) & adv. $+ $chr(41), $+ %dcol7 $+ Pronoun $+ $chr(44)  $+ %dcol5 $+ Adjective $+ $chr(44)  $+ %dcol6 $+ Adverb:,$chr(40) $+ interrog. Adv. $+ $chr(41), $+ %dcol6 $+ Interrogative Adverb:,$chr(40) $+ interj. $+ $chr(41),14Interjection:,$chr(40) $+ adv. & conj. $+ $chr(41), $+ %dcol6 $+ Adverb $+ $chr(44) 14Conjunction:,$chr(40) $+ prep. & conj. $+ $chr(41), $+ %dcol9 $+ Preposition $+ $chr(44) $+ 14Conjunction:,$chr(40) $+ n. Pl. $+ $chr(41), $+ %dcol3 $+ Plural Noun:)
    var %output = $gettok(%output,1,58) $+ : $+  $+ %dcol12 $strip($gettok(%output,2-,58))
    if ($left($gettok(%output,2,32),1) islower) {
      var %output = $gettok(%output,1,32) $upper($left($gettok(%output,2,32),1)) $+ $right($gettok(%output,2,32),-1) $gettok(%output,3-,32)
    }
    write dicttemp.txt     $replace($reptok(%output,$chr(40) $+ Example:, $+ %dcol13 $+ $chr(40) $+ Example:,32),,#k#,,#b#,,#u#,,#o#)
    inc %c
  }
  .play -a replacecodes %dictchan dicttemp.txt $iif($calc($gettok(%dictionary.settings,42,32) * 1000),$v1,1500)
  .remove dicttemp.txt
  unset %dictionary.word
  unset %definition*
  unset %dictchan
  unset %defcnt
  unset %dcol?
  unset %dcol??
  unset %word
}

alias replacecodes {
  if ($gettok(%dictionary.settings,40,32) == 1) {
    inc %dictline.cnt
    if (%dictline.cnt > $gettok(%dictionary.settings,41,32)) { .play stop | unset %dictline.cnt | unset %dict.delay | return }
  }
  msg %dictchan $remove($replace($1-,#k#,,#b#,,#u#,,#o#,),%dictchan)
}
alias htmlfree {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
  return %x
}


dialog DictionarySetup {
  title "DictIRC Setup"
  size -1 -1 180 190
  option dbu

  text "DictIRC v1.0.6 by Riamus 2005-2008",1,1 1 178 10,center

  check "",97,10 10 5 10
  text "Only display X definitions (prevent flooding the channel)",98,17 11 140 10
  edit "",99,155 10 17 10

  box "Display Settings",10,5 20 170 140
  text "Word Heading",11,7 29 50 8
  combo 21,60 27 50 60,drop
  check "Bold",31,115 28 20 10
  check "Underline",41,140 28 34 10
  text "Definition Heading",12,7 39 50 8
  combo 22,60 37 50 60,drop
  check "Bold",32,115 38 20 10
  check "Underline",42,140 38 34 10
  text "Noun Heading",13,7 49 50 8
  combo 23,60 47 50 60,drop
  check "Bold",33,115 48 20 10
  check "Underline",43,140 48 34 10
  text "Verb Heading",14,7 59 50 8
  combo 24,60 57 50 60,drop
  check "Bold",34,115 58 20 10
  check "Underline",44,140 58 34 10
  text "Adjective Heading",15,7 69 50 8
  combo 25,60 67 50 60,drop
  check "Bold",35,115 68 20 10
  check "Underline",45,140 68 34 10
  text "Adverb Heading",16,7 79 50 8
  combo 26,60 77 50 60,drop
  check "Bold",36,115 78 20 10
  check "Underline",46,140 78 34 10
  text "Pronoun Heading",17,7 89 50 8
  combo 27,60 87 50 60,drop
  check "Bold",37,115 88 20 10
  check "Underline",47,140 88 34 10
  text "Imperative Heading",18,7 99 50 8
  combo 28,60 97 50 60,drop
  check "Bold",38,115 98 20 10
  check "Underline",48,140 98 34 10
  text "Preposition Heading",19,7 109 50 8
  combo 29,60 107 50 60,drop
  check "Bold",39,115 108 20 10
  check "Underline",49,140 108 34 10
  text "Name Heading",20,7 119 50 8
  combo 30,60 117 50 60,drop
  check "Bold",40,115 118 20 10
  check "Underline",50,140 118 34 10

  text "Word",61,7 129 50 8
  combo 71,60 127 50 60,drop
  check "Bold",81,115 128 20 10
  check "Underline",91,140 128 34 10
  text "Definitions",62,7 139 50 8
  combo 72,60 137 50 60,drop
  check "Bold",82,115 138 20 10
  check "Underline",92,140 138 34 10
  text "Examples",63,7 149 50 8
  combo 73,60 147 50 60,drop
  check "Bold",83,115 148 20 10
  check "Underline",93,140 148 34 10

  text "Line delay (in seconds):",105,50 165 60 10
  edit "",106,110 164 20 10, center

  button "OK",100,80 178 20 10,ok
}

on *:dialog:dictionarysetup:init:0:{
  var %i = 21
  while (%i <= 73) {
    did -a $dname %i White
    did -a $dname %i Black
    did -a $dname %i Blue
    did -a $dname %i Green
    did -a $dname %i Red
    did -a $dname %i Brown
    did -a $dname %i Purple
    did -a $dname %i Orange
    did -a $dname %i Yellow
    did -a $dname %i Light Green
    did -a $dname %i Cyan
    did -a $dname %i Light Cyan
    did -a $dname %i Royal Blue
    did -a $dname %i Pink
    did -a $dname %i Grey
    did -a $dname %i Light Grey
    did -a $dname %i Default
    inc %i
    if (%i == 31) { var %i = 71 }
  }
  if (%dictionary.settings == $null) { set %dictionary.settings 12 12 10 03 06 09 11 13 08 04 16 16 05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 999 1.5 }
  var %c = 1
  while (%c <= 13) {
    if (%c < 11) {
      did -c $dname $calc(%c + 20) $calc($gettok(%dictionary.settings,%c,32) + 1)
      if ($gettok(%dictionary.settings,$calc(%c + 13),32) == 1) { did -c $dname $calc(%c + 30) }
      if ($gettok(%dictionary.settings,$calc(%c + 26),32) == 1) { did -c $dname $calc(%c + 40) }
    }
    else {
      did -c $dname $calc(%c + 60) $calc($gettok(%dictionary.settings,%c,32) + 1)
      if ($gettok(%dictionary.settings,$calc(%c + 13),32) == 1) { did -c $dname $calc(%c + 70) }
      if ($gettok(%dictionary.settings,$calc(%c + 26),32) == 1) { did -c $dname $calc(%c + 80) }
    }
    inc %c
  }
  if ($gettok(%dictionary.settings,40,32) == 1) { did -c $dname 97 }
  did -a $dname 99 $gettok(%dictionary.settings,41,32)
  if ($did(97).state == 0) { did -b $dname 99 }
  if ($gettok(%dictionary.settings,42,32)) { did -ra $dname 106 $v1 }
  else { did -ra $dname 106 1.5 }
}

on *:dialog:dictionarysetup:sclick:*:{
  unset %dictionary.settings
  if ($did == 100) {
    var %c = 1
    while (%c <= 13) {
      if (%c < 11) {
        var %settings = $iif($len($calc($did($dname,$calc(%c + 20)).sel - 1)) == 1,0 $+ $calc($did($dname,$calc(%c + 20)).sel - 1),$calc($did($dname,$calc(%c + 20)).sel - 1))
        set %dictionary.settings %dictionary.settings %settings
      }
      else {
        var %settings = $iif($len($calc($did($dname,$calc(%c + 60)).sel - 1)) == 1,0 $+ $calc($did($dname,$calc(%c + 60)).sel - 1),$calc($did($dname,$calc(%c + 60)).sel - 1))
        set %dictionary.settings %dictionary.settings %settings
      }
      inc %c
    }
    var %c = 1
    while (%c <= 13) {
      if (%c < 11) {
        set %dictionary.settings %dictionary.settings $did($dname,$calc(%c + 30)).state
      }
      else {
        set %dictionary.settings %dictionary.settings $did($dname,$calc(%c + 70)).state
      }
      inc %c
    }
    var %c = 1
    while (%c <= 13) {
      if (%c < 11) {
        set %dictionary.settings %dictionary.settings $did($dname,$calc(%c + 40)).state
      }
      else {
        set %dictionary.settings %dictionary.settings $did($dname,$calc(%c + 80)).state
      }
      inc %c
    }
    set %dictionary.settings %dictionary.settings $did($dname,97).state $did($dname,99)
    set %dictionary.settings %dictionary.settings $did($dname,106)
  }
  if ($did == 97) {
    if ($did(97).state == 0) { did -b $dname 99 }
    else { did -e $dname 99 }
  }
}

on *:text:!dict *:#: {
  if (%dict.delay == 1) { .notice $nick Please wait until the current word is done being displayed. | return }
  set %dictchan $chan
  set -u60 %dict.delay 1
  dictionarysock $2-
}

on *:input:*: {
  if ($1 == !dict) {
    if (%dict.delay == 1) { .notice $nick Please wait until the current word is done being displayed. | return }
    echo -a 10*** By Default, you won't see your own definitions.  Definition display is disabled because a bot won't usually want to see all that data all the time.
    echo -a 10*** To enable it, you'll need to remove the "." in front of .play on line 109.  I may add an option for this later to avoid having to edit it manually.
    set %dictchan $chan
    set -u60 %dict.delay 1
    dictionarysock $2-
  }
}

on *:playend: {
  if ($nopath($filename) == dicttemp.txt) {
    unset %dictline.cnt
    unset %dict.delay
  }
}
Back to top Go down
https://bradjoe96.forumotion.net
 
Dictionary Script
Back to top 
Page 1 of 1
 Similar topics
-
» Away Script
» TinyURL Script
» Wikipedia Search Script
» Bot Logging Channel Script 5.00
» AKA Nick Tracker Script

Permissions in this forum:You cannot reply to topics in this forum
Bradjoe96 :: Scripting :: mIRC Scripting-
Jump to: