aboutsummaryrefslogtreecommitdiffstats
path: root/utils/centericq2bitlbee.sh
diff options
context:
space:
mode:
Diffstat (limited to 'utils/centericq2bitlbee.sh')
-rwxr-xr-xutils/centericq2bitlbee.sh115
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"
+