OESF Portables Forum
Everything Else => Europe User Groups => Zaurus Regional User Groups => Everything Else => Archived Forums => Spain => Topic started by: mimeca on September 07, 2005, 05:35:19 pm
-
Entre un par de personas vamos a desarrollar una aplicación de Calendario que permita trabajar con los datos de la Zaurus (Opie y GPE) sin un software de sincronización, es decir, una aplicación que abra directamente los ficheros. La idea es hacer un programa que permite manejar las citas, tareas y direcciones desde una única aplicación.
En principio solo funcionarÃa en el PC, pero existe la opción de adaptarla a la PDA y usar el mismo programa. SerÃa algo similar a la aplicación Ko/PI, pero para entorno GPE. Dependiendo de la gente interesada, se podrÃa hacer una versión para Opie y GPE.
Si alguno se anima o tiene curiosidad, puede preguntar en el Foro o en la Lista de correo. Es un proyecto complejo, pero poco a poco se pueden ir consiguiendo cosas.
-
La estructura de la base de datos en GPE es la siguiente:
unr (valor unico), tag (tipo de dato), value (valor)
================================
Los TAGS admitidos son:
tag
FAMILY_NAME
NOTES
HOME.ADDRESS
HOME.WWW
HOME.EMAIL
HOME.FAX
HOME.MOBILE
HOME.TELEPHONE
WORK.ADDRESS
WORK.WWW
WORK.EMAIL
WORK.FAX
WORK.MOBILE
WORK.TELEPHONE
COMPANY NAME
category
MODIFIED
Abriendo el fichero de los datos (en formato sqlite) y poniendo los valores anteriores (algunos optativos) se puede crear los diferentes contactos. Cuando consigamos la conexion entre Python y SQLite, podremos añadir los datos de esa forma.
Ejemplo:
[urn] [tag] [value]
1 FAMILY_NAME NOMBRE
1 HOME:MOBILE 12121212121
Se puede editar con el programa multiplataforma sqlitecc
-
En esta página (http://www.handhelds.org/moin/moin.cgi/WellKnownDbTags) aparecen todos los TAGS que se pueden usar en la base de datos de SQLITE.
-
Para poder trabajar sobre los ficheros del calendario (y del PIM) necesitas:
- Python 2.4 (windows) (http://www.python.org/ftp/python/2.4.1/python-2.4.1.msi)
- Módulo para acceder a los ficheros de datos en formato SQLite 2 (http://initd.org/pub/software/pysqlite/releases/1.0/1.0.1/pysqlite-1.0.1.win32-py2.4.exe)
Primero hay que instalar el interprete de Python, despues la librerÃa.
Busca en el menú de inicio "Python 2.4" y selecciona IDLE. Te aparecerá una ventana de consola. Es recomendable que antes hayas copiado alguno de los ficheros del PIC a c:\ .
Hay un tutorial básico que explica los pasos para usar la librerÃa SQLite en la Web de PySQLite (http://initd.org/tracker/pysqlite/wiki/basicintro)
-
Yo estoy aprendiendo python, como mi primer lenguaje de programacion, espero que esa aplicacion sea Open Source y asi pueda orientarme.
PD: <-- Me encanta este Smile ^^
-
Conforme tenga código y documentación lo colgaré en la web. No tengo ningún problema en que el programa tenga una licencia Open Source. También estoy aprendiendo Python y es un lenguaje muy comodo de usar. Si tienes alguna duda, pregunta (igual se como responderla )
Si quieres participar en el programita, puedes hacelo.
-
Para hacer la interfaz grafica hay dos opciones. Una es usar las librerias GTK junto con Python (para que sea multiplataforma). Otra podria ser usando el lenguaje XUL. Este lenguaje es el que usa el firefox para diversas aplicaciones como extensions, aplicación de calendario.... (sunbird).
Con la segunda opcion aprovechariamos la parte que tienen diseñada del calendario y funcionarÃa en todos los sistemas soportados por firefox.
-
Ejemplo de código. Funciona bajo windows (y en la Zaurus comprobado)
D:\Documents and Settings\Miguel>C:\Python24\python.exe
Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
>>> import os
>>> os.getcwd()
'D:\\Documents and Settings\\Miguel'
>>> os.chdir('D:/')
>>> os.getcwd()
'D:\\'
>>> con = sqlite.connect('calendar')
>>> cur = con.cursor()
>>> cur.execute('SELECT * from calendar')
>>> d = cur.fetchall()
>>> d
[(1, 'summary', 'Programar con las librerias SQLITE'), (1, 'description', ''),(1, 'duration', '5400'), (1, 'modified', '1129803785'), (1, 'start', '2005-10-20
10:00'), (1, 'sequence', '0')]
Si alguno tiene dudas sobre el código me puede preguntar. De una forma MUY sencilla hemos accedido a los datos de la agenda desde un programa externo. Operar sobre los datos es sencillo con las sentencias SQL
Tambien he sacado los tags (etiquetas) que se pueden usar en el calendario de GPE. Creo que la estructura de la base de datos de Opie debe ser la misma. Este fin de semana subiré la tabla a la web