#!/usr/local/bin/perl # CPAN Modules Used use CGI qw(:standard ); use Time::CTime ; use CGI::Cookie; %cookies = fetch CGI::Cookie; if (exists($cookies{'user'})) { $personal_directory = <<"_____EoI2_____"; _____EoI2_____ } open (DIR_FILE, "fgrep -l PUBLISHED_true ./MyOrbit/*/*info | ") ; @published_list = grep(!/^.*MyOrbit\/deleted.*$/, ) ; close DIR_FILE ; chop @published_list; &create_author_email_list ; &sort_list_by_date_created ; &find_author_name ; &print_screen ; exit(0); sub find_author_name { $expression1 = 'author_name:' ; $expression2 = 'author_url:' ; for ($i=0 ; $i <= $#unique_author; $i++ ) { # shame on me for opening the file twice instead of chopping $file_name = "./MyOrbit/$unique_author[$i]/.author_info" ; open (FGREP_FILE, "fgrep $expression1 $file_name |") ; $unique_name[$i] = ; chop $unique_name[$i] ; close FGREP_FILE ; $unique_name[$i] =~ s/$expression1// ; open (FGREP_FILE, "fgrep $expression2 $file_name |") ; $unique_url[$i] = ; chop $unique_url[$i] ; close FGREP_FILE ; $unique_url[$i] =~ s/$expression2// ; } } # reverse sort sub sort_function { $KEYS[$b] <=> $KEYS[$a] ; } sub sort_list_by_date_created { local(@KEYS); for ($i=0 ; $i <= $#unique_author; $i++ ) { $directory_name = "./MyOrbit/$unique_author[$i]" ; open (DIR_FILE, "fgrep -l PUBLISHED_true $directory_name/*info | ") ; $date_key[$i] = 0 ; while ($filename = ) { chop $filename ; $date_mod = (stat($filename))[9] ; if ($date_key[$i] < $date_mod ) { $date_key[$i] = $date_mod ; } } close DIR_FILE ; push(@KEYS, $date_key[$i]); $date_key[$i] = strftime("%B %e, %Y: %R",localtime($date_key[$i])) ; } @unique_author = @unique_author[sort sort_function $[..$#unique_author]; @date_key = @date_key[sort sort_function $[..$#date_key]; } sub create_author_email_list { for ($i = 0; $i <= $#published_list; $i++ ) { $published_list[$i] =~ s/^\.\/([^\/]+)\/([^\/]+)\/([^\/]+)/$3/ ; $published_list[$i] =~ s/^(.*)\.([0-9]+)\.([0-9]+)\.info$/$1/ ; } @unique_author = grep { not $found{$_}++ } @published_list; } sub encode { local($variable) = $_[0]; $KeepUnencoded = 'a-zA-Z 0-9_\\-@.=' ; $variable=~s/([^$KeepUnencoded])/sprintf("%%%02X",ord($1))/ego; $variable=~s/ /+/gm; return $variable } sub build_unadvertiser_list { for ( $i = 0 ; $i<=$#unique_author ; $i++ ) { $encoded_author = &encode($unique_name[$i]) ; print <<"_____EoI2_____"; $unique_name[$i] _____EoI2_____ if ($unique_url[$i] ne "") { print <<"_____EoI2_____"; $unique_url[$i] _____EoI2_____ } print <<"_____EoI2_____"; $date_key[$i] _____EoI2_____ } } sub print_screen { ### ### ### Main Screen ### print header(-type=>'text/html', -expires=>'now'); print <<"_____EoI2_____"; undesign - meet the unadvertisers undesign in orbit Everything is an Experiment. - Tibor Kalman Make an un-statement! Create an UNAD and add your voice to UNDESIGN IN ORBIT. unadvertiser URL Last update _____EoI2_____ &build_unadvertiser_list ; print <<"_____EoI2_____"; $personal_directory << home [ \&\*\$\#\@~! ] orbit >> _____EoI2_____ ### ### ### End of Main Screen ### exit(0); }