Simple memo reader (Anope only)

By Savage_CL on Sep 27, 2012

It's really simple. Load it and use the alias: /memos

Let me know if you find any errors. Wrote this in 20 minutes at 3AM.

/*
######################
#                    #
# Memo Reader 1.0    #
# By: Jordan`        #
# Find at #Savage_CL #
# on SwiftIRC        #
#                    #
######################
*/

alias memos {
  hfree memo_reader
  hmake memo_reader 100
  state 1
  hadd memo_reader memo 1
  ms read 1
  dialog -m memo_reader memo_reader
  did -a memo_reader 4-6 Please Wait...
}
on ^*:NOTICE:*:?:{
  if ($nick != MemoServ) return
  if (!$hget(memo_reader)) return
  haltdef
  if ($state == 1) {
    if ($1- == Memo $hget(memo_reader,memo) does not exist!) {
      did -b memo_reader 7-8
      did -r memo_reader 4-6
      did -a memo_reader 4-6 No more memos!
    }
    state 2
    hadd memo_reader from $4
    noop $regex(date_get,$1-,/\((.+)\)/U)
    hadd memo_reader date $regml(date_get,1)
    hadd memo_reader memo $2
  }
  elseif ($state == 2) {
    hadd memo_reader data $1-
    did -r memo_reader 4-6
    did -a memo_reader 4 $hget(memo_reader, from)
    did -a memo_reader 5 $hget(memo_reader, date)
    did -a memo_reader 6 $hget(memo_reader, data)
    state 3
  }
  elseif ($state == 3) {
    if (Memo $hget(memo_reader,memo) has been deleted. == $1-) {
      state 1
      ms read $2
    }
  }
}
alias state {
  if ($isid) {
    return $hget(memo_reader,state)
  }
  hadd memo_reader state $$1
}

dialog memo_reader {
  title "Memo Reader"
  size -1 -1 193 134
  option dbu
  text "From:", 1, 0 10 31 8, right
  edit "", 4, 33 9 155 10, read
  text "Date:", 2, 0 21 31 8, right
  edit "", 5, 33 20 155 10, read
  text "Memo:", 3, 0 32 31 8, right
  edit "", 6, 33 31 155 80, read multi
  button "Keep", 7, 33 116 37 12
  button "Delete", 8, 88 116 37 12
  button "Close", 9, 143 116 37 12, ok
}

on *:DIALOG:memo_reader:sclick:7-9:{
  if ($state != 3) return
  did -r memo_reader 4-6
  did -a memo_reader 4-6 Please Wait...
  if ($did == 7) {
    state 1
    hinc memo_reader memo
    ms read $hget(memo_reader,memo)
  }
  elseif ($did == 8) {
    ms del $hget(memo_reader,memo)
  }
  elseif ($did == 9) {
    hfree memo_reader
  }
}

Comments

Sign in to comment.
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.