root/branches/licq/website/licq.kxicqconvert

Revision 4129, 15.5 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 kxicq 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    KDE_DIR=.kde/share
17  else
18    LICQ_DIR=~/.licq
19    KDE_DIR=~/.kde/share
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
30KXICQ_RC=${KDE_DIR}/config/kxicq2rc
31KXICQ_CONTACTS=${KDE_DIR}/apps/kxicq2/contacts.kxicq
32KXICQ_MESSAGES=${KDE_DIR}/apps/kxicq2/messages.kxicq2
33
34DEFAULT_T_F=0
35
36L_SERVER="ICQServer"
37K_SERVER="Server"
38SERVER=""
39L_SERVER_PORT="ICQServerPort"
40K_SERVER_PORT="Port"
41SERVER_PORT=0
42L_USE_PROXY="ProxyEnabled"
43K_USE_PROXY="Use Proxy"
44USE_PROXY=""
45L_PROXY_SERVER="ProxyServer"
46K_PROXY_SERVER="Proxy Server"
47PROXY_SERVER=""
48L_PROXY_PORT="ProxyServerPort"
49K_PROXY_PORT="Proxy Port"
50PROXY_PORT=0
51L_DOCKING="UseDock"
52K_DOCKING="KDE Dock"
53DOCKING=0
54
55L_NICK="Alias"
56K_NICK="Nick"
57NICK=""
58L_PASSWORD="Password"
59K_PASSWORD="Password"
60PASSWORD=""
61L_UIN="Uin"
62K_UIN="UIN"
63UIN=0
64L_WEB_STATUS="WebPresence"
65K_WEB_STATUS="Web Status"
66WEB_STATUS=0
67L_HIDE_IP="HideIp"
68K_HIDE_IP="Hide IP"
69HIDE_IP=0
70
71K_USE_AUTO_AWAY="Auto Away"
72USE_AWAY_TIME=false
73L_AWAY_TIME="AutoAway"
74K_AWAY_TIME="Away Time"
75AWAY_TIME=5
76L_N_A_TIME="AutoNA"
77K_N_A_TIME="N/A Time"
78N_A_TIME=10
79
80function true_false ()
81{
82  case $1
83   in
84   "true"|"TRUE"|"True"|"1")    echo 1;;
85   "false"|"FALSE"|"False"|"0") echo 0;;
86   *)                           echo ${DEFAULT_T_F};;
87   esac
88}
89
90function readkxicq2conf ()
91{
92  local INSTUFF
93  local INBASE
94  local INREST
95  while read INSTUFF
96    do
97      INBASE=${INSTUFF%%'='*}
98      INREST=${INSTUFF##*'='}
99      case ${INBASE}
100        in
101        ${K_SERVER})        SERVER="${INREST}";;
102        ${K_SERVER_PORT})   SERVER_PORT="${INREST}";;
103        ${K_USE_PROXY})     USE_PROXY=`true_false ${INREST}`;;
104        ${K_PROXY_SERVER})  PROXY_SERVER="${INREST}";;
105        ${K_PROXY_PORT})    PROXY_PORT="${INREST}";;
106        ${K_NICK})          NICK="${INREST}";;
107        ${K_PASSWORD})      PASSWORD="${INREST}";;
108        ${K_UIN})           UIN="${INREST}";;
109        ${K_WEB_STATUS})    WEB_STATUS=`true_false ${INREST}`;;
110        ${K_HIDE_IP})       HIDE_IP=`true_false ${INREST}`;;
111        ${K_DOCKING})       DOCKING=`true_false ${INREST}`;;
112        ${K_USE_AUTO_AWAY}) USE_AUTO_AWAY="${INREST}";;
113        ${K_AWAY_TIME})     AWAY_TIME="${INREST}";;
114        ${K_N_A_TIME})      N_A_TIME="${INREST}";;
115        esac
116    done
117}
118
119function out_licq_conf ()
120{
121  local INSTUFF
122  local INBASE
123  local INREST
124  while read INSTUFF
125    do
126      INBASE=${INSTUFF%%'='*}
127      INBASE=${INSTUFF%%' '*}
128      INREST=${INSTUFF##*'='}
129      INREST=${INSTUFF##*' '}
130      case $INBASE
131        in
132        ${L_SERVER})       echo "${INBASE} = ${SERVER}";;
133        ${L_SERVER_PORT})  echo "${INBASE} = ${SERVER_PORT}";;
134        ${L_USE_PROXY})    echo "${INBASE} = ${USE_PROXY}";;
135        ${L_PROXY_SERVER}) echo "${INBASE} = ${PROXY_SERVER}";;
136        ${L_PROXY_PORT})   echo "${INBASE} = ${PROXY_PORT}";;
137        *)                 echo "${INSTUFF}";;
138        esac
139    done
140}
141
142function out_owner_uin ()
143{
144  local INSTUFF
145  local INBASE
146  local INREST
147  while read INSTUFF
148    do
149      INBASE=${INSTUFF%%'='*}
150      INBASE=${INSTUFF%%' '*}
151      INREST=${INSTUFF##*'='}
152      INREST=${INSTUFF##*' '}
153      case $INBASE
154        in
155        "History")       echo "${INBASE} = ${OWNER_HISTORY}";;
156        ${L_NICK})       echo "${INBASE} = ${NICK}";;
157        ${L_PASSWORD})   echo "${INBASE} = ${PASSWORD}";;
158        ${L_UIN})        echo "${INBASE} = ${UIN}";;
159        ${L_WEB_STATUS}) echo "${INBASE} = ${WEB_STATUS}";;
160        ${L_HIDE_IP})    echo "${INBASE} = ${HIDE_IP}";;
161        *)               echo "${INSTUFF}";;
162        esac
163    done
164}
165
166function out_qt_gui ()
167{
168  local INSTUFF
169  local INBASE
170  local INREST
171  while read INSTUFF
172    do
173      INBASE=${INSTUFF%%'='*}
174      INBASE=${INSTUFF%%' '*}
175      INREST=${INSTUFF##*'='}
176      INREST=${INSTUFF##*' '}
177      case ${INBASE}
178        in
179        ${L_DOCKING})   echo "${INBASE} = ${DOCKING}";;
180        *)              if ${USE_AWAY_TIME}
181                          then
182                            case $INBASE
183                              in
184                              ${L_AWAY_TIME}) echo "${INBASE} = ${AWAY_TIME}";;
185                              ${L_N_A_TIME})  echo "${INBASE} = ${N_A_TIME}";;
186                              *) echo ${INSTUFF};;
187                              esac
188                          else
189                            echo ${INSTUFF}
190                          fi
191        esac
192    done
193}
194
195function test_mv ()
196{
197  if test -e ${1}.new
198    then
199      test -e ${1} && mv ${1} ${1}.orig
200      mv ${1}.new ${1}
201    fi
202}
203
204declare -a CONTACTS
205CONTACT_COUNT=0
206NICKNAME=""
207FNAME=""
208LNAME=""
209EMAIL=""
210U_I_N=""
211NOTIFY=0
212IGNORE=0
213VISIBLE=0
214INVISIBLE=0
215NEW_USERS=0
216NEW_USER="0"
217
218function cat_user_skel ()
219{
220  local SYSTEM_GROUPS=0
221  let SYSTEM_GROUPS+=${NOTIFY}
222  let SYSTEM_GROUPS+=${IGNORE}
223  let SYSTEM_GROUPS+=${VISIBLE}
224  let SYSTEM_GROUPS+=${INVISIBLE}
225  let SYSTEM_GROUPS+=${NEW_USERS}
226  cat <<-EOF
227    [user]
228    History = ${LICQ_HISTORY_DIR}/${U_I_N}.history
229    Groups.System = ${SYSTEM_GROUPS}
230    Groups.User =
231    Ip =
232    Port =
233    NewUser = ${NEW_USER}
234    NewMessages =
235    LastOnline =
236    Alias = ${NICKNAME}
237    FirstName = ${FNAME}
238    LastName = ${LNAME}}
239    Email1 = ${EMAIL}
240    Email2 =
241    City =
242    State =
243    PhoneNumber =
244    FaxNumber =
245    Address =
246    CellularNumber =
247    Zipcode =
248    Country =
249    Timezone =
250    Authorization =
251    HideEmail =
252    Age =
253    Gender =
254    Homepage =
255    BirthYear =
256    BirthMonth =
257    BirthDay =
258    Language1 =
259    Language2 =
260    Language3 =
261    CompanyCity =
262    CompanyState =
263    CompanyPhoneNumber =
264    CompanyFaxNumber =
265    CompanyAddress =
266    CompanyName =
267    CompanyDepartment =
268    CompanyPosition =
269    CompanyHomepage =
270    EOF
271}
272
273function parse_contacts ()
274{
275  local INSTUFF
276  local INBASE
277  local INREST
278  local INCONTACT="false"
279
280  while read INSTUFF
281    do
282      INBASE=${INSTUFF%%'='*}
283      INREST=${INSTUFF##*'='}
284      if test "${INSTUFF:0:1}" == "["
285        then
286          if ${INCONTACT}
287            then
288              echo -n > ${LICQ_HISTORY_DIR}/${U_I_N}.history
289              cat_user_skel > ${LICQ_USER_DIR}/${U_I_N}.uin
290              CONTACTS[${CONTACT_COUNT}]="${U_I_N}"
291              let CONTACT_COUNT+=1
292              INCONTACT=false
293              NICKNAME=""
294              U_I_N=""
295              NOTIFY=0
296              IGNORE=0
297              VISIBLE=0
298              INVISIBLE=0
299              NEW_USERS=0
300              FNAME=""
301              LNAME=""
302              EMAIL=""
303              NEW_USER="0"
304            fi
305          if test "${INSTUFF:0:8}" == "[Contact"
306            then
307              INCONTACT="true"
308            else
309              INCONTACT="false"
310            fi
311        fi
312      case ${INBASE}
313        in
314        "UIN")           U_I_N="${INREST}";;
315        "Nick")          NICKNAME="${INREST}";;
316        "Online Notify") test "${INREST}" == "1" -o "${INREST}" == "true" \
317                           && NOTIFY="1";;
318        "Visible")       test "${INREST}" == "1" -o "${INREST}" == "true" \
319                           && VISIBLE="2";;
320        "Invisible")       test "${INREST}" == "1" -o "${INREST}" == "true" \
321                           && INVISIBLE="4";;
322        "Ignore")        test "${INREST}" == "1" -o "${INREST}" == "true" \
323                           && IGNORE="8";;
324        esac
325    done
326}
327
328function out_users_conf ()
329{
330  local TMPCOUNT=0
331  local TEMPCOUNT=1
332  echo -e "[users]\nNumOfUsers = ${CONTACT_COUNT}"
333  while test ${TMPCOUNT} -lt ${CONTACT_COUNT}
334    do
335      echo "User${TEMPCOUNT} = ${CONTACTS[${TMPCOUNT}]}"
336      let TMPCOUNT+=1
337      let TEMPCOUNT+=1
338    done
339}
340
341GLOBAL_MESSAGE=""
342function parse_message ()
343{
344  local TMPIFS=${IFS}
345  IFS=""
346  local MESG="$@"
347  local STRLEN=${#MESG}
348  local TMPCNT=0
349  GLOBAL_MESSAGE=":"
350  while test ${TMPCNT} -lt ${STRLEN}
351    do
352      case "${MESG:${TMPCNT}:2}"
353        in
354        "\\r")   let TMPCNT+=1;;
355        "\\n")   let TMPCNT+=1
356                 GLOBAL_MESSAGE="${GLOBAL_MESSAGE}\n:";;
357        *)       case '${MESG:${TMPCNT}:1}'
358                   in
359                   '\n') GLOBAL_MESSAGE="${GLOBAL_MESSAGE}:\n";;
360                   ,\r,) GLOBAL_MESSAGE="${GLOBAL_MESSAGE}";;
361                   *)    GLOBAL_MESSAGE="${GLOBAL_MESSAGE}${MESG:${TMPCNT}:1}";;
362                   esac
363        esac
364      let TMPCNT+=1
365    done
366  GLOBAL_MESSAGE="${GLOBAL_MESSAGE}\n"
367  IFS=${TMPIFS}
368}
369
370function convert_history ()
371{
372  local INSTUFF
373  local INBASE
374  local INREST
375  local INMESSAGE="false"
376  local OPT_READ=""
377  local OPT_TYPE=""
378  local OPT_SENT=""
379  local DATE=""
380  local MESSAGE=""
381  local URL=""
382  local TEMP=""
383
384  while read -r INSTUFF
385    do
386      INBASE=${INSTUFF%%'='*}
387      INREST=${INSTUFF##*'='}
388      if test "${INBASE:0:1}" == "["
389        then
390          if $INMESSAGE
391            then
392              if ! test -e ${LICQ_USER_DIR}/${U_I_N}.uin
393                then
394                  echo -n > ${LICQ_HISTORY_DIR}/${U_I_N}.history
395                  NEW_USER="1"
396                  NEW_USERS="16"
397                  INVISIBLE="4"
398                  cat_user_skel > ${LICQ_USER_DIR}/${U_I_N}.uin
399                  CONTACTS[${CONTACT_COUNT}]="${U_I_N}"
400                  let CONTACT_COUNT+=1
401                  NICKNAME=""
402                  U_I_N=""
403                  NOTIFY=0
404                  IGNORE=0
405                  VISIBLE=0
406                  INVISIBLE=0
407                  NEW_USERS=0
408                  FNAME=""
409                  LNAME=""
410                  EMAIL=""
411                  NEW_USER="0"
412                fi
413#              echo "prep >> ${LICQ_HISTORY_DIR}/${U_I_N}.history"
414#              test "$MESSAGE" || { test "${OPT_TYPE}" == "0012" && MESSAGE=":You have been added to my list\n" ; }
415#              test "$MESSAGE" || MESSAGE=":\n"
416              echo -en "[ ${OPT_SENT} | ${OPT_TYPE} | 2046 | 0001 | ${DATE} ]"\
417                       "\n${MESSAGE}${URL}"  \
418                         >> ${LICQ_HISTORY_DIR}/${U_I_N}.history
419              INMESSAGE="false"
420              OPT_READ=""
421              OPT_TYPE=""
422              OPT_SENT=""
423              DATE=""
424              U_I_N=""
425              MESSAGE=""
426              URL=""
427              NICKNAME=""
428            fi
429          if test "${INBASE:0:8}" == "[Message"
430            then
431              INMESSAGE="true"
432            fi
433        fi
434      case ${INBASE}
435        in
436        "DateTime")   TEMP=$INREST
437                      DATE="${TEMP%%'-'*}"; TEMP=${TEMP#*'-'}
438                      DATE="${TEMP%%'-'*}/${DATE}" ; TEMP=${TEMP#*'-'}
439                      DATE=`date +"%s" -d "${DATE}/${TEMP:2}"`;;
440         "Options")   OPT_READ="${INREST%%' '*}" ; TEMP="${INREST#*' '}"
441                      OPT_TYPE="${TEMP%%' '*}" ; TEMP="${TEMP#*' '}"
442                      OPT_SENT="${TEMP%%' '*}"
443                      if test "${OPT_SENT}" == "1"
444                        then
445                          OPT_SENT="S"
446                        else
447                          OPT_SENT="R"
448                        fi
449                      case $OPT_TYPE
450                        in
451                        "01") OPT_TYPE=0001;;
452                        "02") OPT_TYPE=0004;;
453                        "03") OPT_TYPE=0012;;
454                        "04") OPT_TYPE=0006;;
455                        "05") OPT_TYPE=0008;;
456                        "06") OPT_TYPE=0013;;
457                        "07") OPT_TYPE=0014;;
458                        "08") OPT_TYPE=0007;;
459                        "09") OPT_TYPE=0003;;
460                        "10") OPT_TYPE=0002;;
461                        "11") OPT_TYPE=0019;;
462                        "12") OPT_TYPE=0026;;
463                        esac;;
464        "Message")      parse_message "${INREST}"
465                        MESSAGE="${MESSAGE}${GLOBAL_MESSAGE}";;
466        "Url")          parse_message "${INREST}"
467                        URL="${URL}${GLOBAL_MESSAGE}";;
468        "Uin")          U_I_N="${INREST}";;
469        "Nick")         Nickname="${INREST}";;
470        "FirstName")    FNAME="${INREST}";;
471        "LastName")     LNAME="${INREST}";;
472        "Email")        EMAIL="${INREST}";;
473        esac
474    done
475}
476
477test -d ${LICQ_DIR} || licq ${TESTING} -I -h >/dev/null 2>&1
478#test -d ${LICQ_DIR} || mkdir ${LICQ_DIR}
479#test -d ${LICQ_HISTORY_DIR} || mkdir ${LICQ_HISTORY_DIR}
480#test -d ${LICQ_USER_DIR} || mkdir ${LICQ_USER_DIR}
481
482if test -e ${KXICQ_RC} -a ! -e ${LICQ_OWNER}.orig
483  then
484    readkxicq2conf < ${KXICQ_RC}
485    if test -e ${LICQ_CONF}
486      then
487        out_licq_conf < ${LICQ_CONF} >${LICQ_CONF}.new
488      else
489        out_licq_conf >${LICQ_CONF}.new <<-EOF
490        [licq]
491        Version = 1020
492       
493        [plugins]
494        NumPlugins = 1
495        Plugin1 = qt-gui
496       
497        [network]
498        AllowNewUsers = 1
499        NumOfICQServers = 1
500        ICQServer = login.icq.com
501        ICQServerPort = 5190
502        TCPPortsLow = 0
503        TCPPortsHigh = 0
504        TCPEnabled = 1
505        MaxUsersPerPacket = 100
506        IgnoreTypes = 0
507        ForegroundColor = 0
508        BackgroundColor = 16777215
509        Errors = log.errors
510        ErrorTypes = 6
511        Rejects = log.rejects
512        Translation = none
513        UrlViewer = viewurl-netscape.sh
514        Terminal = xterm -T Licq -e
515        ProxyEnabled = 0
516        ProxyServerType = 1
517        ProxyServer =
518        ProxyServerPort = 0
519        ProxyAuthEnabled = 0
520        ProxyLogin =
521        ProxyPassword =
522        UseSS = 0
523       
524        [onevent]
525        Enable = 1
526        Command = play
527        Message = /usr/share/licq/sounds/icq/Message.wav
528        Chat = /usr/share/licq/sounds/icq/Chat.wav
529        File = /usr/share/licq/sounds/icq/File.wav
530        Url = /usr/share/licq/sounds/icq/URL.wav
531        OnlineNotify = /usr/share/licq/sounds/icq/Notify.wav
532        SysMsg = /usr/share/licq/sounds/icq/System.wav
533       
534        [groups]
535        NumOfGroups = 3
536        DefaultGroup = 0
537        NewUserGroup = 1
538        Group1.name = New Users
539        Group2.name = Friends
540        Group3.name = Family
541        Group1.id = 0
542        Group2.id = 0
543        Group3.id = 0
544        EOF
545      fi
546    echo -n > ${OWNER_HISTORY}
547#    if test -e ${LICQ_OWNER}
548#      then
549#        out_owner_uin < ${LICQ_OWNER} >${LICQ_OWNER}.new
550#      else
551        out_owner_uin >${LICQ_OWNER}.new <<-EOF
552        [user]
553        Alias = None
554        Password =
555        Uin = 0
556        WebPresence = 0
557        HideIP = 0
558        History = ${OWNER_HISTORY}
559        Groups.System = 0
560        Groups.User = 0
561        Ip = 0.0.0.0
562        IntIp = 0.0.0.0
563        Port = 1800
564        NewMessages = 0
565        LastOnline = 0
566        LastSent = 0
567        LastRecv = 0
568        LastCheckedAR = 0
569        AutoAccept = 0
570        StatusToUser = 65535
571        CustomAutoRsp =
572        SendIntIp = 0
573        UserEncoding =
574        SID = 0
575        GSID = 0
576        Authorization = 0
577        RCG = 0
578        SSTime = 0
579        SSCount = 0
580        AutoResponse =
581        EOF
582#      fi
583    if test -e ${LICQ_QT_GUI}
584      then
585        out_qt_gui < ${LICQ_QT_GUI} >${LICQ_QT_GUI}.new
586      else
587        out_qt_gui >${LICQ_QT_GUI}.new <<-EOF
588        [appearance]
589        Skin = basic
590        Icons = computer
591        Font = default
592        GridLines = 0
593        ShowHeader = 1
594        ShowOfflineUsers = 1
595        ShowDividers = 1
596        UseDock = 0
597        FontStyles = 1
598        NumColumns = 1
599        Column1.Title = Alias
600        Column1.Format = %a
601        Column1.Width = 90
602        Column1.Align = 0
603       
604        [startup]
605        Logon = 0
606        AutoAway = 5
607        AutoNA = 10
608       
609        [functions]
610        AutoClose = 1
611
612       
613        [floaties]
614        Num = 0
615        [locale]
616        DefaultEncoding =
617        ShowAllEncodings = 0
618        EOF
619      fi
620    test -e ${KXICQ_CONTACTS} && parse_contacts <${KXICQ_CONTACTS}
621    test -e ${KXICQ_MESSAGES} && convert_history <${KXICQ_MESSAGES}
622    test -e ${KXICQ_CONTACTS} && out_users_conf >${LICQ_USERS}.new
623  fi
624
625test_mv ${LICQ_CONF}
626test_mv ${LICQ_OWNER}
627test_mv ${LICQ_QT_GUI}
628test_mv ${LICQ_USERS}
629
630chmod 700 ${LICQ_DIR}
631chmod 600 ${LICQ_DIR}/*
632chmod 700 ${LICQ_USER_DIR}
633chmod 600 ${LICQ_USER_DIR}/*
634chmod 700 ${LICQ_HISTORY_DIR}
635chmod 600 ${LICQ_HISTORY_DIR}/*
Note: See TracBrowser for help on using the browser.