Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Perl Misc (http://www.velocityreviews.com/forums/f67-perl-misc.html)
-   -   share winlyrics to wmp SMI in perl (http://www.velocityreviews.com/forums/t887851-share-winlyrics-to-wmp-smi-in-perl.html)

lechee 08-31-2004 09:25 AM

share winlyrics to wmp SMI in perl
 
#!/usr/bin/perl
#
# lrc2smi lyrics to plain text (wmp smi) v1.00 (perl)
#
# convert lyrics .lrc to WMP smi
#
# copyright 2004 Lechee.Lai lecheel at yahoo dot com
#

# global variable
use File::Basename;
my $tcount=0;
my $tcontext;


$argc=@ARGV
&convertLRC();
exit 1;


sub convertLRC {
open(FILE, @ARGV[0]) or die "lrc2smi: you must have \"@ARGV[0]\"
for convert :-)\n";
my $out=basename(@ARGV[0],"");
if ($out=~/(.*)\..*/ and !$option{'withextension'})
{$out=~s/(.*)\..*/$1\.smi/;}
else {$out.=".smi";}
$pureLrc = ">$out";

@file = <FILE>;
close (FILE);
open (NEWFILE, $pureLrc) or die "$!";
&SMIbegin();
&SMItitle();
foreach $line (@file) {
chomp ($line);
$line1 = $line;
# if ($line1 =~ /^\[(\d{2})\:(\d{2})\](.*)$/) { # check [nn:nn]
if ($line1 =~ /^(.*)(:)(.*)(])/) { # check *:*]
$line2 = $line1;
if ($line2 =~ /\d(:)+\d+(])/) { # check nnn:nnn]
# if (1) {
$l1 = $line1;
checkTimeStamp($line1);
$noMore=0;

while ($noMore==0) {

if ($l1 =~ /^(.*)\d{2}(])/) { # have vaild
timestamp
$pos = index($l1, "]");
$timestamp = substr($l1, 0, $pos+1);


if ($timestamp =~ /^\[(\d{2})\:(\d{2})\](.*)$/) {

my ($m, $s) = ($1, $2);
my $sec = $s+60*$m;

while (exists $times{$sec}){
$sec += 0.01;
}

&SMItime($sec);
}
if ($tcount) {
print NEWFILE "$tcontext";
}
print NEWFILE "\n";
$l1 = substr($l1,$pos+1);
} else {
$noMore=1;
}

}
} else {

# print "###$line1\n";
}
} else {
# print "---$line\n";
}

}
&SMIend();
close(NEWFILE);
}

sub checkTimeStamp($) {
my ($line) = @_;
$tcount = 0; # initialize for TimeCount
$pos = rindex($line,"]");
$tcontext = substr($line,$pos+1);
if ($pos>5) {
$tcount = 1;
}
# print "...$tcontext\n";

}



sub SMIbegin {
print NEWFILE "<SAMI>\n";
print NEWFILE "<HEAD>\n";
print NEWFIEL "<TITLE>Lechee Lyrics SMI</TITLE>\n";
}

sub SMItitle {
print NEWFILE "<STYLE TYPE=\"text/css\">\n<!--\nP {\n";
print NEWFILE "margin-left:8pt;\n";
print NEWFILE "margin-right:8pt;\n";
print NEWFILE "margin-bottom:24pt;\n";
print NEWFILE "Background-image : url();\n";
print NEWFILE "line-height:48pt;\n";
print NEWFILE "Background-color:#000000;\n";
print NEWFILE "text-align:center;\n";
print NEWFILE "font-size:16pt;\n";
print NEWFILE "font-family:,tahoma,arial,dotum,sans-serif;\n";
print NEWFILE "font-weight:bold;\n";
print NEWFILE "font-style:Normal;\n";
print NEWFILE "color:#ffff00;\n";
print NEWFILE "}\n";
print NEWFILE ".CCUS {Name:English; lang: en-US;\n}\n-->\n";
print NEWFILE "</STYLE>/n</HEAD>\n";
print NEWFILE "<BODY>\n";
}

sub SMIend {
print NEWFILE "</BODY>\n";
print NEWFILE "</SAMI>\n";
}

sub SMItime($) {
my ($tt) = @_;
print NEWFILE "<SYNC Start=";
print NEWFILE $tt;
print NEWFILE "000><P Class=EGCC>";
}

Anno Siegel 09-01-2004 09:40 AM

Re: share winlyrics to wmp SMI in perl
 
lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc:
> #!/usr/bin/perl


[150 lines of undocumented code of dubious quality snipped]

The place to share Perl code is the CPAN, not Usenet.

Anno

lechee 09-03-2004 01:47 PM

Re: share winlyrics to wmp SMI in perl
 
anno4000@lublin.zrz.tu-berlin.de (Anno Siegel) wrote in message news:<ch45dj$7dn$1@mamenchi.zrz.TU-Berlin.DE>...
> lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc:
> > #!/usr/bin/perl

>
> [150 lines of undocumented code of dubious quality snipped]
>
> The place to share Perl code is the CPAN, not Usenet.
>
> Anno


why I can not share the perl in usenet, google can search anything we
want, I like google with usenet

Anno Siegel 09-03-2004 02:18 PM

Re: share winlyrics to wmp SMI in perl
 
lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc:
> anno4000@lublin.zrz.tu-berlin.de (Anno Siegel) wrote in message
> news:<ch45dj$7dn$1@mamenchi.zrz.TU-Berlin.DE>...
> > lechee <lecheel@yahoo.com> wrote in comp.lang.perl.misc:
> > > #!/usr/bin/perl

> >
> > [150 lines of undocumented code of dubious quality snipped]
> >
> > The place to share Perl code is the CPAN, not Usenet.
> >
> > Anno

>
> why I can not share the perl in usenet, google can search anything we
> want, I like google with usenet


Usenet is a discussion forum. The fact that google has chosen to
archive it doesn't make it an archive itself.

Anno


All times are GMT. The time now is 11:51 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.