Adium
Dock Icons Emoticons Contact List Styles Message Styles Sound Sets AppleScripts Status Icons Service Icons Menu Bar Icons Plugins Miscellaneous All
Proteus2Adium

Proteus2Adium

Submitted By Daniel Knippers (Knippers)

Description

Java commandline utility to convert a Proteus History.db (where all your chat logs are stored) to AdiumX.

I did look on this site and searched the web, but nothing I found fitted my needs.

The Xtra will do all the work for you. But note only the conversion of ICQ, MSN, AIM, Yahoo! and Jabber are supported.
If you would like another service added, see the readme.txt in the Xtra.

The very basics to using this tool are:
  • Open a Terminal session (Utilities > Terminal)
  • Navigate to the place you extracted the Xtra (type cd [space] drag the xtra directory to the Terminal window)
  • Execute ./run.sh (type ./run.sh [enter])
  • Changes

  • Added support for Yahoo!.
  • Added another Proteus iChat/AIM dialect.
  • Added support for Jabber.
  • Added Unicode support (at least works for Russian).
  • Added fix for strange (null) table found in some history.db files.
  • 16-9-07: Fixed the Unicode (UTF-8) support for cyrillic symbols (confirmed for Russian).
  • 27-10-07: Skip unknown service (meaning Proteus service type not mapped to an Adium service) instead of exiting.
  • Comments

    You can reply to individual comments by clicking the "Reply" link next to each.

    # by evands on 05/18/06 at 18:15:02

    I don't have a Proteus history so can't test this, but I'm approving it as-is so others can use it. I saw nothing in the script or Java code that looked suspect, but caveat emptor nonetheless. :)

    # by dmz on 05/29/06 at 05:47:15

    This works very, very nicely (I unpacked the jar, added my extra Proteus services, recompiled, and ran)... except for one thing - it doesn't properly deal with Unicode characters (like Chinese) in Proteus' logs. I haven't taken a look at the code, so I don't know exactly how to address this, sadly.

    # by jvas on 06/06/06 at 15:06:43

    Daniel's script works like a charm. I contacted him about yahoo! support and he was very responsive in turning around a working version to me. I am sure he will post it here eventually. Great work Daniel!

    # by Knippers on 06/06/06 at 15:17:53

    The new version is thanks to jvas who contacted me about missing and incomplete Proteus services (for which I don't have accounts to test with).

    # by cng on 07/04/06 at 11:30:00

    This was exactly what I needed to finish my migration from Proteus to Adium. I did the same as dmz (unpack, rebuild, etc) since I needed to also convert some Jabber logs. It was easy to do and worked without any problems. I've now got over 2 years of log history from Proteus (for all my accounts) that I didn't want to lose. PERFECT!

    # by Knippers on 07/04/06 at 14:48:49

    Posted a new version (1.2) with Jabber support. Thanks to cng.

    # by mpmchugh on 08/04/06 at 14:14:37

    Trying this to switch to Adium, but keep getting an error:

    java.lang.Exception: Exit code 1, reason: SQL error: database is locked :

    Any idea how to reslove?

    Thanks - mpm

    # by Knippers on 08/04/06 at 14:16:52

    You probably have Proteus running while trying to run Proteus2Adium.

    # by mpmchugh on 08/04/06 at 14:52:14

    nope, it wasn't running... I did just recently switch computers, and now I see that my History isn't even working... maybe it's damaged.

    # by Knippers on 08/04/06 at 16:55:50

    Well in that case I don't have an idea what the problem is. I did a quick look at the sqlite code but could not find an obvious reason (except when the database is actually locked) to why a the "database is locked" error is raised.
    The fact that your history does not work indeed suggests something is wrong with the database. But I am not that familiar with sqlite to help you out with that one.

    # by crucialgent on 08/04/06 at 19:13:25

    I'm getting the following error:

    Exception in thread "main" java.lang.NoClassDefFoundError: Proteus2AdiumX
    Cnvert did not succeed, skip remaining tasks

    Any ideas?

    # by crucialgent on 08/09/06 at 14:58:37

    i saved a backup of my history.db file a while ago and want to merge that with my current history.db before i convert to adium... does anyone know how to do this?

    # by Knippers on 08/09/06 at 16:38:42

    crucialgent:
    I don't know how to merge two databases but why not import the two databases to adium. To do so edit the run.sh file and comment (or remove) the line:
    cp ~/Library/Application Support/Proteus/Profile/History.db CopyHistory.db
    after that copy the first History.db to same directory as run.sh and rename the file to CopyHistory.db, then run run.sh, after that repeat the same for the other History.db.

    # by crucialgent on 08/09/06 at 17:09:41

    knippers:

    I deleted the line "cp ~/Library/Application Support/Proteus/Profile/History.db CopyHistory.db" , copied the history.db file to the folder, renamed, and i this was the log:

    scd:~ sharvinwhitted$ /Users/sharvinwhitted/Desktop/proteus2adium_8_6446_2810/./run.sh
    Create copy of History.db first
    create log files
    Exception in thread "main" java.lang.NoClassDefFoundError: Proteus2AdiumX
    Cnvert did not succeed, skip remaining tasks
    scd:~ sharvinwhitted$

    any thoughts? thanks for the help btw

    # by Knippers on 08/09/06 at 17:13:27

    You need to run the run.sh from the /Users/sharvinwhitted/Desktop/proteus2adium_8_6446_2810/ directory.

    # by crucialgent on 08/09/06 at 17:37:24

    i am, i'm in /Users/sharvinwhitted/Desktop/proteus2adium_8_6446_2810/run.sh

    is that not right?

    # by crucialgent on 08/09/06 at 17:47:45

    aahh... i got it..

    # by solidfox on 01/11/07 at 16:42:00

    I get this when I try to run the script. I'm on a Core 2 duo MacBook. What's wrong?

    c-128ae255:~/Desktop/proteus2adium_8_6446_2810 suu$ ./run.sh
    Create copy of History.db first
    create log files
    start
    java.lang.Exception: Exit code 139, reason:
    at Proteus2AdiumX.execQuery(Proteus2AdiumX.java:242)
    at Proteus2AdiumX.main(Proteus2AdiumX.java:55)
    Cnvert did not succeed, skip remaining tasks

    # by Knippers on 01/12/07 at 05:56:44

    solidfox I don't know what the exitcode 139 means. It's coming from the sqlite executable. Could you therefore run the following command (from same location as you execute run.sh):
    ./sqlite -header -separator ^_^ CopyHistory.db "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"

    Note the " characters before the SELECT and after the ORDER BY name;, these chars are needed. This command is the first one executed within the Proteus2Adium utility.

    # by DawnFaerie on 02/06/07 at 04:46:01

    I'm trying to run this on a G3 iBook, but I get this error.

    Create copy of History.db first
    create log files
    start
    java.lang.Exception: Exit code 5, reason: dyld: ./sqlite can't open library: /usr/lib/libncurses.5.4.dylib (No such file or directory, errno = 2) :
    at Proteus2AdiumX.execQuery(Proteus2AdiumX.java:242)
    at Proteus2AdiumX.main(Proteus2AdiumX.java:55)
    Cnvert did not succeed, skip remaining tasks

    I would definitely appreciate any help. Thanks!

    # by Knippers on 02/06/07 at 06:10:03

    DawnFaerie you are probably not running Mac OS X 1.4? (if that will even run on a G3). I have no way to test with a pre 1.4 release or on a G3.
    The workaround would be to copy your Proteus history DB (/Library/Application Support/Proteus/Profile/History.db) to a machine with OS X 1.4. Place it in the same directory where you are going to execute run.sh and rename it to CopyHistory.db. BEFORE executing run.sh make sure you comment the line cp ~/Library/Application Support/Proteus/Profile/History.db CopyHistory.db (add a # in front of line).
    Hope this will work for you.

    # by DawnFaerie on 02/07/07 at 03:01:25

    Thanks for the quick response! I tried your suggestion and it worked beautifully.

    # by olgunia on 03/28/07 at 02:55:39

    knippers:

    I have the same problem as crucialgent had.

    [Olgunia:~] olgunia% /Users/olgunia/Desktop/proteus2adium_8_6446_2810/run.sh
    Create copy of History.db first
    create log files
    Exception in thread "main" java.lang.NoClassDefFoundError: Proteus2AdiumX
    Cnvert did not succeed, skip remaining tasks

    Crucialgent understood what to do, but I didn't... What does it mean: You need to run the run.sh from the /Users/sharvinwhitted/Desktop/proteus2adium_8_6446_2810/ directory? If this in Terminal: /Users/olgunia/Desktop/proteus2adium_8_6446_2810/ then it says tcsh: /Users/olgunia/Desktop/proteus2adium_8_6446_2810/: Permission denied.
    Please help to solve this problem. Thanks in advance :)

    # by Knippers on 03/28/07 at 05:02:29

    If you are indeed logged in as olgunia you should be able to open a terminal window.
    On the prompt type: cd Desktop/proteus2adium_8_6446_2810
    Then run the tool: ./run.sh
    If you keep getting the Permission denied error try the above to commands with sudo in front of it. Sudo will ask for your olgunia account password and if valid will execute the above commands with root privileges.

    # by olgunia on 03/28/07 at 07:03:55

    Here is what it says now:

    [Olgunia:~] olgunia% cd Desktop/proteus2adium_8_6446_2810
    [Olgunia:~/Desktop/proteus2adium_8_6446_2810] olgunia% ./run.sh
    Create copy of History.db first
    create log files
    start
    Found '2' tables is db
    java.lang.Exception: No AdiumX servicename for (null)
    at Proteus2AdiumX.main(Proteus2AdiumX.java:73)
    Cnvert did not succeed, skip remaining tasks
    [Olgunia:~/Desktop/proteus2adium_8_6446_2810] olgunia%

    # by Knippers on 03/28/07 at 18:00:00

    olgunia, I have no idea what happens but somehow the first record in the table name query returns the value (null). Could you run the following command from the same location as you executed run.sh:

    ./sqlite -header -separator ^_^ CopyHistory.db "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"

    Note the " characters before the SELECT and after the ORDER BY name;, these chars are needed. If you get any error please report it and try to run the same statement but now add sudo in front of it. Also note the result and please report it back

    # by olgunia on 03/29/07 at 01:20:24

    OK, here is the result:
    [Olgunia:~/Desktop/proteus2adium_8_6446_2810] olgunia% ./sqlite -header -separator ^_^ CopyHistory.db "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"
    name
    (null)
    icq
    [Olgunia:~/Desktop/proteus2adium_8_6446_2810] olgunia%

    # by Knippers on 03/29/07 at 05:01:05

    olgunia, please try the p2a version from: http://www.tudra.net/stuff/Proteus2Ad...iumX_06.zip
    If that version works I will post it as new version of this Xtra.

    btw according to the table result I got you only use ICQ. Is that correct? if not what other services do you use?

    # by olgunia on 03/29/07 at 06:53:33

    It converted logs now! Thanks a lot! But there is one more thing - all chats written in Russian are unreadable... :(

    Yes I use only ICQ-account with Proteus.
    But sometimes I use also .mac account (with iChat) and Skype...

    # by Knippers on 03/29/07 at 16:51:56

    olgunia, please try http://www.tudra.net/stuff/Proteus2Ad...iumX_06.zip again. I made a small adjustment so hopefully your russian conversations are converted correctly.

    # by olgunia on 03/30/07 at 10:09:52

    Now it's OK with Russian conversations!!! Great! :)
    BUT somehow:
    1. I had to rename the folder with your utility...
    2. I had to make the copy of History.db and rename it manually...
    3. It didn't make backup of previous logs...
    4. It didn't put the logs into the folder from which Aduim could read them... I found new converted logs only in the folder Proteus2AdiumX_06.
    I put several logs there manually to check the Russian.

    This is all what I did in Terminal:

    [Olgunia:~] olgunia% cd Desktop/Proteus2AdiumX_06 1
    tcsh: cd: Too many arguments.
    [Olgunia:~] olgunia% cd Desktop/Proteus2AdiumX_06
    [Olgunia:~/Desktop/Proteus2AdiumX_06] olgunia% ./run.sh
    Create copy of History.db first
    create log files
    start
    Proteus history db (CopyHistory.db) not found
    Cnvert did not succeed, skip remaining tasks
    [Olgunia:~/Desktop/Proteus2AdiumX_06] olgunia% ./run.sh
    Create copy of History.db first
    create log files
    start
    Found '2' tables is db
    Found tablename '(null)', it will be skipped
    Provide AdiumX login/username for accounttype ICQ:
    XXXXX
    Creating logs for 'XXXXX' (this might take some time)
    Create logfile: Logs/ICQ.XXXXX/YYYYY/YYYYY (2004-10-04).html
    ...
    Create logfile: Logs/ICQ.XXXXX/ZZZZZ/ZZZZZ (2005-02-10).html
    done.
    [Olgunia:~/Desktop/Proteus2AdiumX_06] olgunia%

    # by olgunia on 03/30/07 at 10:16:13

    Im very sorry, but the #1 is my mistake, I left the previos folder with your utility on the desktop and Mac added 1 automatically...

    # by Knippers on 03/30/07 at 17:42:38

    Olgunia, great news that Russian (and probably all other languages containing non ascii characters) works! The problems you had with the last version where my bad. I commented some lines in de run.sh for testing and forgot to change it back before building it. I posted the fixed build as new Xtra version.

    btw thanks for testing.

    # by olgunia on 03/30/07 at 23:04:42

    Now it works greatly!! Daniel, thanks a lot for such a useful Xtra!!!

    # by adium on 03/31/07 at 12:32:32

    i dont get it, what does it do?

    # by 2be3 on 10/29/07 at 21:24:28

    impossible to download. :(
    I want to swith proteus for adium.

    # by irox1 on 05/29/09 at 04:49:02

    Hey. I'm new to adium. & i have no idea how to use the terminal. Can somebody help me out ? I previously used the Microsoft messanger for mac.

    Post a New Comment

    You must be logged in to post comments.

    Download
    188.16kb (2160 downloads)

    12345
    3.30 / 38 votes
    Current Version: 1.5
    Last Updated: 10/27/07