Andrzej Bieniek
596e135a03
Fixed typo in comment.
2010-12-28 21:32:28 +00:00
Lance Stout
e55e213c78
Fix some typos.
2010-12-28 16:17:08 -05:00
Lance Stout
8749f5e09b
Make the new XEP-30 plugin retain older API signatures.
2010-12-28 15:43:00 -05:00
Lance Stout
b3353183f3
Added ordereddict implementation to thirdparty.
...
See http://pypi.python.org/pypi/ordereddict and
http://code.activestate.com/recipes/576693/ .
2010-12-21 17:33:31 -05:00
Lance Stout
3657bf6636
Merge branch 'develop' into roster
2010-12-21 11:33:40 -05:00
Lance Stout
f97f6e5985
More documentation for XEP-0030 plugin.
2010-12-21 11:33:03 -05:00
Lance Stout
34c374a1e1
Make tests pass for catching exceptions.
...
May now use sys.excepthook to catch exceptions
from threaded handlers.
2010-12-17 13:11:03 -05:00
Lance Stout
506eccf84d
Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop
2010-12-17 10:44:32 -05:00
Florent Le Coz
982bf3b2ec
RootStanza raises unexpected exceptions
...
We now raise the unexpected exceptions instead of sending
them on the network.
- avoids flood (sending a traceback on a MUC, for example…) and
maybe some security issues.
- lets you handle the traceback (catch it to handle
it properly, or with except_hook, etc)
- an exception cannot be raised without you knowing
2010-12-17 23:43:48 +08:00
Lance Stout
53a5026301
Almost done with xep-30; added more docs.
2010-12-16 23:52:17 -05:00
Lance Stout
0aee445e69
Use daemon threads instead of signals.
...
Daemonized threads exit once the main program has quit,
and the only threads left running are all daemon threads.
Should fix hanging clients while not trampling over anyone
else's signal handlers.
2010-12-16 22:21:50 -05:00
Lance Stout
adade2e5ec
Merge branch 'develop' into roster
2010-12-16 22:03:56 -05:00
Lance Stout
0ea014fe41
Updated the list of plugins in sleekxmpp.plugins.__init__
2010-12-16 18:29:56 -05:00
Lance Stout
62b190d0ff
Fixed specifying 'from' values in XEP-0045 plugin.
...
Methods now accept either an ifrom or mfrom parameter
to specify a 'from' value. Client connections should not
need to use these, but component connections must use them.
2010-12-16 18:14:33 -05:00
Lance Stout
4b57b8131f
Added support for using SSL CA certificates.
...
Originally provided by Brian Beggs (macdiesel)
and Thom Nichols (tomstrummer).
2010-12-16 17:30:08 -05:00
Lance Stout
988a90a176
Added MUC invite handler to XEP-0045 plugin.
...
Originally contributed by damium/romeira, with some
modifications.
Also, converted tabs to spaces to prepare for future cleanup.
2010-12-16 16:18:49 -05:00
Lance Stout
67775fb8bd
Use boundjid in plugins instead of the deprecated accessors.
...
Originally contributed by skinkie, with a few modifications.
2010-12-16 15:38:00 -05:00
Lance Stout
e81683beee
Some Python 3.1+ compatibility fixes.
...
Originally contributed by filipegiusti.
2010-12-16 15:29:17 -05:00
Lance Stout
d9c25ee65c
Added more options to the make_iq_* methods.
...
May include a to and from JID in make_iq_* calls.
May pass an existing iq stanza to most of them instead of generating
a new stanza.
make_iq now accepts a 'to' value, 'type' value, and 'query' value to
simplify things a bit more.
2010-12-16 15:25:04 -05:00
Lance Stout
1ebc7f4d4b
Implement a few more static node handlers.
2010-12-15 19:22:21 -05:00
Lance Stout
2c5b77ae2e
And some more docs.
2010-12-15 18:57:45 -05:00
Lance Stout
d8aae88526
The documentation effort continues.
...
Also, need to start working on a replacement for the XEP-30 page in the
wiki since the API has changed significantly.
2010-12-15 17:58:15 -05:00
Lance Stout
2f4bdfee1b
Update some docs.
2010-12-13 15:58:59 -05:00
Lance Stout
c16913c999
Merge branch 'develop' into roster
...
Conflicts:
sleekxmpp/basexmpp.py
2010-12-13 14:36:53 -05:00
Lance Stout
f4451fe6b7
First pass at a new XEP-0030 plugin.
...
Now with dynamic node handling goodness.
Some things are not quite working yet, in particular:
set_items
set_info
set_identities
set_features
And still need more unit tests to round things out.
2010-12-09 18:57:27 -05:00
Lance Stout
f474d378ef
Add support for using xml:lang values.
...
Support is only for adding literal XML content
to stanzas. Full support for things like multiple
message bodies with different xml:lang values is
still in the works.
2010-12-07 23:07:40 -05:00
Lance Stout
defc252c7d
Fix several errors in SleekTest.
...
Notably, not sending an expected stanza will not silently pass.
2010-12-07 23:04:37 -05:00
Lance Stout
19bd1e0485
Actually make the Iq callbacks work for real.
2010-12-07 23:04:04 -05:00
Lance Stout
5f2fc67c40
Added option for iq.send to accept a callhandler.
...
The callback will be a stream level handler, and will not
execute in its own thread. If you must have a thread, have the
callback function raise a custom event, which can be processed
by another event handler, which may run in an individual thread,
like so:
def handle_reply(self, iq):
self.event('custom_event', iq)
def do_long_operation_in_thread(self, iq):
...
self.add_event_handler('custom_event', self.do_long_operation_in_thread)
...take out already prepared iq stanza...
iq.send(callback=self.handle_reply)
2010-12-07 17:19:39 -05:00
Lance Stout
8ead33fc3b
Fixed typo
2010-11-18 16:23:18 -05:00
Lance Stout
ab25301953
Adding stream tests for XEP-0030.
...
Fixed some errors when responding to disco requests.
2010-11-18 15:50:45 -05:00
Lance Stout
291b118aca
XEP-0030 bug fixes.
2010-11-18 11:22:11 -05:00
Lance Stout
db7fb10e95
Add rename_node method to disco plugin.
2010-11-18 01:15:34 -05:00
Lance Stout
9214dc6610
Add rename_node method to disco plugin.
2010-11-18 01:12:11 -05:00
Lance Stout
58b95e4ae4
Merge branch 'develop' of github.com:fritzy/SleekXMPP into roster
2010-11-18 00:44:51 -05:00
Lance Stout
60d3afe6b6
Added __repr__ for JIDs.
2010-11-18 00:03:39 -05:00
Lance Stout
e648f08bad
Fix stream test errors.
2010-11-17 16:08:14 -05:00
Lance Stout
7ba6d5e02d
Fix Node set to None error.
2010-11-17 16:01:27 -05:00
Lance Stout
ea48bb5ac5
Fixed some live stream test errors.
...
Added test demonstrating using multiple stream clients
in a single test.
2010-11-17 15:45:16 -05:00
Lance Stout
6ee8a2980c
Fix RESPONSE_TIMEOUT dependency loops.
2010-11-17 15:13:09 -05:00
Lance Stout
debf909359
Merge branch 'develop' into roster
2010-11-17 14:33:09 -05:00
Lance Stout
b8114b25ed
Make live stream tests work better.
...
SleekTest can now use matchers when checking stanzas, using
the method parameter for self.check(), self.recv(), and self.send():
method='exact' - Same behavior as before
'xpath' - Use xpath matcher
'id' - Use ID matcher
'mask' - Use XML mask matcher
'stanzapath' - Use StanzaPath matcher
recv_feature and send_feature only accept 'exact' and 'mask' for now.
2010-11-17 13:43:15 -05:00
Lance Stout
0d4d84b2fa
Cleaned basexmpp.py
2010-11-17 10:13:45 -05:00
Lance Stout
d2aca3e7e0
Remove extraneous files.
2010-11-17 02:04:36 -05:00
Lance Stout
26aca2b789
Merge branch 'roster' of github.com:fritzy/SleekXMPP into roster
...
Conflicts:
sleekxmpp/basexmpp.py
sleekxmpp/roster.py
sleekxmpp/test/sleektest.py
tests/test_stream_presence.py
tests/test_stream_roster.py
2010-11-17 02:01:12 -05:00
Lance Stout
5424ede413
More cleanup.
2010-11-17 01:54:30 -05:00
Lance Stout
20112f8e16
More docs!
2010-11-17 01:49:51 -05:00
Lance Stout
4260a754e5
Added more docs.
2010-11-17 01:49:51 -05:00
Lance Stout
ce30f72738
Added docs for main Roster class.
2010-11-17 01:49:51 -05:00
Lance Stout
69d430dd75
Cleaned up names.
2010-11-17 01:49:51 -05:00
Lance Stout
673545c7e4
First pass at integrating the new roster manager.
2010-11-17 01:49:19 -05:00
Nathan Fritz
45991e47ee
scheduler no longer waits for the next event before exiting
2010-11-16 17:58:20 -08:00
Nathan Fritz
b8f40eb843
xep_0199 ping now uses scheduler instead of dedicated thread
2010-11-16 17:43:05 -08:00
Florent Le Coz
b73a859031
Add a groupchat_subject event
...
Use this event to get notified of the subject changes (or to get the
subject of the room when joining one)
2010-11-10 05:54:22 +08:00
Florent Le Coz
9dbf246f0b
Doesn't fail if host has NO SRV record
...
Just catch an other exception type coming from the dns resolver that
could be raised with hosts like "anon.example.com" which just don't have
any SRV record.
2010-11-09 01:53:41 +08:00
Lance Stout
4fb77ac878
Logging no longer uses root logger.
...
Each module should now log into its own logger.
2010-11-06 01:28:59 -04:00
Lance Stout
d0c506f930
Simplified SleekTest.
...
* check_stanza does not require stanza_class parameter. Introspection!
* check_message, check_iq, and check_presence removed -- use check
instead.
* stream_send_stanza, stream_send_message, stream_send_iq, and
stream_send_presence removed -- use send instead.
* Use recv instead of recv_message, recv_presence, etc.
* check_jid instead of check_JID
* stream_start may accept multi=True to return a new SleekTest instance
for testing multiple streams at once.
2010-11-05 21:18:48 -04:00
Lance Stout
7351fe1a02
Fix bug introduced while fixing another bug.
...
Threaded event handlers now handle exceptions again.
2010-11-04 14:35:35 -04:00
Nathan Fritz
38c2f51f83
fixed indent errors
2010-11-04 11:39:41 -07:00
Lance Stout
1bf34caa5b
Fixes for XEP-0199 plugin.
...
Quick fixes to get the XEP-0199 plugin working until a proper cleanup is
done.
2010-11-03 14:04:18 -04:00
Lance Stout
5769935720
Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop
2010-11-03 12:39:44 -04:00
Lance Stout
0214db7545
Catch exceptions for direct events.
...
Events triggered with direct=True will have exceptions caught.
Note that all event handlers in a direct event will currently run
in the same thread.
2010-11-03 12:38:13 -04:00
Lance Stout
ffc6f031d9
Updated namespaced used in the XEP-0199 plugin.
2010-11-03 12:37:26 -04:00
Lance Stout
9e248bb852
Fix bug in XEP-0030 plugin.
...
xep_0030 still referenced event_handlers. Added the method event_handled
which will return the number of registered handlers for an event to
resolve the issue.
2010-10-31 18:27:52 -04:00
Lance Stout
973890e2c9
Added try/except for setting signal handlers.
...
Setting signal handlers from inside a thread is not supported in Python,
but some applications need to run Sleek from a child thread.
SleekXMPP applications that run inside a child thread will NOT be able
to detect SIGHUP or SIGTERM events. Those must be caught and managed by
the main program.
2010-10-28 10:42:23 -04:00
Lance Stout
9c08e56ed0
SSL and signal fixes.
...
Made setting the SIG* handlers conditional on if the signal defined for
the OS.
Added the attribute ssl_version to XMLStream to set the version of SSL
used during connection. It defaults to ssl.PROTOCOL_TLSv1, but OpenFire
tends to require ssl.PROTOCOL_SSLv23.
2010-10-27 19:27:47 -04:00
Lance Stout
4f69a03bb1
More cleanup.
2010-10-27 15:02:21 -04:00
Lance Stout
c2c18acd6a
More docs!
2010-10-27 13:36:23 -04:00
Lance Stout
12ead36f96
Added more docs.
2010-10-27 10:51:58 -04:00
Lance Stout
41a642e06c
Added docs for main Roster class.
2010-10-27 09:27:00 -04:00
Lance Stout
c6ed4b8a1d
Cleaned up names.
2010-10-27 08:09:50 -04:00
Lance Stout
65aa6573df
First pass at integrating the new roster manager.
2010-10-26 23:47:17 -04:00
Lance Stout
b888610525
Added XEP-202 Entity Time plugin.
...
Contributed by Cesar Alcalde.
2010-10-25 21:26:25 -04:00
Lance Stout
6d68706326
Added XEP-0012 Last Activity plugin.
...
Contributed by Cesar Alcalde.
2010-10-25 20:37:02 -04:00
Lance Stout
5bdcd9ef9d
Made exceptions work.
...
Raising an XMPPError exception from an event handler now works, even if
from a threaded handler.
Added stream tests to verify.
We should start using XMPPError, it really makes things simple!
2010-10-25 15:09:56 -04:00
Lance Stout
ac330b5c6c
Fixed bug in presence subscription handling.
...
Subscription requests and responses were not setting the correct 'to'
attribute.
2010-10-25 12:52:32 -04:00
Lance Stout
185d7cf28e
More JID unit tests.
...
sleekxmpp.xmlstream.jid now has 100% coverage!
2010-10-24 19:06:54 -04:00
Lance Stout
8aa3d0c047
Fixed got_offline triggering bug.
2010-10-24 18:56:50 -04:00
Lance Stout
9e3d506651
Fixed resource bug in JIDs.
...
JIDs without resources will return '' instead of the bare JID.
Cleaned up JID tests, and added check_JID to SleekTest.
2010-10-24 18:22:41 -04:00
Lance Stout
2f3ff37a24
Make SleekTest streams register all plugins.
...
Makes test coverage nicer.
2010-10-24 17:35:11 -04:00
Lance Stout
1f09d60a52
ComponentXMPP saves all of its config data now.
...
ComponentXMPP was ignoring plugin_config and plugin_whitelist
parameters, making register_plugins() fail.
2010-10-24 17:33:11 -04:00
Lance Stout
d9aff3d36f
Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop
2010-10-24 12:11:34 -04:00
Lance Stout
04cc48775d
Fixed error in client roster handling.
...
The roster result iq was not being passed to the roster update
handler.
2010-10-24 12:08:59 -04:00
Nathan Fritz
27ebb6e8f6
presence no longer replies when exception is caught and tweaks to presence events
2010-10-21 16:59:15 -07:00
Lance Stout
8f55704928
Fixed mixed text and elements bug in tostring.
...
XML of the form <a>foo <b>bar</b> baz</a> was outputted as
<a>foo <b>bar</b> baz baz</a>.
Includes unit test.
2010-10-21 16:21:28 -04:00
Nathan Fritz
d88999691c
misc small tweaks
2010-10-20 20:14:26 -07:00
Nathan Fritz
c4699b92e6
pep8 fixes on core library
2010-10-20 19:43:53 -07:00
Nathan Fritz
ce69213a1e
when disconnected, reset the roster
2010-10-20 19:33:40 -07:00
Nathan Fritz
77eab6544f
reconnect if session isn't established within 15 seconds
2010-10-20 19:18:27 -07:00
Nathan Fritz
11264fe0a8
capture SIGHUP and SIGTERM (windows) and disconnect; also testall no longer loads string26 with python3
2010-10-20 17:30:12 -07:00
Nathan Fritz
11a6e6d2e0
fixed logic error in state machine
2010-10-20 16:57:47 -07:00
Nathan Fritz
6e34b2cfdd
fixed disconnect
2010-10-20 16:32:50 -07:00
Lance Stout
e18354ae0e
Continue converting to underscored names.
2010-10-18 09:06:54 -04:00
Lance Stout
4375ac7d8b
Underscore names by default.
...
Stanza objects now accept the use of underscored names.
The CamelCase versions are still available for backwards compatibility,
but are discouraged.
The property stanza.values now maps to the old getStanzaValues and
setStanzaValues, in addition to _set_stanza_values and
_get_stanza_values.
2010-10-17 22:04:42 -04:00
Lance Stout
faec86b3be
Import plugins from string referenced modules.
2010-10-17 15:47:24 -04:00
Lance Stout
505a63da3a
Cleanup, restore PEP8.
2010-10-16 21:15:31 -04:00
Florent Le Coz
93fbcad277
Fix the error on non-number priority
...
The priority is not a number: we consider it 0 as a default
2010-10-17 09:01:53 +08:00
Florent Le Coz
3625573c7d
Default history is 0
2010-10-17 09:01:53 +08:00
Florent Le Coz
d9e7f555e6
MUC leave message and MUC history request
...
It is now possible to ask for "any number of history stanzas" when
joining a muc (with history=None).
Also we use "maxchars" when asking NO history ("0") since it's a MUST in
the XEP.
And you can specify a message when leaving a MUC.
2010-10-17 09:01:52 +08:00
Florent Le Coz
2755d732a4
Remove deprecation warnings
...
Remove all the deprecation warnings by using only boundjid.
And also fix a indentation error.
2010-10-17 08:55:30 +08:00
Florent Le Coz
2d18d905a5
Anonymous authentication
...
Implemented ANONYMOUS authentication on the ClientXMPP class.
To use it, you just need to provide a domain (e.g 'anon.example.com')
with an optional resource (e.g 'anon.example.com/resource') as the JID,
with no password. The JID class has been improved to accept
domains as fulljid.
You can test this with echo_client.py
python echo_client.py -j anon.louiz.org/ # anonymous with a resource
# defined by the server
python echo_client.py -j anon.louiz.org/resource # anonymous with given
# resource
The "normal" authentication method still works exactly like before.
2010-10-17 08:55:30 +08:00
Nathan Fritz
8b5c1010de
fixed JID to accept server/domain/host as the same
2010-10-14 16:34:16 -07:00
Nathan Fritz
95ad8a1878
fixed stream test not disconnecting cleanly
2010-10-14 16:27:44 -07:00
Nathan Fritz
aeb7999e6a
don't import statemachine
2010-10-14 16:08:50 -07:00
Nathan Fritz
8468332381
fixed stream tests
2010-10-14 15:53:10 -07:00
Nathan Fritz
dc001bb201
deprecated jid, fulljid, server, user, resource properties and added boundjid JID
2010-10-14 15:50:54 -07:00
Nathan Fritz
0d0b963fe5
fixed socket name collision in xmlstream.py and fixed python 3.x compatibility
2010-10-14 10:58:07 -07:00
Nathan Fritz
a41a4369c6
disconnect cleanly
2010-10-13 18:21:05 -07:00
Nathan Fritz
7ad7a29a8f
new state machine in place
2010-10-13 18:15:21 -07:00
Lance Stout
a8b948cd33
SleekTest may now run against a live stream.
...
Moved SleekTest to sleekxmpp.test package.
Corrected error in XML compare method.
Added TestLiveSocket to run stream tests against live streams.
Modified XMLStream to work with TestLiveSocket.
2010-10-07 19:43:51 -04:00
Lance Stout
e02ffe8547
Corrected test errors.
...
There was a bug in the XML compare method.
2010-10-07 19:42:28 -04:00
Lance Stout
42bfca1c87
Removed debug log statement.
2010-10-07 19:41:33 -04:00
Lance Stout
0fffbb8200
Unit test reorganization.
...
Moved SleekTest to sleekxmpp.test.
Organized test suites by their focus.
- Suites focused on testing stanza objects are named test_stanza_X.py
- Suites focused on testing stream behavior are name test_stream_X.py
2010-10-07 10:58:13 -04:00
Lance Stout
21c32c6e1c
Moved the pubsub tester to conn_tests.
2010-10-07 10:28:38 -04:00
Lance Stout
78141fe5f3
Fixed dealing with deleting handlers.
...
The call to .index() may raise a ValueError if the item is not in the
list. So both the .index() and .pop() calls should be in the try block.
2010-10-07 09:17:28 -04:00
Lance Stout
799645f13f
Updated method names.
...
Using underscored names where possible.
2010-10-06 18:45:11 -04:00
Lance Stout
c294c1a85c
More PEP8 compliance cleanups.
...
Cleaned up the atom entry stanza.
2010-10-06 15:12:39 -04:00
Lance Stout
cbe76c8a70
Cleaned up the Scheduler.
2010-10-06 15:03:21 -04:00
Lance Stout
77b8f0f4bb
Fixed whitespace issue.
2010-10-06 14:31:33 -04:00
Lance Stout
ed366b338d
Moved ClientXMPP to clientxmpp.py.
...
Cleaned up the __init__.py files.
2010-10-06 14:20:32 -04:00
Lance Stout
9e2cada19e
Missed a few docstrings.
2010-10-06 14:09:14 -04:00
Lance Stout
d0ccbf6b7a
Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop
2010-10-06 14:06:02 -04:00
Lance Stout
e1866ab328
Made first pass at cleaning up ClientXMPP.
...
Added self.stream_ns to BaseXMPP.
Moved connected/disconnected events and logging to XMLStream.
2010-10-06 14:03:19 -04:00
fritzy
3ffa09ba7c
deal with deleting handlers that are no longer there
2010-10-06 17:58:03 +00:00
Lance Stout
a7410f2146
Made a first pass at cleaning up ComponentXMPP.
2010-10-06 10:47:05 -04:00
Lance Stout
178608f4c0
XMLStream cleanup.
...
Added RestartStream as a top level item in sleekxmpp.xmlstream.
Fixed trailing whitespace.
2010-10-06 10:45:36 -04:00
Lance Stout
9f0baec7b2
Made first pass at cleaning BaseXMPP.
...
Have not intregrated the new JID class yet.
2010-10-01 23:56:46 -04:00
Lance Stout
433c147627
Fixed typo in XEP-0033 plugin.
2010-10-01 21:25:27 -04:00
Lance Stout
9a34c9a9a1
Modified event handling to use the event queue.
...
Updated tests to match. (Needed to add a small wait to make sure
the event got through the queue before checking the results.)
2010-10-01 13:49:58 -04:00
Lance Stout
2662131124
Fixed tostring bug when using mapped namespaces.
2010-10-01 12:41:35 -04:00
Lance Stout
bb219595a7
Moved event functions to XMLStream.
...
This is just a transplant, modifying event to use the main
event queue has not been implemented yet.
2010-10-01 12:24:49 -04:00
Lance Stout
fcdd57ce54
Moved add_handler, send, and sendXML to XMLStream.
2010-10-01 11:15:51 -04:00
Lance Stout
5522443e0e
Moved getNewId and getId to XMLStream.
...
This prepares the way for moving add_handler to XMLStream.
Since stanzas, matchers, and handlers in any XML stream will typically
use unique IDs, XMLStream is a good place for these methods.
2010-10-01 10:46:37 -04:00
Lance Stout
55cfe69fef
Cleaned up trailing whitespace.
2010-10-01 10:09:10 -04:00
Lance Stout
6de87a1cbf
Fixed line lengths and trailing whitespace.
...
The pep8 command is now pleased.
2010-09-30 13:06:16 -04:00
Lance Stout
7c10ff16fb
Made a first pass at cleaning up XMLStream.
...
A few extra methods are mentioned in the docs, but those have not
been moved to XMLStream from BaseXMPP yet.
2010-09-30 12:56:22 -04:00
Nathan Fritz
c258d2f19d
added room events for specific rooms, added buildForm to xep_0004 plugin
2010-09-23 00:51:23 +00:00
fritzy
d576e32f7a
Merge branch 'develop' of git@github.com:fritzy/SleekXMPP into develop
2010-09-02 20:01:28 +00:00
Lance Stout
9bef4b4d4d
Move the examples to a top-level examples directory.
2010-09-01 14:47:42 -04:00
Lance Stout
5c3066ba30
Updated all of the matcher classes in sleekxmpp.xmlstream.matcher.
...
Matchers are now PEP8 compliant and have documentation.
2010-09-01 14:28:43 -04:00
Lance Stout
576eefb097
Fixed line spacing in filesocket.py to please pep8.
2010-09-01 14:25:30 -04:00
Lance Stout
aebd115ba2
A few cleanups to make things simpler.
2010-09-01 14:20:34 -04:00
fritzy
6dfea828be
xep-0004 merge should deal with dictionaries
2010-08-31 14:44:24 +00:00
Lance Stout
3749c1b88c
Fixed ElementBase.match to match using sub_interface elements.
2010-08-30 17:12:10 -04:00
Lance Stout
998741b87e
Fixed typos in ElementBase._fix_ns
2010-08-30 15:25:59 -04:00
Lance Stout
9c62bce206
Updated ElementBase.match to respect namespaces with slashes.
...
Required adding option to _fix_ns to not propagate namespaces to child elements.
2010-08-30 14:55:30 -04:00
Lance Stout
f5ae27da4f
Fix some documentation typos.
2010-08-27 18:16:09 -04:00
Lance Stout
89fb15e896
Updated the suite of handler classes with documentation.
...
Updated XMLStream to return True or False from removeHandler to indicate if the handler
existed and was removed.
Waiter handlers now unregister themselves after timing out.
2010-08-27 16:42:26 -04:00
Lance Stout
bb6f4af8e2
Added unit tests for StanzaBase.
2010-08-27 12:22:35 -04:00
Lance Stout
6677df39f2
Updated xmlstream.filesocket.
2010-08-27 11:29:48 -04:00
Lance Stout
a2c515bc97
Updated StanzaBase with documentation.
2010-08-27 11:07:20 -04:00
Lance Stout
ca6ce26b0d
Added comments to _fix_ns to clarify the cleaning procedure.
2010-08-26 18:40:58 -04:00
Lance Stout
00d7952001
Fixed ElementBase._fix_ns and related methods to respect namespaces which contain forward slashes.
2010-08-26 18:18:00 -04:00
Lance Stout
56766508b3
Fixed indentation in StanzaBase.
2010-08-26 14:19:36 -04:00
Lance Stout
5c59f5baca
Clarify ElementBase documentation.
2010-08-26 14:07:09 -04:00
Lance Stout
e16b37d2be
Fixed line lengths in ElementBase to comply with PEP8.
2010-08-26 13:55:23 -04:00
Lance Stout
d68bc2ba07
Finished the update of ElementBase with docs and unit tests.
...
Corrected bugs in equality comparisons between stanzas.
2010-08-26 13:49:36 -04:00
Lance Stout
10298a6eab
Updated the remaining ElementBase methods.
...
Remaining ElementBase todos:
Write the class documentation for ElementBase.
Write unit tests for the __magic__ methods.
2010-08-26 10:08:22 -04:00
Lance Stout
a3580dcef9
Fixed ElementBase.match to respect namespaces.
2010-08-25 14:54:09 -04:00
Lance Stout
1eaa9cb28c
Updated ElementBase.match and added unit tests.
2010-08-25 14:40:16 -04:00
Lance Stout
5d458bf6c2
Updated ElementBase._delSub and added unit tests.
...
_delSub can now accept a path and will optionally remove any empty parent elements after deleting the target elements.
2010-08-25 10:52:07 -04:00
Lance Stout
2fa58a74ab
Fixed indenting issue.
2010-08-24 09:44:09 -04:00
Lance Stout
c8f406d1b3
Updated ElementBase._setSubText and added unit tests.
...
_setSubText can now handle elements specified by an XPath expression, and
will build up the element tree as needed, reusing an existing elements in
the path.
2010-08-24 09:37:42 -04:00
Lance Stout
203986dd7c
Updated ElementBase._getSubText and added unit tests.
...
Also added ElementBase._fix_ns() to apply the stanza namespace to elements that don't have a namespace.
2010-08-24 08:55:37 -04:00
fritzy
f4ecf0bac4
fixed a but in stanza_pubsub
2010-08-22 06:08:48 +00:00
fritzy
345656926e
added form compatibility with old api, stanzas now bool() to True on 2.x, jid attributes will return '' if not set
2010-08-21 22:48:43 +00:00
Nathan Fritz
c05ddcb7f5
Merge branch 'develop' of git@github.com:fritzy/SleekXMPP into develop
2010-08-19 19:54:09 -07:00
Nathan Fritz
eb9e72fe3e
added some xep-0004 compatibility changes
2010-08-19 19:53:56 -07:00
Lance Stout
8a0616b3e0
Updated ElementBase methods _getAttr, _setAttr, and _delAttr with docs and tests.
2010-08-19 20:41:26 -04:00
Lance Stout
b71cfe0492
Small cleanup in ElementBase.__setitem__
2010-08-19 19:14:18 -04:00
Lance Stout
fac3bca1f6
Updated ElementBase.__delitem__ and added unit tests.
2010-08-19 19:11:12 -04:00
Nathan Fritz
d150b35464
fixed todo merge
2010-08-19 16:09:47 -07:00
Nathan Fritz
21b7109c06
fixed jobs
2010-08-19 16:09:00 -07:00
Lance Stout
e4240dd593
Updated ElementBase.__setitem__ and added unit tests.
2010-08-19 14:21:58 -04:00
Lance Stout
2f6f4fc16d
Updated ElementBase.__getitem__ with docs and unit tests.
2010-08-13 21:33:11 -04:00
Lance Stout
fe49b8c377
Updated getStanzaValues and setStanzaValues with docs and unit tests.
2010-08-13 20:05:24 -04:00
Lance Stout
b580a3138d
Updated ElementBase.enable and ElementBase.initPlugin
2010-08-13 12:51:07 -04:00
Lance Stout
c20fab0f6c
Updated ElementBase.setup, and added unit tests.
2010-08-13 12:24:47 -04:00
Lance Stout
415520200e
Updated ElementBase.__init__
2010-08-13 10:26:33 -04:00
Lance Stout
747001d33c
Adjust first level indenting in ElementBase to prepare for cleanup.
2010-08-13 10:15:52 -04:00
Lance Stout
b0fb205c16
Updated registerStanzaPlugin and the XML test type.
2010-08-13 10:12:51 -04:00
Lance Stout
4b52007e8c
Cleaned stanzabase imports.
2010-08-12 23:24:09 -04:00
Lance Stout
b40a489796
Updated roster stanza with docs and PEP8 style.
2010-08-11 23:32:14 -04:00
Lance Stout
c09e9c702c
Updated sleekxmpp.exceptions with PEP8 style and docs.
2010-08-11 18:21:12 -04:00
Lance Stout
4d1f071f83
Updated the use of tostring in xmlstream.py
...
Now uses the xmlns and stream parameters to reduce the number of
extra xmlns attributes used in the logging output.
Added self.default_ns to XMLStream just to be safe.
2010-08-05 23:11:22 -04:00
Lance Stout
3c0dfb56e6
Update tostring docs to clarify what the xmlns and stanza_ns parameters do.
2010-08-05 20:43:38 -04:00
Lance Stout
e077204a16
Replaced the ToString class with a tostring function.
...
The sleekxmpp.xmlstream.tostring and sleekxmpp.xmlstream.tostring26 packages
have been merged to sleekxmpp.xmlstream.tostring. The __init__.py file will
import the appropriate tostring function depending on the Python version.
The setup.py file has been updated with the package changes.
ElementBase is now a direct descendent of object and does not subclass ToString.
Stanza objects now return their XML contents for __repr__.
2010-08-05 20:26:41 -04:00
Lance Stout
c54466596f
Modified sleekxmpp.xmlstream.tostring to import ToString class based on Python version.
...
The package sleekxmpp.xmlstream.tostring26 remains for now until stanzabase is updated, but is no longer needed.
2010-08-04 14:41:37 -04:00
Lance Stout
aa1dbe97e0
Updated and simplified new JID class to have more documentation and use PEP8 style.
2010-08-04 00:33:28 -04:00
Lance Stout
fec69be731
Update nick stanza with documentation and PEP8 style.
2010-08-03 18:32:53 -04:00
Lance Stout
183a3f1b87
Updated XHTML-IM stanza with documentation and PEP8 style.
2010-08-03 17:58:18 -04:00
Lance Stout
41ab2b8460
Updated presence stanza with documentation and PEP8 style.
2010-08-03 17:30:34 -04:00
Lance Stout
939ae298c2
Updated message stanzas and tests with documentation and PEP8 style.
2010-08-03 12:26:36 -04:00
Lance Stout
1cedea2804
Added optional default value to _getAttr.
2010-07-30 14:11:24 -04:00
Lance Stout
cbed8029ba
Updated, cleaned, and documented Iq stanza class. Also added unit tests.
2010-07-29 23:58:25 -04:00
Lance Stout
1da3e5b35e
Added unit tests for error stanzas. Corrected error in deleting conditions.
2010-07-29 23:55:13 -04:00
Lance Stout
60a183b011
Added useful imports to the xmlstream, xmlstream.handler, and xmlstream.matcher __init__.py files to make it simpler to import common classes.
2010-07-29 20:18:04 -04:00
Lance Stout
a49f511a2f
Added RESPONSE_TIMEOUT constant to sleekxmpp.xmlstream to serve as a single place to specify a default timeout value when waiting for a stanza response.
2010-07-29 20:16:57 -04:00
Lance Stout
25f43bd219
Updated error stanza to be PEP8 compliant and include documentation.
2010-07-29 11:06:10 -04:00
Lance Stout
d148f633f3
Modified ElementBase _getSubText, _setSubText, and _delSubText to
...
use the namespace in a tag name if one is given and to use
self.namespace otherwise.
2010-07-29 11:04:21 -04:00
Lance Stout
e8e934fa95
Fixed some PEP8 errors in RootStanza (trailing whitespace and line length)
2010-07-29 11:02:42 -04:00
Lance Stout
bd92ef6acf
Updated RootStanza to use registerStanzaPlugin, and be PEP8 compliant.
2010-07-28 13:14:41 -04:00
Nathan Fritz
2b6454786a
Merge branch 'experimental' of git@github.com:fritzy/SleekXMPP into experimental
2010-07-26 18:13:54 -07:00
Nathan Fritz
a349a2a317
removed jid from stanzabase to external file
2010-07-26 18:13:34 -07:00
Nathan Fritz
2cb82afc2c
updated and moved jid class -- jids now have setters
2010-07-26 18:13:09 -07:00
Lance Stout
c8989c04f3
Replaced traceback calls to use logging.exception where applicable.
2010-07-26 21:02:25 -04:00
Lance Stout
ec860bf9e2
Add StateManager as replacement for StateMachine.
2010-07-26 19:44:42 -04:00
Lance Stout
d0a5c539d8
Fix shebang lines to use #!/usr/bin/env python instead of hard coding a python version.
2010-07-23 19:47:54 -04:00
Joe Hildebrand
d70a6e6f32
Issue 26. Only set from address in reply() for components
2010-07-20 13:55:48 -07:00
Nathan Fritz
ca2c421e6c
fixed resource binding element to conform to spec
2010-07-20 11:20:47 -07:00
Nathan Fritz
9fcd2e93a3
don't send resource in bind request if you don't have one
2010-07-20 11:15:59 -07:00
Lance Stout
75afefb5c6
Upated xep_0045 to use old_0004 for now.
2010-07-20 13:23:35 -04:00
Lance Stout
b67b930596
Updated xep_0050 to use old_0004 for now.
2010-07-20 12:27:22 -04:00
Lance Stout
7ad0143687
Updated pubsub stanzas to use xep_0004 stanza objects, and updated tests to match.
2010-07-20 12:18:38 -04:00
Lance Stout
de24e9ed45
Lots of XEP-0004 bug fixes.
...
Forms have default type of 'form'
setFields now uses a list of tuples instead of a dictionary because ordering is important.
getFields defaults to returning a list of tuples, but the use_dict parameter can change that
2010-07-20 12:16:57 -04:00
Lance Stout
9724efa123
Please tab nanny.
2010-07-20 12:16:06 -04:00
Lance Stout
690eaf8d3c
Updated license notices to use the correct MIT format. Also corrected references to nonexistant license.txt to LICENSE.
2010-07-20 11:19:49 -04:00
Lance Stout
9ca4bba2de
Update XEP-0128 to use new xep_0004
2010-07-20 00:34:24 -04:00
Lance Stout
bb927c7e6a
Updated presence stanza to include a 'show' interface. Presence stanza tests updated accordingly.
2010-07-20 00:04:34 -04:00
Lance Stout
b5a14a0190
Can now pass a name to add_handler so that the handler can be reliably removed later.
...
Updated uses of add_handler to include a name.
2010-07-19 19:19:33 -04:00
Nathan Fritz
fec8578cf6
stanza should not have setValues/getValues because that conflicts with attribute accessors
2010-07-19 15:38:48 -07:00
Nathan Fritz
f80b3285d4
indent problem on stanzabase
2010-07-19 14:57:21 -07:00
Nathan Fritz
130a148d34
added fromXML/getXML compatiblity to the new xep-0004 w/ deprecated warnings
2010-07-19 13:53:41 -07:00
Nathan Fritz
16104b6e56
made Lance's new XEP-4 stanzas the default, and put xep-0004 as old_0004
2010-07-19 13:36:28 -07:00
Lance Stout
d5e42ac0e7
Condensed all of the stanzaPlugin functions into a single registerStanzaPlugin function.
...
Updated plugins and tests to use new function.
2010-07-19 13:58:53 -04:00
Lance Stout
e6bec8681e
Added implementation for XEP-0128 Service Discovery Extensions.
...
Uses the alt_0004 plugin for jabber❌ data stanza objects.
2010-07-19 04:22:31 -04:00
Lance Stout
797e92a6a3
Fixed error in updateRoster when the name keyword parameter is left out.
...
The Roster stanza object builds item elements manually, and did not handle the
case where the name attribute is set to None, which would crash SleekXMPP.
2010-07-19 04:12:54 -04:00
Lance Stout
1ef112966b
Merge branch 'develop' of git://github.com/fritzy/SleekXMPP into develop
2010-07-19 04:02:28 -04:00
Nathan Fritz
078c71ed3f
accidental debugging return left in the code from last commit
2010-07-15 14:25:10 -07:00
Nathan Fritz
bae082f437
fixed updateRoster and delRosterItem
2010-07-15 11:53:35 -07:00
Lance Stout
48f0843ace
Added initial stanza object version of the xep_0004 plugin. Items/reported elements still need to be unit tested
2010-07-14 11:59:58 -04:00
Lance Stout
b1c997be1d
Reworked the Gmail notification plugin to use stanza objects and expose more information.
2010-07-11 22:01:51 -04:00
Lance Stout
d0cb400c54
Fixed tabs to please tab nanny.
2010-07-11 21:43:51 -04:00
Lance Stout
37ada49802
Fixed indentation to please tab nanny during unit tests.
2010-06-27 17:39:16 -04:00
Lance Stout
059cc9ccc4
Fixed several errors in xep_0033 plugin.
...
The method getAddresses was removing addresses by mistake.
Several instances of using self.attrib instead of self.xml.attrib.
2010-06-27 17:32:16 -04:00
Lance Stout
309c9e74eb
Fixed error in setState() method.
2010-06-27 16:34:48 -04:00
Lance Stout
6041cd1952
Fixed typo
2010-06-27 16:33:59 -04:00
Lance Stout
acb53ba371
Fixed tab and spacing issue to please the Tab Nanny during unit tests.
2010-06-27 10:14:21 -04:00
Lance Stout
646a609c0b
Added plugin and tests for XEP-0033, Extended Stanza Addresses.
...
XEP-0033 can be useful for interacting with XMPP<->Email gateways.
2010-06-22 23:22:50 -04:00
Lance Stout
8bb0f5e34c
Needed to use copy.deepcopy() to copy XML objects to make sure that the entire tree is copied.
2010-06-07 19:55:39 -04:00
Lance Stout
3c939313d2
Modified basexmpp.event() to pass a copy of the event data to each handler.
2010-06-06 23:19:07 -04:00
Lance Stout
9962f1a664
Added a __copy__ method to both ElementBase and StanzaBase.
...
Stanzas may now be copied using copy.copy(), which will be useful to prevent
stanza objects from being shared between event handlers.
2010-06-06 23:12:54 -04:00
Lance Stout
253de8518c
Modified xmlstream.py to pass a clean stanza object to each stream handler.
...
The previous version passed the same stanza object to each registered handler,
which can cause issues when the stanza object is modified by one handler. The next
handler receives the stanza with the modifications, not the original stanza.
2010-06-03 22:56:57 -04:00
Nathan Fritz
a38735cb2a
added very, very, very basic atom stanza
2010-06-02 15:54:44 -07:00
Lance Stout
e700a54d11
Return result of iq.send() for disco requests. Events are still triggered, but now the caller can determine if there was a timeout.
2010-06-02 15:59:10 -04:00
Lance Stout
6469cdb4ca
Merge branch 'develop' of git://github.com/fritzy/SleekXMPP into develop
2010-06-02 15:57:18 -04:00
Nathan Fritz
18e27d65ce
Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop
2010-06-01 21:45:15 -07:00
Nathan Fritz
0c39567f20
hack fix for session before bind
2010-06-01 21:44:54 -07:00
Nathan Fritz
f5491c901f
if binding and session are advertised in the same go, do session first
2010-06-01 21:40:52 -07:00
Lance stout
f5cae85af5
Make sure that the id parameter used in xmpp.makeIq is converted to a string.
...
Otherwise, SleekXMPP will barf on trying to serialize an integer when it expects text.
2010-06-01 10:52:37 -04:00
Lance stout
01e8040a07
Added additional parameter to xep_0030's getInfo and getItems methods.
...
By using dfrom, a server component may send disco requests using any of its JIDS.
2010-06-01 10:51:03 -04:00
Nathan Fritz
aa916c9ac8
included jobs plugin
2010-05-31 13:57:39 -07:00
Lance stout
332eea3b3b
Make sure that the node is alway set in disco responses.
2010-05-31 13:35:15 -04:00
Lance stout
109af1b1b6
Merge branch 'xep_0085' into develop
2010-05-31 13:31:11 -04:00
Lance stout
629f6e76a9
Added implementation and tests for XEP-0085 - Chat State Notifications.
...
Chat states may be set using:
msg['chat_state'].active()
msg['chat_state'].composing()
msg['chat_state'].gone()
msg['chat_state'].inactive()
msg['chat_state'].paused()
Checking a chat state can be done with either:
msg['chat_state'].getState()
msg['chat_state'].name
When a message with a chat state is receieved, the following events
may occur:
chatstate_active
chatstate_composing
chatstate_gone
chatstate_inactive
chatstate_paused
where the event data is the message stanza. Note that currently these
events are also triggered for messages sent by SleekXMPP, not just those
received.
2010-05-31 13:24:14 -04:00
Nathan Fritz
82a3918aa4
Scheduler waits too longer, and pubsubstate registration was backwards
2010-05-31 03:36:25 -07:00
Lance stout
cff3079a04
Added missing 'internal-server-error' condition to error stanza interface.
2010-05-31 05:30:50 +08:00
Lance stout
4f864a07f5
Touched up the style of creating an Iq stanza.
2010-05-31 05:30:49 +08:00
Lance stout
938066bd50
Added 'resource-constraint' to the list of error conditions.
2010-05-31 05:30:48 +08:00
Lance Stout
fd573880eb
Updated the XEP-0030 plugin to work with stanza objects instead of manipulating XML directly.
...
Four new events have been added:
disco_info - A disco#info result has been received
disco_info_request - A disco#info request has been received
disco_items - A disco#items result has been received
disco_items_request - A disco#items request has been received
For disco_info_request and disco_items_request two default handlers are registered. These handlers will only run if they are the only handler for these two events so that multiple responses are not returned and cause errors.
In your own handlers for these two events, you can call the default handlers to preserve the static node behaviour as so:
self.plugin['xep_0030'].handle_disco_info(iq, True)
The forwarded=True will disable the check for other registered handlers.
Agents can now dynamically respond to disco requests by using these events.
(cherry picked from commit 0fc3381492a8bd75e6a9858539a972334881d8ff)
2010-05-31 05:30:45 +08:00
Nathan Fritz
2f1ba368e2
control-c fixes
2010-05-28 19:19:28 -07:00
Nathan Fritz
3a28f9e5d2
added pubsub state stanzas and scheduled events
2010-05-27 04:58:57 -07:00
Nathan Fritz
0bda5fd3f2
adding scheduler
2010-05-26 18:32:28 -07:00
Nathan Fritz
fa92bc866b
fixed dns unicode problem
2010-05-26 11:37:01 -07:00
Nathan Fritz
f4bc9d9722
plugins now are checked for post_init having ran when process() is called
2010-05-26 10:51:51 -07:00
Hernan E Grecco
f18c790824
Fixed error registering a plugin. To add a feature to another plugin, it should look into xmpp.plugin dict
2010-05-26 06:49:01 +08:00
Nathan Fritz
f165b4b52b
Merge branch 'master' of git@github.com:fritzy/SleekXMPP
2010-05-24 19:34:49 -07:00
Nathan Fritz
7ebc006516
updated README, index fix for component
2010-05-24 19:33:24 -07:00
Lance Stout
5ca4ede5ac
Added a flag to registerPlugin to control calling the plugin's post_init method.
2010-05-25 07:28:48 +08:00
Lance Stout
35f4ef3452
Modified the return values for several methods so that they can be chained.
...
For example:
iq.reply().error().setPayload(something.xml).send()
2010-05-25 07:28:43 +08:00
Lance Stout
828cba875f
Added the error attribute 'code' to the Error object interface.
2010-05-25 07:28:43 +08:00
Nathan Fritz
3920ee3941
added plugin indexing to components
2010-05-24 14:27:13 -07:00
Lance Stout
c004f042f9
Added del_event_handler to remove handler functions for a given event.
...
All registered handlers for the event which use the given function will
be removed.
Using this method allows agents to reconfigure their behaviour on the fly
without needing to add extra state information to event handling functions.
2010-05-21 03:54:48 +08:00
Nathan Fritz
ae41c08fec
added test for unsolicided unavailable presence and fixed bug to make it pass
2010-05-12 18:07:20 -07:00
Nathan Fritz
223507f36f
fixed a rather large memory leak
2010-05-12 13:45:36 -07:00
Nathan Fritz
8515cef117
refactored presence tracking and fixed jidInRoom
2010-05-11 15:12:13 -07:00
Nathan Fritz
c4fa3ab654
pubsub test work
2010-04-23 01:34:28 -07:00
Nathan Fritz
602a6d8491
bugfixes and continuing to work on pubsub tests
2010-04-22 21:24:28 -07:00
Nathan Fritz
37b571c55a
added pubsub#event stanzas, multi-subtypes iterable stanzas, pubsub#event test coverage
2010-04-21 23:51:37 -07:00
Nathan Fritz
2a30e3fe0c
started work on pubsub#event stanzas
2010-04-20 00:53:13 -07:00
Nathan Fritz
212660091f
added pubsub tests and fixed match on iterator error
2010-04-19 01:03:27 -07:00
Nathan Fritz
35c157f9d8
changed_status event now happens with got_offline/got_online events
2010-04-18 21:16:47 -07:00
Nathan Fritz
80e7e0d0ee
adding tests, fixed stanzapath matching to match keys, fixed pubsub#owner stanzas
2010-04-14 01:23:17 -07:00
Nathan Fritz
2f9f649d98
bugfix for .disconnect() hanging
2010-04-13 19:48:35 -07:00
Nathan Fritz
fef511fd51
bugfix for .disconnect() hanging
2010-04-13 19:35:47 -07:00
Matthias Rieber
85c3d97d2a
fixed presence stanza. priority can be set.
2010-04-08 15:15:15 +08:00
Nathan Fritz
2384858f5e
fixed html-im stanza plugin
2010-04-07 23:56:44 -07:00
Nathan Fritz
dd77d2165d
added missing docstrings to tests and added deprecated warning to basexmpp.send when using xml mask waiting
2010-04-07 23:32:15 -07:00
Nathan Fritz
ecd5a172ed
replaced usage of deprecated iq result on send. Fixed old send result to use stanzas instead of ElementTree
2010-04-07 23:10:32 -07:00
Nathan Fritz
935ee4d14e
changed license to MIT
2010-03-26 14:32:16 -07:00
Nathan Fritz
bf5dc0f7b8
closed bug #8 -- double auth response
2010-03-26 14:02:10 -07:00
Nathan Fritz
ec97c351de
fixed bug #7 -- muc roster leak
2010-03-26 13:59:29 -07:00
Nathan Fritz
0fc9072e5d
fixed bug #16 Roster not updating
2010-03-26 13:55:03 -07:00
Nathan Fritz
0659ddeff0
added memleak test and attempted to fix presence leak
2010-03-26 13:27:13 -07:00
Nathan Fritz
7383f72367
stanzabase indent fix
2010-03-24 17:18:39 -07:00
Nathan Fritz
95d2614f21
fix for bug #18
2010-03-24 16:03:16 -07:00
Nathan Fritz
d4a490e3f0
fixed xmlstream filesocket issue
2010-03-15 10:19:45 -07:00
Nathan Fritz
c239fb1f90
added muc functionality
2010-03-04 09:47:42 -08:00
Nathan Fritz
8d5dbfa691
fixed some presence bugs
2010-02-27 02:02:08 +00:00
Nathan Fritz
e06cdec81a
fixed some unicode problems for 2.6
2010-02-25 01:12:15 +00:00