diff options
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/delete-later | 112 | 
1 files changed, 56 insertions, 56 deletions
diff --git a/contrib/delete-later b/contrib/delete-later index 50c705c9..4db69732 100644 --- a/contrib/delete-later +++ b/contrib/delete-later @@ -1,56 +1,56 @@ -#!/usr/bin/expect -f
 -
 -# MySQL database connection settings
 -set CRDB_host     localhost
 -set CRDB_DB       test
 -set CRDB_username root
 -set CRDB_password root
 -
 -# set eiter one to 1 for verbose output
 -log_user 0
 -set comments 0
 -
 -package require mysqltcl
 -
 -# connect to MySQL database
 -set handle [::mysql::connect -host $CRDB_host -user $CRDB_username -password $CRDB_password]
 -
 -# get server/usernames to clean up
 -set userlist [::mysql::sel $handle "SELECT UserID, server, username, password, retaindays from $CRDB_DB.fetchmail_user" -flatlist]
 -
 -# loop through all users in database
 -foreach {userid server username password days} $userlist {
 -  if {$comments==1} { send_user "\r\nWorking on accound #$userid\r\n*******************************\r\n" }
 -  eval spawn telnet -l fetchmail_cleanup $server 110
 -  expect "ready"
 -  send "USER $username\r"
 -  expect "password"
 -  send "PASS $password\r"
 -  expect "OK"
 -  send "STAT\r"
 -  expect "+OK "
 -  expect -re "\[0-9]* "
 -  set anz $expect_out(0,string)
 -  if {$comments==1} { send_user "message count: $anz \r\n" }
 -  set i 0
 -  while { $i < $anz } {
 -    incr i
 -    send "UIDL $i\r"
 -    expect -re "\\\+OK $i \(.*\)\r"
 -    set uid $expect_out(1,string)
 -    ::mysql::exec $handle "insert ignore into $CRDB_DB.fetchmail values ($userid,'$uid',now());"
 -    set age [::mysql::sel $handle "SELECT DATEDIFF(now(),Fetchdate) from $CRDB_DB.fetchmail where UserID=$userid and UID='$uid'" -list]
 -    if {$comments==1} { send_user "Message #$i: UID: $uid , age: $age \r\n" }
 -    if {$age > $days} {
 -      send "DELE $i\r"
 -      expect "deleted"
 -      if {$comments==1} { send_user "Message $i deleted.\r\n" }
 -    }
 -  }
 -  send "quit\r"
 -  expect "signing off"
 -  ::mysql::exec $handle "delete from $CRDB_DB.fetchmail where DATEDIFF(now(),Fetchdate)>($days*2) and UserID=$userid;"
 -}
 -::mysql::close $handle
 -exit
 -
 +#!/usr/bin/expect -f + +# MySQL database connection settings +set CRDB_host     localhost +set CRDB_DB       test +set CRDB_username root +set CRDB_password root + +# set eiter one to 1 for verbose output +log_user 0 +set comments 0 + +package require mysqltcl + +# connect to MySQL database +set handle [::mysql::connect -host $CRDB_host -user $CRDB_username -password $CRDB_password] + +# get server/usernames to clean up +set userlist [::mysql::sel $handle "SELECT UserID, server, username, password, retaindays from $CRDB_DB.fetchmail_user" -flatlist] + +# loop through all users in database +foreach {userid server username password days} $userlist { +  if {$comments==1} { send_user "\r\nWorking on accound #$userid\r\n*******************************\r\n" } +  eval spawn telnet -l fetchmail_cleanup $server 110 +  expect "ready" +  send "USER $username\r" +  expect "password" +  send "PASS $password\r" +  expect "OK" +  send "STAT\r" +  expect "+OK " +  expect -re "\[0-9]* " +  set anz $expect_out(0,string) +  if {$comments==1} { send_user "message count: $anz \r\n" } +  set i 0 +  while { $i < $anz } { +    incr i +    send "UIDL $i\r" +    expect -re "\\\+OK $i \(.*\)\r" +    set uid $expect_out(1,string) +    ::mysql::exec $handle "insert ignore into $CRDB_DB.fetchmail values ($userid,'$uid',now());" +    set age [::mysql::sel $handle "SELECT DATEDIFF(now(),Fetchdate) from $CRDB_DB.fetchmail where UserID=$userid and UID='$uid'" -list] +    if {$comments==1} { send_user "Message #$i: UID: $uid , age: $age \r\n" } +    if {$age > $days} { +      send "DELE $i\r" +      expect "deleted" +      if {$comments==1} { send_user "Message $i deleted.\r\n" } +    } +  } +  send "quit\r" +  expect "signing off" +  ::mysql::exec $handle "delete from $CRDB_DB.fetchmail where DATEDIFF(now(),Fetchdate)>($days*2) and UserID=$userid;" +} +::mysql::close $handle +exit +  | 
