Commit 8b5b6cdf authored by Philipp Hörist's avatar Philipp Hörist

[tictactoe] Dont depend on stanza_session module

It has been removed from Gajim
parent 60876281
[info] [info]
name: Tic tac toe name: Tic tac toe
short_name: Tic tac toe short_name: Tic tac toe
version: 1.3 version: 1.4
description: Play tic tac toe description: Play tic tac toe
authors = Yann Leboulanger <asterix@lagaule.org> authors = Yann Leboulanger <asterix@lagaule.org>
homepage = https://dev.gajim.org/gajim/gajim-plugins/wikis/TictactoePlugin homepage = https://dev.gajim.org/gajim/gajim-plugins/wikis/TictactoePlugin
min_gajim_version: 0.16.11 min_gajim_version: 1.0.0
...@@ -26,13 +26,10 @@ Tictactoe plugin. ...@@ -26,13 +26,10 @@ Tictactoe plugin.
:license: GPL :license: GPL
''' '''
import string
import itertools
import random
from gajim.common import helpers
from gajim.common import app
from gajim.plugins import GajimPlugin
from gajim.plugins.gajimplugin import GajimPluginException
from gajim.plugins.helpers import log_calls, log
from gajim.plugins.gui import GajimPluginConfigDialog
import nbxmpp import nbxmpp
from gi.repository import Gtk from gi.repository import Gtk
from gi.repository import Gdk from gi.repository import Gdk
...@@ -41,11 +38,15 @@ from gi.repository import GLib ...@@ -41,11 +38,15 @@ from gi.repository import GLib
import gi import gi
gi.require_version('PangoCairo', '1.0') gi.require_version('PangoCairo', '1.0')
from gi.repository import PangoCairo from gi.repository import PangoCairo
from gajim.common import helpers
from gajim.common import app
from gajim.plugins import GajimPlugin
from gajim.plugins.helpers import log_calls, log
from gajim.plugins.gui import GajimPluginConfigDialog
from gajim import chat_control from gajim import chat_control
from gajim.common import ged from gajim.common import ged
from gajim import dialogs from gajim import dialogs
from gajim.common import caps_cache
from gajim.common import stanza_session
from gajim.common.connection_handlers_events import InformationEvent from gajim.common.connection_handlers_events import InformationEvent
NS_GAMES = 'http://jabber.org/protocol/games' NS_GAMES = 'http://jabber.org/protocol/games'
...@@ -57,19 +58,22 @@ class TictactoePlugin(GajimPlugin): ...@@ -57,19 +58,22 @@ class TictactoePlugin(GajimPlugin):
self.description = _('Play Tictactoe.') self.description = _('Play Tictactoe.')
self.config_dialog = TictactoePluginConfigDialog(self) self.config_dialog = TictactoePluginConfigDialog(self)
self.events_handlers = { self.events_handlers = {
'decrypted-message-received': (ged.GUI1, 'decrypted-message-received': (
self._nec_decrypted_message_received), ged.PREGUI, self._nec_decrypted_message_received),
} }
self.gui_extension_points = { self.gui_extension_points = {
'chat_control' : (self.connect_with_chat_control, 'chat_control': (self.connect_with_chat_control,
self.disconnect_from_chat_control), self.disconnect_from_chat_control),
'chat_control_base_update_toolbar': (self.update_button_state, 'chat_control_base_update_toolbar': (
None), self.update_button_state, None),
'update_caps': (self._update_caps, None), 'update_caps': (self._update_caps, None),
} }
self.config_default_values = { self.config_default_values = {
'board_size': (5, ''), 'board_size': (5, ''),
} }
self.controls = [] self.controls = []
self.announce_caps = True self.announce_caps = True
...@@ -218,16 +222,44 @@ class Base(object): ...@@ -218,16 +222,44 @@ class Base(object):
class InvalidMove(Exception): class InvalidMove(Exception):
pass pass
class TicTacToeSession(stanza_session.StanzaSession): class TicTacToeSession(object):
def __init__(self, conn, jid, thread_id, type_): def __init__(self, conn, jid, thread_id, type_):
stanza_session.StanzaSession.__init__(self, conn, jid, thread_id, type_) self.conn = conn
contact = app.contacts.get_contact(conn.name, self.jid = jid
app.get_jid_without_resource(str(jid))) self.type_ = type_
self.resource = jid.getResource()
if thread_id:
self.received_thread_id = True
self.thread_id = thread_id
else:
self.received_thread_id = False
self.thread_id = self.generate_thread_id()
contact = app.contacts.get_contact(
conn.name, app.get_jid_without_resource(str(jid)))
self.name = contact.get_shown_name() self.name = contact.get_shown_name()
self.base = None self.base = None
self.control = None self.control = None
self.enable_encryption = False self.enable_encryption = False
def send(self, msg):
if self.thread_id:
msg.NT.thread = self.thread_id
msg.setAttr('to', self.get_to())
self.conn.send_stanza(msg)
def get_to(self):
to = str(self.jid)
return app.get_jid_without_resource(to) + '/' + self.resource
def generate_thread_id(self):
return ''.join(
[f(string.ascii_letters) for f in itertools.repeat(
random.choice, 32)]
)
# initiate a session # initiate a session
def begin(self, role_s='x'): def begin(self, role_s='x'):
self.rows = self.base.plugin.config['board_size'] self.rows = self.base.plugin.config['board_size']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment