Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.62 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use Pg;
  3. use Env;
  4. use IO::File;
  5. use LWP;
  6. use Time::HiRes qw(time);
  7. use POSIX qw(strftime);
  8. use strict;
  9.  
  10. my $handle;
  11. my $pid = $$;
  12. my $name = $0;
  13. $name =~ /([^\/]+)$/;
  14. $name = $1;
  15.  
  16. my $_t_ = time;
  17. my $_date_ = strftime "%Y-%m-%d", localtime $_t_;
  18. sysopen($handle, "/var/log/cgi/$_date_.$name.log", O_RDWR | O_CREAT);
  19. seek($handle, 0, SEEK_END);
  20.  
  21. _log_('start');
  22.  
  23. my $conn = Pg::connectdb('dbname=ipt user=pgsql host=localhost port=5432 password=123');
  24. if ( $conn->status != PGRES_CONNECTION_OK ) {
  25.     _log_('cant connect to db');
  26.     exit;
  27. };
  28. $conn->exec("set client_encoding to 'UTF8'");
  29.  
  30. my $res = $conn->exec('select * from send_email()');
  31. my $i = $res->ntuples;
  32.  
  33. while ($i > 0) {
  34.     my $id = $res->getvalue($i - 1, 0);
  35.     my $msg = $res->getvalue($i - 1, 1);
  36.  
  37.     my $ua = LWP::UserAgent->new;
  38.     my $req = HTTP::Request->new(POST => 'https://mailer.iptelefon.su/api/');
  39.     $req->content_type('application/json');
  40.     $req->content_encoding('UTF-8');
  41.     $req->content($msg);
  42.  
  43.     _log_("try");
  44.     _log_("$msg");
  45.  
  46.     my $hres = $ua->request($req);
  47.     my $data = $hres->content;
  48.     if ($hres->is_success) {
  49.         $conn->exec("update event2user set pass = 1 where id_event2user = $id");
  50.         _log_('success');
  51.     } else {
  52.         _log_('fail');
  53.     };
  54.     _log_("$data");
  55.  
  56.     $i--;
  57. };
  58.  
  59. _log_('stop');
  60.  
  61.  
  62. sub _log_ {
  63.     my $_t_ = time;
  64.     my $_date_ = strftime "%Y%m%d %H:%M:%S", localtime $_t_;
  65.     $_date_ .= sprintf ".%03d", ($_t_ - int($_t_)) * 1000;
  66.  
  67.     my $_tmp_ = $$ . ' ' . $_date_ . ' ' . $_[0] . "\n";
  68.     syswrite($handle, $_tmp_, length($_tmp_));
  69. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement