Set Location.Do not ignore 'Pablish location' parametr

This commit is contained in:
Denis Fomin
2011-12-19 13:58:59 +04:00
parent 735e016527
commit eccb3b8850
2 changed files with 24 additions and 11 deletions

View File

@@ -1,9 +1,8 @@
[info] [info]
name: Set Location name: Set Location
short_name: set_location short_name: set_location
version: 0.6 version: 0.7
description: Set information about the current geographical or physical location. description: Set information about the current geographical or physical location.
To be able to specify a location on the built-in card, you must install python-osmgpsmap > 0.5 To be able to specify a location on the built-in card, you must install python-osmgpsmap > 0.5
authors: Denis Fomin <fominde@gmail.com> authors: Denis Fomin <fominde@gmail.com>
homepage: http://trac-plugins.gajim.org/wiki/SetLocalitionPlugin homepage: http://trac-plugins.gajim.org/wiki/SetLocalitionPlugin

View File

@@ -10,6 +10,7 @@ from plugins.gui import GajimPluginConfigDialog
from plugins import GajimPlugin from plugins import GajimPlugin
from plugins.helpers import log, log_calls from plugins.helpers import log, log_calls
from common import gajim from common import gajim
from common import ged
import gtkgui_helpers import gtkgui_helpers
from dialogs import InputDialog, WarningDialog from dialogs import InputDialog, WarningDialog
@@ -43,6 +44,22 @@ class SetLocationPlugin(GajimPlugin):
@log_calls('SetLocationPlugin') @log_calls('SetLocationPlugin')
def activate(self): def activate(self):
gajim.ged.register_event_handler('signed-in', ged.POSTGUI,
self.on_signed_in)
self.send_locations()
@log_calls('SetLocationPlugin')
def deactivate(self):
self._data = {}
for acct in gajim.connections:
gajim.connections[acct].send_location(self._data)
gajim.ged.remove_event_handler('signed-in', ged.POSTGUI,
self.on_signed_in)
def on_signed_in(self, network_event):
self.send_locations(network_event.conn.name)
def send_locations(self, acct=False):
self._data = {} self._data = {}
timestamp = time.time() timestamp = time.time()
timestamp = datetime.utcfromtimestamp(timestamp) timestamp = datetime.utcfromtimestamp(timestamp)
@@ -50,16 +67,13 @@ class SetLocationPlugin(GajimPlugin):
self._data['timestamp'] = timestamp self._data['timestamp'] = timestamp
for name in self.config_default_values: for name in self.config_default_values:
self._data[name] = self.config[name] self._data[name] = self.config[name]
for acct in gajim.connections:
if gajim.connections[acct].connected == 0:
gajim.connections[acct].to_be_sent_location = self._data
else:
gajim.connections[acct].send_location(self._data)
@log_calls('SetLocationPlugin') if not acct:
def deactivate(self): #set geo for all accounts
self._data = {} for acct in gajim.connections:
for acct in gajim.connections: if gajim.config.get_per('accounts', acct, 'publish_location'):
gajim.connections[acct].send_location(self._data)
elif gajim.config.get_per('accounts', acct, 'publish_location'):
gajim.connections[acct].send_location(self._data) gajim.connections[acct].send_location(self._data)