/[notice-sender]/trunk/sender.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/sender.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 21 by dpavlin, Sun May 15 21:35:15 2005 UTC revision 24 by dpavlin, Sun May 15 22:30:54 2005 UTC
# Line 120  B<This seems somewhat cludgy, and it wil Line 120  B<This seems somewhat cludgy, and it wil
120                  chomp;                  chomp;
121                  next if (/^#/ || /^\s*$/);                  next if (/^#/ || /^\s*$/);
122                  my ($email, $name) = split(/\s+/,$_, 2);                  my ($email, $name) = split(/\s+/,$_, 2);
123                  $name ||= '';                  $added++ if ($nos->add_member_to_list( email => $email, name => $name, list => $add_opt ));
                 if (! Email::Valid->address($email)) {  
                         print "SKIPPING $name <$email>\n";  
                         next;  
                 }  
                 print "# $name <$email>\n";  
                 my $this_user = $users->find_or_create({  
                         email => $email,  
                         full_name => $name,  
                 }) || die "can't find or create member\n";  
                 my $user_on_list = $user_list->find_or_create({  
                         user_id => $this_user->id,  
                         list_id => $list->id,  
                 }) || die "can't add user to list";  
                 $added++;  
         }  
   
         foreach my $c_name ($loader->tables) {  
                 my $c = $loader->find_class($c_name)|| die "can't find $c_name";  
                 $c->dbi_commit();  
124          }          }
125    
126          print "list ",$list->name," has $added users\n";          print "list ",$list->name," has $added users\n";
# Line 159  add C<--verbose> flag, it will display a Line 140  add C<--verbose> flag, it will display a
140          if ($queue_opt ne '') {          if ($queue_opt ne '') {
141                  # add message to list queue                  # add message to list queue
142    
                 my $this_list = $lists->search(  
                         name => $queue_opt,  
                 )->first || die "can't find list $queue_opt";  
   
143                  my $message_text;                  my $message_text;
144                  while(<>) {                  while(<>) {
145                          $message_text .= $_;                          $message_text .= $_;
146                  }                  }
147    
148                  die "no message" unless ($message_text);                  my $id = $nos->add_message_to_queue(
149                            list => $queue_opt,
150                  my $this_message = $messages->find_or_create({                          message => $message_text,
151                          message => $message_text                  );
                 }) || die "can't insert message";  
   
                 $this_message->dbi_commit() || die "can't add message";  
   
                 $queue->find_or_create({  
                         message_id => $this_message->id,  
                         list_id => $this_list->id,  
                 }) || die "can't add message ",$this_message->id," to list ",$this_list->id, ": ",$this_list->name;  
   
                 $queue->dbi_commit || die "can't add message to list ",$this_list->name;  
152    
153                  print "added message ",$this_message->id, " to list ",$this_list->name,"\n";                  print "added message $id to list $queue_opt\n";
154    
155          } else {          } else {
156                  # list messages in queue                          # list messages in queue        
# Line 215  for single list. Line 182  for single list.
182    
183  } elsif (defined($send_opt)) {  } elsif (defined($send_opt)) {
184    
185          my $my_q;          $nos->send_queued_messages($send_opt);
         if ($send_opt ne '') {  
                 my $l_id = $lists->search_like( name => $send_opt )->first ||  
                         die "can't find list $send_opt";  
                 $my_q = $queue->search_like( list_id => $l_id ) ||  
                         die "can't find list $send_opt";  
         } else {  
                 $my_q = $queue->retrieve_all;  
         }  
   
         while (my $m = $my_q->next) {  
                 next if ($m->all_sent);  
   
                 print "sending message ",$m->message_id," enqueued on ",$m->date," to list ",$m->list_id->name,"\n";  
                 my $msg = $m->message_id->message;  
   
                 foreach my $u ($user_list->search(list_id => $m->list_id)) {  
   
                         if ($sent->search( message_id => $m->message_id, user_id => $u->user_id )) {  
                                 print "SKIP ",$u->user_id->email," message allready sent\n";  
                         } else {  
                                 print "\t",$u->user_id->email,"\n";  
   
                                 my $hdr = "From: " . $u->list_id->name . " <" . $u->list_id->email . ">\n" .  
                                         "To: " . $u->user_id->full_name . " <". $u->user_id->email. ">\n";  
   
                                 # FIXME do real sending :-)  
                                 $nos->send_email("$hdr\n$msg");  
   
                                 $sent->create({  
                                         message_id => $m->message_id,  
                                         user_id => $u->user_id,  
                                 });  
                                 $sent->dbi_commit;  
                         }  
                 }  
                 $m->all_sent(1);  
                 $m->update;  
                 $m->dbi_commit;  
         }  
186    
187  } else  {  } else  {
188          die "see perldoc $0 for help";          die "see perldoc $0 for help";

Legend:
Removed from v.21  
changed lines
  Added in v.24

  ViewVC Help
Powered by ViewVC 1.1.26