root/branches/licq/website/licq.centericqconvert

Revision 4129, 9.0 kB (checked in by anonymous, 4 years ago)

This commit was manufactured by cvs2svn to create branch 'licq'.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1#!/bin/sh
2#
3#  written by conon <troll@logi.net.au>
4#
5#  This script is intended to be run before starting licq
6#  It prepares the directory and users setups to that of a
7#  current centericq setup
8#  just run the script and it will do it all
9#
10
11test "${1}" && test "${1}" == "-t" -o "${1}" == "-T" && TESTING="-b .licq"
12
13if test "$TESTING"
14  then
15    LICQ_DIR=.licq
16    CENTER_DIR=.centericq
17  else
18    LICQ_DIR=~/.licq
19    CENTER_DIR=~/.centericq
20  fi
21
22LICQ_USER_DIR=${LICQ_DIR}/users
23LICQ_HISTORY_DIR=${LICQ_DIR}/history
24LICQ_CONF=${LICQ_DIR}/licq.conf
25LICQ_OWNER=${LICQ_DIR}/owner.uin
26LICQ_QT_GUI=${LICQ_DIR}/licq_qt-gui.conf
27LICQ_USERS=${LICQ_DIR}/users.conf
28OWNER_HISTORY=${LICQ_HISTORY_DIR}/owner.history
29
30CENTER_RC=${CENTER_DIR}/config
31CENTER_MODES=${CENTER_DIR}/modelist
32
33C_UIN="icq_uin"
34L_UIN="Uin"
35UIN=""
36C_PASSWORD="icq_pass"
37L_PASSWORD="Password"
38PASSWORD=""
39C_SERVER="icq_server"
40L_SERVER="ICQServer"
41SERVER=""
42C_SERVER_PORT=""
43L_SERVER_PORT="Port"
44SERVER_PORT=""
45
46function read_centericq_conf ()
47{
48  local INBASE
49  local INREST
50  while read INBASE INREST
51    do
52      case ${INBASE}
53        in
54        $C_UIN)      UIN=${INREST};;
55        $C_PASSWORD) PASSWORD=${INREST};;
56        $C_SERVER)   SERVER=${INREST%%':'*}
57                     SERVER_PORT=${INREST##*':'};;
58        esac
59     done
60}
61
62function out_licq_conf ()
63{
64  local INSTUFF
65  local INBASE
66  local INREST
67  while read INSTUFF
68    do
69      INBASE=${INSTUFF%%'='*}
70      INBASE=${INSTUFF%%' '*}
71      INREST=${INSTUFF##*'='}
72      INREST=${INSTUFF##*' '}
73      case $INBASE
74        in
75        L_SERVER) echo "${INBASE} = ${SERVER}";;
76        L_PORT)   echo "${INBASE} = ${SERVER_PORT}";;
77        *)        echo "${INSTUFF}";;
78        esac
79    done
80}
81
82function out_owner_uin ()
83{
84  local INSTUFF
85  local INBASE
86  local INREST
87  while read INSTUFF
88    do
89      INBASE=${INSTUFF%%'='*}
90      INBASE=${INSTUFF%%' '*}
91      INREST=${INSTUFF##*'='}
92      INREST=${INSTUFF##*' '}
93      case $INBASE
94        in
95        "History")     echo "${INBASE} = ${OWNER_HISTORY}";;
96        ${L_PASSWORD}) echo "${INBASE} = ${PASSWORD}";;
97        ${L_UIN})      echo "${INBASE} = ${UIN}";;
98        *)             echo "${INSTUFF}";;
99        esac
100    done
101}
102
103declare -a CONTACTS
104CONTACT_COUNT=0
105
106function test_mv ()
107{
108  if test -e ${1}.new
109    then
110      test -e ${1} && mv ${1} ${1}.orig
111      mv ${1}.new ${1}
112    fi
113}
114
115declare -a USER_DETAIL
116USER_DETAILS=0
117
118function parse_info ()
119{
120  USER_DETAILS=0
121  while read USER_DETAIL[${USER_DETAILS}]
122    do
123      let USER_DETAILS+=1
124    done
125}
126
127NEW_USER=0
128function user_mode ()
129{
130  local mode=0
131  local name=""
132  local uin=""
133  local IGNORE=0
134  local VISIBLE=0
135  local INVISIBLE=0
136  while read mode name uin
137    do
138      if test "${name}" == "${1}" -o "${uin}" == "${1}"
139        then
140          case ${mode}
141            in
142            "1") IGNORE=8;;
143            "2") VISIBLE=2;;
144            "3") INVISIBLE=4;;
145            esac
146        fi
147    done
148  let mode=${IGNORE}
149  let mode+=${VISIBLE}
150  let mode+=${INVISIBLE}
151  echo ${mode}
152}
153
154function out_user_uin ()
155{
156  local SYSTEM_GROUPS=0
157  SYSTEM_GROUPS=`user_mode ${1} <${CENTER_MODES}`
158
159  cat <<-EOF
160    [user]
161    History = ${LICQ_HISTORY_DIR}/${1}.history
162    Groups.System = ${SYSTEM_GROUPS}
163    Groups.User =
164    Ip =
165    Port =
166    NewUser = ${NEW_USER}
167    NewMessages =
168    LastOnline = ${USER_DETAIL[46]}
169    Alias = ${USER_DETAIL[0]}
170    FirstName = ${USER_DETAIL[1]}
171    LastName = ${USER_DETAIL[2]}
172    Email1 = ${USER_DETAIL[5]}
173    Email2 =
174    City = ${USER_DETAIL[6]}
175    State = ${USER_DETAIL[7]}
176    PhoneNumber = ${USER_DETAIL[8]}
177    FaxNumber = ${USER_DETAIL[9]}
178    Address = ${USER_DETAIL[10]}
179    CellularNumber = ${USER_DETAIL[11]}
180    Zipcode = ${USER_DETAIL[12]}
181    Country = ${USER_DETAIL[13]}
182    Timezone =
183    Authorization =
184    HideEmail =
185    Age = ${USER_DETAIL[26]}
186    Gender = ${USER_DETAIL[27]}
187    Homepage = ${USER_DETAIL[29]}
188    BirthYear = ${USER_DETAIL[34]}
189    BirthMonth = ${USER_DETAIL[33]}
190    BirthDay = ${USER_DETAIL[32]}
191    Language1 =
192    Language2 =
193    Language3 =
194    CompanyCity = ${USER_DETAIL[14]}
195    CompanyState = ${USER_DETAIL[15]}
196    CompanyPhoneNumber = ${USER_DETAIL[16]}
197    CompanyFaxNumber = ${USER_DETAIL[17]}
198    CompanyAddress = ${USER_DETAIL[18]}
199    CompanyName = ${USER_DETAIL[21]}
200    CompanyDepartment = ${USER_DETAIL[22]}
201    CompanyPosition = ${USER_DETAIL[23]}
202    CompanyHomepage = ${USER_DETAIL[25]}
203    EOF
204}
205
206function parse_history_0 ()
207{
208true
209}
210
211function parse_history ()
212{
213  local INSTUFF
214  local LINE_COUNT=0
215  local INMESG=false
216  local MESSAGE=""
217  local CDIR="R"
218  local CMND=""
219  local TIME=""
220  local TESTY="\014"
221  local URL=""
222
223#read -r INSTUFF
224  while read -r INSTUFF
225    do
226      INSTUFF=`echo ${INSTUFF} |tr -d "\f\r"`
227      if ! test "${INSTUFF}" && ${INMESG}
228        then
229          echo -e "[ ${CDIR} | ${SUBCMD} | 2046 | 0001 | ${TIME} ]"
230          echo -en "${MESSAGE}"
231          test "${URL}" && echo -en "${URL}"
232          INMESG=false
233          LINE_COUNT=0
234          MESSAGE=""
235          URL=""
236        fi
237      test "${INSTUFF}" && INMESG=true
238      case ${LINE_COUNT}
239        in
240         "0")    if test "${INSTUFF}" == "OUT" 
241                 then
242                   CDIR="S"
243                 else
244                   CDIR="R"
245                 fi;;
246         "1")     SUBCMD="${INSTUFF}";;
247         "2")     TIME="${INSTUFF}";;
248         "3")     true;;
249         "4")     case "$SUBCMD"
250                    in
251                    "AUTH") if test "${INSTUFF}" == "1"
252                              then
253                                SUBCMD="0008"
254                              else
255                                SUBCMD="0007"
256                              fi;;
257                    "URL")  URL=":${INSTUFF}"
258                                SUBCMD="0004";;
259                    *)  MESSAGE="${MESSAGE}:${INSTUFF}\n"
260                                SUBCMD="0001";;
261                    esac;;
262         *)     MESSAGE="${MESSAGE}:${INSTUFF}\n";;
263        esac
264      test "${INSTUFF}" && let LINE_COUNT+=1
265    done 
266}
267
268function parse_contacts ()
269{
270  local UIN
271  for DIR in ${CENTER_DIR}/*/
272    do
273      UIN=${DIR%*'/'}
274      UIN=${UIN##${CENTER_DIR}/}
275      test "$UIN" == "0" && continue
276      CONTACTS[${CONTACT_COUNT}]="${UIN}"
277      let CONTACT_COUNT+=1
278      if test -e ${DIR}/history
279        then
280          parse_history <${DIR}/history  >${LICQ_HISTORY_DIR}/${UIN}.history
281        else
282          echo -n > ${LICQ_HISTORY_DIR}/${UIN}.history
283        fi
284      if test -e ${DIR}/info
285        then
286          parse_info <${DIR}/info
287        fi
288        out_user_uin ${UIN} >${LICQ_USER_DIR}/${UIN}.uin
289    done
290}
291
292function out_users_conf ()
293{
294  local TMPCOUNT=0
295  local TEMPCOUNT=1
296  echo -e "[users]\nNumOfUsers = ${CONTACT_COUNT}"
297  while test ${TMPCOUNT} -lt ${CONTACT_COUNT}
298    do
299      echo "User${TEMPCOUNT} = ${CONTACTS[${TMPCOUNT}]}"
300      let TMPCOUNT+=1
301      let TEMPCOUNT+=1
302    done
303}
304
305test -d ${LICQ_DIR} || licq ${TESTING} -I -h >/dev/null 2>&1
306if test -e ${CENTER_RC} -a ! -e ${LICQ_OWNER}.orig
307  then
308    read_centericq_conf < ${CENTER_RC}
309    if test -e ${LICQ_CONF}
310      then
311        out_licq_conf < ${LICQ_CONF} >${LICQ_CONF}.new
312      else
313        out_licq_conf >${LICQ_CONF}.new <<-EOF
314        [licq]
315        Version = 1020
316       
317        [plugins]
318        NumPlugins = 1
319        Plugin1 = qt-gui
320       
321        [network]
322        AllowNewUsers = 1
323        NumOfICQServers = 1
324        ICQServer = login.icq.com
325        ICQServerPort = 5190
326        TCPPortsLow = 0
327        TCPPortsHigh = 0
328        TCPEnabled = 1
329        MaxUsersPerPacket = 100
330        IgnoreTypes = 0
331        ForegroundColor = 0
332        BackgroundColor = 16777215
333        Errors = log.errors
334        ErrorTypes = 6
335        Rejects = log.rejects
336        Translation = none
337        UrlViewer = viewurl-netscape.sh
338        Terminal = xterm -T Licq -e
339        ProxyEnabled = 0
340        ProxyServerType = 1
341        ProxyServer =
342        ProxyServerPort = 0
343        ProxyAuthEnabled = 0
344        ProxyLogin =
345        ProxyPassword =
346        UseSS = 0
347       
348        [onevent]
349        Enable = 1
350        Command = play
351        Message = /usr/share/licq/sounds/icq/Message.wav
352        Chat = /usr/share/licq/sounds/icq/Chat.wav
353        File = /usr/share/licq/sounds/icq/File.wav
354        Url = /usr/share/licq/sounds/icq/URL.wav
355        OnlineNotify = /usr/share/licq/sounds/icq/Notify.wav
356        SysMsg = /usr/share/licq/sounds/icq/System.wav
357       
358        [groups]
359        NumOfGroups = 3
360        DefaultGroup = 0
361        NewUserGroup = 1
362        Group1.name = New Users
363        Group2.name = Friends
364        Group3.name = Family
365        Group1.id = 0
366        Group2.id = 0
367        Group3.id = 0
368        EOF
369      fi
370    echo -n > ${OWNER_HISTORY}
371#    if test -e ${LICQ_OWNER}
372#      then
373#        out_owner_uin < ${LICQ_OWNER} >${LICQ_OWNER}.new
374#      else
375        out_owner_uin >${LICQ_OWNER}.new <<-EOF
376        [user]
377        Alias = None
378        Password =
379        Uin = 0
380        WebPresence = 0
381        HideIP = 0
382        History = ${OWNER_HISTORY}
383        Groups.System = 0
384        Groups.User = 0
385        Ip = 0.0.0.0
386        IntIp = 0.0.0.0
387        Port = 1800
388        NewMessages = 0
389        LastOnline = 0
390        LastSent = 0
391        LastRecv = 0
392        LastCheckedAR = 0
393        AutoAccept = 0
394        StatusToUser = 65535
395        CustomAutoRsp =
396        SendIntIp = 0
397        UserEncoding =
398        SID = 0
399        GSID = 0
400        Authorization = 0
401        RCG = 0
402        SSTime = 0
403        SSCount = 0
404        AutoResponse =
405        EOF
406#      fi
407    parse_contacts
408    out_users_conf >${LICQ_USERS}.new
409  fi
410
411test_mv ${LICQ_CONF}
412test_mv ${LICQ_OWNER}
413test_mv ${LICQ_USERS}
414
415chmod 700 ${LICQ_DIR}
416chmod 600 ${LICQ_DIR}/*
417chmod 700 ${LICQ_USER_DIR}
418chmod 600 ${LICQ_USER_DIR}/*
419chmod 700 ${LICQ_HISTORY_DIR}
420chmod 600 ${LICQ_HISTORY_DIR}/*
Note: See TracBrowser for help on using the browser.