CFRegex

By flamez on Feb 09, 2006

Content Filter 4 regex and stuff :/

dialog contentfilter.add {
  title "Add content filter"
  size -1 -1 129 59
  option dbu
  text "Please enter a new wildcard or regular expression that you do not want to be displayed.", 6, 3 2 124 15
  edit "", 1, 2 18 125 11, autohs limit 100
  check "Regular expression", 2, 3 30 61 9
  box "", 3, -12 38 180 44
  button "&Ok", 5, 45 45 40 12
  button "&Cancel", 4, 87 45 40 12, cancel
}
on *:dialog:contentfilter.add:*:*:{
  if ($devent == init) {
    if (%contentfilter.edit) {
      var %t = $did(settings,150).seltext
      set %contentfilter.edit $gettok(%t,1,160)
      if ($cr isin %t) {
        did -a $dname 1 $gettok(%t,3,13)
        did -c $dname 2
      }
      else { did -a $dname 1 %t }
    }
  }
  elseif ($devent == sclick) {
    if ($did == 5) {
      if ($did(1) != $null) {
        var %sz = $did(1) $iif($did(2).state,(Regular expression))
        if (%contentfilter.edit == %sz) { dialog -x $dname }
        elseif (!$contentfilter.isentry(%sz)) {
          if ($did(2).state) {
            var %n = $contentfilter.nextvar,%s = $did(1) $+((Regular expression),$str($chr(160),200),$cr,%n,$cr,$did(1))
            if (%contentfilter.edit) { did -oc settings 150 $did(settings,150).sel %s }
            else { did -a settings 150 %s }
            did -e settings 153
            contentfilter.savelist
            dialog -c $dname
          }
          else {
            if (%contentfilter.edit) { did -oc settings 150 $did(settings,150).sel $did(1) }
            else { did -a settings 150 $did(1) }
            did -e settings 153
            contentfilter.savelist
            dialog -c $dname
          }
        }
        else { errdialog the same entry is already in the filter list! }
      }
      else { errdialog you did not supply a filter! }
    }
  }
}
alias contentfilter.isentry {
  var %i = $did(settings,150).lines
  while (%i) {
    if ($gettok($did(settings,150,%i),1,160) == $1-) { return 1 }
    dec %i
  }
}
alias contentfilter.edit {
  set %contentfilter.edit 1
  .echo -q $dialog(contentfilter.add,contentfilter.add,-4)
  unset %contentfilter.edit
}
alias contentfilter.savelist {
  unset %contentfilter %contentfilter.regex.*
  var %i = $did(settings,150).lines,%r
  while (%i) {
    var %c = $did(settings,150,%i)
    if ($chr(13) !isin %c) { %r = $addtok(%r,%c,44) }
    else { set %contentfilter.regex. [ $+ [ $gettok(%c,2,13) ] ] $gettok(%c,3,13) }
    dec %i
  }
  set %contentfilter $mkregex(%r)
}
alias contentfilter.nextvar {
  var %i = 1
  while (%contentfilter.regex. [ $+ [ %i ] ]) { inc %i }
  return %i
}
alias contentfilter {
  if (($prop == query) && (%contentfilter.queries)) || (($prop == chan) && (%contentfilter.chans)) {
    if (%contentfilter) && ($regex($1-,%contentfilter)) { return 1 }
    var %i = $var(%contentfilter.regex.*,0)
    while (%i) {
      if ($regex($1-, [ [ $var(%contentfilter.regex.*,%i) ] ] )) { return 1 }
      dec %i
    }
  }
}

Comments

Sign in to comment.
Urza   -  Feb 09, 2006

this looks very much like something taken from a larger script...

wheres the errdialog alias?
or the settings dialog?
or the $mkregex alias?
whats with the variables that are never used? %contentfilter.queries? %contentfilter.chans?

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.