]> git.sesse.net Git - pr0n/blobdiff - perl/Sesse/pr0n/Common.pm
Remove all Encode::decode_utf8 calls, as seemingly scalars from PostgreSQL comes...
[pr0n] / perl / Sesse / pr0n / Common.pm
index 97ae9cd88d491a65d1e4706394337badcc886718..1cd65046d9769787de6aa3ca44205fb19137fb79 100644 (file)
@@ -19,7 +19,7 @@ use DBD::Pg;
 use Image::Magick;
 use POSIX;
 use Digest::MD5;
-use Digest::SHA1;
+use Digest::SHA;
 use Digest::HMAC_SHA1;
 use MIME::Base64;
 use MIME::Types;
@@ -39,7 +39,7 @@ BEGIN {
                require Sesse::pr0n::Config_local;
        };
 
-       $VERSION     = "v2.72";
+       $VERSION     = "v2.80";
        @ISA         = qw(Exporter);
        @EXPORT      = qw(&error &dberror);
        %EXPORT_TAGS = qw();
@@ -96,7 +96,7 @@ sub header {
                $quote = LWP::Simple::get("http://itk.samfundet.no/include/quotes.cli.php");
                $quote = "Error: Could not fetch quotes." if (!defined($quote));
        }
-       Sesse::pr0n::Templates::print_template($r, "header", { title => $title, quotes => Encode::decode_utf8($quote) });
+       Sesse::pr0n::Templates::print_template($r, "header", { title => $title, quotes => $quote });
 }
 
 sub footer {
@@ -308,6 +308,10 @@ sub update_image_info {
                
                # Tags
                my @tags = $exiftool->GetValue('Keywords', 'ValueConv');
+               if (scalar @tags == 0) {
+                       # This is XMP-dc:Subject, an RDF bag of tags.
+                       @tags = $exiftool->GetValue('Subject', 'ValueConv');
+               }
                $dbh->do('DELETE FROM tags WHERE image=?',
                        undef, $id)
                        or die "Couldn't delete old tag information in SQL: $!";
@@ -363,11 +367,11 @@ sub output_401 {
                # proxies etc. are being used), and we use HMAC instead of simple
                # hashing simply because that's a better signing method.
                #
-               # NOTE: For some weird reason, Digest::HMAC_SHA1 doesn't like taking
+               # NOTE: For some weird reason, Digest::HMAC_SHA doesn't like taking
                # the output from time directly (it gives a different response), so we
                # forcefully stringify the argument.
                my $ts = time;
-               my $nonce = Digest::HMAC_SHA1->hmac_sha1_hex($ts . "", $Sesse::pr0n::Config::db_password);
+               my $nonce = Digest::HMAC_SHA->hmac_sha1_hex($ts . "", $Sesse::pr0n::Config::db_password);
                my $stale_nonce_text = "";
                $stale_nonce_text = ", stale=\"true\"" if ($options{'StaleNonce'} // 0);
 
@@ -389,7 +393,7 @@ sub check_basic_auth {
        
        my $ref = $dbh->selectrow_hashref('SELECT sha1password,digest_ha1_hex FROM users WHERE username=? AND vhost=?',
                undef, $user, $r->get_server_name);
-       if (!defined($ref) || $ref->{'sha1password'} ne Digest::SHA1::sha1_base64($pass)) {
+       if (!defined($ref) || $ref->{'sha1password'} ne Digest::SHA::sha1_base64($pass)) {
                $r->content_type('text/plain; charset=utf-8');
                $r->log->warn("Authentication failed for $user/$takenby");
                output_401($r);
@@ -1117,8 +1121,6 @@ sub purge_cache {
        }
        $regex .= "(\\?.*)?\$";
        $r->headers_out->{'X-Pr0n-Purge'} = $regex;
-
-       $r->log->info($r->headers_out->{'X-Pr0n-Purge'});
 }
                                
 # Find a list of all cache URLs for a given image, given what we have on disk.