diff options
Diffstat (limited to 'utils/centericq2bitlbee.sh')
-rwxr-xr-x | utils/centericq2bitlbee.sh | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/utils/centericq2bitlbee.sh b/utils/centericq2bitlbee.sh new file mode 100755 index 00000000..b8c134e8 --- /dev/null +++ b/utils/centericq2bitlbee.sh @@ -0,0 +1,115 @@ +#!/bin/bash +# +# Author geno, <geno@xenyon.com> +# Date 2004-04-24 +# Version 0.1c +# + +show_help() +{ +cat << _EOF_ + +This script converts your CenterICQ contacts (AIM/ICQ) to BitlBee's contacts. +The use of this script is on you own risk. You agree by using this script. :-) + +SYNTAX: `basename $0` <protoname> [<add_proto_tag>] + + protoname - Choose the protocol you want to get your contacts from + by using "aim" or "icq" here. + + add_proto_tag - This is optional and adds a suffix to each nickname. + For an AIM contact it will look like this: geno|aim + For an ICQ contact it will be |icq , WOW! :-D + To enable this option use "on". + +NOTE: + After the conversion of one protocol is done you will find a file + called bitlbee_[protoname] in ~/.centericq . Append the content of + this file to /var/lib/bitlbee/[username].nicks . + + [username] is your username you use to talk to the BitlBee Server. + You will have to be root to edit this file! + +CREDITS: + This script was written by geno (geno@xenyon.com). + I hope it will help you to make the switch to BitlBee a bit easier. :-) + +_EOF_ +exit 0 +} + +case $1 in + "") show_help ;; + "icq") + nick_protocol="[1-9]*/" + protocol_const="3" + ;; + + "aim") + nick_protocol="a*/" + protocol_const="1" + ;; + + *) show_help ;; +esac + +# can we see CenterICQ's directory ? +if [ ! -d ~/.centericq ]; then + echo "The directory of CenterICQ (~/.centericq) was not found!" + echo "Maybe you are logged in with the wrong username." + exit 1 +fi + +# change to the center of all evil ;) +cd ~/.centericq + +# get the listing of all nicks +nick_listing=`ls -d $nick_protocol | sed 's/\ /_DuMmY_/g' | sed 's/\/_DuMmY_/\/ /g'` + +echo -e "\nConverting ...\n" + +# remove old conversion +rm -f ~/.centericq/bitlbee_$1 + +for nick_accountname in $nick_listing; do + # get rid of the slash and replace _DuMmY_ with space + nick_accountname=`echo "$nick_accountname" | sed 's/\/$//' | sed 's/_DuMmY_/\ /g'` + + # find centericq alias + nick_cicq_alias=`cat "$nick_accountname/info" | sed '46!d'` + + # if the centericq alias is the same as the account's name then + # it's not a real alias; search for account nickname + if [ "$nick_accountname" == "$nick_cicq_alias" ]; then + nick_accountalias=`cat "$nick_accountname/info" | sed '1!d'` + fi + + # save the best nickname for conversion + if [ "x$nick_accountalias" == "x" ]; then + nick="$nick_cicq_alias" + else + nick="$nick_accountalias" + fi + + # cut off the prefix 'a' of the accountname + if [ "$1" == "aim" ]; then + nick_accountname=`echo "$nick_accountname" | sed 's/^a//'` + fi + + # replace each space with an underscore (spaces are not allowed in irc nicknames) + nick=`echo "$nick" | sed 's/\ /_/g'` + + # if tags are wanted we will add them here + if [ "$2" == "on" ]; then + nick=`echo "$nick"\|$1` + fi + + # print output to std + echo "Found '$nick_accountname' with alias '$nick'" + # save output to file + echo "$nick_accountname" $protocol_const "$nick" >> ~/.centericq/bitlbee_$1 +done + +echo -e "\nYou can find this list as a file in ~/.centericq/bitlbee_$1." +echo -e "See help if you don't know what you have to do next.\n" + |