ITPub博客

首页 > IT基础架构 > 网络安全 > 昨天突击写两个perl,对互连星空彩铃网关的铃音进行调整

昨天突击写两个perl,对互连星空彩铃网关的铃音进行调整

原创 网络安全 作者:wangzh3 时间:2005-09-16 08:57:38 0 删除 编辑

客户邀请我们的领导在北京一起,让我们对互连星空彩铃网关的数据进行调整。没有办法,只好应急了,写了两个perl。

一个用来根据调整后的铃音信息把铃音的存放路径进行调整。另外一个是把每个铃音的id进行调整,原因是sp代码调整了,为了让铃音和sp代码对应起来,所以做此调整,简单测试了,幸好做了没有问题。希望下次不要这样子猴急,不然很容易出问题的。

[@more@]

第一个:根据调整过的铃音调整铃音的存放路径

#name:tune_ring_ftp.pl
#function:铃音分类调整,则对应铃音的存放路径需要调整
#use:
# 1、放在铃音ftp服务器的根路径下,需要提供一个文件,就是s50ring表对应的信息,铃音的allindex,ringid
# 2、生成一个新的ftp路径,名字叫做newftp,然后把当前路径下的0-23备份并删除,把newftp下的拷贝到当前路径下即可
# 3、s50ring.txt allindex ringid.wav
#author:wang.zhihong1@zte.com.cn 20050627 Rev 1.0
use strict;
use warnings;
use File::Path;
use File::Basename;
use File::Spec::Win32;
use File::Find;
use File::Copy;
use Cwd;

my %ringfile;
my %ringinfo;
my ($allindex,$ringid);


my $target=getcwd;

sub wanted{
if (-f $File::Find::name){
if ($File::Find::name=~/wav/){
$ringfile{$_}=$File::Find::name;
}
}
}

#处理
my @dir =(0..23);

foreach my $dir(@dir){
find(&wanted,"$target/$dir");
}

open(RINGFILE,"s50ring.txt");
while()
{
($allindex,$ringid)=split /s+/,$_;
$ringinfo{$ringid}=$allindex;
}


my $dest="$target/newftp";
if(! -e $dest)
{
mkdir($dest);
}

my ($first,$second);


foreach $ringid (sort keys %ringinfo)
{
$allindex=$ringinfo{$ringid};
$first="$dest/".($allindex %24);
$second="$first/".$allindex;
if (! -e $first){
mkdir($first);
}
if (! -e $second){
mkdir($second);
}

if ($ringfile{$ringid} ne ""){

copy($ringfile{$ringid},"$second/$ringid");
}else{
print "false:$ringidn";
}
}

第二个:根据sp代码调整铃音文件的名称,就是把铃音文件名开头为左边的调整为右边的,其他位不变。

8100001 8100010
8100111 8100020
8100129 8100030
8100222 8100040
8100333 8100050
8100444 8100060
8100555 8100070
8100666 8100080
8100777 8100090
8100888 8100100
8100999 8100110

#name:rename_ringfile.pl
#function:根据sp代码调整铃音文件名成
#use:
#author:wang.zhihong1@zte.com.cn 20050627 Rev 1.0
use strict;
use warnings;
use File::Path;
use File::Basename;
use File::Spec::Win32;
use File::Find;
use File::Copy;
use Cwd;

my %ringfile;
my %ringinfo;
my ($allindex,$ringid);


my $target=getcwd;
my $oldfile;
my $newname;
my $path;

sub wanted{
if (-f $File::Find::name){
if ($File::Find::name=~/wav/){
$oldfile=$_;
$path=substr($File::Find::name,0,-length($_));
if($oldfile =~/^8100001/)
{
$newname="8100010".substr($_,7);
}elsif($oldfile =~/^8100111/)
{
$newname="8100020".substr($_,7);
}elsif($oldfile =~/^8100129/)
{
$newname="8100030".substr($_,7);
}elsif($oldfile =~/^8100222/)
{
$newname="8100040".substr($_,7);
}elsif($oldfile =~/^8100333/)
{
$newname="8100050".substr($_,7);
}elsif ($oldfile =~/^8100444/)
{
$newname="8100060".substr($_,7);
}elsif($oldfile =~/^8100555/)
{
$newname="8100070".substr($_,7);
}elsif($oldfile =~/^8100666/)
{
$newname="8100080".substr($_,7);
}elsif($oldfile =~/^8100777/)
{
$newname="8100090".substr($_,7);
}elsif($oldfile =~/^8100888/)
{
$newname="8100100".substr($_,7);
}elsif($oldfile =~/^8100999/)
{
$newname="8100110".substr($_,7);
}else{
$newname=$oldfile;
}

rename($File::Find::name,"$path$newname");
}
}
}

#处理
my @dir =(0..23);

foreach my $dir(@dir){
find(&wanted,"$target/$dir");
}

执行完毕,在彩铃网关门户试听铃音,ok,没有任问题,谢天谢地,不然的话昨晚就麻烦了,要恢复,要重新调整。希望以后都给我们一个能够进行测试的时间和机会,那样我们才可能尽量避免不必要的错误和问题。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/47869/viewspace-806594/,如需转载,请注明出处,否则将追究法律责任。

上一篇: joke
下一篇: 原来你也在这里
请登录后发表评论 登录
全部评论
  • 博文量
    301
  • 访问量
    10828326