偏门解决aMule下载文件名乱码问题+一次性添加多任务问题。

利用服务器空闲时间,慢慢的,勤勤恳恳的帮你下载东西,会是一种享受。:)
一直使用aMule,利用amule-daemon在后台下载,使用aMule-Web通过浏览器添加任务。本来是一件比较美好的事情,不过,由于某方面的原因,aMule-Web存在下面两点问题。
1,比较的不稳定,当你频繁的访问web页面的时候,可能动不动就会当掉。
2,虽然在web界面上那个添加连接上面加了Link(s),貌似可以一次性添加多连接,实际上只对第一条链接有效,我想这个应该算一个bug吧。

web页面的不稳定,尚可以忍受,若要添加20个链接,那么一条一条的添加,实在是麻烦。google了一下,有网友提供下面一个解决方法,在你aMule的HOME下面的.aMule里面,amule-daemon会自动侦测ED2KLinks文件,如果存在此文件,那么就处理里面的内容,然后删除。也就是说,我们可以一次性将多条连接放入此文件中,一个链接一行,然后后台会自动去下载他们。确实非常方便。当我尝试了一下,发现一个问题,下载出来的文件名如果含有非ASCII的话,那么全部变成乱码。这个令人非常头痛,看了一下ed2k的链接组成,查看了相关资料,找到了原因,这个是因为,从网站上拷贝ed2k链接的时候,非ASCII字符,都是被转换为了,基本上类似于被URIEndcode了,所以,你的到的这些乱码文件名用iconv,或者convmv都无法正确的转换出来。找到原因,那么就可以对症下药了,既然被URIEndcode了,那么我decode一下,不就的了,然后再加入到ED2KLinks文件中去。使用到了PHP-CLI,直接提供了decode命令。下面是详细的脚本。

                           
#!/bin/bash
ED2K_FILE=/home/aMule/.aMule/ED2KLinks
TMP=/tmp/$$.tmp
TMP2=/tmp/$$.tmp2

if [ "${EDITOR}" = "" ]; then
    EDITOR=/usr/bin/vim
fi

# accept input data from editor
${EDITOR} "$TMP"

while read line
do
    php -r "echo urldecode('${line}'.\"\n\");" >> "${TMP2}"
    # echo ${line}
done < "${TMP}"

cat ${TMP2} >> ${ED2K_FILE}

# remove temp file
rm -rf ${TMP}      rm -rf ${TMP2}


END

0 Responses to "偏门解决aMule下载文件名乱码问题+一次性添加多任务问题。"