由于使用电驴久了,有时UTF的字符文件名实在难以使用,自己便写了如下PERL脚本。
本脚本刚刚完成,初步实现ED2K的UTF字符连接转换为CP936的编码以便下载。可能有些连接转换存在问题,请大家提意见,高手就直接修改并上传,供大家学习。
本人的perl脚本刚刚学习,不精,希望有高手指点。 :thank
该脚本配合MOZILLA的自动调用ed2k连接的外联程序将极为方便。我就是先起动amule,然后连接到服务器上后,只要点击ed2k的连接自动就会在amule中产生一个下载对象,非常爽!
目前脚本固定修改amule的对应ED2K连接文件,使其自动添加下载连接。其他驴子请自行修改 LinkFile
下面就献丑了 :)
- #!/usr/bin/perl
- #
- # ed2k.utf.pl: 将UTF的ED2K的连接转换为CP936编码进行下载。
- # 作者:听峰
- # 邮箱:<notclear@21cn.com>
- # 该脚本遵循GPL协议。
- #
- $ed2k_utf_url="";
- $ed2k_gbk_url="";
- $TempFileName="/tmp/tmpstr";
- [color=Blue]$LinkFile=$ENV{"HOME"};
- $LinkFile=$LinkFile."/.aMule/ED2KLinks";[/color]
- [color=Red]
- $CurrentUser=`whoami | tr -d "\n"`;
- $MuleProg="amule";
- $RunningAmule="ps -u ".$CurrentUser." | grep ".$MuleProg." | wc -l";
- $RunningAmule=`$RunningAmule`;
- unless ($RunningAmule >= 1) { `$MuleProg` }
- [/color]
- unless (@ARGV == 1) { die "usage: $0 ed2k.url" }
- ($ed2k_utf_url) = @ARGV;
- %ascii_map = (
- "00","\x00", "01","\x01", "02","\x02", "03","\x03", "04","\x04", "05","\x05", "06","\x06", "07","\x07", "08","\x08", "09","\x09", "0A","\x0A", "0B","\x0B", "0C","\x0C", "0D","\x0D", "0E","\x0E", "0F","\x0F",
- "10","\x10", "11","\x11", "12","\x12", "13","\x13", "14","\x14", "15","\x15", "16","\x16", "17","\x17", "18","\x18", "19","\x19", "1A","\x1A", "1B","\x1B", "1C","\x1C", "1D","\x1D", "1E","\x1E", "1F","\x1F",
- "20","\x20", "21","\x21", "22","\x22", "23","\x23", "24","\x24", "25","\x25", "26","\x26", "27","\x27", "28","\x28", "29","\x29", "2A","\x2A", "2B","\x2B", "2C","\x2C", "2D","\x2D", "2E","\x2E", "2F","\x2F",
- "30","\x30", "31","\x31", "32","\x32", "33","\x33", "34","\x34", "35","\x35", "36","\x36", "37","\x37", "38","\x38", "39","\x39", "3A","\x3A", "3B","\x3B", "3C","\x3C", "3D","\x3D", "3E","\x3E", "3F","\x3F",
- "40","\x40", "41","\x41", "42","\x42", "43","\x43", "44","\x44", "45","\x45", "46","\x46", "47","\x47", "48","\x48", "49","\x49", "4A","\x4A", "4B","\x4B", "4C","\x4C", "4D","\x4D", "4E","\x4E", "4F","\x4F",
- "50","\x50", "51","\x51", "52","\x52", "53","\x53", "54","\x54", "55","\x55", "56","\x56", "57","\x57", "58","\x58", "59","\x59", "5A","\x5A", "5B","\x5B", "5C","\x5C", "5D","\x5D", "5E","\x5E", "5F","\x5F",
- "60","\x60", "61","\x61", "62","\x62", "63","\x63", "64","\x64", "65","\x65", "66","\x66", "67","\x67", "68","\x68", "69","\x69", "6A","\x6A", "6B","\x6B", "6C","\x6C", "6D","\x6D", "6E","\x6E", "6F","\x6F",
- "70","\x70", "71","\x71", "72","\x72", "73","\x73", "74","\x74", "75","\x75", "76","\x76", "77","\x77", "78","\x78", "79","\x79", "7A","\x7A", "7B","\x7B", "7C","\x7C", "7D","\x7D", "7E","\x7E", "7F","\x7F",
- "80","\x80", "81","\x81", "82","\x82", "83","\x83", "84","\x84", "85","\x85", "86","\x86", "87","\x87", "88","\x88", "89","\x89", "8A","\x8A", "8B","\x8B", "8C","\x8C", "8D","\x8D", "8E","\x8E", "8F","\x8F",
- "90","\x90", "91","\x91", "92","\x92", "93","\x93", "94","\x94", "95","\x95", "96","\x96", "97","\x97", "98","\x98", "99","\x99", "9A","\x9A", "9B","\x9B", "9C","\x9C", "9D","\x9D", "9E","\x9E", "9F","\x9F",
- "A0","\xA0", "A1","\xA1", "A2","\xA2", "A3","\xA3", "A4","\xA4", "A5","\xA5", "A6","\xA6", "A7","\xA7", "A8","\xA8", "A9","\xA9", "AA","\xAA", "AB","\xAB", "AC","\xAC", "AD","\xAD", "AE","\xAE", "AF","\xAF",
- "B0","\xB0", "B1","\xB1", "B2","\xB2", "B3","\xB3", "B4","\xB4", "B5","\xB5", "B6","\xB6", "B7","\xB7", "B8","\xB8", "B9","\xB9", "BA","\xBA", "BB","\xBB", "BC","\xBC", "BD","\xBD", "BE","\xBE", "BF","\xBF",
- "C0","\xC0", "C1","\xC1", "C2","\xC2", "C3","\xC3", "C4","\xC4", "C5","\xC5", "C6","\xC6", "C7","\xC7", "C8","\xC8", "C9","\xC9", "CA","\xCA", "CB","\xCB", "CC","\xCC", "CD","\xCD", "CE","\xCE", "CF","\xCF",
- "D0","\xD0", "D1","\xD1", "D2","\xD2", "D3","\xD3", "D4","\xD4", "D5","\xD5", "D6","\xD6", "D7","\xD7", "D8","\xD8", "D9","\xD9", "DA","\xDA", "DB","\xDB", "DC","\xDC", "DD","\xDD", "DE","\xDE", "DF","\xDF",
- "E0","\xE0", "E1","\xE1", "E2","\xE2", "E3","\xE3", "E4","\xE4", "E5","\xE5", "E6","\xE6", "E7","\xE7", "E8","\xE8", "E9","\xE9", "EA","\xEA", "EB","\xEB", "EC","\xEC", "ED","\xED", "EE","\xEE", "EF","\xEF",
- "F0","\xF0", "F1","\xF1", "F2","\xF2", "F3","\xF3", "F4","\xF4", "F5","\xF5", "F6","\xF6", "F7","\xF7", "F8","\xF8", "F9","\xF9", "FA","\xFA", "FB","\xFB", "FC","\xFC", "FD","\xFD", "FE","\xFE", "FF","\xFF"
- );
- #print "input url: $ed2k_utf_url\n";
- $ed2k_gbk_url = $ed2k_utf_url;
- $ed2k_gbk_url =~ s/%([0-9a-fA-F][0-9a-fA-F])/$ascii_map{$1}/g;
- open(TMPFILE,">$TempFileName");
- print TMPFILE "$ed2k_gbk_url";
- close TMPFILE;
- $ed2k_gbk_url = `iconv -f=utf8 -t=cp936 $TempFileName`;
- open(TMPFILE,"[color=Blue]>>[/color]$[color=Blue]LinkFile[/color]");
- print TMPFILE "$ed2k_gbk_url";
- close TMPFILE;
- #print "output url: $ed2k_gbk_url\n";
- [color=Blue]#[/color]`ed2k.amule "$ed2k_gbk_url"`;
复制代码
附件的图中
1--->为直接从mozilla拷贝ed2k的连接地址,在amule中添加产生的下载项。
2--->为使用我自己的脚本后,自动在amule中产生的下载项。
是不是比较直观阿 :cool: |