Şimdi Ara

Flash MP3 Player ayarları

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
944
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • http://www.gigfoot.net/software/1.html
    adresindeki "Flash MP3 Player"i satın aldım. Ancak kurulumu nasıl yapacağımı bilmiyorum.
    Aşağıdaki sayfada (kodlar içinde) nerede nasıl ayarlamalar yapılacağı konusunda yardımcı olabilecek var mı acaba?

    #!/usr/bin/perl 
    #################################################
    #################################################
    #################################################
    # The web-based flash mp3player
    # version 052305
    # Gigfoot LLC
    # James True
    #################################################
    # MP3_BIN
    # The default for this to run smooth is that this script
    # reside inside the folder where your mp3 files exist.
    # If you want to change this, you may specify an
    # absolute directory path where your mp3files are found.
    # examples are "/home/you/web/mp3" or "c:/IIS/web/shares/" etc
    # If you change the MP3_BIN you will need to also change to MP3_BIN_URL accordingly.
    # Hint, MP3_BIN_URL will usually be your absolute MP3_BIN without the DOCUMENT_ROOT at the front.
    # ALWAYS end both of these variables with a slash (/).
    # Change at your own risk and rock on.
    my $MP3_BIN = "";
    my $MP3_BIN_URL = "";
    #################################################
    # START_PAGE
    # This is optional, set this to a url if you do not
    # want this program to decide on your start page.
    # The start page is the url displayed in the main frames window
    my $START_PAGE = "";
    #################################################
    # BG_COLOR
    # if you want to override the random colors you can specify a hex color below.
    # Example: $BG_COLOR = ""; = RANDOM
    # Example: $BG_COLOR = "FF0000"; = ALWAYS RED
    # Example: $BG_COLOR = "00FF00"; = ALWAYS GREEN
    # Example: $BG_COLOR = "0000FF"; = ALWAYS BLUE
    my $BG_COLOR = "";
    #################################################
    # RECURSE
    # if your mp3 files are stored inside of seperate subfolders
    # turn on FOLDER_RECURSE to have it scan the subfolders for a new song
    # Example: 0 = off 1 = on
    my $FOLDER_RECURSE = 0;
    #################################################
    # SECURITY
    # UNIX,LINUX,MACOSX servers may be able to provide
    # extra security by enabling CHMODING. This turns
    # the file permissions off for all mp3 files cept
    # the one currently being played. If you turn this
    # feature on, make sure your player is working properly on your server!
    # 1 = on | 0 = off
    my $SECURITY_CHMOD = 0;
    #################################################
    # AUTOCOMPLETE
    # used mainly by folks who are running their player out of a cgi-bin folder
    # If auto-complete is on, you can request a mp3song by the title of the mp3 only.
    # This only works if you pass an src variable with no slashes in it.
    # So if AUTO_COMPLETE_URL is set to 1 then the url below will work
    #http://www.yourdomain.com/cgi-bin/mp3player.cgi?src=Acoustic Syndicate - secret track.mp3
    my $AUTO_COMPLETE = 1;
    #################################################
    #################################################
    ### End of user defined section
    #################################################
    #################################################
    use strict;##### strick means if you see an internal server error, check your logs for complete details :)
    #use LWP::Simple;
    use Cwd;
    print "Content-type:text/html\n\n";
    my $debug = "";
    my %MYENV = &initENV;
    my %GET = &readGet;
    if (($AUTO_COMPLETE)&&($GET{'src'})&&($GET{'src'} !~ /[\\\/]+/)){$GET{'src'} = $MP3_BIN_URL.$GET{'src'};}
    #################################################
    #################################################
    #################################################
    if ($SECURITY_CHMOD){&SecureFiles();}
    &readGet;
    if ($GET{'action'} eq ""){$GET{'action'} = "frames";}
    if ($GET{'action'} eq "Info"){&Info();exit;}
    #if ($GET{'action'} eq "Visual"){&Visual();exit;}
    if ($GET{'action'} eq "Playlist"){&Playlist();exit;}
    if ($GET{'action'} eq "Playlist2"){&Playlist2();exit;}
    if ($GET{'action'} eq "Search"){&Search();exit;}
    if ($GET{'action'} eq "frames"){&frames();exit;}
    if ($GET{'action'} eq "frames2"){&frames2();exit;}
    if ($GET{'action'} eq "framesvisual"){&framesvisual();exit;}
    if ($GET{'action'} eq "PlaylistFrames"){&PlaylistFrames();exit;}
    if ($GET{'action'} eq "mp3frame"){&mp3frame();exit;}
    if ($GET{'action'} eq "mp3frame2"){&mp3frame2();exit;}
    if ($GET{'action'} eq "mp3framevisual"){&mp3framevisual();exit;}
    exit;
    #################################################
    #################################################
    #################################################
    sub AllowFile{
    chmod (0755,$_[0]);
    }########################################### end AllowFile
    sub SecureFiles{
    ## turn off all permissions for mp3 file to prrevent users from downloading
    my @sec;
    if ($FOLDER_RECURSE){
    @sec = &RecurseMP3($MP3_BIN);
    }else{
    @sec = &ReadContent($MP3_BIN,'\.mp3');
    }
    foreach my $file(@sec){
    chmod (0700,"$MP3_BIN$file");
    }
    }########################################### end SecureFiles
    #sub Visual{
    ## OUTPUT a numeric representation of this song to the flash environment
    #if (!$GET{'VMETHOD'}){$GET{'VMETHOD'} = "SINGLE";}
    #my %MP;
    #print "//<pre>Output Flash readable code for this mp3 src\n";
    #if ($GET{'src'}){
    ##%MP = &DescribeMP3($GET{'src'});
    #print "&VMETHOD=$GET{'VMETHOD'}&\n";
    #print "&viznotes=V:$MP{'VERSION'} L:$MP{'LAYER'} M:$MP{'MODE'}&\n";
    #print "&bsize=".(-s "$GET{'src'}")."&\n";
    #my $xx;
    #if ($GET{'VMETHOD'} eq "SINGLE"){$xx = &SINGLE(%MP);}
    #foreach my $li(keys %MP){
    #my $clsrc = $MP{$li};
    #$clsrc =~ s/\&/\%26/g;
    #print "&$li=$clsrc&\n";
    #}
    #print "&xx=".$xx."&\n";
    #}#################
    #print "&vloaded=1&\n";
    #print "//</pre>\n";
    #exit;
    #}############################################### end Visual
    sub SINGLE{
    my %MP = @_;
    my $str;
    for(my $tt=0;$tt<$MP{'SECS'};$tt++){
    my @sec;
    my $startSeek = ($MP{'BYTES_PER_SECOND'}*($tt+1))+$MP{'START_SOUND'};
    while(($#sec+1)<=20){
    ##################
    local $/ = \1;
    my $scnt;
    open (FILE,"$GET{'src'}");
    seek(FILE,$startSeek,0);
    while (my $zline = <FILE>){$scnt++;
    $zline = unpack 'c2', $zline;
    $zline = $zline+128;
    $zline = int(($zline*100)/256);
    if ($GET{'debug'}){print "<li>$zline\n";}
    push(@sec,$zline);
    $startSeek = $startSeek+($MP{'BYTES_PER_SECOND'}*($#sec+2))+1;
    last;
    }close FILE;
    ##################
    my $vl = $tt;
    $vl =~ s/.*(.)$/$1/;
    push(@sec,$vl);
    }
    $str .= join("|",@sec)."|";
    }
    $str =~ s/\|$//;
    return $str;
    }################################################# end SINGLE
    #sub DescribeMP3{
    #my $file = $_[0];
    #my %OUT;
    #$OUT{'src'} = $file;
    #use MP3::Info qw(:all);
    #my $info = get_mp3info($file) or ($OUT{'ERROR'} = "get_mp3info $1 $! $_");
    #if ($OUT{'ERROR'}){return %OUT;}
    #foreach my $ky(keys %$info){
    #$OUT{$ky} = $info->{$ky};
    #my $kvv = $info->{$ky};
    #$kvv =~ s/\&/\%26/g;
    #}
    #$OUT{'BYTES_PER_SECOND'} = ($OUT{'SIZE'}/$OUT{'SECS'});
    #$OUT{'START_SOUND'} = (-s $file)-$OUT{'SIZE'};
    #my $tag = get_mp3tag($file) or ($OUT{'ERROR'} = "get_mp3tag $1 $! $_");
    #if ($OUT{'ERROR'}){return %OUT;}
    #foreach my $ky(keys %$tag){
    #$OUT{$ky} = $tag->{$ky};
    #my $kv = $OUT{$ky};$kv =~ s/\&/\%26/g;
    #}
    #return %OUT;
    #}################################### end DescribeMP3
    sub frames{
    ##########################action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src
    my $auto = "";
    if ($ENV{'QUERY_STRING'} !~ /\&/){
    $auto = "y";
    $GET{'shuffle'} = "y";
    $GET{'autoStart'} = "y";
    $GET{'reload'} = "y";
    }
    if (!$GET{'startPage'}){$GET{'startPage'} = $START_PAGE;}
    if (!$GET{'startPage'}){$GET{'startPage'} = $ENV{'HTTP_REFERER'};}
    if (!$GET{'startPage'}){$GET{'startPage'} = "http://$ENV{'SERVER_NAME'}";}
    if ($GET{'bgColor'}){$GET{'bgColor'} = "bgColor=$GET{'bgColor'}";}
    if ($GET{'vol'}){$GET{'vol'} = "vol=$GET{'vol'}";}
    print <<EOM;
    <title>MP3 Player / $ENV{'SERVER_NAME'}</title>
    <frameset frameborder=0 framespacing="0" framepadding="0" rows="*,32">
    <frame name="mainWindow" target="mainWindow" src="$GET{'startPage'}" scrolling="auto">
    <frame name="mp3Player" target="mainWindow" src="?action=mp3frame&shuffle=$GET{'shuffle'}&autoStart=$GET{'autoStart'}&reload=$GET{'reload'}&$GET{'bgColor'}&$GET{'vol'}&src=$GET{'src'}" scrolling="no">
    <noframes>
    <body>
    <p>This Page Requires Frames.</p>
    </body>
    </noframes>
    </frameset>
    EOM
    }################################################## end frames
    sub framesvisual{
    ##########################action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src
    my $auto = "";
    if ($ENV{'QUERY_STRING'} !~ /\&/){
    $auto = "y";
    $GET{'shuffle'} = "y";
    $GET{'autoStart'} = "y";
    $GET{'reload'} = "y";
    }
    if (!$GET{'startPage'}){$GET{'startPage'} = $START_PAGE;}
    if (!$GET{'startPage'}){$GET{'startPage'} = $ENV{'HTTP_REFERER'};}
    if (!$GET{'startPage'}){$GET{'startPage'} = "http://$ENV{'SERVER_NAME'}";}
    if ($GET{'bgColor'}){$GET{'bgColor'} = "bgColor=$GET{'bgColor'}";}
    my $tm = time;
    print <<EOM;
    <title>MP3 Player / $ENV{'SERVER_NAME'}</title>
    <frameset frameborder=0 framespacing="0" framepadding="0" rows="*,300">
    <frame name="mainWindow" target="mainWindow" src="$GET{'startPage'}" scrolling="auto">
    <frame name="mp3Player" target="mainWindow" src="?action=mp3framevisual&c=$tm&shuffle=$GET{'shuffle'}&autoStart=$GET{'autoStart'}&reload=$GET{'reload'}&$GET{'bgColor'}&src=$GET{'src'}" scrolling="no">
    <noframes>
    <body>
    <p>This Page Requires Frames.</p>
    </body>
    </noframes>
    </frameset>
    EOM
    }################################################## end framesvisual
    sub frames2{
    ##########################action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src
    my $auto = "";
    if ($ENV{'QUERY_STRING'} !~ /\&/){
    $auto = "y";
    $GET{'shuffle'} = "y";
    $GET{'autoStart'} = "y";
    $GET{'reload'} = "y";
    }
    if ($GET{'vol'}){$GET{'vol'} = "&vol=$GET{'vol'}&";}
    if (!$GET{'startPage'}){$GET{'startPage'} = $START_PAGE;}
    if (!$GET{'startPage'}){$GET{'startPage'} = $ENV{'HTTP_REFERER'};}
    if (!$GET{'startPage'}){$GET{'startPage'} = "http://$ENV{'SERVER_NAME'}";}
    if ($GET{'bgColor'}){$GET{'bgColor'} = "bgColor=$GET{'bgColor'}";}
    my $tm = time;
    print <<EOM;
    <title>MP3 Player / $ENV{'SERVER_NAME'}</title>
    <frameset frameborder=0 framespacing="0" framepadding="0" rows="*,200">
    <frame name="mainWindow" target="mainWindow" src="$GET{'startPage'}" scrolling="auto">
    <frame name="mp3Player" target="mainWindow" src="?$GET{'vol'}&action=mp3frame2&c=$tm&shuffle=$GET{'shuffle'}&autoStart=$GET{'autoStart'}&reload=$GET{'reload'}&$GET{'bgColor'}&src=$GET{'src'}" scrolling="no">
    <noframes>
    <body>
    <p>This Page Requires Frames.</p>
    </body>
    </noframes>
    </frameset>
    EOM
    }################################################## end frames2
    sub PlaylistFrames{
    ##########################action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src
    my $auto = "";
    if ($ENV{'QUERY_STRING'} !~ /\&/){
    $auto = "y";
    $GET{'shuffle'} = "y";
    $GET{'autoStart'} = "y";
    $GET{'reload'} = "y";
    }
    if (!$GET{'startPage'}){$GET{'startPage'} = $START_PAGE;}
    if (!$GET{'startPage'}){$GET{'startPage'} = $ENV{'HTTP_REFERER'};}
    if (!$GET{'startPage'}){$GET{'startPage'} = "http://$ENV{'SERVER_NAME'}";}
    if ($GET{'bgColor'}){$GET{'bgColor'} = "bgColor=$GET{'bgColor'}";}
    print <<EOM;
    <title>MP3 Player / $ENV{'SERVER_NAME'}</title>
    <frameset frameborder=0 framespacing="0" framepadding="0" rows="*,32">
    <frame name="mainWindow" target="mainWindow" src="?action=Playlist2&" scrolling="auto">
    <frame name="mp3Player" target="mainWindow" src="?action=mp3frame&shuffle=$GET{'shuffle'}&autoStart=$GET{'autoStart'}&reload=$GET{'reload'}&$GET{'bgColor'}&src=$GET{'src'}" scrolling="no">
    <noframes>
    <body>
    <p>This Page Requires Frames.</p>
    </body>
    </noframes>
    </frameset>
    EOM
    }################################################## end PlaylistFrames
    sub mp3framevisual{
    #my %GET = %_;
    my @mp3s;
    my @cnt;
    ##print "$MP3_BIN cnt=$#cnt<hr>";
    if ($FOLDER_RECURSE){
    @cnt = &RecurseMP3($MP3_BIN);
    }else{
    @cnt = &ReadContent($MP3_BIN,'\.mp3');
    }
    my $LIBRARY_TOTAL = $#cnt+1;
    my $nowx = 0;
    my $emptymp3;
    my $st;
    my $src;
    my $srcX;
    if ($GET{'src'}){$src = $GET{'src'};}
    my $lastSrc = $GET{'lastSrc'};
    my $lastSrcPattern;
    $lastSrc =~ s/.*\///;
    $srcX = $src;
    $srcX =~ s/.*\///;
    my @dcnt = @cnt;
    if ($lastSrc eq ""){$lastSrcPattern = "BLAGGABLUGGABLOOGA";}else{$lastSrcPattern = "$lastSrc";}
    foreach my $of(@dcnt){
    if ($of =~ /\.mp3$/i){
    $emptymp3 = $of;
    my $cof = $of;
    my $clastSrcPattern = $lastSrcPattern;
    $cof =~ s/\W+//g;
    $clastSrcPattern =~ s/\W+//g;
    if ($cof !~ /$clastSrcPattern/i){
    push (@mp3s,$of);
    }
    $of =~ s/\W+//g;
    my $srcD = $src;
    $srcD =~ s/\W+//g;
    my $srcXD = $srcX;
    $srcXD =~ s/\W+//g;
    my $lastSrcD = $lastSrc;
    $lastSrcD =~ s/\W+//g;
    if (($srcXD)&&($of =~ /$srcXD$/i)){$st = $nowx;}
    if (($lastSrcD)&&($of =~ /$lastSrcD$/i)){$st = $nowx;}
    $nowx++;
    }
    }
    if ($st > $#mp3s){$st = 0;}
    if ($src eq ""){$src = "".$mp3s[$st];$srcX = $mp3s[$st];
    }
    if ($src eq ""){$src = $emptymp3;}
    #$GET{'src'} = $src;
    my $tPlaylist = "y";
    my $tShuffle = "y";
    my $tReload = "y";
    my $tAutoStart = "y";
    my $tPlaylistStyle = "blon";
    my $tShuffleStyle = "BlackLinks";
    my $tReloadStyle = "BlackLinks";
    my $tAutoStartStyle = "BlackLinks";
    if ($GET{'shuffle'}){$src = $mp3s[rand($#mp3s)];$tShuffle = "";$tShuffleStyle = "blon";}
    if ($GET{'reload'}){$tReload = "";$tReloadStyle = "blon";}
    if ($GET{'autoStart'}){$tAutoStart = "";$tAutoStartStyle = "blon";}
    #####
    my %newQ = ();
    my $qstr = "$ENV{'QUERY_STRING'}";
    my @qs = split(/\&/,$qstr);
    foreach my $li(@qs){
    my($ln,$lv)=split(/\=/,$li);
    #print "$li / $ln==$lv<hr>";
    $newQ{$ln} = $lv;
    }
    my $cleanQ = "";
    foreach my $li(keys %newQ){
    if ($li){$cleanQ .= "$li=".$newQ{$li}."&";}
    }
    $ENV{'QUERY_STRING'} = $cleanQ;
    my @colors = ("333333","9f0000","009f00","9f0000","9f009f","0000aa","dddddd","af64af","646464","98aa99");
    my $bgColor;
    if ($GET{'bgColor'} eq ""){$bgColor = $colors[rand($#colors)];$GET{'bgColor'} = $bgColor;}else{$bgColor = $GET{'bgColor'};}
    if ($BG_COLOR){$bgColor = $BG_COLOR;}

    my $srcQ = $MP3_BIN_URL.$src;
    $srcQ =~ s/\%/\%25/g;
    $srcQ =~ s/\+/\%2B/g;
    $srcQ =~ s/\&/\%26/g;
    $srcQ =~ s/\#/\%23/g;
    $srcQ =~ s/\~/\%7E/g;
    $srcQ =~ s/\'/\%27/g;
    $srcQ =~ s/\(/\%28/g;
    $srcQ =~ s/\)/\%29/g;
    $srcQ =~ s/\-/\%2D/g;
    $srcQ =~ s/\=/\%3D/g;
    $srcQ =~ tr/ /+/;
    $src = $srcQ;
    if ($GET{'src'}){$src = $GET{'src'};}
    $src =~ s/\&/\%26/g;
    $tPlaylist = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?action=Playlist2" data-href="?action=Playlist2">Playlist</a>
    EOM
    $tShuffle = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}shuffle=$tShuffle&src=$src" data-href="?$ENV{'QUERY_STRING'}shuffle=$tShuffle&src=$src">Shuffle</a>
    EOM
    $tReload = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}reload=$tReload&src=$src" data-href="?$ENV{'QUERY_STRING'}reload=$tReload&src=$src">Reload</a>
    EOM
    $tAutoStart = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}&autoStart=$tAutoStart&src=$src" data-href="?$ENV{'QUERY_STRING'}&autoStart=$tAutoStart&src=$src">AutoStart</a>
    EOM
    print <<EOM;
    <style>
    a.blon:link{font-family:tahoma;text-decoration:underline;color:$bgColor;}
    a.blon:visited{font-family:tahoma;text-decoration:underline;color:$bgColor;}
    a.blon:hover{font-family:tahoma;text-decoration:underline;color:ff0000;}
    a.BlackLinks:link{font-family:tahoma;text-decoration:none;color:$bgColor;}
    a.BlackLinks:visited{font-family:tahoma;text-decoration:none;color:$bgColor;}
    a.BlackLinks:hover{font-family:tahoma;text-decoration:none;color:ff0000;}
    </style>
    <body bgcolor=000000 leftmargin="0" topmargin="0" rightmargin="0" bottomargin="0" bottommargin="0">
    <table width=100% border=0 cellpadding=0 cellspacing=0><tr>
    <td align=right><font face=tahoma size=-2 color=$bgColor>
    $tPlaylist /
    $tReload /
    $tAutoStart /
    $tShuffle /
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}&src=&lastSrc=$src" data-href="?$ENV{'QUERY_STRING'}&src=&lastSrc=$src">Next Song</a> /
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=#" onClick="var df = ''+parent.frames[0].location;if (df != ''){parent.location = parent.frames[0].location;}else{parent.location = 'http://$ENV{'SERVER_NAME'}';}" data-href="#" onClick="var df = ''+parent.frames[0].location;if (df != ''){parent.location = parent.frames[0].location;}else{parent.location = 'http://$ENV{'SERVER_NAME'}';}">Hide MP3 Player</a>
    </font></td>
    <td valign=top title="TOTAL SONGS=$LIBRARY_TOTAL\n$src" width=32 bgcolor=$bgColor><img src="$MP3_BIN_URL/anglenew.gif" border=0></td>
    <td width=450 align=right bgcolor=$bgColor>
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
    WIDTH="450" HEIGHT="300" id="MP3player" ALIGN="">
    <PARAM NAME=movie VALUE="$MP3_BIN_URL/MP3PlayerVisual.swf?action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src">
    <PARAM NAME=quality VALUE=high>
    <PARAM NAME=bgcolor VALUE="#$bgColor">
    <EMBED src="$MP3_BIN_URL/MP3PlayerVisual.swf?action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src"
    quality=high bgcolor=#$bgColor WIDTH="450" HEIGHT="300" NAME="MP3player"
    ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
    </EMBED></OBJECT></td>
    </tr></table>
    </html>
    <body onLoad="window.MP3player.focus();">
    EOM
    }################################################## end mp3framevisual
    sub mp3frame{
    #my %GET = %_;
    my @mp3s;
    my @cnt;
    ##print "$MP3_BIN cnt=$#cnt<hr>";
    if ($FOLDER_RECURSE){
    @cnt = &RecurseMP3($MP3_BIN);
    }else{
    @cnt = &ReadContent($MP3_BIN,'\.mp3');
    }
    my $LIBRARY_TOTAL = $#cnt+1;
    my $nowx = 0;
    my $emptymp3;
    my $st;
    my $src;
    my $srcX;
    if ($GET{'src'}){$src = $GET{'src'};}
    my $lastSrc = $GET{'lastSrc'};
    my $lastSrcPattern;
    $lastSrc =~ s/.*\///;
    $srcX = $src;
    $srcX =~ s/.*\///;
    my @dcnt = @cnt;
    if ($lastSrc eq ""){$lastSrcPattern = "BLAGGABLUGGABLOOGA";}else{$lastSrcPattern = "$lastSrc";}
    foreach my $of(@dcnt){
    if ($of =~ /\.mp3$/i){
    $emptymp3 = $of;
    my $cof = $of;
    my $clastSrcPattern = $lastSrcPattern;
    $cof =~ s/\W+//g;
    $clastSrcPattern =~ s/\W+//g;
    if ($cof !~ /$clastSrcPattern/i){
    push (@mp3s,$of);
    }
    $of =~ s/\W+//g;
    my $srcD = $src;
    $srcD =~ s/\W+//g;
    my $srcXD = $srcX;
    $srcXD =~ s/\W+//g;
    my $lastSrcD = $lastSrc;
    $lastSrcD =~ s/\W+//g;
    if (($srcXD)&&($of =~ /$srcXD$/i)){$st = $nowx;}
    if (($lastSrcD)&&($of =~ /$lastSrcD$/i)){$st = $nowx;}
    $nowx++;
    }
    }
    if ($st > $#mp3s){$st = 0;}
    if ($src eq ""){$src = "".$mp3s[$st];$srcX = $mp3s[$st];
    }
    if ($src eq ""){$src = $emptymp3;}
    #$GET{'src'} = $src;
    my $tPlaylist = "y";
    my $tShuffle = "y";
    my $tReload = "y";
    my $tAutoStart = "y";
    my $tPlaylistStyle = "blon";
    my $tShuffleStyle = "BlackLinks";
    my $tReloadStyle = "BlackLinks";
    my $tAutoStartStyle = "BlackLinks";
    if ($GET{'shuffle'}){$src = $mp3s[rand($#mp3s)];$tShuffle = "";$tShuffleStyle = "blon";}
    if ($GET{'reload'}){$tReload = "";$tReloadStyle = "blon";}
    if ($GET{'autoStart'}){$tAutoStart = "";$tAutoStartStyle = "blon";}
    #####
    my %newQ = ();
    my $qstr = "$ENV{'QUERY_STRING'}";
    my @qs = split(/\&/,$qstr);
    foreach my $li(@qs){
    my($ln,$lv)=split(/\=/,$li);
    #print "$li / $ln==$lv<hr>";
    $newQ{$ln} = $lv;
    }
    my $cleanQ = "";
    foreach my $li(keys %newQ){
    if ($li){$cleanQ .= "$li=".$newQ{$li}."&";}
    }
    $ENV{'QUERY_STRING'} = $cleanQ;
    my @colors = ("333333","9f0000","009f00","9f0000","9f009f","0000aa","dddddd","af64af","646464","98aa99");
    my $bgColor;
    if ($GET{'bgColor'} eq ""){$bgColor = $colors[rand($#colors)];$GET{'bgColor'} = $bgColor;}else{$bgColor = $GET{'bgColor'};}
    if ($BG_COLOR){$bgColor = $BG_COLOR;}
    if ($SECURITY_CHMOD){&AllowFile("$MP3_BIN$src");}
    my $srcQ = $MP3_BIN_URL.$src;
    $srcQ =~ s/\%/\%25/g;
    $srcQ =~ s/\+/\%2B/g;
    $srcQ =~ s/\&/\%26/g;
    $srcQ =~ s/\#/\%23/g;
    $srcQ =~ s/\~/\%7E/g;
    $srcQ =~ s/\'/\%27/g;
    $srcQ =~ s/\(/\%28/g;
    $srcQ =~ s/\)/\%29/g;
    $srcQ =~ s/\-/\%2D/g;
    $srcQ =~ s/\=/\%3D/g;
    $srcQ =~ tr/ /+/;
    $src = $srcQ;
    if ($GET{'src'}){$src = $GET{'src'};}
    $src =~ s/\&/\%26/g;
    $tPlaylist = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?action=Playlist2" data-href="?action=Playlist2">Playlist</a>
    EOM
    $tShuffle = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}shuffle=$tShuffle&src=$src" data-href="?$ENV{'QUERY_STRING'}shuffle=$tShuffle&src=$src">Shuffle</a>
    EOM
    $tReload = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}reload=$tReload&src=$src" data-href="?$ENV{'QUERY_STRING'}reload=$tReload&src=$src">Reload</a>
    EOM
    $tAutoStart = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}&autoStart=$tAutoStart&src=$src" data-href="?$ENV{'QUERY_STRING'}&autoStart=$tAutoStart&src=$src">AutoStart</a>
    EOM
    my $volmod;
    if ($GET{'vol'}){$volmod = "vol=$GET{'vol'}";}
    print <<EOM;
    <style>
    a.blon:link{font-family:tahoma;text-decoration:underline;color:$bgColor;}
    a.blon:visited{font-family:tahoma;text-decoration:underline;color:$bgColor;}
    a.blon:hover{font-family:tahoma;text-decoration:underline;color:ff0000;}
    a.BlackLinks:link{font-family:tahoma;text-decoration:none;color:$bgColor;}
    a.BlackLinks:visited{font-family:tahoma;text-decoration:none;color:$bgColor;}
    a.BlackLinks:hover{font-family:tahoma;text-decoration:none;color:ff0000;}
    </style>
    <body bgcolor=000000 leftmargin="0" topmargin="0" rightmargin="0" bottomargin="0" bottommargin="0">
    <table width=100% border=0 cellpadding=0 cellspacing=0><tr>
    <td align=right><font face=tahoma size=-2 color=$bgColor>
    $tPlaylist /
    $tReload /
    $tAutoStart /
    $tShuffle /
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}&src=&lastSrc=$src" data-href="?$ENV{'QUERY_STRING'}&src=&lastSrc=$src">Next Song</a> /
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=#" onClick="var df = ''+parent.frames[0].location;if (df != ''){parent.location = parent.frames[0].location;}else{parent.location = 'http://$ENV{'SERVER_NAME'}';}" data-href="#" onClick="var df = ''+parent.frames[0].location;if (df != ''){parent.location = parent.frames[0].location;}else{parent.location = 'http://$ENV{'SERVER_NAME'}';}">Hide MP3 Player</a>
    </font></td>
    <td title="TOTAL SONGS=$LIBRARY_TOTAL\n$src" width=32 bgcolor=$bgColor><img src="$MP3_BIN_URL/anglenew.gif" border=0></td>
    <td width=450 align=right bgcolor=$bgColor>
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
    WIDTH="450" HEIGHT="25" id="MP3player" ALIGN="">
    <PARAM NAME=movie VALUE="$MP3_BIN_URL/MP3PlayerMini.swf?action=$GET{'action'}&$volmod&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src">
    <PARAM NAME=quality VALUE=high>
    <PARAM NAME=bgcolor VALUE="#$bgColor">
    <EMBED src="$MP3_BIN_URL/MP3PlayerMini.swf?action=$GET{'action'}&shuffle=$GET{'shuffle'}&$volmod&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src"
    quality=high bgcolor=#$bgColor WIDTH="450" HEIGHT="25" NAME="MP3player"
    ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
    </EMBED></OBJECT></td>
    </tr></table>
    </html>
    <body onLoad="window.MP3player.focus();">
    EOM
    }################################################## end mp3frame
    sub mp3frame2{
    my @mp3s;
    my @cnt;
    if ($FOLDER_RECURSE){
    @cnt = &RecurseMP3($MP3_BIN);
    }else{
    @cnt = &ReadContent($MP3_BIN,'\.mp3');
    }
    my $LIBRARY_TOTAL = $#cnt+1;
    my $nowx = 0;
    my $emptymp3;
    my $st;
    my $src;
    my $srcX;
    if ($GET{'src'}){$src = $GET{'src'};}
    my $lastSrc = $GET{'lastSrc'};
    my $lastSrcPattern;
    $lastSrc =~ s/.*\///;
    $srcX = $src;
    $srcX =~ s/.*\///;
    my @dcnt = @cnt;
    if ($lastSrc eq ""){$lastSrcPattern = "BLAGGABLUGGABLOOGA";}else{$lastSrcPattern = "$lastSrc";}
    foreach my $of(@dcnt){
    if ($of =~ /\.mp3$/i){
    $emptymp3 = $of;
    my $cof = $of;
    my $clastSrcPattern = $lastSrcPattern;
    $cof =~ s/\W+//g;
    $clastSrcPattern =~ s/\W+//g;
    if ($cof !~ /$clastSrcPattern/i){
    push (@mp3s,$of);
    }
    $of =~ s/\W+//g;
    my $srcD = $src;
    $srcD =~ s/\W+//g;
    my $srcXD = $srcX;
    $srcXD =~ s/\W+//g;
    my $lastSrcD = $lastSrc;
    $lastSrcD =~ s/\W+//g;
    if (($srcXD)&&($of =~ /$srcXD$/i)){$st = $nowx;}
    if (($lastSrcD)&&($of =~ /$lastSrcD$/i)){$st = $nowx;}
    $nowx++;
    }
    }
    if ($st > $#mp3s){$st = 0;}
    if ($src eq ""){$src = "".$mp3s[$st];$srcX = $mp3s[$st];
    }
    if ($src eq ""){$src = $emptymp3;}
    #$GET{'src'} = $src;
    my $tPlaylist = "y";
    my $tShuffle = "y";
    my $tReload = "y";
    my $tAutoStart = "y";
    my $tPlaylistStyle = "blon";
    my $tShuffleStyle = "BlackLinks";
    my $tReloadStyle = "BlackLinks";
    my $tAutoStartStyle = "BlackLinks";
    if ($GET{'shuffle'}){$src = $mp3s[rand($#mp3s)];$tShuffle = "";$tShuffleStyle = "blon";}
    if ($GET{'reload'}){$tReload = "";$tReloadStyle = "blon";}
    if ($GET{'autoStart'}){$tAutoStart = "";$tAutoStartStyle = "blon";}
    #####
    my %newQ = ();
    my $qstr = "$ENV{'QUERY_STRING'}";
    my @qs = split(/\&/,$qstr);
    foreach my $li(@qs){
    my($ln,$lv)=split(/\=/,$li);
    $newQ{$ln} = $lv;
    }
    my $cleanQ = "";
    foreach my $li(keys %newQ){
    if ($li){$cleanQ .= "$li=".$newQ{$li}."&";}
    }
    $ENV{'QUERY_STRING'} = $cleanQ;
    my @colors = ("333333","9f0000","009f00","9f0000","9f009f","0000aa","dddddd","af64af","646464","98aa99");
    my $bgColor;
    if ($GET{'bgColor'} eq ""){$bgColor = $colors[rand($#colors)];$GET{'bgColor'} = $bgColor;}else{$bgColor = $GET{'bgColor'};}
    if ($BG_COLOR){$bgColor = $BG_COLOR;}
    my $srcQ = $MP3_BIN_URL.$src;
    $srcQ =~ s/\%/\%25/g;
    $srcQ =~ s/\+/\%2B/g;
    $srcQ =~ s/\&/\%26/g;
    $srcQ =~ s/\#/\%23/g;
    $srcQ =~ s/\~/\%7E/g;
    $srcQ =~ s/\'/\%27/g;
    $srcQ =~ s/\(/\%28/g;
    $srcQ =~ s/\)/\%29/g;
    $srcQ =~ s/\-/\%2D/g;
    $srcQ =~ s/\=/\%3D/g;
    $srcQ =~ tr/ /+/;
    $src = $srcQ;
    if ($GET{'src'}){$src = $GET{'src'};}
    $src =~ s/\&/\%26/g;
    $tPlaylist = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?action=Playlist2" data-href="?action=Playlist2">Playlist</a>
    EOM
    $tShuffle = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}shuffle=$tShuffle&src=$src" data-href="?$ENV{'QUERY_STRING'}shuffle=$tShuffle&src=$src">Shuffle</a>
    EOM
    $tReload = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}reload=$tReload&src=$src" data-href="?$ENV{'QUERY_STRING'}reload=$tReload&src=$src">Reload</a>
    EOM
    $tAutoStart = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}&autoStart=$tAutoStart&src=$src" data-href="?$ENV{'QUERY_STRING'}&autoStart=$tAutoStart&src=$src">AutoStart</a>
    EOM
    if ($GET{'vol'} =~ /^\d+$/){
    $GET{'vol'} = "&vol=$GET{'vol'}&";
    }
    print <<EOM;
    <style>
    a.blon:link{font-family:tahoma;text-decoration:underline;color:$bgColor;}
    a.blon:visited{font-family:tahoma;text-decoration:underline;color:$bgColor;}
    a.blon:hover{font-family:tahoma;text-decoration:underline;color:ff0000;}
    a.BlackLinks:link{font-family:tahoma;text-decoration:none;color:$bgColor;}
    a.BlackLinks:visited{font-family:tahoma;text-decoration:none;color:$bgColor;}
    a.BlackLinks:hover{font-family:tahoma;text-decoration:none;color:ff0000;}
    </style>
    <body bgcolor=000000 leftmargin="0" topmargin="0" rightmargin="0" bottomargin="0" bottommargin="0">
    <table width=100% border=0 cellpadding=0 cellspacing=0><tr>
    <td align=right><font face=tahoma size=-2 color=$bgColor>
    $tPlaylist /
    $tReload /
    $tAutoStart /
    $tShuffle /
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?$ENV{'QUERY_STRING'}&src=&lastSrc=$src" data-href="?$ENV{'QUERY_STRING'}&src=&lastSrc=$src">Next Song</a> /
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=#" onClick="var df = ''+parent.frames[0].location;if (df != ''){parent.location = parent.frames[0].location;}else{parent.location = 'http://$ENV{'SERVER_NAME'}';}" data-href="#" onClick="var df = ''+parent.frames[0].location;if (df != ''){parent.location = parent.frames[0].location;}else{parent.location = 'http://$ENV{'SERVER_NAME'}';}">Hide MP3 Player</a>
    </font></td>
    <td valign=top title="TOTAL SONGS=$LIBRARY_TOTAL\n$src" width=32 bgcolor=$bgColor><img src="$MP3_BIN_URL/anglenew.gif" border=0></td>
    <td width=640 align=right bgcolor=$bgColor>
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
    WIDTH="640" HEIGHT="200" id="MP3player" ALIGN="">
    <PARAM NAME=movie VALUE="$MP3_BIN_URL/play.swf?$GET{'vol'}action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src">
    <PARAM NAME=quality VALUE=high>
    <PARAM NAME=bgcolor VALUE="#$bgColor">
    <EMBED src="$MP3_BIN_URL/play.swf?$GET{'vol'}action=$GET{'action'}&shuffle=$GET{'shuffle'}&reload=$GET{'reload'}&autoStart=$GET{'autoStart'}&src=$src"
    quality=high bgcolor=#$bgColor WIDTH="640" HEIGHT="200" NAME="MP3player"
    ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
    </EMBED></OBJECT></td>
    </tr></table>
    </html>
    <body onLoad="window.MP3player.focus();">
    <body onFocus="window.MP3player.focus();">
    EOM
    }################################################## end mp3frame2
    sub Search{
    my $FONT = "font-family:arial;";
    my $COL1 = "background-color:#AAAA00;";
    my $COL2 = "background-color:#CCCC00;";
    my $borders = <<EOM;
    border-top:solid 1px #CCCCCC;
    border-left:solid 1px #CCCCCC;
    border-bottom:solid 1px #333333;
    border-right:solid 1px #333333
    EOM
    my $RESULT;
    if ($GET{'Q'}){
    my @cnt;
    my $fnd;
    if ($FOLDER_RECURSE){
    @cnt = &RecurseMP3($MP3_BIN);
    }else{
    @cnt = &ReadContent($MP3_BIN,'\.mp3');
    }
    foreach my $li(@cnt){
    if ($li =~ /$GET{'Q'}/si){$fnd++;}
    }
    if ($fnd >= 1){
    $GET{'RESULT'} = "Results found: $fnd";
    &Playlist2;
    }else{
    $RESULT = "No results found";
    }
    }
    print <<EOM;
    <title>MP3 Player Playlist</title>
    <style>
    td.C{font-size:xx-small;background-color:#AAAAAA;color:#FFFFFF;$FONT$borders}
    </style>
    <BODY BGCOLOR="#646455">
    <form action="?">
    <input type=hidden name=action value="Search">
    <table border=0 cellspacing=0 cellpadding=3><tr>
    <td class=C colspan=2>Search</td></tr><tr>
    <td class=RESULT colspan=2>$RESULT</td></tr><tr>
    <td align=right>Search</td><td align=right><input type=text name=Q value=""></td></tr><tr>
    <td class=F colspan=2><input type=submit value="SEARCH"></td></tr><tr>
    </tr></table>
    </form>
    EOM
    exit;
    }################################# end Search
    sub Playlist2{
    my @playlist;
    my $SHOW_TITLE = 1;
    my $SHOW_SIZE = 1;
    my $SHOW_MODIFIED = 1;
    my $SHOW_CREATED = 0;
    my $SHOW_CNT = 1;
    my $COL;
    my $FONT = "font-family:arial;";
    my $COL1 = "background-color:#998899;";
    my $COL2 = "background-color:#887788;";
    my $borders = <<EOM;
    border-top:solid 1px #CCCCCC;
    border-left:solid 1px #CCCCCC;
    border-bottom:solid 1px #333333;
    border-right:solid 1px #333333
    EOM
    if ($GET{'flip'} =~ /^\-(.*)/){my $iz = $1;if ($iz =~ /[a-zA-Z]/){$GET{'flip'} = "";}else{$GET{'flip'} = "T";}}
    my $SORT = $GET{'sortby'};
    my $FLIP = $GET{'flip'};
    my @fields = ("TITLE","SIZE","MODIFIED","CREATED");
    my $colspan = $#fields+2;
    if ($FOLDER_RECURSE){
    @playlist = &RecurseMP3($MP3_BIN);
    }else{
    @playlist = &ReadContent($MP3_BIN,'\.mp3');
    }
    ################## SEARCH THE PLAYLIST
    if ($GET{'Q'}){
    my $fnd;
    my @keep;
    foreach my $li(@playlist){
    if ($li =~ /$GET{'Q'}/si){$fnd++;push(@keep,$li);}
    }
    @playlist = @keep;
    }
    ################## SORT THE PLAYLIST?
    if ($SORT){
    my $cnt;
    my @SORTME;
    foreach my $mp3(@playlist){$cnt++;
    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat("$MP3_BIN$mp3");
    my $sor;
    if ($SORT eq "TITLE"){$sor = $mp3;}
    if ($SORT eq "SIZE"){$sor = $size;}
    if ($SORT eq "MODIFIED"){$sor = $mtime;}
    if ($SORT eq "CREATED"){$sor = $ctime;}
    $sor =~ s/\|/\%7C/gs;
    if ($sor =~ /^[0-9]+/){$sor = $sor+1000000000000;
    }else{
    $sor = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".$sor;
    $sor =~ s/.*(.{256})$/$1/;
    $sor =~ tr/[A-Z]/[a-z]/;
    }
    push(@SORTME,"$sor\|$mp3");
    }
    my @kp;
    if ($FLIP){@SORTME = reverse sort @SORTME;}else{@SORTME = sort @SORTME;}
    foreach my $done(@SORTME){
    $done =~ s/.*\|//;
    push(@kp,$done);
    }
    @playlist = @kp;
    }
    my $smod;
    if ($GET{'RESULT'}){
    $smod = <<EOM;
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?action=Playlist2" data-href="?action=Playlist2">All Songs</a> /
    EOM
    }
    my $LIBRARY_TOTAL = $#playlist+1;
    my @RECURSE_TITLE = ("Off","On");
    print <<EOM;
    <title>MP3 Player Playlist</title>
    <style>
    td.C{font-size:xx-small;background-color:#AAAAAA;color:#FFFFFF;$FONT$borders}
    </style>
    <BODY BGCOLOR="#646455">
    <table border=0 cellspacing=0 cellpadding=3><tr>
    <td class=C colspan=$colspan>MP3Player Playlist $smod<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=25848374&url=?action=Search" data-href="?action=Search">Search Playlist</a></td></tr><tr>
    <td class=RESULT colspan=$colspan>$GET{'RESULT'}</td></tr><tr>
    EOM
    if ($SHOW_CNT){print "<td class=C> </td>";}
    foreach my $field(@fields){my $vl = eval("\$SHOW_$field");if ($vl){print "<td class=C><a href=\"?action=Playlist2&sortby=$field&flip=\-$GET{'flip'}\">$field</a></td>";}}print "</tr><tr>\n";
    my $cnt;
    foreach my $mp3(@playlist){$cnt++;
    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat("$MP3_BIN$mp3");
    my $mp3q = $mp3;
    $mp3q =~ s/\&/\%26/g;
    $mp3q =~ s/\s+/\+/g;
    if ($COL eq "$COL2"){$COL = "$COL1";}else{$COL = "$COL2";}
    if ($SHOW_CNT){print "<td style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$cnt</td>\n";}
    if ($SHOW_TITLE){print "<td style=\"$FONT$COL$borders;font-size:x-small;\"><a target=\"mp3Player\" href=\"?action=mp3frame&reload=y&autoStart=y&vol=100&src=$MP3_BIN_URL$mp3q\">$mp3</a></td>\n";}
    if ($SHOW_SIZE){$size = &DescribeSize($size);print "<td alt=\"$MP3_BIN$mp3\" style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$size</td>\n";}
    if ($SHOW_MODIFIED){$mtime = &Epoch2Style($mtime,"mon/dat/yr time");print "<td style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$mtime</td>\n";}
    if ($SHOW_CREATED){$ctime = &Epoch2Style($ctime,"mon/dat/yr time");print "<td style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$ctime</td>\n";}
    print "</tr><tr>";
    }
    print <<EOM;
    <td colspan=$colspan> </td></tr><tr>
    </table>
    EOM
    exit;
    }################################################## end Playlist2
    sub Info{
    my @playlist;
    if ($FOLDER_RECURSE){
    @playlist = &RecurseMP3($MP3_BIN);
    }else{
    @playlist = &ReadContent($MP3_BIN,'\.mp3');
    }
    my $LIBRARY_TOTAL = $#playlist+1;
    my @RECURSE_TITLE = ("Off","On");
    print <<EOM;
    <title>MP3 Player Info</title>
    <table border=0><tr>
    <td class=2>MP3 Player Info</td></tr><tr>
    <td align=right>MP3_BIN:</td><td style="font-weight:bold;">$MP3_BIN</td></tr><tr>
    <td align=right>TOTAL SONGS:</td><td style="font-weight:bold;">$LIBRARY_TOTAL</td></tr><tr>
    <td align=right>FOLDER_RECURSE:</td><td style="font-weight:bold;">$RECURSE_TITLE[$FOLDER_RECURSE]</td></tr><tr>
    </table>
    EOM
    foreach my $mp3(@playlist){
    print "<li>$mp3\n";
    }
    exit;
    }################################################## end Info
    sub Playlist{
    my @playlist;
    my $SHOW_TITLE = 1;
    my $SHOW_SIZE = 1;
    my $SHOW_MODIFIED = 1;
    my $SHOW_CREATED = 0;
    my $SHOW_CNT = 1;
    my $COL;
    my $FONT = "font-family:arial;";
    my $COL1 = "background-color:#AAAA00;";
    my $COL2 = "background-color:#CCCC00;";
    my $borders = <<EOM;
    border-top:solid 1px #CCCCCC;
    border-left:solid 1px #CCCCCC;
    border-bottom:solid 1px #333333;
    border-right:solid 1px #333333
    EOM
    if ($GET{'flip'} =~ /^\-(.*)/){my $iz = $1;if ($iz =~ /[a-zA-Z]/){$GET{'flip'} = "";}else{$GET{'flip'} = "T";}}
    my $SORT = $GET{'sortby'};
    my $FLIP = $GET{'flip'};
    my @fields = ("TITLE","SIZE","MODIFIED","CREATED");
    my $colspan = $#fields+2;
    if ($FOLDER_RECURSE){
    @playlist = &RecurseMP3($MP3_BIN);
    }else{
    @playlist = &ReadContent($MP3_BIN,'\.mp3');
    }
    ################## SORT THE PLAYLIST?
    if ($SORT){
    my $cnt;
    my @SORTME;
    foreach my $mp3(@playlist){$cnt++;
    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat("$MP3_BIN$mp3");
    my $sor;
    if ($SORT eq "TITLE"){$sor = $mp3;}
    if ($SORT eq "SIZE"){$sor = $size;}
    if ($SORT eq "MODIFIED"){$sor = $mtime;}
    if ($SORT eq "CREATED"){$sor = $ctime;}
    $sor =~ s/\|/\%7C/gs;
    if ($sor =~ /^[0-9]+/){$sor = $sor+1000000000000;
    }else{
    $sor = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".$sor;
    $sor =~ s/.*(.{256})$/$1/;
    $sor =~ tr/[A-Z]/[a-z]/;
    }
    push(@SORTME,"$sor\|$mp3");
    }
    my @kp;
    if ($FLIP){@SORTME = reverse sort @SORTME;}else{@SORTME = sort @SORTME;}
    foreach my $done(@SORTME){
    $done =~ s/.*\|//;
    push(@kp,$done);
    }
    @playlist = @kp;
    }
    my $LIBRARY_TOTAL = $#playlist+1;
    my @RECURSE_TITLE = ("Off","On");
    print <<EOM;
    <title>MP3 Player Playlist</title>
    <style>
    td.C{font-size:xx-small;background-color:#AAAAAA;color:#FFFFFF;$FONT$borders}
    </style>
    <BODY BGCOLOR="#646455">
    <table border=0 cellspacing=0 cellpadding=3><tr>
    <td class=C colspan=$colspan>MP3Player Playlist</td></tr><tr>
    EOM
    if ($SHOW_CNT){print "<td class=C> </td>";}
    foreach my $field(@fields){my $vl = eval("\$SHOW_$field");if ($vl){print "<td class=C><a href=\"?action=Playlist&sortby=$field&flip=\-$GET{'flip'}\">$field</a></td>";}}print "</tr><tr>\n";
    my $cnt;
    foreach my $mp3(@playlist){$cnt++;
    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat("$MP3_BIN$mp3");
    if ($COL eq "$COL2"){$COL = "$COL1";}else{$COL = "$COL2";}
    if ($SHOW_CNT){print "<td style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$cnt</td>\n";}
    if ($SHOW_TITLE){print "<td style=\"$FONT$COL$borders;font-size:x-small;\"><a target=\"_top\" href=\"?reload=y&autoStart=y&vol=100&src=$MP3_BIN_URL$mp3\">$mp3</a></td>\n";}
    if ($SHOW_SIZE){$size = &DescribeSize($size);print "<td alt=\"$MP3_BIN$mp3\" style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$size</td>\n";}
    if ($SHOW_MODIFIED){$mtime = &Epoch2Style($mtime,"mon/dat/yr time");print "<td style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$mtime</td>\n";}
    if ($SHOW_CREATED){$ctime = &Epoch2Style($ctime,"mon/dat/yr time");print "<td style=\"$FONT$COL$borders;font-size:xx-small;text-align:right;\">$ctime</td>\n";}
    print "</tr><tr>";
    }
    print <<EOM;
    <td colspan=$colspan> </td></tr><tr>
    </table>
    EOM
    exit;
    }################################################## end Playlist
    sub DescribeSize{
    my $bytes = $_[0];
    my $val = 0;my $size = 0;my $kilobytes = 0;my $megabytes = 0;my $gigabytes = 0;
    my $fmat = "b";
    if ($bytes > 1024){$val = $bytes/1024;$fmat = "k";$kilobytes = $bytes/1024;}
    if ($bytes > (1024*1024)){$val = $bytes/(1024*1024);$fmat = "M";$megabytes = $bytes/(1024*1024);}
    if ($bytes > (1024*1024*1024)){$val = $bytes/(1024*1024*1024);$fmat = "G";$gigabytes = $bytes/(1024*1024*1024);}
    $val =~ s/\.(.).*/\.$1/;
    if (($_[0] > 0)&&($_[0] < 1025)){$val = 1;$fmat = "k";}
    $val = "$val $fmat";
    if ($val eq "0 b"){$val = "";}
    return $val;
    }#################################### end DescribeSize
    sub Epoch2Style{
    my $tima = $_[0];
    my $template = $_[1];
    my %TIM = ();
    $TIM{'time'} = $tima;
    $TIM{'template'} = $template;
    $TIM{'date'} = localtime($TIM{'time'});
    my($dow,$mon,$dat,$tim,$yer)=split(/\s+/,$TIM{'date'});
    my $yr = $yer;$yr =~ s/^\d\d//;
    my($hr,$min,$sec)=split(/\:/,$tim);
    my $time24 = $tim;
    $time24 =~ s/\D+//g;
    my($hr24,$min24,$sec24)=split(/\:/,$tim);

    my $mer = "am";if ($hr > 11){$mer = "pm";$hr = $hr - 12;}
    $hr =~ s/^0//;
    my $monthid = &GetMonthID("$mon");
    my $monthvalue = "00".$monthid;
    $monthvalue =~ s/.*(..)$/$1/;
    my $datevalue = "00".$dat;
    $datevalue =~ s/.*(..)$/$1/;
    my $hrv = "00".$hr;
    $hrv =~ s/.*(..)$/$1/;
    my $minv = "00".$min;
    $minv =~ s/.*(..)$/$1/;
    $TIM{'template'} =~ s/mmm/$mon/g;
    $TIM{'template'} =~ s/timestamp/$yer$monthvalue$datevalue$time24/gi;
    $TIM{'template'} =~ s/month/$mon/g;
    $TIM{'template'} =~ s/mon/$mon/g;
    $TIM{'template'} =~ s/mm/$monthid/g;
    $TIM{'template'} =~ s/mv/$monthvalue/g;
    $TIM{'template'} =~ s/dd/$dat/g;
    $TIM{'template'} =~ s/hv/$hrv/g;
    $TIM{'template'} =~ s/hrv/$hrv/g;
    $TIM{'template'} =~ s/time24/$hr24$min24$sec24/g;
    $TIM{'template'} =~ s/hr24/$hr24/g;
    $TIM{'template'} =~ s/min24/$min24/g;
    $TIM{'template'} =~ s/sec24/$sec24/g;
    $TIM{'template'} =~ s/hr/$hr/g;
    $TIM{'template'} =~ s/minv/$minv/g;
    $TIM{'template'} =~ s/min/$min/g;
    $TIM{'template'} =~ s/sec/$sec/g;
    $TIM{'template'} =~ s/mer/$mer/g;
    $TIM{'template'} =~ s/datevalue/$datevalue/g;
    $TIM{'template'} =~ s/datvalue/$datevalue/g;
    $TIM{'template'} =~ s/datv/$datevalue/g;
    $TIM{'template'} =~ s/dv/$datevalue/g;
    $TIM{'template'} =~ s/date/$dat/g;
    $TIM{'template'} =~ s/dat/$dat/g;
    $TIM{'template'} =~ s/year/$yer/gi;
    $TIM{'template'} =~ s/yr/$yr/gi;
    $TIM{'template'} =~ s/yy/$yr/gi;
    $TIM{'template'} =~ s/dow/$dow/g;
    $TIM{'template'} =~ s/time/$tim/g;
    #20040203200000
    if ($TIM{'template'} =~ /mysql/){
    my $monthid = &GetMonthID("$mon");
    my $dateid = "00".$dat;$dateid =~ s/.*(\d\d)$/$1/;
    my $hourid = "00".$hr;$hourid =~ s/.*(\d\d)$/$1/;
    my $minid = "00".$min;$minid =~ s/.*(\d\d)$/$1/;
    my $secid = "00".$sec;$secid =~ s/.*(\d\d)$/$1/;
    my $mysql = $yer.$monthid.$dateid.$hourid.$minid.$secid;
    $TIM{'template'} =~ s/mysql/$mysql/g;
    }
    return $TIM{'template'};
    }################################ end Epoch2Style
    sub GetMonthID{
    my $month = $_[0];
    my $month_id;
    my @month_titles = ("January","February","March","April","May","June","July","August","September","October","November","December");
    my $Y = 0;
    foreach my $month_title(@month_titles){$Y++;
    if ($month_title =~ /$month/i){$month_id = $Y;}
    }
    return $month_id;
    }##################################### end GetMonthID
    sub RecurseMP3{
    my @playlist = &ReadContent($MP3_BIN,'\.mp3');
    my %PLIST;
    foreach my $song(@playlist){$PLIST{$song} = 1;}
    my @FOLDERS = &Recurse($MP3_BIN);
    my $RECURSE;
    foreach my $subf(@FOLDERS){
    my @subdir = &ReadContent($subf,'\.mp3');
    $RECURSE .= "<li>$subf=".($#subdir+1)."\n";
    my $apend = $subf;
    $apend =~ s/^$MP3_BIN//;
    if ($MP3_BIN =~ /\\/){$apend .= "\\";}else{$apend .= "/";}
    foreach my $submp3(@subdir){
    if (!$PLIST{$submp3}){push(@playlist,$apend.$submp3);}
    }
    }
    return @playlist;
    }################################################## end RecurseMP3
    sub Recurse{
    my $path = $_[0];
    my $req = $_[1];
    my @subs = ();
    my @dir = &ReadContent("$path");
    if ($path =~ /\\/){#### are we using the downhill slash in our path?
    $path =~ s/\\+$//;
    foreach my $ld(@dir){
    if (-d $path."\\".$ld){
    push (@subs,$path."\\".$ld);
    my @asubs = &Recurse("$path\\$ld");
    foreach my $ald(@asubs){if (-d $ald){push(@subs,$ald);}}
    }
    }
    }else{#### then do it the nice unix way
    $path =~ s/\/+$//;
    foreach my $ld(@dir){
    if (-d $path."/".$ld){
    push (@subs,$path."/".$ld);
    my @asubs = &Recurse("$path/$ld");
    foreach my $ald(@asubs){if (-d $ald){push(@subs,$ald);}}
    }
    }

    }
    return @subs;
    }####################################### end Recurse
    sub ReadContent{
    my $content = $_[0];
    my $qrequire = $_[1];
    my @content = ();
    if (!$content){return;}
    if (-d "$content"){
    opendir Tdir, "$content";
    my $dir = readdir(Tdir);
    while($dir = readdir(Tdir)){chomp $dir;
    if ($dir eq ".."){}else{if ($qrequire){if ($dir =~ /$qrequire/i){push (@content,"$dir");}}else{push (@content,"$dir");}}
    }close Tdir;
    }else{
    open (FILE,$content);
    #flock(FILE,LOCK_EX);
    while (<FILE>){chomp $_;
    push (@content,$_);
    }
    #flock(FILE,LOCK_UN);
    close FILE;
    }
    return @content;
    }##################################### end ReadContent
    sub ReadContentOLD{
    my $content = $_[0];
    my @content=();
    if (-d "$content"){
    opendir Tdir, "$content";
    my $dir = readdir(Tdir);
    while($dir = readdir(Tdir)){chomp $dir;
    if ($dir eq ".."){}else{push (@content,"$dir");}
    }close Tdir;
    }else{
    open (FILE,"$content");
    while (<FILE>){chomp $_;
    push (@content,"$_");
    }close FILE;
    }
    return @content;
    }##################################### end ReadContent
    sub readGet{
    my %GET = ();
    if ($ENV{'QUERY_STRING'} =~ /lastSrc\=(.*)/){$GET{'ZlastSrc'} = $1;
    $GET{'ZlastSrc'} =~ tr/+/ /;
    $GET{'ZlastSrc'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    }
    if ($ENV{'QUERY_STRING'}){
    my $qstring= $ENV{'QUERY_STRING'};
    my @get = split(/\&/,$qstring);
    foreach (@get){
    my ($qname,$qvalue)=split(/=/,$_,2);
    $qvalue =~ tr/+/ /;
    $qvalue =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $GET{$qname} = $qvalue;
    }
    }
    if ($ARGV[0] =~ /^\w\:[\\|\/]/){
    #print "YO";
    $GET{'drop'} = $ARGV[0];
    $ARGV[0] = "";
    foreach (@ARGV){
    my @line = split(/\=/,$_,2);
    if ($line[0]){
    $GET{'drop'} .= ",".$line[0];
    }
    }
    @ARGV = ();
    }
    if (@ARGV){
    foreach (@ARGV){
    my @line = split(/\=/,$_,2);
    if ($line[0]){
    $GET{$line[0]} = $line[1];
    }
    }
    }
    if ($GET{'ZlastSrc'}){$GET{'lastSrc'} = $GET{'ZlastSrc'};}
    return %GET;
    }################################
    sub initENV{
    my %MYENV = ();
    my $this_dir = cwd."/".$0;
    if ($0 =~ /^[a-zA-Z]\:/){$this_dir = $0;}
    $this_dir =~ s/(.*)([\/|\\]+)[^\/|\\]+$/$1$2/;
    if ($this_dir eq ""){print "Failed to find a working directory path=$this_dir\n";exit;}
    $this_dir =~ s/[\/|\\]+$//;
    $this_dir =~ s/\\+/\//g;
    $MYENV{'this_dir'} = "$this_dir";
    if ($ENV{'SERVER_NAME'}){
    $MYENV{'this_cgi'} = "http://$ENV{'SERVER_NAME'}$ENV{'SCRIPT_NAME'}";
    $MYENV{'this_url'} = $MYENV{'this_cgi'};
    $MYENV{'this_url'} =~ s/\/[^\/]+$//;
    }
    return %MYENV;
    }######################################## end initENV









  • sorunu teknik destek bölümüne açmalısın buradakiler pek yardımcı olabileceğini sanmıyorum...
    zira yazılım geliştirme ile ilgili bir yanıda yok sorunun :)
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.