mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-11-27 19:19:54 +00:00
fixed jobs
This commit is contained in:
parent
a38735cb2a
commit
21b7109c06
2 changed files with 163 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
||||||
from . import base
|
from . import base
|
||||||
import logging
|
import logging
|
||||||
from xml.etree import cElementTree as ET
|
from xml.etree import cElementTree as ET
|
||||||
|
import types
|
||||||
|
|
||||||
class jobs(base.base_plugin):
|
class jobs(base.base_plugin):
|
||||||
def plugin_init(self):
|
def plugin_init(self):
|
||||||
|
@ -20,7 +21,7 @@ class jobs(base.base_plugin):
|
||||||
def claimJob(self, host, node, jobid, ifrom=None):
|
def claimJob(self, host, node, jobid, ifrom=None):
|
||||||
return self._setState(host, node, jobid, ET.Element('{http://andyet.net/protocol/pubsubjob}claimed'))
|
return self._setState(host, node, jobid, ET.Element('{http://andyet.net/protocol/pubsubjob}claimed'))
|
||||||
|
|
||||||
def unclaimJob(self, jobid):
|
def unclaimJob(self, host, node, jobid):
|
||||||
return self._setState(host, node, jobid, ET.Element('{http://andyet.net/protocol/pubsubjob}unclaimed'))
|
return self._setState(host, node, jobid, ET.Element('{http://andyet.net/protocol/pubsubjob}unclaimed'))
|
||||||
|
|
||||||
def finishJob(self, host, node, jobid, payload=None):
|
def finishJob(self, host, node, jobid, payload=None):
|
||||||
|
@ -38,7 +39,8 @@ class jobs(base.base_plugin):
|
||||||
iq['psstate']['item'] = jobid
|
iq['psstate']['item'] = jobid
|
||||||
iq['psstate']['payload'] = state
|
iq['psstate']['payload'] = state
|
||||||
result = iq.send()
|
result = iq.send()
|
||||||
if result is None or result['type'] != 'result':
|
if result is None or type(result) == types.BooleanType or result['type'] != 'result':
|
||||||
|
logging.error("Unable to change %s:%s to %s" % (node, jobid, state))
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
159
todo1.0
Normal file
159
todo1.0
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
Atom stanza? Should stanzas for plugins go in sleekxmpp.stanza or sleekxmpp.plugins.stanza?
|
||||||
|
|
||||||
|
sleekxmpp.stanza __all__ out of date?
|
||||||
|
|
||||||
|
stanza.error could be cleaned up, use _delSubText, etc
|
||||||
|
|
||||||
|
stanza.htmlim could use _delSubText, etc. Why not msg['html']['body'] instead of msg['html']['html']?
|
||||||
|
|
||||||
|
Unify timeout values - maybe xmlstream.stanzabase.TIMEOUT?
|
||||||
|
|
||||||
|
Need to use registerStanzaPlugin in rootstanza instead of the manual steps
|
||||||
|
|
||||||
|
Is exceptions.XMPPError raised anywhere? grep says no, is it still needed?
|
||||||
|
|
||||||
|
Extra tostring method in xmlstream. Maybe modify the tostring/ packages to accept a stream and top namespace instead of assuming a stanza object? Change ElementBase __str__ to pass its stream object to new function instead of extending ToString.
|
||||||
|
|
||||||
|
Move tostring and tostring26 to be a single package with import switch in a __init__.py that selects appropriate file to import.
|
||||||
|
|
||||||
|
Remove thread remains from handler classes.
|
||||||
|
|
||||||
|
Clarify what is meant by 'instream' for a handler.
|
||||||
|
|
||||||
|
Allow for XPath matching to use basic [@att="value"] filter. <- eek? Alternative is to use xml mask, but those are longer.
|
||||||
|
|
||||||
|
ElementBase sub_items not subitem?
|
||||||
|
|
||||||
|
Only import cElementTree in stanzabase, everything else reference that. Would make using lxml instead of cElementTree easier if needed.
|
||||||
|
|
||||||
|
*XMPP needs to use JID class instead of lots of fields.
|
||||||
|
|
||||||
|
BaseXMPP set_jid, makeIqQuery, getjidresource, getjidbare not needed
|
||||||
|
|
||||||
|
Is BaseXMPP.send used anywhere?
|
||||||
|
|
||||||
|
Make top level examples folder, put example.py, component_example.py there. Maybe even the disco browser too.
|
||||||
|
|
||||||
|
__getitem__ should be in BaseXMPP. get too, or remove it?
|
||||||
|
|
||||||
|
xmlstreammod in ComponentXMPP can be removed, just use XMLStream.
|
||||||
|
|
||||||
|
Why CamelCase and underscore_names? Document semantics.
|
||||||
|
|
||||||
|
Make the common classes available using __init__.py
|
||||||
|
|
||||||
|
Need to unit test stanzabase/elementbase. Heavily.
|
||||||
|
|
||||||
|
conn_tests and sleekxmpp/tests and sleekxmpp/xmlstresm/test.* -> convert to either unit tests, or at least put in same place
|
||||||
|
|
||||||
|
Update setup.py - github url, version #
|
||||||
|
|
||||||
|
scheduler needs unit tests
|
||||||
|
|
||||||
|
__init__.py stream:features handler should use new state machine
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- PEP8 - all files
|
||||||
|
|
||||||
|
Need to use spaces
|
||||||
|
|
||||||
|
Docstrings are lacking. Need to document attributes and return values.
|
||||||
|
|
||||||
|
Organize imports
|
||||||
|
|
||||||
|
Use absolute, not relative imports
|
||||||
|
|
||||||
|
Fix one-liner if statements
|
||||||
|
|
||||||
|
Line length limit of 79 characters
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Plugins
|
||||||
|
|
||||||
|
--- xep_0004
|
||||||
|
|
||||||
|
Need more unit tests
|
||||||
|
|
||||||
|
--- xep_0009
|
||||||
|
|
||||||
|
Need stanza objects
|
||||||
|
|
||||||
|
Need unit tests
|
||||||
|
|
||||||
|
--- xep_0045
|
||||||
|
|
||||||
|
Need to use stanza objects
|
||||||
|
|
||||||
|
A few TODO comments for checking roles and using defaults
|
||||||
|
|
||||||
|
Need unit tests
|
||||||
|
|
||||||
|
--- xep_0050
|
||||||
|
|
||||||
|
Need unit tests
|
||||||
|
|
||||||
|
Need stanza objects - use new xep_0004
|
||||||
|
|
||||||
|
--- xep_0060
|
||||||
|
|
||||||
|
Need unit tests
|
||||||
|
|
||||||
|
Need to use existing stanza objects
|
||||||
|
|
||||||
|
--- xep_0078
|
||||||
|
|
||||||
|
Is it useful still?
|
||||||
|
|
||||||
|
Need stanza objects/unit tests
|
||||||
|
|
||||||
|
--- xep_0086
|
||||||
|
|
||||||
|
Is there a way to automate setting error codes?
|
||||||
|
|
||||||
|
Seems like this should be part of the error stanza by default
|
||||||
|
|
||||||
|
Use stanza objects
|
||||||
|
|
||||||
|
--- xep_0092
|
||||||
|
|
||||||
|
Stanza objects
|
||||||
|
|
||||||
|
Unit tests
|
||||||
|
|
||||||
|
--- xep_0199
|
||||||
|
|
||||||
|
Stanza objects
|
||||||
|
|
||||||
|
Unit tests
|
||||||
|
|
||||||
|
Clean commented code
|
||||||
|
|
||||||
|
Use the new scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Documentation
|
||||||
|
|
||||||
|
Document the Zen/Tao/Whatever of SleekXMPP to explain design goals and decisions
|
||||||
|
|
||||||
|
Write architecture description
|
||||||
|
|
||||||
|
XMPP:TDG needs to be rewritten.
|
||||||
|
|
||||||
|
Need to update docs that reference old JID attributes of sleekxmpp objects
|
||||||
|
|
||||||
|
Page describing new JID class
|
||||||
|
|
||||||
|
Message page needs updating
|
||||||
|
|
||||||
|
Iq page needs to be written
|
||||||
|
|
||||||
|
Make guides to go with example.py and component_example.py
|
||||||
|
|
||||||
|
Page on xmlstream.matchers
|
||||||
|
|
||||||
|
Page on xmlstream.handlers, especially waiters
|
||||||
|
|
||||||
|
Page on using xmlstream.scheduler
|
Loading…
Reference in a new issue