Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Dark Theme for /. through Perl

by PipTigger (Hermit)
on May 04, 2000 at 23:07 UTC ( #10256=sourcecode: print w/ replies, xml ) Need Help??

Category: CUFP
Author/Contact Info PipTigger
piptigger@dimensionsoftware.com
Description: Here's a little script I wrote for myself since I like light text on dark backgrounds (thanks again for the nice PerlMonks theme Vroom!) and /. doesn't have one... I know it's pretty suckie and could be a lot simpler. If you can make it better, please email it to me (piptigger@dimensionsoftware.com) as I use it everyday now. It doesn't werk yet for the ask/. section but when I find some time, I'll add that too. I hope someone else finds this useful. TTFN & Shalom.

-PipTigger
p.s. I tried to submit this to the CUFP section but it didn't work so I thought I'd try here before giving up. Please put the script on your own server and change the $this to reflect your locale. Thanks!
#!/usr/bin/perl

#use CGI ":standard";
use LWP::Simple;

my $this = "http://your.servers.url/yourpath/whatyounamedthis.cgi";
my $meth = $ENV{'REQUEST_METHOD'};
my $quer = $ENV{'QUERY_STRING'};
#my $surl = "http://www.slashdot.org";
my $surl = "";
if ($quer && $meth eq "GET") { $surl = $quer; }
if ($surl =~ /slashdot\.org/) {
    $surl =~ s!slashdot\.org/articles/(\d\d)/(\d\d)/(\d\d)/(\d+)\.shtm
+l!slashdot.org/article.pl?sid=$1/$2/$3/$4&cid=&pid=0&startat=&thresho
+ld=2&mode=thread&commentsort=3!i; 
    $surl =~ s!slashdot\.org/interviews/(\d\d)/(\d\d)/(\d\d)/(\d+)\.sh
+tml!slashdot.org/comments.pl?sid=$1%2F$2%2F$3%2F$4&cid=&pid=0&startat
+=&threshold=2&mode=thread&commentsort=3!i; 
}
my $site = get $surl; 

print "Content-type: text/html\n\n";

$site =~ s/<title>/<title>*pc* /i;
if ($surl =~ /slashdot\.org/i) {
  if ($surl !~ /org\/askslashdot/i) {
    $site =~ s/<BODY bgcolor="#000000" text="#000000" link="#006666" v
+link="#000000">/<BODY bgcolor="#000001" text="#4FFFAF" link="#00BBBB"
+ vlink="#4F2F9F">/;
    $site =~ s/<FONT color="#000000">/<FONT color="#A8F8F0">/g;
    $site =~ s/bgcolor="#006666"><IMG/bgcolor="#004444"><IMG/g;
    $site =~ s/CCCCCC"><FONT color="#000000" size=2>/CCCCCC"><FONT col
+or="#B0D0F0" size=2>/g;
    $site =~ s/<B>Results<\/B>/<B><font color="#00BBBB">Results<\/font
+><\/B>/g;
    $site =~ s/&mode=thread>(.*)<\/A>/&mode=thread><font color="#00BBB
+B">$1<\/font><\/A>/g;
    $site =~ s/www\.thinkgeek\.com>ThinkGeek<\/A>/www\.thinkgeek\.com>
+<font color="#00BBBB">ThinkGeek<\/font><\/A>/g;
    $site =~ s/    <FONT size=2 face="arial,helvetica"><I>/    <FONT c
+olor="#F0F0A0" size=2 face="arial,helvetica"><I>/g;
    $site =~ s/Andover\.Net">Andover\.Net<\/A>/Andover\.Net"><FONT siz
+e=1 color="#009999" face="arial,helvetica">Andover\.Net<\/font><\/A>/
+g;
    $site =~ s/size=3 color="#006666"/size=3 color="#00BBBB"/g;
    $site =~ s/size=1 color="#006666"/size=1 color="#00BBBB"/g;
    $site =~ s/size=4 color="#FFFFFF"/size=4 color="#DEFEEE"/g;
    $site =~ s/<FONT COLOR="#FFFFFF">/<FONT COLOR="#CEFEEE">/g;
    $site =~ s/"#006666"/"#004444"/g; #size=3||1 color=# -> 00BBBB
    $site =~ s/"#FFFFFF"/"#000412"/g; #001204
    $site =~ s/<TD bgcolor="#ffffff"/<TD bgcolor="#120212"/;
    $site =~ s/bgcolor=cccccc>/bgcolor="#521222">/g;
    $site =~ s/bgcolor=ffffff>/bgcolor="#120212">/g;
    $site =~ s/"ffffff"/"120212"/g;
    $site =~ s/"#ffffff"/"#AECEFE"/g;
    $site =~ s/"#CCCCCC"/"#521222"/g; #321202
    $site =~ s/"#000000"/"#C0F0D0"/g; #B0D0F0 F0D0B0 D0FFEF
    $site =~ s!(<a href=")(http://slashdot[^"]*?)(">)!$1$this?$2$3!gi;
    $site =~ s!<a href=http://slashdot\.org/([^>]*)>!<a href="$this?ht
+tp://slashdot.org/$1">!gi;
    $site =~ s!<a href=/([^>]*)>!<a href="$this?http://slashdot.org/$1
+">!gi;
#  } else {
    #ask/. stuff only
  }
} elsif ($surl =~ /opensales\.org/i) {
    $site =~ s!white!black!i;
    $site =~ s!bgcolor="#FFFFFF"!bgcolor="#000412"!i;
    $site =~ s!href="/([^"]*)">!href="$this?http://www.opensales.org/$
+1">!gi;
    $site =~ s!"/images!"http://www.opensales.org/images!gi;
} elsif ($surl =~ /hotmail\.com/i) {
    $site =~ s/#000000/#C0F0D0/g;
} else {
    print <<END_0;
<html><head><title>PipzColourz Index</title></head><body bgcolor="#030
+70F"
text="#AEFEBE" link="#0000FF" vlink="#D000A0" alink="#FF0000"><center>
<h1>PCndx</h1><br><hr><br>
<h3><a href="$this?http://slashdot.org/">/. slashdot /.</a></h3>
<h3><a href="$this?http://www.opensales.org/">opensales</a></h3>
<h3><a href="http://hotmail.com/">hotmail</a></h3>
</center></body></html>
END_0
}
print $site;

Comment on Dark Theme for /. through Perl
Download Code
Replies are listed 'Best First'.
RE: Dark Theme for /. through Perl
by chromatic (Archbishop) on May 04, 2000 at 23:51 UTC
    One thing that might make this more clear (as well as more generally customizable) is to separate the theme changes from the main script.

    Build a configuration file, then read it into the hash. The key will be the string-to-find and the value will be the replacement. Then you can do something as simple as this:

    foreach my $find (keys %chunks) { $data =~ s/$find/$chunks{$find}/g; }
    You don't have anything complicated like backtracking or grouping, so it works. It's a bit slower than the other way, but the added convenience (and code beautification) might be worth it.

Back to Code Catacombs

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://10256]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (14)
As of 2015-07-30 12:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (271 votes), past polls