outanekka.KIESS.ONL — online multiuser image display solution with additional features!
theme » relaxed · tek · unique ·
user:   password:

About outanekka.KIESS.ONL — online multiuser image display solution with additional features!

support and donate

You can support the outanekka.KIESS.ONL — online multiuser image display solution with additional features! development as well as take a share of the server hosting costs by donating a small amount of money.

about outanekka

The outanekka base arrived at version 0.9.0.16 and is developed by Adrian Immanuel Kieß.

You can contact Adrian Immanuel Kieß under:

  1. E-Mail: adrian@kiess.onl
  2. XMPP: adrian@kiess.onl
  3. Website: https://www.KIESS.ONL

Outanekka is the so called summary of all those below listed modules and additional files:

  1. text is v0.9.0.16, last edit: 20.07.14.

    )/gemo;
          #s/outanekka(?:\s|\n)/&news::lucky("\/outanekka\/","dac\'s outanekka",1

  2. config is v0.9.0.16, last edit: 20.07.15.

     DESCRIPTION
    
    Provides the framework to handle the configuration files.
    
    =head2 STATUS
    
    The status is to be considered stable.
    
    =cut
    
      
    our $VERSION = 0.9.0.1

  3. home is v0.9.0.12, last edit: 19.05.02.

     NAME
    
    home.pm
    
    =head1

  4. chatbox is v0.9.0.12, last edit: 19.04.28.

    ;
    
    # vim: noai:sts=2 sw=2 ts=2
    #
    # EOF
    
    

  5. imagery is v0.9.0.16, last edit: 20.07.19.

    ({-style=>'text-transform:none;'},$html);
    }
    
    =item pathDepth()
    
    pathDepth() returns the pathdepht of a given file path.
    
    =cut
    
    sub pathDepth {
      my $path = shift;
      my $count;
      
      confess unless $path;
    
      $count = ($path =~ tr/\///);
      
      return $count;
    }
    
    =item topAlbum()
    
    topAlbum() returns the upmost directory of a given path.
    
    =cut
    
    sub topAlbumPath {
      my $path = shift;
      my $topAlbum;
       
      confess unless $path;
       
      for ($path) {
        m/(.*\/)?(.*)\/$/ig;
        $topAlbum = $2;
      }
      
      return ($topAlbum ? $topAlbum : undef);
    }
    
    =item subAlbumId()
    
    subAlbumId()
    
    =cut
    
    sub subAlbumId {
      my $path = shift;
    	my $subAlbumId;
    
    	confess unless $path;
    	
    	$path =~ m/(.*?)\/(.*?)(\/)?$/i;
    	
    	if ($1

  6. theme is v0.9.0.13, last edit: 20.04.13.

    3;
    our $LASTEDIT = '20.04.1

  7. user is v0.9.0.16, last edit: 20.07.14.

    6;
    our $NICK_LENGTH_MIN = 1

  8. about is v0.9.0.12, last edit: 19.04.16.

     AUTHOR
    
    Adrian Immanuel Kiess - < http://www.kiess.onl/ >
    
    =cut
    
    1

  9. html is v0.9.0.16, last edit: 20.09.23.

    ;
    
    # vim: noai:sts=2 sw=2 ts=2
    #
    # EOF
    

  10. basic is v0.9.0.12, last edit: 19.05.09.

    ,undef,undef,$imagery::rc->{thumbMaxDimension},undef,undef,1

  11. guestbook is v0.9.0.16, last edit: 20.07.14.

    92;
    our $SKIP = 48;
    
    $CGI::POST_MAX = $OPINION_MAX * 1

  12. about::page is v0.9.0.16, last edit: 20.09.23.

     AUTHOR
    
    Adrian Immanuel Kiess - < http://www.kiess.onl/ >
    
    =cut
    
    1

  13. about::module is v0.9.0.16, last edit: 20.07.15.

     NAME
    
    about::module.pm
    
    =head1

  14. guestbook::page is v0.9.0.16, last edit: 20.07.14.

    ; 
    		} else {
    			my ($href);
    			$q->param('module',$$MODULE);
    			$q->param('action','edit');       
    			
    			$href = &guestbook::opinion::queryRecord($id);
    			
    		  if ($href) {	
    			  return $q->h2("Edit opinion \#$id") . 
    				$q->start_form({-action=>$$REF}) . 
    				$q->hidden('module' ) . 
    				$q->hidden('action') . 
    				$q->hidden('id') . 
    				$q->p("Opinion by " . $q->i($href->{email}) . ":" . $q->br().
    					$q->textarea({-style=>'padding:3px; width:1

  15. guestbook::opinion is v0.9.0.16, last edit: 20.07.14.

    ;
    
    # vim: noai:sts=2 sw=2 ts=2
    #
    # EOF
    

  16. user::profile is v0.9.0.16, last edit: 20.07.20.

     NAME
    
    user::profile.pm
    
    =head1

  17. user::page is v0.9.0.16, last edit: 20.07.21.

    6;
    our $LASTEDIT = '20.07.21

  18. user::account is v0.9.0.16, last edit: 20.07.21.

    ,
    					$newNick, 
    					$newPassword, 
    					$rightslevel) or die $::dbh->errstr;    
    				
    				return 1

  19. user::session is v0.9.0.16, last edit: 20.07.21.

     AUTHOR
    
    Adrian Immanuel Kiess - < http://www.kiess.onl/ >
    
    =cut
    
    1

  20. imagery::thumb is v0.9.0.16, last edit: 20.07.19.

    ###############################################################################
    # Author: Adrian Immanuel Kiess < adrian at kiess.onl >
    # License: BSD, see LICENSE file
    # What: Module for outanekka.kiess.onl
    ###############################################################################
    
    package imagery::thumb;
    
    use strict;
    use warnings;
    
    use utf8;
    use CGI qw/:standard escapeHTML -utf8/;
    use CGI::Carp qw(warningsToBrowser fatalsToBrowser carpout set_message set_die_handler confess);
    
    use imagery::image;
    
    =head1

  21. imagery::image is v0.9.0.16, last edit: 20.09.23.

    ;
    		
    		#confess unless $albumsCache && $imagesCache && $thumbsCache && $albumImage;
    
    		unlink ($imageDel) if $imageDel and -e $imageDel;
    		unlink ($imageThumbDel) if $imageThumbDel and -e $imageThumbDel;
    		unlink ($albumThumbDel) if $albumThumbDel and -e $albumThumbDel;
    		#unlink ($albumImage) if -e $albumImage;
    
    		$sth = $::dbh->prepare(qq{
    			DELETE FROM $$MODULE WHERE id=?
    		});
    		$sth->execute($iid) or die $::dbh->errstr;
    
    		if ($verbose) {
    			&basic::successMessage("Image deleted",
    				"The image " . $q->b($image) . 
    				" was successfully deleted from the album " . $q->b($path) . ".");
    		}
    		
    		return $iid;
    	}
    	
    	return undef;
    }
    
    =item upload()
    
    upload() processes the image to be uploaded to the imagery.
    
    =cut
    
    sub upload {
      my $aid = shift || $$Q_ID;
      my $givenFileOrig = shift || $q->param('givenFile');
      my $givenFileHandle = $q->upload('givenFile');
      my ($givenFile, $givenFileName, $givenFileExt);
    
    	# DONT USE:
    	#$givenFile =~ s/\s+//g;
    	#$givenFile =~ s/\A\///g;
    	#$givenFile = $1

  22. imagery::page is v0.9.0.16, last edit: 20.07.19.

    ('Imagery @ ' . $::conf::siteName).
    			$q->div({-class=>'title',
    							 -style=>'text-align:center;'},
    			  $q->a({-href=>$$REF.'randomness'},'random images, ' . 
    			    $q->small('click to view all&hellip;'))).
    			$q->div({-id=>'thumbnails'},
    					
    		   map { &imagery::thumb::link($_->{'id'}) } @ { &imagery::image::random( $conf::rootImageThumbs ) } ).
    					
    		  $q->div({-class=>'title',
    						 -style=>'text-align:center;'},
    				$q->a({-href=>$$REF.'recently'},'recent images, ' . 
    					$q->small('click to view all&hellip;'))).
    			$q->div({-id=>'thumbnails'},
    		
    		    map { &imagery::thumb::link($_->{'id'}) } @ { &imagery::image::recent( $conf::rootImageThumbs ) } ).
    					
    		  $q->div({-class=>'title',
    			     		 -style=>'text-align:center;'},
    				$q->a({-href=>$$REF.'popular'},'popular images, ' . $q->small('click to view all&hellip;'))).
    			$q->div({-id=>'thumbnails'},
    					
    		    map { &imagery::thumb::link($_->{'id'}) } @ { &imagery::image::popular( $conf::rootImageThumbs ) } ).
    					
    		  $q->div({-class=>'title',-style=>'width:1

  23. imagery::album is v0.9.0.16, last edit: 20.07.19.

    .4;
          my $cropWidth = int($widthOriginal/$cropSpectrum);
          my $cropHeight = int($heightOriginal/$cropSpectrum);
          my $cropX = ($widthOriginal - $cropWidth)/2;
          my $cropY = ($heightOriginal - $cropHeight)/2;
    
          $imageMagick->Crop(width=>$cropWidth, height=>$cropHeight,
                             x=>$cropX, y=>$cropY);
    
          $imStdout = $imageMagick->Resize(geometry => $widthOut . "x" . $heightOut );
            die $imStdout if $imStdout;
    			
    			$imageMagick->Quantize(colors=>256, dither=>'False');
          
          $imageMagick->Set(interlace=>'Plane');
          $imageMagick->Set(comment=>"Image generated by " . $::conf::siteUrl .
            " -- (c) " . $::conf::siteAuthor . "");
          $imageMagick->Comment("Image generated by " . $::conf::siteUrl .
            " -- (c) " . $::conf::siteAuthor . "");
    
    			$imageMagick->Set(quality=>$imageQuality);
           
    			#$image =~ s/$$AIEXT/.png/i;
    
          $imStdout = $imageMagick->Write($pathOut . $imageOut);
    
          $widthOut = $imageMagick->Get('width');
          $heightOut = $imageMagick->Get('height');
          $sizeOut = $imageMagick->Get('filesize');
    
          &imagery::album::updateRecord($aid,
    				$imageOut,
            $widthOut,
            $heightOut,
            $mimeOut);
    
          return ($image, $widthOut, $heightOut, $sizeOut, $mimeOut);
        }
        else {
        
    		}
     	}
    	elsif ($image) {
    		
        &imagery::album::updateRecord($aid,
    				$imageOut,
            $widthOut,
            $heightOut,
            $mimeOut);
    		
    		#&basic::failureMessage("Database or file record missing",
    		#   "The database entry or file of album #" . $aid . " is missing");
      }
      
    
            
      return undef;
    }
    
    =item unknown()
    
    unknown()
    
    =cut 
    
    sub unknown {
      my $album = shift || 'unknown';
    
      &basic::failureMessage('Unknown album',
        "Our apologies, the album " . $q->b($album) . " does not exist (anymore)."
      );
    }
    
    =item verifyAlbumMaxDepth()
    
    verifyAlbumMaxDepth()
    
    =cut
    
    sub verifyAlbumMaxDepth {
      my $path = shift;
      
      confess unless $path;
      
      if (&imagery::pathDepth($path) < $conf::albumMaxDepth) {
        return $path;
      }
      
      return undef;  
    }
    
    =head1

  24. imagery::daily is v0.9.0.12, last edit: 18.05.12.

    2';
    our $VER = sprintf("%vd", $VERSION);
    our $MODULE =  \$imagery::MODULE;
    our $REF = \$imagery::REF;
    our $REF_IMAGE = \$imagery::REF_IMAGE; 
    
    our $Q_MODULE = \$imagery::Q_MODULE;
    our $Q_ACTION = \$imagery::Q_ACTION;
    our $Q_ID = \$imagery::Q_ID;
    
    
    =head2 FUNCTIONS
    
    =over 4
    
    =item delete()
    
    delete()
    
    =cut
    
    sub delete {
      my $iid = shift;
    
    	my ($sth);
    
      $sth = $::dbh->prepare(qq{
        DELETE FROM $$MODULE\_daily WHERE image_id=?
      });
      $sth->execute($iid) or die $::dbh->errstr;
    
      return $iid;
    }
    
    =item image()
    
    image()
    
    =cut
    
    sub image {
      my ($sth, $href, $iid, $unixtime);
    
      $sth = $main::dbh->prepare(qq{
    		SELECT image_id, unixtime FROM $$MODULE\_daily ORDER BY unixtime DESC LIMIT 1

  25. imagery::quota is v0.9.0.16, last edit: 20.07.15.

    024));
    
      return $q->div({-class=>'textbox-subformation'},
               $q->div('You use ' . $q->big($q->b($used)) .
                 ' megabytes of ' . $free . ' megabytes free space.') . 
               $q->div($q->big($q->b(&imageNum($uid)) ). ' of ' . $conf::imageMaxNum . 
                 ' images uploaded, ' . $q->big($q->b(&albumNum($uid))) . ' of ' . 
                 $conf::albumMaxNum . ' albums created.'));
    }
    
    =head1

  26. chatbox::page is v0.9.0.16, last edit: 20.07.14.

    ,
    		            -default=>'',
                    -name=>'chatboxMessage',
                    -maxlength=>$$MESSAGE_MAX) . 
    			$q->end_form();
      } else {
        $o .= $q->div({-style=>'text-align:center; font-style:italic; font-size:smaller;'},
        "Please " . &user::account::loginLink() . " to write messages!");
      }
       
      $sth = $::dbh->prepare(qq{
           	SELECT id, user_id, message FROM $$MODULE ORDER BY id DESC LIMIT ? 
      }) or die $::dbh->errstr;       
      $sth->execute($$SKIP_SLIDER) or die $::dbh->errstr;
       
      while ( my $ref = $sth->fetchrow_hashref ) {
        $messages = &chatbox::message::link($ref->{id}, 
            $ref->{user_id}, 
    		    $ref->{message}) . 
    			($messages ? $messages : "");
      }
         
      if (!$messages) {
        $messages = $q->p($q->i("Yet no chat messages." . $q->br().
            "Be the first to write a chat message!"));
      }
       
      return "\n\n<!-- " . $$MODULE . " :: slider -->\n\n".
        $q->div({-class=>"slider-title"},
          $q->a({-href=>$$REF}, &chatbox::message::count() . ' messages')
        ) .
        $q->div({-class=>"slider-right"},
          $q->p($messages) .
    			$q->p($o)
        );  
    
    }
    
    
    =head1

  27. chatbox::message is v0.9.0.12, last edit: 19.04.28.

    ;		
    
    our $q = new CGI; 
    our $VERSION = 0.9.0.1

about v0.9.0.12
about::module v0.9.0.16
about::page v0.9.0.16

98829
impressions since May 18, 2019
86 images

ci_110274.jpeg by moron, 5674 impressions ytimet.png by lapsangs, 2091 impressions running-jexercise-programs-at-netbsd-9-host-www3-kiess-onl.png by adrian, 1420 impressions

28 messages

<nuser> Schicke Sachen! Wir werden weiter an Outanekka bauen!
<tanam> Saubere Arbeit. Die Userprofile sind nun implementiert.
<adrian> Ja, Bugs bitte an adrian@kiess.onl senden. Danke.
<adrian> ß?üöä -- Umlauttest.
<adrian> öüäß©
<adrian> äüöß

Please log in to write messages!

6 users

we welcome
lapsangs · tanam · nuser · remus · moron · adrian · …

recently active
adrian · lapsangs · remus · moron · …

new images
adrian · moron · lapsangs ·

outanekka.KIESS.ONL v0.9.0.16 (2001–2020) by Adrian Immanuel KießBSD licensed
Designed for gecko engine < mozilla.org > ♦ outanekka.KIESS.ONL usage statistics
Perl code runtime: 0 wallclock secs ( 0.02 usr + 0.00 sys = 0.02 CPU)
2  time    vsz (  diff)    rss (  diff) shared (  diff)   code (  diff)   data (  diff)
     0  97660 ( 97660)  40916 ( 40916)  13612 ( 13612)   1440 (  1440)  27224 ( 27224) after start
     0  98056 (   396)  41180 (   264)  13612 (     0)   1440 (     0)  27620 (   396) near exit