package WWWDBI; use strict; use warnings; use DBI; use LWP::UserAgent; use Exporter qw(import); our @EXPORT = qw( dob paste pushOver ); my %attr = ( PrintError => 0, RaiseError => 1 ); my ($logf, $dsn, $dbh); sub new { my ($class, %args) = @_; my %auth; open AUTH, "/home/rendler/.dbi.auth" or die $!; while () { chomp; s/\s//g; my ($key, $value) = split /=/, $_; if ($key =~ /^user(name)?$/i) { $auth{dbUser} = $value; } elsif ($key =~ /^pass(word)?$/i) { $auth{dbPass} = $value; } } $dsn = "DBI:MariaDB:www"; $dbh = DBI->connect($dsn, $auth{dbUser}, $auth{dbPass}, \%attr) or die $!; return bless \%args, $class; } sub dob { return $dbh->selectall_hashref("SELECT * FROM dob", 'name'); } sub paste { my ($class, $paste) = @_; my $sth = $dbh->prepare("INSERT INTO copy (text) VALUES(?)"); $sth->execute($paste); } sub pushOver { my ($self, $message) = @_; my $sth = $dbh->prepare( "SELECT * FROM pushover" ); $sth->execute(); my $pushOver = $sth->fetchrow_hashref(); my $ua = LWP::UserAgent->new(); my $res = $ua->post( 'https://api.pushover.net/1/messages.json', [ token => $pushOver->{token}, user => $pushOver->{user}, message => $message ] ); } sub getPasted { my @messages; for my $m (@{ $dbh->selectall_arrayref("SELECT text FROM copy ORDER BY id DESC") }) { $m = $m->[0]; if ($m =~ /^http/) { $m =~ s/(http\S+)/$1<\/a>/g; $m =~ s/\n/
/g; } push @messages, $m; } return @messages; } 1;