summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sleekxmpp/plugins/jobs.py6
-rw-r--r--todo1.0159
2 files changed, 163 insertions, 2 deletions
diff --git a/sleekxmpp/plugins/jobs.py b/sleekxmpp/plugins/jobs.py
index bb2e2554..30a76989 100644
--- a/sleekxmpp/plugins/jobs.py
+++ b/sleekxmpp/plugins/jobs.py
@@ -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
diff --git a/todo1.0 b/todo1.0
new file mode 100644
index 00000000..593185bc
--- /dev/null
+++ b/todo1.0
@@ -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