Advertisement
Evengar

Untitled

Feb 15th, 2021
1,523
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.61 KB | None | 0 0
  1. use SRS::Perl;
  2. use SRS::MyDBI;
  3. use SRS::Config;
  4. use SRX::Bulkmail::EmailList;
  5. use SRX::Bulkmail;
  6. use SRS::Utils;
  7. use SRS::User;
  8. use SRS::Cache;
  9. use List::MoreUtils qw(uniq);
  10. use SRS::Type::DateTime qw(dt);
  11. use Data::Dumper;
  12.  
  13.  
  14. use utf8;
  15.  
  16. my @mailists = (1,8);
  17.  
  18. foreach my $mail_list (@mailists) {
  19.     process_maillist($mail_list);
  20. }
  21.  
  22. sub process_maillist {
  23.     my $subsr_list_id = shift;
  24.  
  25.     return unless $subsr_list_id && is_integer($subsr_list_id);
  26.  
  27.     my $sth = dbh_ro->prepare( "SELECT sid, user_id, email FROM maillist_subscribers WHERE listid = $subsr_list_id");
  28.     $sth->execute();
  29.  
  30.     while ( my $subscriber = $sth->fetchrow_hashref ) {
  31.         my $email = $subscriber->{email} ?
  32.                     $subscriber->{email} : SRS::User->new( $subscriber->{user_id} )->{email};
  33.         my $last_open_time = find_last_opened_bulkmail($email, $subsr_list_id);
  34.         SRS::Subscriptions::set_last_open_time( $subscriber->{sid}, $last_open_time ) if $last_open_time;
  35.     }
  36. }
  37.  
  38.  
  39. sub find_last_opened_bulkmail {
  40.     my ($email, $subsr_list_id) = @_;
  41.  
  42.     dbh_rw->selectrow_array("
  43.          SELECT
  44.            bulkmail_email_lists.changed
  45.          FROM
  46.            bulkmail_email_lists
  47.          LEFT JOIN
  48.            bulkmails ON bulkmail_email_lists.list_id = bulkmails.list_id
  49.          WHERE
  50.            bulkmail_email_lists.email = ?
  51.          AND
  52.            bulkmail_email_lists.state = 'opened'
  53.          AND
  54.            bulkmails.maillist_id = ?
  55.          ORDER BY
  56.            bulkmail_email_lists.changed DESC
  57.          LIMIT 1
  58.          ", undef, $email, $subsr_list_id );
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement