mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-12-24 11:50:53 +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
|
||||
import logging
|
||||
from xml.etree import cElementTree as ET
|
||||
import types
|
||||
|
||||
class jobs(base.base_plugin):
|
||||
def plugin_init(self):
|
||||
|
@ -20,7 +21,7 @@ class jobs(base.base_plugin):
|
|||
def claimJob(self, host, node, jobid, ifrom=None):
|
||||
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'))
|
||||
|
||||
def finishJob(self, host, node, jobid, payload=None):
|
||||
|
@ -38,7 +39,8 @@ class jobs(base.base_plugin):
|
|||
iq['psstate']['item'] = jobid
|
||||
iq['psstate']['payload'] = state
|
||||
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 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