Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

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
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 ( 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.

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!

#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 = "";
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
    $surl =~ s!slashdot\.org/interviews/(\d\d)/(\d\d)/(\d\d)/(\d+)\.sh
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
    $site =~ s/&mode=thread>(.*)<\/A>/&mode=thread><font color="#00BBB
    $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>/
    $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
    $site =~ s!<a href=/([^>]*)>!<a href="$this?$1
#  } 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?$
    $site =~ s!"/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
text="#AEFEBE" link="#0000FF" vlink="#D000A0" alink="#FF0000"><center>
<h3><a href="$this?">/. slashdot /.</a></h3>
<h3><a href="$this?">opensales</a></h3>
<h3><a href="">hotmail</a></h3>
print $site;
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.
Log In?

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2020-09-20 11:48 GMT
Find Nodes?
    Voting Booth?
    If at first I donít succeed, I Ö

    Results (121 votes). Check out past polls.