[b7d3cc34] | 1 | #!/bin/bash |
---|
| 2 | # |
---|
| 3 | # Author geno, <geno@xenyon.com> |
---|
| 4 | # Date 2004-04-24 |
---|
| 5 | # Version 0.1c |
---|
| 6 | # |
---|
| 7 | |
---|
| 8 | show_help() |
---|
| 9 | { |
---|
| 10 | cat << _EOF_ |
---|
| 11 | |
---|
| 12 | This script converts your CenterICQ contacts (AIM/ICQ) to BitlBee's contacts. |
---|
| 13 | The use of this script is on you own risk. You agree by using this script. :-) |
---|
| 14 | |
---|
| 15 | SYNTAX: `basename $0` <protoname> [<add_proto_tag>] |
---|
| 16 | |
---|
| 17 | protoname - Choose the protocol you want to get your contacts from |
---|
| 18 | by using "aim" or "icq" here. |
---|
| 19 | |
---|
| 20 | add_proto_tag - This is optional and adds a suffix to each nickname. |
---|
| 21 | For an AIM contact it will look like this: geno|aim |
---|
| 22 | For an ICQ contact it will be |icq , WOW! :-D |
---|
| 23 | To enable this option use "on". |
---|
| 24 | |
---|
| 25 | NOTE: |
---|
| 26 | After the conversion of one protocol is done you will find a file |
---|
| 27 | called bitlbee_[protoname] in ~/.centericq . Append the content of |
---|
| 28 | this file to /var/lib/bitlbee/[username].nicks . |
---|
| 29 | |
---|
| 30 | [username] is your username you use to talk to the BitlBee Server. |
---|
| 31 | You will have to be root to edit this file! |
---|
| 32 | |
---|
| 33 | CREDITS: |
---|
| 34 | This script was written by geno (geno@xenyon.com). |
---|
| 35 | I hope it will help you to make the switch to BitlBee a bit easier. :-) |
---|
| 36 | |
---|
| 37 | _EOF_ |
---|
| 38 | exit 0 |
---|
| 39 | } |
---|
| 40 | |
---|
| 41 | case $1 in |
---|
| 42 | "") show_help ;; |
---|
| 43 | "icq") |
---|
| 44 | nick_protocol="[1-9]*/" |
---|
| 45 | protocol_const="3" |
---|
| 46 | ;; |
---|
| 47 | |
---|
| 48 | "aim") |
---|
| 49 | nick_protocol="a*/" |
---|
| 50 | protocol_const="1" |
---|
| 51 | ;; |
---|
| 52 | |
---|
| 53 | *) show_help ;; |
---|
| 54 | esac |
---|
| 55 | |
---|
| 56 | # can we see CenterICQ's directory ? |
---|
| 57 | if [ ! -d ~/.centericq ]; then |
---|
| 58 | echo "The directory of CenterICQ (~/.centericq) was not found!" |
---|
| 59 | echo "Maybe you are logged in with the wrong username." |
---|
| 60 | exit 1 |
---|
| 61 | fi |
---|
| 62 | |
---|
| 63 | # change to the center of all evil ;) |
---|
| 64 | cd ~/.centericq |
---|
| 65 | |
---|
| 66 | # get the listing of all nicks |
---|
| 67 | nick_listing=`ls -d $nick_protocol | sed 's/\ /_DuMmY_/g' | sed 's/\/_DuMmY_/\/ /g'` |
---|
| 68 | |
---|
| 69 | echo -e "\nConverting ...\n" |
---|
| 70 | |
---|
| 71 | # remove old conversion |
---|
| 72 | rm -f ~/.centericq/bitlbee_$1 |
---|
| 73 | |
---|
| 74 | for nick_accountname in $nick_listing; do |
---|
| 75 | # get rid of the slash and replace _DuMmY_ with space |
---|
| 76 | nick_accountname=`echo "$nick_accountname" | sed 's/\/$//' | sed 's/_DuMmY_/\ /g'` |
---|
| 77 | |
---|
| 78 | # find centericq alias |
---|
| 79 | nick_cicq_alias=`cat "$nick_accountname/info" | sed '46!d'` |
---|
| 80 | |
---|
| 81 | # if the centericq alias is the same as the account's name then |
---|
| 82 | # it's not a real alias; search for account nickname |
---|
| 83 | if [ "$nick_accountname" == "$nick_cicq_alias" ]; then |
---|
| 84 | nick_accountalias=`cat "$nick_accountname/info" | sed '1!d'` |
---|
| 85 | fi |
---|
| 86 | |
---|
| 87 | # save the best nickname for conversion |
---|
| 88 | if [ "x$nick_accountalias" == "x" ]; then |
---|
| 89 | nick="$nick_cicq_alias" |
---|
| 90 | else |
---|
| 91 | nick="$nick_accountalias" |
---|
| 92 | fi |
---|
| 93 | |
---|
| 94 | # cut off the prefix 'a' of the accountname |
---|
| 95 | if [ "$1" == "aim" ]; then |
---|
| 96 | nick_accountname=`echo "$nick_accountname" | sed 's/^a//'` |
---|
| 97 | fi |
---|
| 98 | |
---|
| 99 | # replace each space with an underscore (spaces are not allowed in irc nicknames) |
---|
| 100 | nick=`echo "$nick" | sed 's/\ /_/g'` |
---|
| 101 | |
---|
| 102 | # if tags are wanted we will add them here |
---|
| 103 | if [ "$2" == "on" ]; then |
---|
| 104 | nick=`echo "$nick"\|$1` |
---|
| 105 | fi |
---|
| 106 | |
---|
| 107 | # print output to std |
---|
| 108 | echo "Found '$nick_accountname' with alias '$nick'" |
---|
| 109 | # save output to file |
---|
| 110 | echo "$nick_accountname" $protocol_const "$nick" >> ~/.centericq/bitlbee_$1 |
---|
| 111 | done |
---|
| 112 | |
---|
| 113 | echo -e "\nYou can find this list as a file in ~/.centericq/bitlbee_$1." |
---|
| 114 | echo -e "See help if you don't know what you have to do next.\n" |
---|
| 115 | |
---|