Vasco I've put your contribution up on the wiki. Once step closer to 
working out the export. Also in the discussion I've asked for thoughts 
on either moving 'exporting' to a new page or rename the current one. 
What do you think?
-Nick

Vasco Névoa wrote:
> Great! Now I know which client to use, let's play!!! :)
>
> I've spent 15 minutes reviving my SQL (which I had forgotten for at 
> least 5 years), and this is what I have so far:
> *
> sqlite3 /home/root/Applications/Qtopia/qtopia_db.sqlite 'Select distinct 
> nickname, title, firstname, middlename, lastname, suffix, profession, 
> b_webpage, company, office, department, jobtitle, default_email, 
> phone_number, h_webpage, spouse, gender, birthday, anniversary from 
> contacts, contactphonenumbers where 
> contacts.recid=contactphonenumbers.recid;' | sed 's/|/\t/g' > 
> addressbook.txt
> *
> This creates an addressbook "tab-delimited-file" with all the fields I 
> thought where important for each contact (some info may be missing, 
> check the columns and tables).
>
> Each contact that has more than one phone number will appear multiple 
> times because I haven't yet come up with a clean way to show the "join" 
> between the "contacts" and "contactphonenumbers" tables, so for now it 
> just duplicates the whole line, with the only difference being the phone 
> number.
>
> Anyone versed in SQL will be able to hack this into a full VCF file 
> generator... or you can just go the Python way (but I prefer to use the 
> nice tools already in place) :)
>
> Your turn! ;)
>
> Paul wrote:
>   
>> Hey Vasco,
>>   
>>     
>>>> You mean creating VCF's from the sqlite-data in a backup?
>>>> Would be interesting to play with. I could envision a slq-script that 
>>>> dumps the data into a file and then a bash or python script that puts 
>>>> things in the proper format. That's not too difficult, if sqlite plays 
>>>> nice. 
>>>>     
>>>>       
>>>>         
>>> I had thought about that too, but I can't find an SQLite client in OM 
>>> repos to create the necessary script.
>>> How can we talk to SQLite on OM without going the full C/C++ and 
>>> respective libs way? Python maybe?...
>>>   
>>>     
>>>       
>> I found sqlite3 on my desktop pc, which makes things a lot easier. I 
>> think that is included on anyone's Linux box these days, and on 
>> www.sqlite.com/download there are also precompiled binaries for Mac and 
>> Windows. You need sqlite version 3 for the .sqlite files on the FR.
>>
>> I've been playing a bit with it: copied a .sqlite file from the 
>> Freerunner to my machine and using sqlite3 I can pull information from 
>> it quite easily:
>>
>> echo ".tables" | sqlite3 qtopia_db.sqlite
>> appointmentcategories   contactpresence         mimeTypeMapping      
>> appointmentcustom       contacts                pimdependencies      
>> appointmentexceptions   content                 servicehistory       
>> appointments            contentProps            simcardidmap         
>> callhistory             currentsimcard          simlabelidmap        
>> callhistorytimezone     databaseProperties      sqlsources           
>> categories              defaultMimeApplication  syncServers          
>> categoryringtone        emailaddresses          taskcategories       
>> changelog               favoriteservices        taskcustom           
>> contactaddresses        googleid                tasks                
>> contactcategories       locationLookup          versioninfo          
>> contactcustom           mapCategoryToContent 
>> contactphonenumbers     mimeTypeLookup       
>>
>> echo ".dump contactphonenumbers" | sqlite3 qtopia_db.sqlite
>> BEGIN TRANSACTION;
>> CREATE TABLE contactphonenumbers (     phone_number VARCHAR(100) NOT 
>> NULL,     recid INTEGER,     phone_type INTEGER,     FOREIGN KEY(recid) 
>> REFERENCES contacts(recid) );
>> INSERT INTO "contactphonenumbers" VALUES('04xxxxx875',83886113,1);
>> INSERT INTO "contactphonenumbers" VALUES('07xxxxx693',83886209,1);
>> INSERT INTO "contactphonenumbers" VALUES('+316xxxx7678',83886277,257);
>> INSERT INTO "contactphonenumbers" VALUES('0492xxxx75',83886193,1);
>> INSERT INTO "contactphonenumbers" VALUES('118',83886361,1);
>> INSERT INTO "contactphonenumbers" VALUES('+3162xxxx44',83886365,1);
>> INSERT INTO "contactphonenumbers" VALUES('+3162xxxx233',83886357,1);
>> CREATE INDEX contactphonenumbersbytype ON contactphonenumbers 
>> (phone_type, phone_number);
>> CREATE INDEX contactphonenumbersindex ON contactphonenumbers (recid);
>> CREATE INDEX contactphonenumbersnumbers ON contactphonenumbers 
>> (phone_number, recid);
>> CREATE INDEX contactphnenumberscontacts ON contactphonenumbers (recid, 
>> phone_number);
>> COMMIT;
>>
>> I can imagine a python script on the desktop/laptop that would read all 
>> the dumps, disect all the insert statements, combine the information 
>> based on the recid attribute and after pulling all that together, write 
>> out Vcards.
>>
>> Note that I am using qtopia. I am not certain if the structure on 
>> OM2008.x is identical. If that is the case, I can imagine a config file 
>> per distribution, mapping attribute-names to the necessary Vcard 
>> entries. (I have a lot of imagination.) You'd then run the python script 
>> with a parameter telling it what config/mapping to use.
>>
>> I am sure I can write something like that. I am however not sure how 
>> long it would take me, as my order for 36-hour days has still not been 
>> fullfilled. *grin*
>>
>> What do you (or anyone) think of this?
>>
>> Paul
>>
>>   
>>     
>
>
> _______________________________________________
> Openmoko community mailing list
> [email protected]
> http://lists.openmoko.org/mailman/listinfo/community
>   


_______________________________________________
Openmoko community mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to