Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Ver: Modo: Orden:
Google Desktop, Gaim y Python | 6 comentarios (6 temáticos, editoriales, 0 ocultos)
Versión Post-resaca (none / 0) (#3)
por jorginius ("jorginius" en Google Mail) a las Sat Apr 1st, 2006 at 02:42:06 PM CET
(Información Usuario) http://www.rodriguezmoreno.com

Bueno, esta debería ser la buena. Cosas que se han arreglado:

  • Errores de teclexia a mansalva (como esos enteros de 4 bytes de 64 bits X-D)
  • Registra con el Google Desktop 2.0 a pelo. Por lo visto el tema del registro ha cambiado entre la versión 1.0 y la 2.0, así que el anterior código sólo registraba si habías actualizado de la 1.0 (es decir, tenías los interfaces antiguos)
  • Por un fallo estúpido --de PyGaim y mío-- antes sólo se registraba lo que recibíamos y no lo que escribíamos.
# -*- coding: UTF-8 -*-
import sha
import time
import win32com.client
import pywintypes
import gaim

_NAME          = "GaimDS"
_VERSION       = "0.2"
_DESCRIPTION   = "Indexa conversaciones en GDS"
_GAIM_PATH     = "C:\\Archivos de programa\\Gaim\\gaim.exe"

PLUGIN_INFO = {
    'python_api_version' : 2,
    'name'             : _NAME,
    'version'          : _VERSION,
    'summary'          : _DESCRIPTION,
    'description'      : _DESCRIPTION,
    'author'           : "Jorge Rodríguez <jorginius@gmail.com>",
    'url'              : "http://libertonia.escomposlinux.org/Diary/jorginius",
    'load'             : "gds_load",
    'unload'           : "gds_unload"
}

_EVENT_FACTORY = None
_GUID = '{10a51bce-6670-65da-f0c0-40a8060c107f}'
_GDS = win32com.client.gencache.EnsureModule(
			'{3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1}', 0, 1, 0)

def register_im_cb(mode, account, buddy, msg, *args):
 	event = _EVENT_FACTORY.CreateEvent(_GUID, "Google.Desktop.IM")
	username = gaim.gaim_account_get_username(account)
	
 	event.AddProperty("format", "text/html")
 	if mode == "recv":
 		event.AddProperty("content", "%s: %s" % (buddy, msg))
 	else:
		event.AddProperty("content", "%s: %s" % (username, msg))

	event.AddProperty("title", "Gaim Chat")
	event.AddProperty("user_name", username)
 	event.AddProperty("buddy_name", buddy)
 	event.AddProperty("message_time", pywintypes.Time(time.gmtime()))
 	event.AddProperty("conversation_id",	
	        int(sha.sha(buddy).hexdigest()[16:24], 16))
	event.Send(0x01)

def gds_load(plugin):
	global _EVENT_FACTORY
	try:
		reg = _GDS.GoogleDesktopRegistrar()
		reg.StartComponentRegistration(_GUID,
                     ["Title", _NAME, 
                      "Description", _DESCRIPTION, 
                      "Icon", _GAIM_PATH + ",0"])		
		ireg = reg.GetRegistrationInterface("GoogleDesktop.IndexingRegistration")
		ireg.RegisterIndexingPlugin(_NAME)
		reg.FinishComponentRegistration()
	except: pass

	_EVENT_FACTORY = win32com.client.Dispatch('GoogleDesktopSearch.EventFactory')
	
	handle = gaim.gaim_conversations_get_handle()
	gaim.gaim_python_signal_connect(plugin,
					handle,
					"sent-im-msg",
					register_im_cb,
					"sent")
	gaim.gaim_python_signal_connect(plugin, 
					handle,
					"received-im-msg",
					register_im_cb,
					"recv")
    
def gds_unload(plugin): pass




 

Google Desktop, Gaim y Python | 6 comentarios (6 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:
Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda