Compare commits
	
		
			2563 Commits
		
	
	
		
			1.0-Beta2
			...
			slix-1.8.3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 752f4258df | ||
|   | b60b1b985d | ||
|   | e93e43df66 | ||
|   | cfd1af88eb | ||
|   | 7a0fb97083 | ||
|   | 189bbcce19 | ||
|   | 79607e43f1 | ||
|   | e062181f84 | ||
|   | 97b0c7ffac | ||
|   | c2ece57dee | ||
|   | afdfa1ee57 | ||
|   | cba5dc7ddc | ||
|   | b3a6c7a4ea | ||
|   | 11e27d1d7d | ||
|   | fbdff30dda | ||
|   | 62701bc562 | ||
|   | b14918808c | ||
|   | f5cb9fe66b | ||
|   | 8bd53f7098 | ||
|   | c955cf1c66 | ||
|   | 6904ae63f5 | ||
|   | 1caada197a | ||
|   | 450aaa7f86 | ||
|   | d43c83800e | ||
|   | 14786abd34 | ||
|   | 1f47acaec1 | ||
|   | ed820bf551 | ||
|   | afedfa4b06 | ||
|   | 5998069203 | ||
|   | 356f16f5af | ||
|   | b8f301b26f | ||
|   | ffaeb31219 | ||
|   | 9560f39de7 | ||
|   | f7a38a028a | ||
|   | 65d70fe417 | ||
|   | 108a256537 | ||
|   | 78a5f79240 | ||
|   | fc63768cfc | ||
|   | 90e79af18a | ||
|   | 5e5a741994 | ||
|   | b44ab17c8f | ||
|   | afb5419b68 | ||
|   | a1a5f3984d | ||
|   | 8eb8769862 | ||
|   | 5ceb48bbcd | ||
|   | 916894ab7c | ||
|   | 2b45c22fcb | ||
|   | 566e7dc771 | ||
|   | aa492f905c | ||
|   | e1a240ec6c | ||
|   | 771839242c | ||
|   | 8bac744009 | ||
|   | 88d2f5dae4 | ||
|   | f7902d056e | ||
|   | 41afbb10df | ||
|   | aca4addb9c | ||
|   | 914ce40fd5 | ||
|   | 82ff68cfac | ||
|   | 28d44ecf74 | ||
|   | fcec6742cf | ||
|   | fedbb248ec | ||
|   | e8679fe32b | ||
|   | 06e4e480c1 | ||
|   | 82ee250295 | ||
|   | 53d38a8115 | ||
|   | 41d733e77f | ||
|   | 0fba8fd7f8 | ||
|   | b899baabd8 | ||
|   | acad41f3b7 | ||
|   | bde5aaaf3e | ||
|   | 7222ade0dd | ||
|   | 14a6c7801d | ||
|   | b52540e49f | ||
|   | c1aeab328b | ||
|   | 51644e301b | ||
|   | bc8af3cc61 | ||
|   | 3c08f471cf | ||
|   | 54b724c28b | ||
|   | abd699593f | ||
|   | 4202ed4cd5 | ||
|   | 60df4ef7aa | ||
|   | ad610c7ded | ||
|   | e8f45dedfe | ||
|   | 51a7cad7e1 | ||
|   | 389a358996 | ||
|   | 001e0c7060 | ||
|   | 5c4c867dee | ||
|   | b23b805dc5 | ||
|   | 11b555af20 | ||
|   | 06172ea896 | ||
|   | 815b7d5af7 | ||
|   | 28fe68c7d3 | ||
|   | d15a37e146 | ||
|   | 98dba869c7 | ||
|   | bcb4495c6d | ||
|   | 22b00c6073 | ||
|   | a50bffae89 | ||
|   | 92c3f69829 | ||
|   | 1e7d7bf8cb | ||
|   | 53f0971fd0 | ||
|   | e543e22e78 | ||
|   | 714f9aae0d | ||
|   | 9eb4462acc | ||
|   | d5502c9be7 | ||
|   | 33efbd4d7b | ||
|   | e344c0c303 | ||
|   | 9f38c8944d | ||
|   | e56930e0a1 | ||
|   | d733c54518 | ||
|   | 834ea8ed74 | ||
|   | 90662d148e | ||
|   | 237405e3a0 | ||
|   | 623d2cc27e | ||
|   | 6fb4617732 | ||
|   | 0e5a4726af | ||
|   | 8ba054dd53 | ||
|   | e1b135c667 | ||
|   | 4ca1de92b3 | ||
|   | 799a6a07a9 | ||
|   | be6dde17f1 | ||
|   | 14ae84d666 | ||
|   | 0cc1095ffc | ||
|   | 4cab1f62aa | ||
|   | 4d7786a830 | ||
|   | 8fccfc452b | ||
|   | ed514e6f73 | ||
|   | bac6a4b2bf | ||
|   | d4067275ff | ||
|   | 91d32bd066 | ||
|   | 22fa8bc4d9 | ||
|   | 5c54806578 | ||
|   | 42ca51e2b1 | ||
|   | de6c19c9cd | ||
|   | ca1cc73c79 | ||
|   | 9489586cb4 | ||
|   | 524c352da3 | ||
|   | 35eafadb44 | ||
|   | af958fd1fe | ||
|   | 0971bab30a | ||
|   | ed3bb878a7 | ||
|   | f2d7e86fc7 | ||
|   | fe1a325aa7 | ||
|   | ea7f7d8119 | ||
|   | 3516016f32 | ||
|   | a57aae792d | ||
|   | d6924fa7ad | ||
|   | 20e4c2c257 | ||
|   | df963542c1 | ||
|   | 7fc3c48cad | ||
|   | 7d4172808f | ||
|   | 95b034797f | ||
|   | f1b429199f | ||
|   | db48c8f4da | ||
|   | c07476e7de | ||
|   | 62e66e7d03 | ||
|   | 79f71ec0c1 | ||
|   | 451bee0892 | ||
|   | 00d38c1b29 | ||
|   | fed55d3dda | ||
|   | 4931e7e604 | ||
|   | 9f01d368c0 | ||
|   | ef06429941 | ||
|   | b1411d8ed7 | ||
|   | 889cfaa95b | ||
|   | b7f0160c0d | ||
|   | 528553be57 | ||
|   | 6f4ac7e7ce | ||
|   | aaab58d229 | ||
|   | 0b5f6cb0a8 | ||
|   | 027545eb71 | ||
|   | 290d84cd0f | ||
|   | f058e62680 | ||
|   | 104917163d | ||
|   | d184442337 | ||
|   | a4789acbfb | ||
|   | 3630c3d1cc | ||
|   | 41fc6a2e6b | ||
|   | 7f0febb929 | ||
|   | 44392fa2d9 | ||
|   | 7bb94afdc8 | ||
|   | 8828a5b99d | ||
|   | 0d52344a31 | ||
|   | 768089d457 | ||
|   | eee185ff90 | ||
|   | 99c6fc923a | ||
|   | d4e1b68534 | ||
|   | 3bb01de120 | ||
|   | 7057773d18 | ||
|   | 894131d772 | ||
|   | fcf666e3cb | ||
|   | 3e5943f458 | ||
|   | 7ddcc3428f | ||
|   | d77eb3a7e8 | ||
|   | 7f90fb594a | ||
|   | 1cf6393b61 | ||
|   | 7c86c43fc7 | ||
|   | 8a1f9bec56 | ||
|   | ad2673fd2c | ||
|   | 0115feaa31 | ||
|   | 3613cd5f14 | ||
|   | 644ebfe89f | ||
|   | e329eadbed | ||
|   | 4cdcc4d155 | ||
|   | 97a63b9f25 | ||
|   | dbbc47e02d | ||
|   | 7d2b245bb0 | ||
|   | e5f4794a36 | ||
|   | d7d4baefa3 | ||
|   | 1289cf575c | ||
|   | a568363a6c | ||
|   | eac5ad50a8 | ||
|   | e97f5ccb9c | ||
|   | 432a332636 | ||
|   | 30b1d27fc1 | ||
|   | cb83ebe32c | ||
|   | cd0845515a | ||
|   | ade1b010ed | ||
|   | 5ff46d6245 | ||
|   | 5a3ab2c5c1 | ||
|   | 27cf97458b | ||
|   | ae31f78b63 | ||
|   | c1a598c34b | ||
|   | 2314ee422a | ||
|   | 9b5f3d9df0 | ||
|   | 49416dacbc | ||
|   | e3027dabb2 | ||
|   | 10611525a0 | ||
|   | 2ff72d88fd | ||
|   | 9561a2a305 | ||
|   | 2dac77e680 | ||
|   | 0726b79345 | ||
|   | 9f1ded7f5f | ||
|   | bea2669907 | ||
|   | a288094b64 | ||
|   | f12b04bd0b | ||
|   | 059cb290d8 | ||
|   | 3cdec464a5 | ||
|   | 9927e69435 | ||
|   | 8e388df8e0 | ||
|   | 8eee559d39 | ||
|   | 2fed9f9ad2 | ||
|   | 9947d3db85 | ||
|   | ab87b25030 | ||
|   | e24e2f58d4 | ||
|   | 4960cffcb4 | ||
|   | f0aec1614f | ||
|   | 504067d5a8 | ||
|   | 0b3233a6e8 | ||
|   | f7ecce42ac | ||
|   | d17967f58e | ||
|   | 13de36baa1 | ||
|   | 7772e26a8c | ||
|   | 0b6326e1cc | ||
|   | d51c4e307d | ||
|   | 8da5310ea6 | ||
|   | 5f9ab45a5e | ||
|   | 6d241be789 | ||
|   | babd98dac7 | ||
|   | b8b57960f1 | ||
|   | 5764ef7ff7 | ||
|   | 7381460556 | ||
|   | 8b7648502b | ||
|   | 17a663b0fd | ||
|   | 9270d1e538 | ||
|   | 35c68738a7 | ||
|   | 751987e2b0 | ||
|   | 35a9526a4c | ||
|   | 7e3e056e6b | ||
|   | 94700de7a3 | ||
|   | 2f0660c6ff | ||
|   | ba7e5e417f | ||
|   | 2ba89727a6 | ||
|   | a397cc3a7d | ||
|   | 626bf5ff8a | ||
|   | cef7b5cf05 | ||
|   | 8d92027d01 | ||
|   | dcab3de1b4 | ||
|   | 3453ebf0c5 | ||
|   | 699a2620b7 | ||
|   | 5d7918b122 | ||
|   | 3eeef6b4b6 | ||
|   | f50dfd6644 | ||
|   | bbcc977d1d | ||
|   | 3668e79fbc | ||
|   | febfb6d6ca | ||
|   | 3b43d8eb7f | ||
|   | 6520376977 | ||
|   | 8b5776faec | ||
|   | ea2d851a93 | ||
|   | a7d690813c | ||
|   | 02262679e9 | ||
|   | 654178b960 | ||
|   | 02e0afbf0f | ||
|   | ace82c9bc4 | ||
|   | 53dc9847e2 | ||
|   | bfbc433c8d | ||
|   | ba7c7f4bb9 | ||
|   | 7cde0db4aa | ||
|   | 1c4e06d510 | ||
|   | 80ee551acd | ||
|   | f0601cdb84 | ||
|   | 0978f66736 | ||
|   | 679432591e | ||
|   | bc04da256a | ||
|   | b9e479f213 | ||
|   | 648ca16b4c | ||
|   | 622cfd4ed7 | ||
|   | d850b9a9f7 | ||
|   | fb74e46c35 | ||
|   | 603cbccddd | ||
|   | bbd351e9c1 | ||
|   | cff4588499 | ||
|   | 89601289fe | ||
|   | 6c3f26161e | ||
|   | d6ab3124ce | ||
|   | cb8d2edc8d | ||
|   | 69e04d7d2e | ||
|   | ace5aeb80e | ||
|   | 712ac671e1 | ||
|   | 99c2e5cafd | ||
|   | 8e612bf229 | ||
|   | 7860edefe9 | ||
|   | fbb8993244 | ||
|   | 77c8caf205 | ||
|   | c82e1a4039 | ||
|   | 69b265b975 | ||
|   | 917cb555d5 | ||
|   | d3fb993b29 | ||
|   | ccbba89cbd | ||
|   | d3063a0368 | ||
|   | 40196aefeb | ||
|   | 782dbdea65 | ||
|   | 650e1a2ed5 | ||
|   | c486c0e821 | ||
|   | f8c39bae60 | ||
|   | d9975aa4c0 | ||
|   | 17f08929f9 | ||
|   | d8dbfaa37e | ||
|   | cb3d9dd41c | ||
|   | e6e57f6e8c | ||
|   | 64299d6a54 | ||
|   | f6761e513d | ||
|   | f2878e1764 | ||
|   | 2585764b46 | ||
|   | a16792e990 | ||
|   | 6448d09c30 | ||
|   | a85e5225f9 | ||
|   | 3c19f69c25 | ||
|   | 846c42e386 | ||
|   | 1f97462391 | ||
|   | c7d87a27e1 | ||
|   | a8113dca49 | ||
|   | eda692d1c6 | ||
|   | 7932a03378 | ||
|   | e9b07e32bb | ||
|   | 8689212602 | ||
|   | 68649d0089 | ||
|   | 473575d276 | ||
|   | ab9b7115de | ||
|   | 58f4ccf5c7 | ||
|   | f41fd7cce4 | ||
|   | 04a3f609e2 | ||
|   | 119f59ecbe | ||
|   | ee671dfb29 | ||
|   | d954283fb6 | ||
|   | ed2c03fade | ||
|   | a381267d21 | ||
|   | 1e1576473b | ||
|   | dbcd0c6050 | ||
|   | f93af07882 | ||
|   | 3f739e513b | ||
|   | fc7d7b4eb7 | ||
|   | 3642e2c7f4 | ||
|   | f15311bda8 | ||
|   | b2dfb4c1f3 | ||
|   | d227579d56 | ||
|   | 571774edb4 | ||
|   | 456dff0b61 | ||
|   | a0b6bfcefe | ||
|   | 9fbd40578c | ||
|   | 8700f8d162 | ||
|   | efdcd396d8 | ||
|   | 0eed84d0b2 | ||
|   | 370abb1d98 | ||
|   | 51866f0d46 | ||
|   | 9390794401 | ||
|   | 70b5081018 | ||
|   | 4cb679ae2a | ||
|   | ab280b44cc | ||
|   | 0193667ace | ||
|   | 9cb5131f1c | ||
|   | 0bf1b96859 | ||
|   | c6a0da63ae | ||
|   | 3f10dfe138 | ||
|   | 49577e6c84 | ||
|   | 04dcc8628d | ||
|   | 81ebf4e8ba | ||
|   | b784b68bcd | ||
|   | f38c61a6b9 | ||
|   | 2631b25e3e | ||
|   | 2b11d81b86 | ||
|   | ca465032e7 | ||
|   | 6369ee0e5f | ||
|   | 1e23167ce4 | ||
|   | cccc1253aa | ||
|   | fb31e9c1fd | ||
|   | b4dd1e0132 | ||
|   | 525855c17b | ||
|   | ce0d615786 | ||
|   | 1e08c90018 | ||
|   | c05cafc963 | ||
|   | 166b265de0 | ||
|   | d91eea3a3a | ||
|   | 569b9c5ee2 | ||
|   | a3ca4c11c3 | ||
|   | 489e419e38 | ||
|   | 0b2594aa2c | ||
|   | 1b3a00c894 | ||
|   | ef201b6ae9 | ||
|   | 69af0fc1dc | ||
|   | 7ecdc7fced | ||
|   | 39c624f958 | ||
|   | 4c9591d5c9 | ||
|   | 31841ef3bf | ||
|   | 6773dc4409 | ||
|   | 71888b24a6 | ||
|   | 3b00c56bdc | ||
|   | bf17c32705 | ||
|   | bc58c5a045 | ||
|   | d6be776640 | ||
|   | 878870255f | ||
|   | 1e2d15b8f5 | ||
|   | 155fc58a22 | ||
|   | 95d40a3ca3 | ||
|   | 010bf6dd70 | ||
|   | 9d61655215 | ||
|   | f768a980d8 | ||
|   | d371828041 | ||
|   | b63dc3bc8c | ||
|   | 8258202681 | ||
|   | c892fba778 | ||
|   | 758dfb930c | ||
|   | 91c3d64ca2 | ||
|   | 340b0f0f16 | ||
|   | a1ef32a122 | ||
|   | ef6dab81b9 | ||
|   | b3e2a8eb91 | ||
|   | 11ac5867ff | ||
|   | a61f2248fd | ||
|   | 7a4ea4c1ae | ||
|   | c0acb7e34f | ||
|   | c89a21463f | ||
|   | 1836b2b887 | ||
|   | 12e3c9988d | ||
|   | b8f368acf3 | ||
|   | bcd8cf085f | ||
|   | cd4c9f82fc | ||
|   | 73cc2a4008 | ||
|   | aa5d422f38 | ||
|   | 684247b375 | ||
|   | 6db5bb65d3 | ||
|   | cc96e4a6e7 | ||
|   | bb3c61f6e0 | ||
|   | 2c764b7c7d | ||
|   | 77587a4843 | ||
|   | 2cb2fcefbf | ||
|   | d3dc09ce94 | ||
|   | e6d1badb81 | ||
|   | 3d1e539d2b | ||
|   | 05749c4969 | ||
|   | c2b09c5c83 | ||
|   | fdb0749cd1 | ||
|   | 2c523d1a3b | ||
|   | 41dea80d94 | ||
|   | c4ca15a040 | ||
|   | 54d556280a | ||
|   | c63e9a32b9 | ||
|   | 58c3579f74 | ||
|   | e592a46c99 | ||
|   | fa6fe5e851 | ||
|   | 6c52843d71 | ||
|   | d660e447ee | ||
|   | 70cf35e9bf | ||
|   | 5c5780503a | ||
|   | 203628d707 | ||
|   | 922ad8d9ea | ||
|   | 8eb756d55c | ||
|   | 4da1c8573e | ||
|   | 380f0e4e38 | ||
|   | 56f44dc47d | ||
|   | fa7e33110f | ||
|   | 7033bc0061 | ||
|   | 98b9a6f9e3 | ||
|   | de548fbcce | ||
|   | af46efc12a | ||
|   | 88132def60 | ||
|   | 26db6175f2 | ||
|   | 4d5586f4a1 | ||
|   | 4eb2bb7da8 | ||
|   | 15bf6bc827 | ||
|   | 3d1615ea54 | ||
|   | 350f85a8d1 | ||
|   | b62ea49de3 | ||
|   | bdc12c00c6 | ||
|   | 51cc459bd0 | ||
|   | 54b9721f3a | ||
|   | c20b72376e | ||
|   | b27510f05b | ||
|   | 45a14871ee | ||
|   | 6ff5162fb4 | ||
|   | c3a6352a6b | ||
|   | 086dc894d1 | ||
|   | a245ba54bd | ||
|   | c86a6ad299 | ||
|   | 7e4b664742 | ||
|   | ddc3974d1b | ||
|   | 9b5ab741c8 | ||
|   | a9a7bdc6c3 | ||
|   | fe68d19f91 | ||
|   | fe46643f2f | ||
|   | 985505297c | ||
|   | 0b38eeaa4a | ||
|   | 4dbabfa211 | ||
|   | 57c8196d9c | ||
|   | f90713cb9e | ||
|   | 9b9ace97f4 | ||
|   | d497f94e6f | ||
|   | cde9ac123d | ||
|   | c8d1eaa2dc | ||
|   | 200e1a6128 | ||
|   | 9c7f3d59d8 | ||
|   | 145bb7a36e | ||
|   | 67fb5fe4c3 | ||
|   | 605a58a864 | ||
|   | a3d343b253 | ||
|   | d58f59980f | ||
|   | 9e8ac6b769 | ||
|   | 3b3eed544e | ||
|   | 03ee9bc4cc | ||
|   | 4fad5c62ce | ||
|   | 5ccae3ce2a | ||
|   | a104e3722e | ||
|   | bb61f0f39d | ||
|   | a29ce4b547 | ||
|   | 07b1a4c1cd | ||
|   | cec34686fc | ||
|   | 03148ed92e | ||
|   | 6f4e9b485f | ||
|   | 28123083f7 | ||
|   | ef961392be | ||
|   | 2e31de3f45 | ||
|   | 8a52730f11 | ||
|   | 04df50feac | ||
|   | c7bd224182 | ||
|   | bac1e9b44a | ||
|   | b62f0e90c1 | ||
|   | 9ace053992 | ||
|   | c7cd2fcf33 | ||
|   | e57289358f | ||
|   | 4aa35c11ab | ||
|   | d6f7d32bbe | ||
|   | 0dd32be7f5 | ||
|   | bf69698af1 | ||
|   | aa732b3c94 | ||
|   | d076cef023 | ||
|   | f884b67b8b | ||
|   | 0d3116dbdf | ||
|   | f1ab9ab964 | ||
|   | e520ab1f5e | ||
|   | 3dcb96d9d8 | ||
|   | 0a7a4c3abe | ||
|   | a4bbc404ed | ||
|   | 1314e70460 | ||
|   | f84bfce5f3 | ||
|   | c3fbc6cb80 | ||
|   | 355d789061 | ||
|   | 47ed67c04e | ||
|   | 34567f450a | ||
|   | 9126bd8392 | ||
|   | 02202f7cd8 | ||
|   | 2add94f5b0 | ||
|   | 5fc757f200 | ||
|   | 98108d0445 | ||
|   | 76f4fb49d6 | ||
|   | 5be46a5e68 | ||
|   | ab9040c30e | ||
|   | a16e2a0f6c | ||
|   | 842aa3be8f | ||
|   | 6c28b49e7f | ||
|   | 621255027d | ||
|   | efe316dc8c | ||
|   | e9a87a0b77 | ||
|   | 85c9967b9c | ||
|   | deb6d4f176 | ||
|   | 7218bb4499 | ||
|   | d85efec7a2 | ||
|   | 9fd8684c5a | ||
|   | fc77fb7648 | ||
|   | c8d802a6c7 | ||
|   | 3529a36974 | ||
|   | fe6458303a | ||
|   | b15d4aa0fa | ||
|   | 01371041a3 | ||
|   | 9c4e3956a7 | ||
|   | cd5b47f76c | ||
|   | 115c234527 | ||
|   | a0f5cb6e09 | ||
|   | 110bbf8afc | ||
|   | d97efa0bd8 | ||
|   | 672f1b28f6 | ||
|   | 27d3ae958b | ||
|   | a32794ec35 | ||
|   | aa11ba463e | ||
|   | a83c00e933 | ||
|   | 31f6ef6814 | ||
|   | 9b3874b5df | ||
|   | 0139fb291e | ||
|   | e58988484a | ||
|   | 5d5e5cda19 | ||
|   | 11f707987d | ||
|   | db13794e0f | ||
|   | 37bc1bb9b3 | ||
|   | 9be30e5291 | ||
|   | 9fe20a4056 | ||
|   | 3253d34c0a | ||
|   | fef575ee1a | ||
|   | 540ff89427 | ||
|   | dd8ac8fc87 | ||
|   | 2249d878d1 | ||
|   | 89fa9dc1dd | ||
|   | d7729e8683 | ||
|   | d618f55dea | ||
|   | b0e688eb35 | ||
|   | 0e7176483b | ||
|   | f35569a2c1 | ||
|   | bec6f7c8f3 | ||
|   | 027ce2434d | ||
|   | d57fbb57a2 | ||
|   | 85cd7a9166 | ||
|   | d50d996c68 | ||
|   | 371ad20ca7 | ||
|   | 5f49df6b56 | ||
|   | b50bfb2f34 | ||
|   | b29bb30eb7 | ||
|   | 4435c81d77 | ||
|   | 2638ba2744 | ||
|   | dbc9758311 | ||
|   | 47968963b1 | ||
|   | 4e8800f954 | ||
|   | 40053518aa | ||
|   | 1ee0f72ead | ||
|   | 4bb81228ae | ||
|   | 60a7a5b8df | ||
|   | 946674f424 | ||
|   | 412a9169bd | ||
|   | 72b355de8c | ||
|   | af246dcfe1 | ||
|   | 9612e518fb | ||
|   | fde8264191 | ||
|   | 1cdc656208 | ||
|   | 0042108a67 | ||
|   | 704161a285 | ||
|   | 6b1b58a339 | ||
|   | 4f96e5fa75 | ||
|   | bcb90a653e | ||
|   | 7e435b703d | ||
|   | 2dda6b80d4 | ||
|   | 5629e44710 | ||
|   | 6a06881d8b | ||
|   | 2b666eb1de | ||
|   | 400e7a3903 | ||
|   | fbab3ad214 | ||
|   | 628b357b06 | ||
|   | 88260cc240 | ||
|   | e9f2f503b8 | ||
|   | 696a72247b | ||
|   | 05d76e4b1d | ||
|   | d52d4fbbbe | ||
|   | e53c0fcb30 | ||
|   | 97d68c5196 | ||
|   | b42fafabb4 | ||
|   | 3a44ec8f15 | ||
|   | 93f385562f | ||
|   | 9cab02438b | ||
|   | 74ed50e626 | ||
|   | 9d378c611c | ||
|   | d85d8f4479 | ||
|   | fb75f7cda9 | ||
|   | 41419a2161 | ||
|   | 7cd73b594e | ||
|   | 15c6b775ff | ||
|   | 4b482477e2 | ||
|   | f7e4caadfe | ||
|   | 5f25b0b6a0 | ||
|   | d228bc42ea | ||
|   | ecdc44a601 | ||
|   | 33370e42f1 | ||
|   | 4699861925 | ||
|   | 2d228bdb56 | ||
|   | 570e653ac2 | ||
|   | 282a481059 | ||
|   | f386db380b | ||
|   | 7b87d98fff | ||
|   | 8779d40602 | ||
|   | f0b21c42d5 | ||
|   | e241d4e3c7 | ||
|   | bd22a41a78 | ||
|   | a29a29227a | ||
|   | d4d542b741 | ||
|   | dc4936a6d3 | ||
|   | 897610d819 | ||
|   | d33366badd | ||
|   | 809c500002 | ||
|   | dda4e18b81 | ||
|   | 8c09d932c8 | ||
|   | 31f5e84671 | ||
|   | ad0dc33df9 | ||
|   | 7c3b3827b4 | ||
|   | 9f6fa65139 | ||
|   | 35fa33e3c2 | ||
|   | 86a2f280d2 | ||
|   | 490f15b8fc | ||
|   | 62661ee04f | ||
|   | 37d1f2a6b0 | ||
|   | 20107ad516 | ||
|   | 7738a01311 | ||
|   | a9abed6151 | ||
|   | 0f690d4005 | ||
|   | 59d4420739 | ||
|   | a88f317bbf | ||
|   | 2fc2a88970 | ||
|   | c55e9279ac | ||
|   | 3502480384 | ||
|   | caae713dd6 | ||
|   | df0198abfe | ||
|   | c20f4bf5fa | ||
|   | 9740e93aeb | ||
|   | e7872aaa29 | ||
|   | 037706552c | ||
|   | b881c6729b | ||
|   | 66909aafb3 | ||
|   | cdfb5d56fc | ||
|   | d146ce9fb6 | ||
|   | cb59d60034 | ||
|   | 1d9fe3553e | ||
|   | fe66c022ad | ||
|   | 92ea131721 | ||
|   | dd7f67d10d | ||
|   | c1562b76b2 | ||
|   | 32839f5252 | ||
|   | 80b7cf6ff8 | ||
|   | 128cc2eeb4 | ||
|   | 037912ee89 | ||
|   | 769bc6d3bf | ||
|   | 084d6cb5d9 | ||
|   | 5184713356 | ||
|   | 2f1225bad3 | ||
|   | 841f5a5a5b | ||
|   | 0c6de5e972 | ||
|   | 81dc61c55c | ||
|   | bd63b1ce70 | ||
|   | 29faf114a7 | ||
|   | 94ea8151d4 | ||
|   | 66500ef5fb | ||
|   | 979396bb1e | ||
|   | e177726387 | ||
|   | 20e88fda50 | ||
|   | f252be9b6d | ||
|   | ee98159586 | ||
|   | c6443af29a | ||
|   | d73f56a7af | ||
|   | 7c7f4308c5 | ||
|   | eab8c265f4 | ||
|   | 80b9cd43b1 | ||
|   | af1f9e08ad | ||
|   | e3fd0af9c8 | ||
|   | 27e23672c1 | ||
|   | b38e229359 | ||
|   | 9a563f1425 | ||
|   | 8b6f5953a7 | ||
|   | 2d2a80c73d | ||
|   | 4dfdd5d8e3 | ||
|   | 1994ed3025 | ||
|   | aaa45846d3 | ||
|   | d7ffcb54eb | ||
|   | c33749e57a | ||
|   | e4107d8b4d | ||
|   | da5cb72d3a | ||
|   | c372bd5168 | ||
|   | cabf623131 | ||
|   | ffc240d5b6 | ||
|   | cc4522d9cd | ||
|   | 5bf69dca76 | ||
|   | 59dad12820 | ||
|   | 007c836296 | ||
|   | 3721bf9f6b | ||
|   | 802949eba8 | ||
|   | 24f35e433f | ||
|   | 22664ee7b8 | ||
|   | 6476cfcde5 | ||
|   | 5bb347e884 | ||
|   | eb1251b919 | ||
|   | 820144c40c | ||
|   | 6034df0a78 | ||
|   | df4012e66d | ||
|   | c372f3071a | ||
|   | 829c8b27b6 | ||
|   | fb3ac78bf9 | ||
|   | ffd9436e5c | ||
|   | bbb1344d79 | ||
|   | 457785b286 | ||
|   | 4847f834bd | ||
|   | 53191ff1cf | ||
|   | ffdb6ffd69 | ||
|   | 7560db856b | ||
|   | 63d245ac48 | ||
|   | 7ddd37be29 | ||
|   | a4d3a4a25e | ||
|   | 58bd07628b | ||
|   | 3569038493 | ||
|   | 20c4ff823a | ||
|   | 8a7448a5a1 | ||
|   | d23d8f901e | ||
|   | 391f12eeab | ||
|   | d008988843 | ||
|   | dcacc7d7d5 | ||
|   | c4285961df | ||
|   | 1038f656eb | ||
|   | 8b06aa1146 | ||
|   | 3c7236fe73 | ||
|   | 36824379c3 | ||
|   | a0a37c19ff | ||
|   | 1b5fe57a5e | ||
|   | 5da31db0c7 | ||
|   | f8cea760b6 | ||
|   | 5ef01ecdd1 | ||
|   | 62aafe0ee7 | ||
|   | cf3f36ac52 | ||
|   | b88d2ecd77 | ||
|   | e691850a2b | ||
|   | d4bff8dee6 | ||
|   | 187c350805 | ||
|   | 96d1c26f90 | ||
|   | 46a90749f8 | ||
|   | 0c63a4bbda | ||
|   | e4696e0471 | ||
|   | 8217dc5239 | ||
|   | 2586abc0d3 | ||
|   | 28f84ab3d9 | ||
|   | 813b45aded | ||
|   | 3a9b45e4f2 | ||
|   | b8e091233e | ||
|   | 0edeefd977 | ||
|   | 6ba53cf1ff | ||
|   | d7758eb7f4 | ||
|   | 125336aeee | ||
|   | 7cd1cf32ae | ||
|   | d099e353a4 | ||
|   | 1e4a301c6e | ||
|   | f53b12d227 | ||
|   | e2562dcccf | ||
|   | 7b69ae3738 | ||
|   | ab6df235d7 | ||
|   | 52cd8f4b22 | ||
|   | e28318c271 | ||
|   | 39ee833c29 | ||
|   | 9019e2bc71 | ||
|   | 9208bf5bf1 | ||
|   | f0f1698e46 | ||
|   | eccd7f1c98 | ||
|   | 2587d82af8 | ||
|   | 7ea121b115 | ||
|   | bb81fbbdfc | ||
|   | 1a00a08b7d | ||
|   | 90ea2a3411 | ||
|   | 8fc6814b6d | ||
|   | ffced0ed9a | ||
|   | e7248d9af9 | ||
|   | 6b1a04f59d | ||
|   | 4905407092 | ||
|   | bd6ec10939 | ||
|   | e15e6735f1 | ||
|   | 67afd6a462 | ||
|   | 2e2b97c53b | ||
|   | a35df7fe1f | ||
|   | fbc8562779 | ||
|   | b549db959a | ||
|   | d5188ac68a | ||
|   | ada9444bf8 | ||
|   | acc52fd935 | ||
|   | 1100ff1feb | ||
|   | c17fc3a869 | ||
|   | 4dba697075 | ||
|   | e42d651d7e | ||
|   | 4305eddb4f | ||
|   | c2dc44cfd1 | ||
|   | 5fc14de32e | ||
|   | d245558fd5 | ||
|   | 9d45370e8a | ||
|   | cc1cc61d36 | ||
|   | c6740a4908 | ||
|   | 55114bcffe | ||
|   | 4fa5dedc47 | ||
|   | 5525ef2285 | ||
|   | a7ac969215 | ||
|   | 329cb5a9f8 | ||
|   | d9b47b33f5 | ||
|   | 3582ac9941 | ||
|   | 2a127a57a7 | ||
|   | 7059400020 | ||
|   | 0b14ef82d4 | ||
|   | 83953af53d | ||
|   | 110cf25c6d | ||
|   | f2bf6072ec | ||
|   | 5f9abe2e0e | ||
|   | ea65b672e7 | ||
|   | 93c705fb31 | ||
|   | 0724f623bb | ||
|   | 82e549c0e9 | ||
|   | 1aa15792b4 | ||
|   | ffb2b6bc04 | ||
|   | 27f98bf22c | ||
|   | 3978078710 | ||
|   | 00a0698720 | ||
|   | 4a24f58be2 | ||
|   | da14ce16ec | ||
|   | 18e5abb9dd | ||
|   | 1a75b76916 | ||
|   | 53b56899a0 | ||
|   | 804b23d390 | ||
|   | 04eaf52b1d | ||
|   | dc7fef1064 | ||
|   | 488c433555 | ||
|   | 9c5dd024b1 | ||
|   | 6e61adf3db | ||
|   | 041bd63864 | ||
|   | a366482551 | ||
|   | a721084f6e | ||
|   | 1b4187fa56 | ||
|   | cf7a60705e | ||
|   | 349b05b9b7 | ||
|   | 9fbacf377a | ||
|   | 2da9e35cbc | ||
|   | 8adc8fa2ba | ||
|   | 9efa909dfc | ||
|   | 7f21fdbe26 | ||
|   | f9c7fa92ea | ||
|   | e75a160d52 | ||
|   | 170bd51387 | ||
|   | abcec1e2d3 | ||
|   | eeab646bfa | ||
|   | 2c69144189 | ||
|   | f54ebec654 | ||
|   | 2ce931cb7a | ||
|   | 84eddd2ed2 | ||
|   | 2042e1a4d5 | ||
|   | be14f0cc52 | ||
|   | edd9199be8 | ||
|   | bb094cc649 | ||
|   | dbaa6ed952 | ||
|   | 8c94d894ab | ||
|   | ffc7eac4dc | ||
|   | 555fd6d926 | ||
|   | c024ac8f0b | ||
|   | f00177c0cf | ||
|   | d0ad25745a | ||
|   | 55be23a6da | ||
|   | 75ba283572 | ||
|   | f7164d35d2 | ||
|   | 4afbb0322b | ||
|   | 7bce1ecc8a | ||
|   | bbce16d526 | ||
|   | c29fc39ef1 | ||
|   | 8335c08782 | ||
|   | 224d7ae133 | ||
|   | 04bff00171 | ||
|   | f3e31baf04 | ||
|   | 9b25a7cf77 | ||
|   | 7a908ac07b | ||
|   | 92901637ec | ||
|   | 3590b663ed | ||
|   | a33bde9cc3 | ||
|   | ac50fdccfc | ||
|   | a0c6bf15e9 | ||
|   | a2852eb249 | ||
|   | f1e6d6b0a9 | ||
|   | 116a33ba51 | ||
|   | a8ac115310 | ||
|   | 1345b7c1d0 | ||
|   | d60a652259 | ||
|   | 61a7cecb31 | ||
|   | 192b7e0349 | ||
|   | 80b60fc048 | ||
|   | b8d7b9520c | ||
|   | 0305ce66b7 | ||
|   | 474405ab90 | ||
|   | 4415d3be1a | ||
|   | 058c530787 | ||
|   | 766d0dfd40 | ||
|   | ac31913a65 | ||
|   | d34ddf33db | ||
|   | eb4e09b0ca | ||
|   | ce085bf4f4 | ||
|   | 990113f8e7 | ||
|   | aa022204ee | ||
|   | c1f23b566b | ||
|   | 45f7cb8bda | ||
|   | bdb1f66ac9 | ||
|   | 842157a6cc | ||
|   | a63cc01482 | ||
|   | 1bbb6f3ff9 | ||
|   | 93894247a4 | ||
|   | 16bb5e2537 | ||
|   | d19a6e05b2 | ||
|   | 86e85f9835 | ||
|   | cc145d20b0 | ||
|   | 881d9040c4 | ||
|   | 1e77ea0944 | ||
|   | 140f0885b2 | ||
|   | 83f71a6610 | ||
|   | 271343a32d | ||
|   | 48857b0030 | ||
|   | 1fe7f5f4e6 | ||
|   | d5b1904ebb | ||
|   | b6b0e82dec | ||
|   | 632b7b4afe | ||
|   | 81b7b2c190 | ||
|   | 460de7d301 | ||
|   | 69022c6db7 | ||
|   | 0ef3fa2703 | ||
|   | 8da269de88 | ||
|   | 93ce318259 | ||
|   | 997928de91 | ||
|   | 83d00a5913 | ||
|   | bf5d7c83af | ||
|   | c66a4d4097 | ||
|   | e112e86475 | ||
|   | e034b31d6b | ||
|   | 18a4978456 | ||
|   | 17464b10a4 | ||
|   | 6fb3ecd414 | ||
|   | c214e4f037 | ||
|   | 2ee05d9616 | ||
|   | f795ac02e3 | ||
|   | 6e8235544c | ||
|   | 6e35948276 | ||
|   | 4da870fd19 | ||
|   | cd7ff685fb | ||
|   | 1e4944d47e | ||
|   | e68135f59f | ||
|   | 6408c5a747 | ||
|   | 115fe954ac | ||
|   | 3d243f7da5 | ||
|   | ea5615f236 | ||
|   | 69da1c1d7c | ||
|   | e85fa4203e | ||
|   | 506ca69917 | ||
|   | 8ac0ecdf40 | ||
|   | dbd8115557 | ||
|   | 74b4ea20bf | ||
|   | 11fbaa4241 | ||
|   | 8fd0d7c993 | ||
|   | 1450d36377 | ||
|   | 06358d0665 | ||
|   | 2b3b86e281 | ||
|   | 92e4bc752a | ||
|   | ffb2e05f21 | ||
|   | 1e2665df19 | ||
|   | 4d063e287e | ||
|   | 44f02fb3ab | ||
|   | f6b3a0c6cf | ||
|   | 8b36e918e8 | ||
|   | 9044807121 | ||
|   | 24264d3a07 | ||
|   | 8bc70264ef | ||
|   | 957c635fb7 | ||
|   | 4027927c6e | ||
|   | c16b862200 | ||
|   | a96f608469 | ||
|   | e1f25604ec | ||
|   | 0fe057b5c3 | ||
|   | be76dda21d | ||
|   | ecd124dd06 | ||
|   | 4a8951c4ee | ||
|   | 8afba7de85 | ||
|   | 1ce42d3a2f | ||
|   | 2f4d811db4 | ||
|   | 61127f521d | ||
|   | 62eefdbd6a | ||
|   | 225e07eb64 | ||
|   | 1207c81ab5 | ||
|   | 565da65ccd | ||
|   | 47fbd4cead | ||
|   | 1b9b4199e8 | ||
|   | b5930ca958 | ||
|   | 063e73c0d2 | ||
|   | 423974f90d | ||
|   | d261318e1a | ||
|   | d33cc00fe9 | ||
|   | 5fcf08a415 | ||
|   | 3c06568ed5 | ||
|   | 27582f6fd2 | ||
|   | e328ff4833 | ||
|   | 68e35e631a | ||
|   | ad8c76602b | ||
|   | b5c98ba99e | ||
|   | 711f8dc6af | ||
|   | 5b41fb98de | ||
|   | 6da625dbdb | ||
|   | e862c47b8b | ||
|   | 4a8fe56470 | ||
|   | 7c3e61950d | ||
|   | 61f89eef2e | ||
|   | 06de587ed2 | ||
|   | 49beb3ac08 | ||
|   | 403462fdb8 | ||
|   | f22d8e67b4 | ||
|   | e1c944d723 | ||
|   | 83442b9849 | ||
|   | edd6ffeb01 | ||
|   | 5a8881000c | ||
|   | 70839368c1 | ||
|   | 9d8a2a1a7a | ||
|   | 17174016ec | ||
|   | ed37174a2b | ||
|   | 8660148960 | ||
|   | 67ca2dd0f4 | ||
|   | 882f984b26 | ||
|   | 6175cbcd99 | ||
|   | 476d76a533 | ||
|   | df68bb4896 | ||
|   | 815e647c97 | ||
|   | ad70ffba59 | ||
|   | 0e95015410 | ||
|   | 35f33f1614 | ||
|   | c9f8ddff65 | ||
|   | f5ae98aaf1 | ||
|   | b92dac72f3 | ||
|   | 073e85381a | ||
|   | afc939708f | ||
|   | aabec8b993 | ||
|   | e5e2fbb16b | ||
|   | 3dd379cdf1 | ||
|   | a20582aba4 | ||
|   | 09cdbf1b76 | ||
|   | ca306e7cec | ||
|   | 1bf34f7fe6 | ||
|   | 4144d60017 | ||
|   | 7265682a4d | ||
|   | 08c62a6bf1 | ||
|   | d61f1cd035 | ||
|   | 1063feb33b | ||
|   | 79f3c1ac8f | ||
|   | cdb9a6ff7e | ||
|   | a59148dfeb | ||
|   | a5c03b763a | ||
|   | 3670d82f1c | ||
|   | 07e46837d9 | ||
|   | fa21e262c7 | ||
|   | 93934c7992 | ||
|   | 73edd42774 | ||
|   | ab03ad54aa | ||
|   | 2e571ac950 | ||
|   | 6c15d65107 | ||
|   | e5af0597a6 | ||
|   | 74117453b5 | ||
|   | 5611b30022 | ||
|   | ede9dcd18f | ||
|   | d3b56a5d94 | ||
|   | f5d4334963 | ||
|   | 5c769632e8 | ||
|   | 373505f483 | ||
|   | a2cad40f91 | ||
|   | 4328762076 | ||
|   | c2f6f07776 | ||
|   | 5ab77c7452 | ||
|   | e94a73553d | ||
|   | 577fd71472 | ||
|   | e5582694c0 | ||
|   | 768136e493 | ||
|   | 753cb3580e | ||
|   | 60b050b82a | ||
|   | ad91a8cd5e | ||
|   | 02f79fc94b | ||
|   | 230a73fad2 | ||
|   | d94dd486fe | ||
|   | 6ecc39b816 | ||
|   | 9c240df9db | ||
|   | a918bf3a95 | ||
|   | 9434ae267f | ||
|   | 94187d215a | ||
|   | ef2f5d2978 | ||
|   | 62671e0f56 | ||
|   | 93869f77a0 | ||
|   | 8282d135cc | ||
|   | 9acc78c81d | ||
|   | 3642469630 | ||
|   | 34cd20339c | ||
|   | 7548f44047 | ||
|   | 7cf55ef695 | ||
|   | 543250da13 | ||
|   | 69e55d7316 | ||
|   | 158411e918 | ||
|   | 3f873002c4 | ||
|   | 818f4e5973 | ||
|   | c8d6e512d2 | ||
|   | a2423b8499 | ||
|   | 49acdac776 | ||
|   | 7e1587faa2 | ||
|   | 84a6ed8e80 | ||
|   | 654420e351 | ||
|   | 651915f31c | ||
|   | d9db1b84fe | ||
|   | bd03f071c6 | ||
|   | eb6ac68d5c | ||
|   | 848e6ebd83 | ||
|   | f76524fc9f | ||
|   | b95532b68b | ||
|   | d002d4c06f | ||
|   | 7c03cc622c | ||
|   | cebfd84416 | ||
|   | 12995e280e | ||
|   | 4ae6d44efc | ||
|   | 01e1878900 | ||
|   | df9ad82336 | ||
|   | c183fd5e35 | ||
|   | 820d07f309 | ||
|   | f4e3c04bbf | ||
|   | 540d6e9dbb | ||
|   | 79a3a2befd | ||
|   | 08a0fd5420 | ||
|   | 92d6bc6875 | ||
|   | fb5d20c4f8 | ||
|   | 65e3122f52 | ||
|   | be874e3c70 | ||
|   | beae845281 | ||
|   | 6f64dac262 | ||
|   | cd2d25cf87 | ||
|   | b8b2f37e7b | ||
|   | 00152358de | ||
|   | a2784be4d6 | ||
|   | ad7a57103d | ||
|   | 19b24b276d | ||
|   | 23750357e2 | ||
|   | 07284f380f | ||
|   | e60401278f | ||
|   | 24c474a9ec | ||
|   | 8fd3781ef5 | ||
|   | c85f2494a8 | ||
|   | 6c2fa7a382 | ||
|   | 45689fd879 | ||
|   | 45a2cfb01b | ||
|   | c4bb6c900c | ||
|   | f7c042fc77 | ||
|   | b20dc9fe2b | ||
|   | a030e05993 | ||
|   | 648b03f811 | ||
|   | e57e321d33 | ||
|   | b6e53c7b1b | ||
|   | 1c3bfd949b | ||
|   | 6401c9aaaa | ||
|   | c02adbb8e1 | ||
|   | 88e64dbfae | ||
|   | afd48b9e08 | ||
|   | db0ab9a0b3 | ||
|   | 556e4bd74d | ||
|   | d439c4f215 | ||
|   | a9f2e1482c | ||
|   | 2c26fb0d76 | ||
|   | 18dde97c8c | ||
|   | 85bc6f5301 | ||
|   | 8f364b9a95 | ||
|   | ee6c5632ac | ||
|   | cc81a0e8da | ||
|   | 262652992d | ||
|   | eb63825dfd | ||
|   | c49017c6f1 | ||
|   | 7d08bd3142 | ||
|   | f12c241dca | ||
|   | cedc9dd175 | ||
|   | 669e708b70 | ||
|   | e76a483931 | ||
|   | c0437d2de8 | ||
|   | 37a8043202 | ||
|   | f4c69d4045 | ||
|   | a3606d9e4d | ||
|   | 805f1c0e39 | ||
|   | 7430a8ca40 | ||
|   | 1776e2edcc | ||
|   | baf9aaf26c | ||
|   | 4864b07e13 | ||
|   | 13c919773e | ||
|   | ed3a4fb8d4 | ||
|   | df3e826d0a | ||
|   | a9e7d489b8 | ||
|   | da6b549f8b | ||
|   | 76e07a9089 | ||
|   | 4a590d1497 | ||
|   | 82e1508d6f | ||
|   | 400f08db9d | ||
|   | e48b650caa | ||
|   | d9f595283a | ||
|   | 85fd14f47f | ||
|   | b7adaafb3e | ||
|   | d0bba87cdd | ||
|   | 2cc75d4bbd | ||
|   | 24bd591faa | ||
|   | 2e9ccd0623 | ||
|   | 7b49c82210 | ||
|   | d3284f1604 | ||
|   | 3279697128 | ||
|   | 60cfab995f | ||
|   | 8ec18bdb2c | ||
|   | 3c3cd65235 | ||
|   | 7ac75de19d | ||
|   | fae39e1ab4 | ||
|   | 3732139fc3 | ||
|   | 0a2737dc77 | ||
|   | 481971928c | ||
|   | 020197718f | ||
|   | a0c77c04a5 | ||
|   | 620ee9719f | ||
|   | c0d02d9935 | ||
|   | 01356d23e5 | ||
|   | 8b73c2bcff | ||
|   | 5a771dbe2f | ||
|   | 9ba5b644cf | ||
|   | f76f0c3787 | ||
|   | 01abd6a705 | ||
|   | 44e2b5d945 | ||
|   | 82bbe5d1a6 | ||
|   | a1d71d31e8 | ||
|   | 766e0b685d | ||
|   | 58f5e4702b | ||
|   | d9906756cf | ||
|   | 9a45ebd98b | ||
|   | 7f9ff9d0e7 | ||
|   | 8c763fcf43 | ||
|   | 6dd4456b11 | ||
|   | c30c47d291 | ||
|   | d8c9662302 | ||
|   | ec5e819b16 | ||
|   | 55e50ad979 | ||
|   | 99ecb166d3 | ||
|   | cdeae7e72f | ||
|   | fbf79755d7 | ||
|   | 78bd21b7cf | ||
|   | 88c7c29954 | ||
|   | d4dde89ea6 | ||
|   | 774bf35fab | ||
|   | 1a2db7fb11 | ||
|   | da3223ac92 | ||
|   | b0fed5a48d | ||
|   | 43132dab85 | ||
|   | badd327360 | ||
|   | 9a6bfc6614 | ||
|   | 79914fb56b | ||
|   | 75a792eb6f | ||
|   | 23f112602c | ||
|   | 639a3aa832 | ||
|   | 79a8c5ceae | ||
|   | 97a2f4449d | ||
|   | 7f42d15175 | ||
|   | ef9c8e910c | ||
|   | a1b33da9ca | ||
|   | 1741059cf6 | ||
|   | 1f137735e1 | ||
|   | a186972f09 | ||
|   | 751628401e | ||
|   | 403b1802ec | ||
|   | 9165cbf7f6 | ||
|   | bad405bea9 | ||
|   | 4f9a95b011 | ||
|   | 903e641457 | ||
|   | f34b9399cc | ||
|   | 7d0d96f940 | ||
|   | 27196a21ae | ||
|   | ea0381fa09 | ||
|   | 3423589ba1 | ||
|   | 1f9286d39e | ||
|   | 93b8e66b5d | ||
|   | a1716de683 | ||
|   | ccf7916257 | ||
|   | d86adfa1b1 | ||
|   | 648f3f978a | ||
|   | 5e4b8bd67c | ||
|   | 64ef690432 | ||
|   | 41991b5982 | ||
|   | 01da222d67 | ||
|   | 518eee05c2 | ||
|   | 1dbfa29a1e | ||
|   | 6bac4741f6 | ||
|   | a0266dac6f | ||
|   | ce977a7809 | ||
|   | 8644a83ed9 | ||
|   | 7b45245b1d | ||
|   | f04f4e4a1a | ||
|   | b07f1b3bd3 | ||
|   | 0e7486d7b4 | ||
|   | 6c0afb87b9 | ||
|   | e5750b368e | ||
|   | ef76f923ad | ||
|   | 2c04ae084c | ||
|   | 91dc58d967 | ||
|   | 0e2abe74d5 | ||
|   | fea444925e | ||
|   | 0998429b07 | ||
|   | 597eb1779c | ||
|   | 9ae3a7dbff | ||
|   | 3519e845a3 | ||
|   | 29c049612a | ||
|   | ed48185732 | ||
|   | f431bbfca2 | ||
|   | 8b29900be4 | ||
|   | 6f8a4f8354 | ||
|   | def34f0e42 | ||
|   | e25a49f804 | ||
|   | b820351f64 | ||
|   | 0eb009496e | ||
|   | 2c2498b658 | ||
|   | a1d988fed5 | ||
|   | b0c50b7a59 | ||
|   | 1a2b404076 | ||
|   | 2d066c34fd | ||
|   | 7a1ed64985 | ||
|   | 1b449585f7 | ||
|   | 032d41dbb8 | ||
|   | 3a7569e3ea | ||
|   | d444930494 | ||
|   | 6045a6bfb3 | ||
|   | f3f543b31e | ||
|   | 0fea4262ea | ||
|   | ef1c4368d0 | ||
|   | 4b7ec4a32a | ||
|   | 2229ad8d8e | ||
|   | 61aff9f49a | ||
|   | 67235c4214 | ||
|   | 48def71d0c | ||
|   | a00eee1bbe | ||
|   | 12e8bb6ddc | ||
|   | c8c20fff71 | ||
|   | 75a18b5ffe | ||
|   | 06a690a259 | ||
|   | 52feabbe76 | ||
|   | 14c9e9a9cc | ||
|   | a22ca228cc | ||
|   | d0666a5eb6 | ||
|   | 931d49560a | ||
|   | 2a4e435228 | ||
|   | 3655827ef2 | ||
|   | c5046b9c91 | ||
|   | 4598031dd2 | ||
|   | 12e0e1a16b | ||
|   | 5e9266ba90 | ||
|   | 0d448b8221 | ||
|   | e6c95f0a2a | ||
|   | 63b58edda1 | ||
|   | af9632519c | ||
|   | d367fb938d | ||
|   | 77f2a339e1 | ||
|   | 4190027a78 | ||
|   | ef48a8c4d9 | ||
|   | 829b225053 | ||
|   | 747a6e94e6 | ||
|   | cebc798e72 | ||
|   | 7c485c6a8b | ||
|   | e2e8c4b5dc | ||
|   | 675c0112ac | ||
|   | 4dd2c15775 | ||
|   | 9f6decdbc1 | ||
|   | fc07e23ff8 | ||
|   | 4ea328b9f2 | ||
|   | 84a2fc382b | ||
|   | 098714b3c4 | ||
|   | cf2c94d974 | ||
|   | 657102e938 | ||
|   | 44e7585bf8 | ||
|   | 94488fa2ea | ||
|   | a2c60a4911 | ||
|   | ee9c4abd08 | ||
|   | b5b1c932c7 | ||
|   | b8f04983e1 | ||
|   | 90807dd973 | ||
|   | ef974114ea | ||
|   | f6e1fecdf8 | ||
|   | 94e8b2becf | ||
|   | a6ca6701a0 | ||
|   | c4edb9724b | ||
|   | b5c669bdff | ||
|   | e449dce65c | ||
|   | 73ce9a5ecc | ||
|   | 671f680bb3 | ||
|   | dfff19ffbf | ||
|   | a4abdf9fa6 | ||
|   | 6c57bb0553 | ||
|   | d385b9e708 | ||
|   | c2ae1ee891 | ||
|   | 67147570e9 | ||
|   | fb3e6b7e35 | ||
|   | cf28d4586d | ||
|   | f65eb5eeea | ||
|   | 26fa9bd87e | ||
|   | 0016d9a638 | ||
|   | a88b9737ff | ||
|   | df9ac58d05 | ||
|   | 357406d801 | ||
|   | 19a78f63f4 | ||
|   | c7ec6a72cd | ||
|   | e68b07dbce | ||
|   | e20610ab80 | ||
|   | 1ca0c46333 | ||
|   | e510875f64 | ||
|   | f52a10b061 | ||
|   | 7d382a2bfd | ||
|   | 09bec1c4fe | ||
|   | ff28b0a005 | ||
|   | 8a03bd72ae | ||
|   | a249f8736a | ||
|   | f0e1fc5aad | ||
|   | f09adf0014 | ||
|   | c6ac64ed2d | ||
|   | 04dc68f5f6 | ||
|   | 92be051450 | ||
|   | 5c25208fb5 | ||
|   | 779c258e27 | ||
|   | 962dfad216 | ||
|   | f7a710e55b | ||
|   | 814a50e36f | ||
|   | 230465b946 | ||
|   | d11a67702e | ||
|   | 4e12e228cb | ||
|   | 4a94aeba49 | ||
|   | 14aa831169 | ||
|   | 295d23ccf3 | ||
|   | 75d904ed01 | ||
|   | aebcf6ff82 | ||
|   | 8c2ece3bca | ||
|   | 80a90a6221 | ||
|   | f81d5e4bd6 | ||
|   | 2324c90232 | ||
|   | 2f65fdbc76 | ||
|   | 59ff08174f | ||
|   | 2f4149c7d0 | ||
|   | b84e359770 | ||
|   | fb4275648c | ||
|   | 475ccfa8dc | ||
|   | 267c24c8ef | ||
|   | 06a9d9fc30 | ||
|   | 1383ca19b5 | ||
|   | 4c3ff2abab | ||
|   | 7c6ef18e4f | ||
|   | f8856467d5 | ||
|   | 3bd84b8d27 | ||
|   | bc8b5774ac | ||
|   | 8009b0485e | ||
|   | 8742a56b3e | ||
|   | a792bcdafe | ||
|   | 167d1ce97b | ||
|   | 695cd95657 | ||
|   | 44ce01a70b | ||
|   | e4b4c67637 | ||
|   | 422e77ae40 | ||
|   | 5ae6c8f8fa | ||
|   | 54656b331a | ||
|   | 9047b627a4 | ||
|   | 6645a3be40 | ||
|   | c2189b4ecd | ||
|   | e3fab66dfb | ||
|   | 5867f08bf1 | ||
|   | a06fa2de67 | ||
|   | c9b2cf6043 | ||
|   | 35396d2977 | ||
|   | 3bff743d9f | ||
|   | 5a878f829b | ||
|   | 16ec0f151a | ||
|   | 26dc6e90ea | ||
|   | 94c749fd5a | ||
|   | 7b80ed0807 | ||
|   | 98b7e8b10a | ||
|   | c42f1ad4c7 | ||
|   | 9d8de7fc15 | ||
|   | 70883086b7 | ||
|   | 9a08dfc7d4 | ||
|   | 3e43b36a9d | ||
|   | 352ee2f2fd | ||
|   | 78aa5c3dfa | ||
|   | 613323b5fb | ||
|   | 6c4b01db8a | ||
|   | d06897a635 | ||
|   | 1600bb0aaf | ||
|   | b5c9c98a8b | ||
|   | e4e18a416f | ||
|   | 01cc0e6def | ||
|   | a3ec1af205 | ||
|   | d571d691a7 | ||
|   | ea3d39b50e | ||
|   | 2e580304f9 | ||
|   | fb221a8dc0 | ||
|   | 459e1ed345 | ||
|   | 6680c244f5 | ||
|   | 06423964ec | ||
|   | 5492e9028d | ||
|   | 474390fa00 | ||
|   | 81d3723084 | ||
|   | 32e798967e | ||
|   | 060c9ab679 | ||
|   | acd9c32a9f | ||
|   | b8581b0278 | ||
|   | 917faecdcb | ||
|   | 78f0325398 | ||
|   | f6edaa56a6 | ||
|   | 51fee28bf4 | ||
|   | e8a3e92ceb | ||
|   | 5df3839b7a | ||
|   | 8dcb441f44 | ||
|   | a347cf625a | ||
|   | 46f49c7a12 | ||
|   | 99701c947e | ||
|   | 1baae1b81e | ||
|   | 7d20f0e9a6 | ||
|   | fbad22a1cd | ||
|   | 5af2f62c04 | ||
|   | 4a4a03858e | ||
|   | 1efe049959 | ||
|   | 2393148908 | ||
|   | 6819b57353 | ||
|   | 88b5e60807 | ||
|   | c7594b3ef0 | ||
|   | b210870f48 | ||
|   | a26a8bd79c | ||
|   | 9307a6915f | ||
|   | 5d6019a962 | ||
|   | 85ef2d8d0b | ||
|   | c2c7cc032b | ||
|   | e4911e9391 | ||
|   | b11e1ee92d | ||
|   | 5027d00c10 | ||
|   | 69ddeceb49 | ||
|   | 82698672bb | ||
|   | 9cec284947 | ||
|   | dc501d1902 | ||
|   | 100e504b7f | ||
|   | eb5df1aa37 | ||
|   | 8a745c5e81 | ||
|   | bf0a157c5d | ||
|   | f49818be06 | ||
|   | 1ad171dfe5 | ||
|   | 2a78570d65 | ||
|   | 546066d677 | ||
|   | 7a112f2523 | ||
|   | 3234596974 | ||
|   | e86444e5fb | ||
|   | 5820d49cd4 | ||
|   | 36c11ad9de | ||
|   | 019a4b20ae | ||
|   | 433ee08687 | ||
|   | 7858d969d8 | ||
|   | 8119551049 | ||
|   | 061489f03a | ||
|   | d92aa05b5c | ||
|   | f7a74d960e | ||
|   | 95a0e51b41 | ||
|   | 110e45e187 | ||
|   | 534aaf2b2a | ||
|   | 4cc20fdd05 | ||
|   | f3fae192a8 | ||
|   | 7d59a8a0ad | ||
|   | 8da387a38a | ||
|   | ff6fc44215 | ||
|   | 62391a895a | ||
|   | 9bcdd7d18f | ||
|   | 5c4f7bfe8b | ||
|   | 0b7f134021 | ||
|   | 378a42889f | ||
|   | f824950552 | ||
|   | 3d2d11f169 | ||
|   | 181aea737d | ||
|   | 1ab66e5767 | ||
|   | aab2682f9a | ||
|   | 55d332bcc8 | ||
|   | ee702f4071 | ||
|   | a08c2161a7 | ||
|   | f89df6e70c | ||
|   | 0e36a01354 | ||
|   | c39ad7dfbb | ||
|   | b92ae706e9 | ||
|   | 250d28e870 | ||
|   | 19f65c8510 | ||
|   | f70b49882f | ||
|   | a7b092a305 | ||
|   | daa73a3f3c | ||
|   | 6997261c6b | ||
|   | 0b51afe87a | ||
|   | 6cfb5cb14c | ||
|   | 8567d6034f | ||
|   | e06368f8cd | ||
|   | 4b37a4706f | ||
|   | 7b1564947d | ||
|   | 2b298766c9 | ||
|   | 10664d723b | ||
|   | c012208a8f | ||
|   | 0953896d2d | ||
|   | cf9e89d0ae | ||
|   | 48dd01b0bb | ||
|   | 7247efe055 | ||
|   | 8def3758e4 | ||
|   | 1851ab6f5f | ||
|   | 289b052338 | ||
|   | 26147f5ae0 | ||
|   | ae01f1071a | ||
|   | dcdf5dcd09 | ||
|   | c59a6d0f51 | ||
|   | 2cd936318d | ||
|   | 2f38857681 | ||
|   | 39505ae1ff | ||
|   | 44ee0633f2 | ||
|   | b52d2768b0 | ||
|   | cf24b870b1 | ||
|   | 69cffce7dc | ||
|   | a14979375b | ||
|   | 40ef4a16b1 | ||
|   | f5652a667b | ||
|   | 3b2c865a58 | ||
|   | db0e683d01 | ||
|   | e29a9e0394 | ||
|   | edf65f4f52 | ||
|   | 98677fd602 | ||
|   | 61a4f76c8d | ||
|   | 856a826eea | ||
|   | 387ef513d6 | ||
|   | 2858dbf57f | ||
|   | 350a2b8bbc | ||
|   | c9093c9972 | ||
|   | d1ad31696e | ||
|   | f49311ef9e | ||
|   | 678e529efc | ||
|   | 6ddb430fef | ||
|   | 74d1f88146 | ||
|   | 7842c55da3 | ||
|   | f5beac2afa | ||
|   | 8a23f28dfa | ||
|   | 9c4886e746 | ||
|   | e0bcd5d722 | ||
|   | ba854e7d85 | ||
|   | 4ded34ebc9 | ||
|   | e918a86028 | ||
|   | 24234bf718 | ||
|   | ec99339140 | ||
|   | 03dedfc871 | ||
|   | 9e86a7b357 | ||
|   | 6a32417957 | ||
|   | 97a7be7dfa | ||
|   | fa86f956ef | ||
|   | a9acff5294 | ||
|   | ad5b61de50 | ||
|   | f53b815855 | ||
|   | bf8a9dc20d | ||
|   | 08716c35fd | ||
|   | fd81bab906 | ||
|   | 1cf55c14b0 | ||
|   | 8b47159788 | ||
|   | 2eeaf4d80c | ||
|   | 4d89d26a1c | ||
|   | 0cc14cee4d | ||
|   | a20a9c505d | ||
|   | 913738444e | ||
|   | 8ee30179ea | ||
|   | cb2469322b | ||
|   | 94aa6673ca | ||
|   | 4b2b2d16b8 | ||
|   | 4cd5d3b3b5 | ||
|   | e48e50c6ff | ||
|   | 01189376e2 | ||
|   | 60195cf2dc | ||
|   | 15ef273141 | ||
|   | eed6da538a | ||
|   | d3e8993e22 | ||
|   | 8a8926c5e8 | ||
|   | f9d0ee824b | ||
|   | af099737ab | ||
|   | 9ffde5ab37 | ||
|   | 272ddf9f01 | ||
|   | 259c84e99a | ||
|   | 7391288668 | ||
|   | 7734aee7ad | ||
|   | 9f855b9679 | ||
|   | aedbecd673 | ||
|   | 83c5a4cd2f | ||
|   | 9c61c2882f | ||
|   | e0dd9c3618 | ||
|   | 4921c44d0a | ||
|   | 3161f104c7 | ||
|   | 898f5f4b51 | ||
|   | 3ee3fdca91 | ||
|   | 488f7ed886 | ||
|   | 51e5aee830 | ||
|   | af13bea2b8 | ||
|   | cdf0b353db | ||
|   | 48504ed5e2 | ||
|   | 4d4d1e0ee5 | ||
|   | c1d36cad46 | ||
|   | aad2eb31fc | ||
|   | 1bd7824f24 | ||
|   | 912463ed6a | ||
|   | dda2473d35 | ||
|   | 94923ae898 | ||
|   | f1fde07eb9 | ||
|   | a1ddd88208 | ||
|   | ee6a9b981a | ||
|   | 9879c7af59 | ||
|   | fa4c52e499 | ||
|   | d5484808a7 | ||
|   | 1c83391948 | ||
|   | 59d1b8e131 | ||
|   | 859822ff05 | ||
|   | 3acc7d0914 | ||
|   | b077ef9150 | ||
|   | e2ce5ae222 | ||
|   | 73cabcb6ae | ||
|   | fbdf2bed49 | ||
|   | 33d01fb694 | ||
|   | ab2e43d052 | ||
|   | 0c24fbdb06 | ||
|   | eb25998e72 | ||
|   | eafd2aee93 | ||
|   | a6f3d740a2 | ||
|   | 19a6f61b44 | ||
|   | 58e0f1e6c3 | ||
|   | 96ff2d43c0 | ||
|   | 1b00b7e8df | ||
|   | 7284ceb90c | ||
|   | 24ec448b7f | ||
|   | ed5a2f400d | ||
|   | 9596616b42 | ||
|   | 8d38fb511b | ||
|   | 5a2cbbb731 | ||
|   | 32d6f85649 | ||
|   | a2b47e5749 | ||
|   | 14d4062f4a | ||
|   | 67972c5e84 | ||
|   | 3467ac18cc | ||
|   | cabf27424f | ||
|   | 162e955bd6 | ||
|   | 57d761b8a2 | ||
|   | 8b2023225c | ||
|   | f8f2b541db | ||
|   | 9d645ad5cd | ||
|   | 610d366bdb | ||
|   | 64c46562d3 | ||
|   | 87d6ade06d | ||
|   | 4a009515c1 | ||
|   | 6497857495 | ||
|   | 5a324c01de | ||
|   | 17279de4a3 | ||
|   | 34a7a62c35 | ||
|   | 2305cc61fd | ||
|   | 2f677c98f8 | ||
|   | 3fda053606 | ||
|   | 6d855ec06c | ||
|   | 23cc62fe7c | ||
|   | 26ea67d211 | ||
|   | d43cd9fa54 | ||
|   | 6f337b5425 | ||
|   | d104a5fe75 | ||
|   | cdd69c6842 | ||
|   | 4a3a9067d4 | ||
|   | 1aecb2293a | ||
|   | ad8fd91b7a | ||
|   | 1f5a3a4445 | ||
|   | be363e0b46 | ||
|   | a104cd6dae | ||
|   | e287282782 | ||
|   | 8b06d10415 | ||
|   | 1a153487c3 | ||
|   | 01b2499915 | ||
|   | 9f43d31bf5 | ||
|   | a318beded4 | ||
|   | 5f4b528e6b | ||
|   | f759b0ada1 | ||
|   | 7d89fa27a8 | ||
|   | 10ec92f7c6 | ||
|   | 58d2f317a0 | ||
|   | 34b094561f | ||
|   | 91155444c0 | ||
|   | 7f71ac7e0a | ||
|   | e5fc59a4c6 | ||
|   | 549a9ab472 | ||
|   | 09720dcf42 | ||
|   | ec044affd4 | ||
|   | af39945009 | ||
|   | 78a50d0237 | ||
|   | 861d279b08 | ||
|   | eb1a32fc90 | ||
|   | 4610a6615c | ||
|   | 4cb8a8d389 | ||
|   | a71823dc04 | ||
|   | d41ada6b66 | ||
|   | fdfe2cd64f | ||
|   | 7b51c6f5cc | ||
|   | be7f07ad12 | ||
|   | 830db11b41 | ||
|   | 53bcd33e1d | ||
|   | e3d596c9fa | ||
|   | ecd6ad6930 | ||
|   | c36073b40e | ||
|   | afe0d16797 | ||
|   | 977fcc0632 | ||
|   | 94b57d232d | ||
|   | 7cdedb2ec0 | ||
|   | 676324805e | ||
|   | 7d74a7b027 | ||
|   | 9d5eb864d1 | ||
|   | 86a482e032 | ||
|   | c43c7be86c | ||
|   | c58462f154 | ||
|   | 31d3e3b2b6 | ||
|   | fb2582e53b | ||
|   | d807613117 | ||
|   | 6d922d00c3 | ||
|   | 61ea84093b | ||
|   | e76d6a481f | ||
|   | c1357717d9 | ||
|   | ca5145c210 | ||
|   | 1a272fd276 | ||
|   | 952260b423 | ||
|   | caa967105c | ||
|   | d565e4be20 | ||
|   | 85dd005abc | ||
|   | 021c57205f | ||
|   | 261a501afc | ||
|   | 9a38a101d2 | ||
|   | 4665c5cf1a | ||
|   | bd52a5e6c1 | ||
|   | f98e5a03de | ||
|   | 2217c69757 | ||
|   | 5a4df56836 | ||
|   | 3ab7c8bcc3 | ||
|   | 8f25acd0f3 | ||
|   | 999f1932cc | ||
|   | 69940a8ab9 | ||
|   | 13158e3cdf | ||
|   | f06589c913 | ||
|   | 2735b680b9 | ||
|   | 5f1d4ce433 | ||
|   | 25f87607aa | ||
|   | f81fb6af44 | ||
|   | bb0a5186d6 | ||
|   | baad907422 | ||
|   | 1022fc0060 | ||
|   | 3a22d798f8 | ||
|   | 71ea430c62 | ||
|   | 0d2125e737 | ||
|   | 02f4006153 | ||
|   | b25668b5b7 | ||
|   | bb3080e829 | ||
|   | bd85e95398 | ||
|   | 22cc194ed8 | ||
|   | 79b71228c1 | ||
|   | fd515d807c | ||
|   | 4f4c121d9b | ||
|   | 72e1ab47fc | ||
|   | 3575084640 | ||
|   | 1e01903072 | ||
|   | 3672856ab4 | ||
|   | 86d8736dcc | ||
|   | 2923f56561 | ||
|   | 4274f49ada | ||
|   | a4b27ff031 | ||
|   | f49b6fa79f | ||
|   | 7b854a190e | ||
|   | 947d1ffbb3 | ||
|   | de35848500 | ||
|   | 1ae219025a | ||
|   | e8b2dd6698 | ||
|   | c0074f95b1 | ||
|   | a79ce1c35e | ||
|   | 1eb69f7075 | ||
|   | a86935a42f | ||
|   | 1674bd753e | ||
|   | 6b9a55e62d | ||
|   | c578ddeb1a | ||
|   | 8ef7188dae | ||
|   | 738ec92b8e | ||
|   | be9e26b4a3 | ||
|   | b345c227b2 | ||
|   | c7e95c8dec | ||
|   | 3a4e3d3f51 | ||
|   | 8fd2efa2fa | ||
|   | 97378998a5 | ||
|   | 79f1aa0e1b | ||
|   | fb5a6a7d71 | ||
|   | 7d1c5f4a2b | ||
|   | 6b6995bb0b | ||
|   | 27c658922e | ||
|   | 1b0fd76b45 | ||
|   | 35954cdc90 | ||
|   | 46e93bea09 | ||
|   | cbc6a0296b | ||
|   | cc63bef179 | ||
|   | cbcfa156c4 | ||
|   | fa912aeb84 | ||
|   | 4a12e1059a | ||
|   | 9a5e2ae768 | ||
|   | f9cd051209 | ||
|   | e0545bf0bc | ||
|   | 03bc38f7e3 | ||
|   | 4e23a4e08e | ||
|   | d817d64c65 | ||
|   | 8a29ec67ac | ||
|   | 6722b0224a | ||
|   | 8eb225bdec | ||
|   | a7df76a275 | ||
|   | efae8f3369 | ||
|   | a11e6c0b77 | ||
|   | 1bb0b38868 | ||
|   | 8cafa8578f | ||
|   | b74ea47650 | ||
|   | 2dc230a68b | ||
|   | 4df1641689 | ||
|   | 5ef0b96d5c | ||
|   | d979b5f2b9 | ||
|   | 1a61bdb302 | ||
|   | e8545dd2bc | ||
|   | 2f2ebb37e4 | ||
|   | 522f0dac16 | ||
|   | cd5ae944ec | ||
|   | 42a86fe0d4 | ||
|   | e928b9c434 | ||
|   | fb55d9e9d1 | ||
|   | 74e7e5a291 | ||
|   | 6c58b8cc4b | ||
|   | 2b3d11a7a5 | ||
|   | 9950208d06 | ||
|   | a67e16d1b7 | ||
|   | c98a22e065 | ||
|   | 8f9d1bcfe0 | ||
|   | a7a2fd1d5b | ||
|   | d496417deb | ||
|   | f6e30edbc4 | ||
|   | 45ed68006f | ||
|   | dcb0d8b00e | ||
|   | 116bb6e1b9 | ||
|   | 9c6dde5d22 | ||
|   | cb635dcd5a | ||
|   | eff3330e75 | ||
|   | fc8a13df5a | ||
|   | 85e9042db6 | ||
|   | 62e6d6fb4c | ||
|   | 16c72e8efd | ||
|   | efe1b9f5a9 | ||
|   | 65dbddb6b6 | ||
|   | 2a67a31120 | ||
|   | a720c3348b | ||
|   | 79ac60b6e8 | ||
|   | e01c2d222a | ||
|   | 8922e2050a | ||
|   | a85891c611 | ||
|   | 2586fdffda | ||
|   | c9dc9ec11e | ||
|   | b9332142c9 | ||
|   | b7b53362e1 | ||
|   | 68cf66a5fe | ||
|   | 4eb7eeb40f | ||
|   | a1d64fa215 | ||
|   | 5f44c0e678 | ||
|   | b87c4d786d | ||
|   | 329b0df3f6 | ||
|   | 6906c15e8e | ||
|   | ff5421cefc | ||
|   | 4498e992a2 | ||
|   | 2d610dfdc8 | ||
|   | 2b0a05ee32 | ||
|   | bc2d0ee9a8 | ||
|   | 862a2a1440 | ||
|   | fba60ffff1 | ||
|   | d1a945a305 | ||
|   | 685b9ab102 | ||
|   | 24f27c0fe3 | ||
|   | 3019c82d8a | ||
|   | f9d0b55ca3 | ||
|   | b54cc97e4c | ||
|   | e3b9d5abbf | ||
|   | 2332970cf2 | ||
|   | 48af3d3322 | ||
|   | 429c94d6a9 | ||
|   | deb52ad350 | ||
|   | 6f3cc77bb5 | ||
|   | 1baf139ca4 | ||
|   | 7945b3e738 | ||
|   | d4c1ff5309 | ||
|   | 22868c3924 | ||
|   | 2de1be188c | ||
|   | 9faecec2db | ||
|   | 5d7111fe3b | ||
|   | 0c86f8288d | ||
|   | 5a6a65fd9f | ||
|   | 43c4d23896 | ||
|   | 9f9e8db814 | ||
|   | b8efcc7cf0 | ||
|   | 2f29d18e53 | ||
|   | 888e286a09 | ||
|   | 1a93a187f0 | ||
|   | a8d5da5091 | ||
|   | e2720fac9e | ||
|   | 4374729f20 | ||
|   | 87999333cb | ||
|   | 335dc2927b | ||
|   | ccbef6b696 | ||
|   | 3e384d3cfe | ||
|   | e33949c397 | ||
|   | eccac859ad | ||
|   | 7dd586f2fd | ||
|   | 3607c5b792 | ||
|   | e37adace62 | ||
|   | d10f591bf4 | ||
|   | 262da78ca7 | ||
|   | 0b83edf439 | ||
|   | cf7fcf496e | ||
|   | 1765271f84 | ||
|   | 0ec79f8dc3 | ||
|   | 6f72c05ebf | ||
|   | 20cacc84ba | ||
|   | 24a14a0284 | ||
|   | 982c2d9b83 | ||
|   | efa4a9b330 | ||
|   | 39ec1cff19 | ||
|   | 24c5f8d374 | ||
|   | d6b0158ddb | ||
|   | 7e5e9542e9 | ||
|   | d7fc2aaa9c | ||
|   | 8471a485d1 | ||
|   | 462b375c8f | ||
|   | afbd506cfc | ||
|   | ec01e45ed1 | ||
|   | 993829b23f | ||
|   | 002257b820 | ||
|   | 0af35c2224 | ||
|   | 76bc0a2ba6 | ||
|   | d2dc4824ee | ||
|   | 3f9ca0366b | ||
|   | b68785e19e | ||
|   | a1bbb719e1 | ||
|   | 46f23f7348 | ||
|   | 09252baa71 | ||
|   | 3623a7a16a | ||
|   | cc504ab07c | ||
|   | 2500a0649b | ||
|   | 5ec4e4a026 | ||
|   | c3df4dd052 | ||
|   | 730c3fada0 | ||
|   | 628978fc8c | ||
|   | 7fb9d68714 | ||
|   | e0a1c477d0 | ||
|   | b70565720f | ||
|   | 33ac0c9dd6 | ||
|   | 4699bdff60 | ||
|   | 354641a3ce | ||
|   | 58a43e40c7 | ||
|   | 6b7fde10d3 | ||
|   | 13fdab0139 | ||
|   | 2ce617b2ce | ||
|   | 63e0496c30 | ||
|   | 850e3bb99b | ||
|   | 2d90deb96a | ||
|   | 3fb3f63e51 | ||
|   | d12949ff1c | ||
|   | e3e985220e | ||
|   | 802dd8393d | ||
|   | fe6bc31c60 | ||
|   | 2162d6042e | ||
|   | b8a4ffece9 | ||
|   | d929e0deb2 | ||
|   | 4c08c9c524 | ||
|   | 63b8444abe | ||
|   | 82546d776d | ||
|   | 84f9505a8d | ||
|   | ede59ab40e | ||
|   | 2a80824076 | ||
|   | f92f96325a | ||
|   | b98555c512 | ||
|   | e02a42a008 | ||
|   | 3e51126e18 | ||
|   | a714fa82b2 | ||
|   | e86e6eae81 | ||
|   | 592c25f352 | ||
|   | 015f662249 | ||
|   | 8d998d71a3 | ||
|   | f75b6bf955 | ||
|   | fb78bf0996 | ||
|   | cd7cd30b4c | ||
|   | 4ea22ff69b | ||
|   | 3853898ab3 | ||
|   | 7d8aa4157b | ||
|   | 3fc20e10f5 | ||
|   | 004eabf809 | ||
|   | 62230fc970 | ||
|   | 961668d420 | ||
|   | 01061a0355 | ||
|   | 9fdd85d9f1 | ||
|   | 331db30f8f | ||
|   | 017d7ec62b | ||
|   | 76826b5495 | ||
|   | de315ff6d8 | ||
|   | c26b716164 | ||
|   | dcaddb8042 | ||
|   | 5ef197e5fd | ||
|   | 52ed02bd06 | ||
|   | bd427849fb | ||
|   | 127d7acb91 | ||
|   | 484efff156 | ||
|   | 8f1d0e7a79 | ||
|   | 88184ff955 | ||
|   | bd8c110f00 | ||
|   | 0050c51124 | ||
|   | 9b7ed73f95 | ||
|   | a189cb8333 | ||
|   | 0d4825d3ea | ||
|   | 156b3200e3 | ||
|   | 572becad44 | ||
|   | 75f23d1130 | ||
|   | e83fae3a6f | ||
|   | 5be5b8c02b | ||
|   | 6c4cb2bf00 | ||
|   | 148a23579c | ||
|   | ea95811c4c | ||
|   | 08cb5f42e7 | ||
|   | 9abf37bbd1 | ||
|   | 168203c94d | ||
|   | 47bc50d9fb | ||
|   | 93a4a3f8a0 | ||
|   | 940e3eba35 | ||
|   | b7cd119b0c | ||
|   | 7f90de887a | ||
|   | 6c8a135612 | ||
|   | caec2976d7 | ||
|   | 4d8933abdf | ||
|   | 6eac0606cf | ||
|   | 89cffd43f4 | ||
|   | b9764cc120 | ||
|   | 7cd39a6aad | ||
|   | a8f57d012f | ||
|   | a0767f6af6 | ||
|   | 9ffdba8643 | ||
|   | 9591cd3a7e | ||
|   | afeb8a679a | ||
|   | db92fa2330 | ||
|   | d94517d9ca | ||
|   | 0bec040cfe | ||
|   | 3918ddb075 | ||
|   | d4091dbde6 | ||
|   | d7fe724145 | ||
|   | ad978700fc | ||
|   | e022b2a36c | ||
|   | ad032e5ed7 | ||
|   | 45412fd404 | ||
|   | ccc6ab1281 | ||
|   | 712da4c46e | ||
|   | b2d42b1d6c | ||
|   | 1d22a04721 | ||
|   | 5efb170e1d | ||
|   | cccccdcc0a | ||
|   | 8d384ce44f | ||
|   | 4d6e7c7dbb | ||
|   | 9c5885c6b6 | ||
|   | ec3a14e6d9 | ||
|   | c98f5d4450 | ||
|   | 2e8e542bc9 | ||
|   | 7ccc67c06d | ||
|   | 20df6348a4 | ||
|   | 48fb7006f7 | ||
|   | 9a6eb333e6 | ||
|   | 086bf89d69 | ||
|   | 0224d028e7 | ||
|   | 540d749695 | ||
|   | 219df582da | ||
|   | b898b14b77 | ||
|   | fba235a801 | ||
|   | b0297af38d | ||
|   | 04def6d925 | ||
|   | 7057984831 | ||
|   | 2a2ac73845 | ||
|   | 634f5d691b | ||
|   | 754ac5092a | ||
|   | 9ed972ffeb | ||
|   | 3b1f3fddf0 | ||
|   | fa716457a5 | ||
|   | 847510c6b5 | ||
|   | 774e0f2022 | ||
|   | d8d9e8df16 | ||
|   | d1e12cd46f | ||
|   | adf6d49fd1 | ||
|   | 0826a44d4b | ||
|   | ce145b04ac | ||
|   | 29d775e675 | ||
|   | 251a47db8c | ||
|   | e4b3a191d6 | ||
|   | 393d702e77 | ||
|   | 4efd41f1ba | ||
|   | 58aa944a5e | ||
|   | a3597d6deb | ||
|   | 8fada4d015 | ||
|   | 5d11ab269d | ||
|   | dd41a85efc | ||
|   | 6d59f55fd4 | ||
|   | 7a60e4b458 | ||
|   | 937dce8e65 | ||
|   | e2d18170b0 | ||
|   | e219c0f976 | ||
|   | 5c1562f36b | ||
|   | 823c13707d | ||
|   | 8eb59072b4 | ||
|   | 4266ee0fa4 | ||
|   | 3a62908703 | ||
|   | 20d053807d | ||
|   | 8aa4396e44 | ||
|   | 8f9100c762 | ||
|   | 788a5b73f9 | ||
|   | 1469323350 | ||
|   | 83a73ac9b7 | ||
|   | 5ed27bf5f6 | ||
|   | a81162edd2 | ||
|   | 8080b4cae2 | ||
|   | 1735c194cd | ||
|   | 6997b2fbf8 | ||
|   | b81ab97900 | ||
|   | 384e1a92b7 | ||
|   | ccb0eeefbd | ||
|   | 62bdaab7c7 | ||
|   | ec9aed5b75 | ||
|   | 9851a2a057 | ||
|   | bb2bc64d15 | ||
|   | 7152d93dd0 | ||
|   | baa1eaf73a | ||
|   | 4c7da3899e | ||
|   | 4bb226147a | ||
|   | 4d3593ac86 | ||
|   | c49a8e9114 | ||
|   | 6b274a2543 | ||
|   | a269be485f | ||
|   | d3bd9cd31d | ||
|   | 6a07e7cbe3 | ||
|   | e694e4a791 | ||
|   | e2de82ac8d | ||
|   | e3b14bc5a9 | ||
|   | 9f1648328f | ||
|   | 8e9b3d0760 | ||
|   | b1439df72a | ||
|   | 8e46aa7054 | ||
|   | 5399fdd3a9 | ||
|   | 8a22597180 | ||
|   | 016aac69f6 | ||
|   | e919906c8c | ||
|   | 46dc6eac88 | ||
|   | ea8c40c7b6 | ||
|   | b9bf30e095 | ||
|   | 1d891858b6 | ||
|   | b60c51ef13 | ||
|   | f02b0564e0 | ||
|   | ae5ce17035 | ||
|   | 6b05938573 | ||
|   | 2e1befc8c6 | ||
|   | 87ccd804ff | ||
|   | d7ba7cc72a | ||
|   | f125c11a81 | ||
|   | 77601f7262 | ||
|   | d94811d81d | ||
|   | 6d45971411 | ||
|   | 84e2589f22 | ||
|   | bf2f2782b7 | ||
|   | d9be51b2ef | ||
|   | a3d111be12 | ||
|   | 4916a12b6f | ||
|   | d6f2e51b05 | ||
|   | feb7f892ea | ||
|   | a420771665 | ||
|   | 694673b9bd | ||
|   | 393259c24b | ||
|   | f2449009d1 | ||
|   | 833f95b53a | ||
|   | 306bdd8021 | ||
|   | 756c4c032f | ||
|   | 4b1fadde4b | ||
|   | a9685a00b3 | ||
|   | e1360ae049 | ||
|   | 86a6b40fd8 | ||
|   | 7ef6abb2a3 | ||
|   | af45b51f4f | ||
|   | 566ec8a5f9 | ||
|   | b048f8d733 | ||
|   | dbf6780345 | ||
|   | 450c313340 | ||
|   | dca8516cec | ||
|   | f2c99798a6 | ||
|   | f65f88325b | ||
|   | 996ca52471 | ||
|   | 6244857746 | ||
|   | 5635265203 | ||
|   | 42c8f6ae87 | ||
|   | c2161ca56b | ||
|   | 45ccb31356 | ||
|   | 1a81b2f464 | ||
|   | 77251452c1 | ||
|   | 4df3aa569b | ||
|   | 2e2e16e281 | ||
|   | d5b3a52827 | ||
|   | e4f3b777f9 | ||
|   | a278f79bdb | ||
|   | d709f8db65 | ||
|   | 75584d7ad7 | ||
|   | e0f9025e7c | ||
|   | 9004e8bbf2 | ||
|   | 8b5511c7ec | ||
|   | 34f6195ca5 | ||
|   | 70af52d74c | ||
|   | ca2b4a188a | ||
|   | 0d32638379 | ||
|   | c4b1212c44 | ||
|   | 3463bf46c6 | ||
|   | 13a01beb07 | ||
|   | 145f577bde | ||
|   | 30da68f47b | ||
|   | 72ead3d598 | ||
|   | 4b71fba64c | ||
|   | 606c369173 | ||
|   | 1ed06bebcd | ||
|   | aa1996eba6 | ||
|   | 683f717cf7 | ||
|   | 3c871920b1 | ||
|   | de6170a13d | ||
|   | 8dbe6f6546 | ||
|   | 5313338c3a | ||
|   | 1a270dc05c | ||
|   | bd9bf3f1c7 | ||
|   | cd800d636a | ||
|   | 40642b2cd1 | ||
|   | 35ef8f9090 | ||
|   | 38dc35840e | ||
|   | b4004cd4d6 | ||
|   | 0c8a8314b2 | ||
|   | 4e757c2b56 | ||
|   | c3be6ea0b2 | ||
|   | da332365d4 | ||
|   | f7e7bf601e | ||
|   | 6f4c2f22f3 | ||
|   | 493df57035 | ||
|   | 897a9ac333 | ||
|   | acc2d071ac | ||
|   | d3b1f8c476 | ||
|   | f1db2fc156 | ||
|   | 2004ddd678 | ||
|   | cb85d4a529 | ||
|   | ead3af3135 | ||
|   | a2891d7608 | ||
|   | d7dea0c6cc | ||
|   | 65931bb384 | ||
|   | 632827f213 | ||
|   | b71550cec7 | ||
|   | b68e7bed40 | ||
|   | 4be6482ff3 | ||
|   | a21178007f | ||
|   | 2e6c27f665 | ||
|   | 0a3a7b5a70 | ||
|   | 3a12cdbd13 | ||
|   | 7d93d1824b | ||
|   | ba0d699d83 | ||
|   | c6ac40c476 | ||
|   | a5d53b3349 | ||
|   | 4487a90623 | ||
|   | 05da8cc3d1 | ||
|   | fe3f8dde4b | ||
|   | 23e499998f | ||
|   | acdf9e2d22 | ||
|   | 2076d506b4 | ||
|   | 68ce47c905 | ||
|   | 7c7fa0f008 | ||
|   | a8e3657487 | ||
|   | 13a2f719f4 | ||
|   | 2908751020 | ||
|   | c156a4f723 | ||
|   | 8b29431cde | ||
|   | 4b145958fa | ||
|   | e08b0054b2 | ||
|   | 596e135a03 | ||
|   | e55e213c78 | ||
|   | 8749f5e09b | ||
|   | b3353183f3 | ||
|   | 3657bf6636 | ||
|   | f97f6e5985 | ||
|   | 34c374a1e1 | ||
|   | 506eccf84d | ||
|   | 982bf3b2ec | ||
|   | 53a5026301 | ||
|   | 0aee445e69 | ||
|   | adade2e5ec | ||
|   | cbc42c29fb | ||
|   | 874c51d74d | ||
|   | f9ac95ddb7 | ||
|   | 0ea014fe41 | ||
|   | 62b190d0ff | ||
|   | 4b57b8131f | ||
|   | 988a90a176 | ||
|   | 67775fb8bd | ||
|   | e81683beee | ||
|   | d9c25ee65c | ||
|   | 1ebc7f4d4b | ||
|   | 2c5b77ae2e | ||
|   | d8aae88526 | ||
|   | 2f4bdfee1b | ||
|   | c16913c999 | ||
|   | f4451fe6b7 | ||
|   | 8d4e77aba6 | ||
|   | f474d378ef | ||
|   | defc252c7d | ||
|   | 19bd1e0485 | ||
|   | 5f2fc67c40 | ||
|   | 8ead33fc3b | ||
|   | ab25301953 | ||
|   | 291b118aca | ||
|   | 12b61365ad | ||
|   | db7fb10e95 | ||
|   | 9214dc6610 | ||
|   | 58b95e4ae4 | ||
|   | 60d3afe6b6 | ||
|   | afeb8f3f7c | ||
|   | cdbc0570ca | ||
|   | e648f08bad | ||
|   | 7ba6d5e02d | ||
|   | ea48bb5ac5 | ||
|   | 6ee8a2980c | ||
|   | debf909359 | ||
|   | b8114b25ed | ||
|   | 0d4d84b2fa | ||
|   | d2aca3e7e0 | ||
|   | 26aca2b789 | ||
|   | 5424ede413 | ||
|   | 20112f8e16 | ||
|   | 4260a754e5 | ||
|   | ce30f72738 | ||
|   | 69d430dd75 | ||
|   | 673545c7e4 | ||
|   | 45991e47ee | ||
|   | b8f40eb843 | ||
|   | b73a859031 | ||
|   | 9dbf246f0b | ||
|   | 4fb77ac878 | ||
|   | d0c506f930 | ||
|   | 7351fe1a02 | ||
|   | 38c2f51f83 | ||
|   | 1bf34caa5b | ||
|   | 5769935720 | ||
|   | 0214db7545 | ||
|   | ffc6f031d9 | ||
|   | 9e248bb852 | ||
|   | 973890e2c9 | ||
|   | 9c08e56ed0 | ||
|   | 4f69a03bb1 | ||
|   | c2c18acd6a | ||
|   | 12ead36f96 | ||
|   | 41a642e06c | ||
|   | c6ed4b8a1d | ||
|   | 65aa6573df | ||
|   | b888610525 | ||
|   | 6d68706326 | 
							
								
								
									
										13
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | ################ Please use Gitlab instead of Github ################################### | ||||||
|  |  | ||||||
|  | Hello, thank you for contributing to slixmpp! | ||||||
|  |  | ||||||
|  | You’re about to open a pull request on github. However this github repository is not the official place for contributions on slixmpp. | ||||||
|  |  | ||||||
|  | Please open your merge request on https://lab.louiz.org/poezio/slixmpp/ | ||||||
|  |  | ||||||
|  | You should be able to log in there with your github credentials, clone the slixmpp repository in your namespace, push your existing pull request into a new branch, and then open a merge request with one click, within 3 minutes. | ||||||
|  |  | ||||||
|  | This will help us review your contribution, avoid spreading things everywhere and it will even run the tests automatically with your changes. | ||||||
|  |  | ||||||
|  | Thank you. | ||||||
							
								
								
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1,17 @@ | |||||||
| *.pyc | *.py[co] | ||||||
| build/ | build/ | ||||||
|  | dist/ | ||||||
|  | MANIFEST | ||||||
|  | docs/_build/ | ||||||
|  | *.swp | ||||||
|  | .tox/ | ||||||
|  | .coverage | ||||||
|  | slixmpp.egg-info/ | ||||||
|  | .ropeproject/ | ||||||
|  | 4913 | ||||||
|  | *~ | ||||||
|  | .baboon/ | ||||||
|  | .DS_STORE | ||||||
|  | .idea/ | ||||||
|  | .vscode/ | ||||||
|  | venv/ | ||||||
							
								
								
									
										70
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | stages: | ||||||
|  |   - lint | ||||||
|  |   - test | ||||||
|  |   - trigger | ||||||
|  |  | ||||||
|  | mypy: | ||||||
|  |   stage: lint | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |   image: python:3 | ||||||
|  |   script: | ||||||
|  |     - pip3 install mypy | ||||||
|  |     - mypy slixmpp | ||||||
|  |  | ||||||
|  | test: | ||||||
|  |   stage: test | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |   image: ubuntu:latest | ||||||
|  |   script: | ||||||
|  |     - apt update | ||||||
|  |     - apt install -y python3 python3-pip cython3 gpg | ||||||
|  |     - pip3 install emoji aiohttp cryptography | ||||||
|  |     - ./run_tests.py | ||||||
|  |  | ||||||
|  | test-3.10: | ||||||
|  |   stage: test | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |   image: python:3.10 | ||||||
|  |   script: | ||||||
|  |     - apt update | ||||||
|  |     - apt install -y python3 python3-pip cython3 gpg | ||||||
|  |     - pip3 install emoji aiohttp cryptography | ||||||
|  |     - ./run_tests.py | ||||||
|  |  | ||||||
|  | test-3.11: | ||||||
|  |   stage: test | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |   image: python:3.11-rc | ||||||
|  |   allow_failure: true | ||||||
|  |   script: | ||||||
|  |     - apt update | ||||||
|  |     - apt install -y python3 python3-pip cython3 gpg | ||||||
|  |     - pip3 install emoji aiohttp cryptography | ||||||
|  |     - ./run_tests.py | ||||||
|  |  | ||||||
|  | test_integration: | ||||||
|  |   stage: test | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |   image: ubuntu:latest | ||||||
|  |   only: | ||||||
|  |     variables: | ||||||
|  |         - $CI_ACCOUNT1 | ||||||
|  |         - $CI_ACCOUNT2 | ||||||
|  |   script: | ||||||
|  |     - apt update | ||||||
|  |     - apt install -y python3 python3-pip cython3 gpg | ||||||
|  |     - pip3 install emoji aiohttp aiodns | ||||||
|  |     - ./run_integration_tests.py | ||||||
|  |  | ||||||
|  | trigger_poezio: | ||||||
|  |   stage: trigger | ||||||
|  |   tags: | ||||||
|  |     - docker | ||||||
|  |   image: curlimages/curl:7.79.1 | ||||||
|  |   script: | ||||||
|  |     - curl --request POST -F token="$SLIXMPP_TRIGGER_TOKEN" -F ref=master https://lab.louiz.org/api/v4/projects/18/trigger/pipeline | ||||||
							
								
								
									
										7
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | language: python | ||||||
|  | python: | ||||||
|  |   - "3.7" | ||||||
|  |   - "3.8-dev" | ||||||
|  | install: | ||||||
|  |   - "pip install ." | ||||||
|  | script: testall.py | ||||||
							
								
								
									
										14
									
								
								CONTRIBUTING.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								CONTRIBUTING.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | Contributing to the Slixmpp project | ||||||
|  | =================================== | ||||||
|  |  | ||||||
|  | To contribute, the preferred way is to commit your changes on some | ||||||
|  | publicly-available git repository (on a fork `on github | ||||||
|  | <https://github.com/poezio/slixmpp>`_ or on your own repository) and to | ||||||
|  | notify the developers with either: | ||||||
|  |  - a ticket `on the bug tracker <https://lab.louiz.org/poezio/slixmpp/issues/new>`_ | ||||||
|  |  - a pull request on github | ||||||
|  |  - a simple message on `the XMPP MUC <xmpp:slixmpp@muc.poez.io>`_ | ||||||
|  |  | ||||||
|  | Even though Slixmpp’s github repository is just a read-only mirror, we can | ||||||
|  | still be notified of the pull requests and fetch your mirror manually to | ||||||
|  | integrate your changes. | ||||||
							
								
								
									
										6
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								INSTALL
									
									
									
									
									
								
							| @@ -1,5 +1,7 @@ | |||||||
| Pre-requisites: | Pre-requisites: | ||||||
| - Python 3.1 or 2.6 | - Python 3.7+ | ||||||
|  | - Cython 0.22 and libidn, optionally (making JID faster by compiling the stringprep module) | ||||||
|  | - GnuPG, for testing | ||||||
|  |  | ||||||
| Install: | Install: | ||||||
| > python3 setup.py install | > python3 setup.py install | ||||||
| @@ -9,4 +11,4 @@ Root install: | |||||||
|  |  | ||||||
| To test: | To test: | ||||||
| > cd examples | > cd examples | ||||||
| > python echo_client.py -v -j [USER@example.com] -p [PASSWORD] | > python3 echo_client.py -d -j [USER@example.com] -p [PASSWORD] | ||||||
|   | |||||||
							
								
								
									
										122
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										122
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -17,3 +17,125 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||||
| THE SOFTWARE. | THE SOFTWARE. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Licenses of Bundled Third Party Code | ||||||
|  | ------------------------------------ | ||||||
|  |  | ||||||
|  | dateutil - Extensions to the standard python 2.3+ datetime module. | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | Copyright (c) 2003-2011 - Gustavo Niemeyer <gustavo@niemeyer.net> | ||||||
|  |  | ||||||
|  | All rights reserved. | ||||||
|  |  | ||||||
|  | Redistribution and use in source and binary forms, with or without | ||||||
|  | modification, are permitted provided that the following conditions are met: | ||||||
|  |  | ||||||
|  |     * Redistributions of source code must retain the above copyright notice, | ||||||
|  |       this list of conditions and the following disclaimer. | ||||||
|  |     * Redistributions in binary form must reproduce the above copyright notice, | ||||||
|  |       this list of conditions and the following disclaimer in the documentation | ||||||
|  |       and/or other materials provided with the distribution. | ||||||
|  |     * Neither the name of the copyright holder nor the names of its | ||||||
|  |       contributors may be used to endorse or promote products derived from | ||||||
|  |       this software without specific prior written permission. | ||||||
|  |  | ||||||
|  | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||||
|  | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||||
|  | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||||
|  | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | ||||||
|  | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||||||
|  | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||||||
|  | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||||||
|  | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||||||
|  | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||||||
|  | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||||
|  | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | fixed_datetime | ||||||
|  | ~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | Copyright (c) 2008, Red Innovation Ltd., Finland | ||||||
|  | All rights reserved. | ||||||
|  |  | ||||||
|  | Redistribution and use in source and binary forms, with or without | ||||||
|  | modification, are permitted provided that the following conditions are met: | ||||||
|  |     * Redistributions of source code must retain the above copyright | ||||||
|  |       notice, this list of conditions and the following disclaimer. | ||||||
|  |     * Redistributions in binary form must reproduce the above copyright | ||||||
|  |       notice, this list of conditions and the following disclaimer in the | ||||||
|  |       documentation and/or other materials provided with the distribution. | ||||||
|  |     * Neither the name of Red Innovation nor the names of its contributors | ||||||
|  |       may be used to endorse or promote products derived from this software | ||||||
|  |       without specific prior written permission. | ||||||
|  |  | ||||||
|  | THIS SOFTWARE IS PROVIDED BY RED INNOVATION ``AS IS'' AND ANY | ||||||
|  | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||||
|  | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||||
|  | DISCLAIMED. IN NO EVENT SHALL RED INNOVATION BE LIABLE FOR ANY | ||||||
|  | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||||
|  | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||||
|  | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||||
|  | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||||
|  | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||||
|  | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | SUELTA – A PURE-PYTHON SASL CLIENT LIBRARY | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | This software is subject to "The MIT License" | ||||||
|  |  | ||||||
|  | Copyright 2004-2013 David Alan Cridland | ||||||
|  |  | ||||||
|  | Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  | of this software and associated documentation files (the "Software"), to deal | ||||||
|  | in the Software without restriction, including without limitation the rights | ||||||
|  | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  | copies of the Software, and to permit persons to whom the Software is | ||||||
|  | furnished to do so, subject to the following conditions: | ||||||
|  |  | ||||||
|  | The above copyright notice and this permission notice shall be included in | ||||||
|  | all copies or substantial portions of the Software. | ||||||
|  |  | ||||||
|  | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||||
|  | THE SOFTWARE. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | python-gnupg: A Python wrapper for the GNU Privacy Guard | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  | Copyright (c) 2008-2012 by Vinay Sajip. | ||||||
|  | All rights reserved. | ||||||
|  |  | ||||||
|  | Redistribution and use in source and binary forms, with or without | ||||||
|  | modification, are permitted provided that the following conditions are met: | ||||||
|  |  | ||||||
|  |     * Redistributions of source code must retain the above copyright notice, | ||||||
|  |       this list of conditions and the following disclaimer. | ||||||
|  |     * Redistributions in binary form must reproduce the above copyright notice, | ||||||
|  |       this list of conditions and the following disclaimer in the documentation | ||||||
|  |       and/or other materials provided with the distribution. | ||||||
|  |     * The name(s) of the copyright holder(s) may not be used to endorse or | ||||||
|  |       promote products derived from this software without specific prior | ||||||
|  |       written permission. | ||||||
|  |  | ||||||
|  | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) "AS IS" AND ANY EXPRESS OR | ||||||
|  | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||||||
|  | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||||||
|  | EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | ||||||
|  | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||||
|  | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||||||
|  | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||||||
|  | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | ||||||
|  | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | ||||||
|  | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								MANIFEST.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								MANIFEST.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | include README.rst | ||||||
|  | include LICENSE | ||||||
|  | include run_tests.py | ||||||
|  | include slixmpp/stringprep.pyx | ||||||
|  | recursive-include docs Makefile *.bat *.py *.rst *.css *.ttf *.png | ||||||
|  | recursive-include examples *.py | ||||||
|  | recursive-include tests *.py | ||||||
							
								
								
									
										47
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								README
									
									
									
									
									
								
							| @@ -1,47 +0,0 @@ | |||||||
| SleekXMPP is an XMPP library written for Python 3.1+ (with 2.6 compatibility). |  | ||||||
| Hosted at http://wiki.github.com/fritzy/SleekXMPP/ |  | ||||||
|  |  | ||||||
| Featured in examples in XMPP: The Definitive Guide by Kevin Smith, Remko Tronçon, and Peter Saint-Andre |  | ||||||
| If you're coming here from The Definitive Guide, please read http://wiki.github.com/fritzy/SleekXMPP/xmpp-the-definitive-guide |  | ||||||
|  |  | ||||||
| Requirements: |  | ||||||
| We try to keep requirements to a minimum, but we suggest that you install http://dnspython.org although it isn't strictly required. |  | ||||||
| If you do not install this library, you may need to specify the server/port for services that use SRV records (like GTalk). |  | ||||||
| "sudo pip install dnspython" on a *nix system with pip installed. |  | ||||||
|  |  | ||||||
| SleekXMPP has several design goals/philosophies: |  | ||||||
| - Low number of dependencies. |  | ||||||
| - Every XEP as a plugin. |  | ||||||
| - Rewarding to work with. |  | ||||||
|  |  | ||||||
| The goals for 1.0 include (and we're getting close): |  | ||||||
| - Nearly Full test coverage of stanzas. |  | ||||||
| - Wide range of functional tests. |  | ||||||
| - Stanza objects for all interaction with the stream |  | ||||||
| - Documentation on using and extending SleekXMPP. |  | ||||||
| - Complete documentation on all implemented stanza objects |  | ||||||
| - Documentation on all examples used in XMPP: The Definitive Guide |  | ||||||
|  |  | ||||||
| 1.1 will include: |  | ||||||
| - More functional and unit tests |  | ||||||
| - PEP-8 compliance |  | ||||||
| - XEP-225 support |  | ||||||
|  |  | ||||||
| Since 0.2, here's the Changelog: |  | ||||||
| - MANY bugfixes |  | ||||||
| - Re-implementation of handlers/threading to greatly simplify and remove bugs (no more spawning threads in handlers) |  | ||||||
| - Stanza objects for jabber:client and all implemented XEPs |  | ||||||
| - Raising XMPPError for jabber:client and extended errors in handlers |  | ||||||
| - Robust error handling and better insurance of iq responses |  | ||||||
| - Stanza objects have made life a lot easier! |  | ||||||
| - Massive audit/cleanup. |  | ||||||
|  |  | ||||||
| Credits |  | ||||||
| ---------------- |  | ||||||
| Main Author: Nathan Fritz fritz@netflint.net |  | ||||||
| Contributors: Kevin Smith & Lance Stout |  | ||||||
| Patches: Remko Tronçon |  | ||||||
|  |  | ||||||
| Feel free to add fritzy@netflint.net to your roster for direct support and comments. |  | ||||||
| Join sleekxmpp-discussion@googlegroups.com / http://groups.google.com/group/sleekxmpp-discussion for email discussion. |  | ||||||
| Join sleek@conference.jabber.org for groupchat discussion. |  | ||||||
							
								
								
									
										155
									
								
								README.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								README.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,155 @@ | |||||||
|  | Slixmpp | ||||||
|  | ######### | ||||||
|  |  | ||||||
|  | Slixmpp is an MIT licensed XMPP library for Python 3.7+. It is a fork of | ||||||
|  | SleekXMPP. | ||||||
|  |  | ||||||
|  | Slixmpp's goals is to only rewrite the core of the library (the low level | ||||||
|  | socket handling, the timers, the events dispatching) in order to remove all | ||||||
|  | threads. | ||||||
|  |  | ||||||
|  | Building | ||||||
|  | -------- | ||||||
|  |  | ||||||
|  | Slixmpp can make use of cython to improve performance on critical modules. | ||||||
|  | To do that, **cython3** is necessary along with **libidn** headers. | ||||||
|  | Otherwise, no compilation is needed. Building is done by running setup.py:: | ||||||
|  |  | ||||||
|  |     python3 setup.py build_ext --inplace | ||||||
|  |  | ||||||
|  | Documentation and Testing | ||||||
|  | ------------------------- | ||||||
|  | Documentation can be found both inline in the code, and as a Sphinx project in ``/docs``. | ||||||
|  | To generate the Sphinx documentation, follow the commands below. The HTML output will | ||||||
|  | be in ``docs/_build/html``:: | ||||||
|  |  | ||||||
|  |     cd docs | ||||||
|  |     make html | ||||||
|  |     open _build/html/index.html | ||||||
|  |  | ||||||
|  | To run the test suite for Slixmpp:: | ||||||
|  |  | ||||||
|  |     python run_tests.py | ||||||
|  |  | ||||||
|  | Integration tests require the following environment variables to be set::: | ||||||
|  |  | ||||||
|  |     $CI_ACCOUNT1 | ||||||
|  |     $CI_ACCOUNT1_PASSWORD | ||||||
|  |     $CI_ACCOUNT2 | ||||||
|  |     $CI_ACCOUNT2_PASSWORD | ||||||
|  |     $CI_MUC_SERVER | ||||||
|  |  | ||||||
|  | where the account variables are JIDs of valid, existing accounts, and | ||||||
|  | the passwords are the account passwords. The MUC server must allow room | ||||||
|  | creation from those JIDs. | ||||||
|  |  | ||||||
|  | To run the integration test suite for Slixmpp:: | ||||||
|  |  | ||||||
|  |     python run_integration_tests.py | ||||||
|  |  | ||||||
|  | The Slixmpp Boilerplate | ||||||
|  | ------------------------- | ||||||
|  | Projects using Slixmpp tend to follow a basic pattern for setting up client/component | ||||||
|  | connections and configuration. Here is the gist of the boilerplate needed for a Slixmpp | ||||||
|  | based project. See the documentation or examples directory for more detailed archetypes for | ||||||
|  | Slixmpp projects:: | ||||||
|  |  | ||||||
|  |     import logging | ||||||
|  |  | ||||||
|  |     from slixmpp import ClientXMPP | ||||||
|  |     from slixmpp.exceptions import IqError, IqTimeout | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     class EchoBot(ClientXMPP): | ||||||
|  |  | ||||||
|  |         def __init__(self, jid, password): | ||||||
|  |             ClientXMPP.__init__(self, jid, password) | ||||||
|  |  | ||||||
|  |             self.add_event_handler("session_start", self.session_start) | ||||||
|  |             self.add_event_handler("message", self.message) | ||||||
|  |  | ||||||
|  |             # If you wanted more functionality, here's how to register plugins: | ||||||
|  |             # self.register_plugin('xep_0030') # Service Discovery | ||||||
|  |             # self.register_plugin('xep_0199') # XMPP Ping | ||||||
|  |  | ||||||
|  |             # Here's how to access plugins once you've registered them: | ||||||
|  |             # self['xep_0030'].add_feature('echo_demo') | ||||||
|  |  | ||||||
|  |             # If you are working with an OpenFire server, you will | ||||||
|  |             # need to use a different SSL version: | ||||||
|  |             # import ssl | ||||||
|  |             # self.ssl_version = ssl.PROTOCOL_SSLv3 | ||||||
|  |  | ||||||
|  |         def session_start(self, event): | ||||||
|  |             self.send_presence() | ||||||
|  |             self.get_roster() | ||||||
|  |  | ||||||
|  |             # Most get_*/set_* methods from plugins use Iq stanzas, which | ||||||
|  |             # can generate IqError and IqTimeout exceptions | ||||||
|  |             # | ||||||
|  |             # try: | ||||||
|  |             #     self.get_roster() | ||||||
|  |             # except IqError as err: | ||||||
|  |             #     logging.error('There was an error getting the roster') | ||||||
|  |             #     logging.error(err.iq['error']['condition']) | ||||||
|  |             #     self.disconnect() | ||||||
|  |             # except IqTimeout: | ||||||
|  |             #     logging.error('Server is taking too long to respond') | ||||||
|  |             #     self.disconnect() | ||||||
|  |  | ||||||
|  |         def message(self, msg): | ||||||
|  |             if msg['type'] in ('chat', 'normal'): | ||||||
|  |                 msg.reply("Thanks for sending\n%(body)s" % msg).send() | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     if __name__ == '__main__': | ||||||
|  |         # Ideally use optparse or argparse to get JID, | ||||||
|  |         # password, and log level. | ||||||
|  |  | ||||||
|  |         logging.basicConfig(level=logging.DEBUG, | ||||||
|  |                             format='%(levelname)-8s %(message)s') | ||||||
|  |  | ||||||
|  |         xmpp = EchoBot('somejid@example.com', 'use_getpass') | ||||||
|  |         xmpp.connect() | ||||||
|  |         xmpp.process(forever=True) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Slixmpp Credits | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | **Maintainers:** | ||||||
|  |     - Florent Le Coz (`louiz@louiz.org <xmpp:louiz@louiz.org?message>`_), | ||||||
|  |     - Mathieu Pasquet (`mathieui@mathieui.net <xmpp:mathieui@mathieui.net?message>`_), | ||||||
|  |  | ||||||
|  | **Contributors:** | ||||||
|  |     - Emmanuel Gil Peyrot (`Link mauve <xmpp:linkmauve@linkmauve.fr?message>`_) | ||||||
|  |     - Sam Whited (`Sam Whited <mailto:sam@samwhited.com>`_) | ||||||
|  |     - Dan Sully (`Dan Sully <mailto:daniel@electricalrain.com>`_) | ||||||
|  |     - Gasper Zejn (`Gasper Zejn <mailto:zejn@kiberpipa.org>`_) | ||||||
|  |     - Krzysztof Kotlenga (`Krzysztof Kotlenga <mailto:pocek@users.sf.net>`_) | ||||||
|  |     - Tsukasa Hiiragi (`Tsukasa Hiiragi <mailto:bakalolka@gmail.com>`_) | ||||||
|  |     - Maxime Buquet (`pep <xmpp:pep@bouah.net?message>`_) | ||||||
|  |  | ||||||
|  | Credits (SleekXMPP) | ||||||
|  | ------------------- | ||||||
|  |  | ||||||
|  | **Main Author:** Nathan Fritz | ||||||
|  |     `fritzy@netflint.net <xmpp:fritzy@netflint.net?message>`_, | ||||||
|  |     `@fritzy <http://twitter.com/fritzy>`_ | ||||||
|  |  | ||||||
|  |     Nathan is also the author of XMPPHP and `Seesmic-AS3-XMPP | ||||||
|  |     <http://code.google.com/p/seesmic-as3-xmpp/>`_, and a former member of | ||||||
|  |     the XMPP Council. | ||||||
|  |  | ||||||
|  | **Co-Author:** Lance Stout | ||||||
|  |     `lancestout@gmail.com <xmpp:lancestout@gmail.com?message>`_, | ||||||
|  |     `@lancestout <http://twitter.com/lancestout>`_ | ||||||
|  |  | ||||||
|  | **Contributors:** | ||||||
|  |     - Brian Beggs (`macdiesel <http://github.com/macdiesel>`_) | ||||||
|  |     - Dann Martens (`dannmartens <http://github.com/dannmartens>`_) | ||||||
|  |     - Florent Le Coz (`louiz <http://github.com/louiz>`_) | ||||||
|  |     - Kevin Smith (`Kev <http://github.com/Kev>`_, http://kismith.co.uk) | ||||||
|  |     - Remko Tronçon (`remko <http://github.com/remko>`_, http://el-tramo.be) | ||||||
|  |     - Te-jé Rogers (`te-je <http://github.com/te-je>`_) | ||||||
|  |     - Thom Nichols (`tomstrummer <http://github.com/tomstrummer>`_) | ||||||
| @@ -1,171 +0,0 @@ | |||||||
| import logging |  | ||||||
| import sleekxmpp |  | ||||||
| from optparse import OptionParser |  | ||||||
| from xml.etree import cElementTree as ET |  | ||||||
| import os |  | ||||||
| import time |  | ||||||
| import sys |  | ||||||
| import unittest |  | ||||||
| import sleekxmpp.plugins.xep_0004 |  | ||||||
| from sleekxmpp.xmlstream.matcher.stanzapath import StanzaPath |  | ||||||
| from sleekxmpp.xmlstream.handler.waiter import Waiter |  | ||||||
| try: |  | ||||||
| 	import configparser |  | ||||||
| except ImportError: |  | ||||||
| 	import ConfigParser as configparser |  | ||||||
| try: |  | ||||||
| 	import queue |  | ||||||
| except ImportError: |  | ||||||
| 	import Queue as queue |  | ||||||
|  |  | ||||||
| class TestClient(sleekxmpp.ClientXMPP): |  | ||||||
| 	def __init__(self, jid, password): |  | ||||||
| 		sleekxmpp.ClientXMPP.__init__(self, jid, password) |  | ||||||
| 		self.add_event_handler("session_start", self.start) |  | ||||||
| 		#self.add_event_handler("message", self.message) |  | ||||||
| 		self.waitforstart = queue.Queue() |  | ||||||
| 	 |  | ||||||
| 	def start(self, event): |  | ||||||
| 		self.getRoster() |  | ||||||
| 		self.sendPresence() |  | ||||||
| 		self.waitforstart.put(True) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class TestPubsubServer(unittest.TestCase): |  | ||||||
| 	statev = {} |  | ||||||
|  |  | ||||||
| 	def __init__(self, *args, **kwargs): |  | ||||||
| 		unittest.TestCase.__init__(self, *args, **kwargs) |  | ||||||
|  |  | ||||||
| 	def setUp(self): |  | ||||||
| 		pass |  | ||||||
|  |  | ||||||
| 	def test001getdefaultconfig(self): |  | ||||||
| 		"""Get the default node config""" |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode2') |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode3') |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode4') |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode5') |  | ||||||
| 		result = self.xmpp1['xep_0060'].getNodeConfig(self.pshost) |  | ||||||
| 		self.statev['defaultconfig'] = result |  | ||||||
| 		self.failUnless(isinstance(result, sleekxmpp.plugins.xep_0004.Form)) |  | ||||||
| 	 |  | ||||||
| 	def test002createdefaultnode(self): |  | ||||||
| 		"""Create a node without config""" |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].create_node(self.pshost, 'testnode1')) |  | ||||||
|  |  | ||||||
| 	def test003deletenode(self): |  | ||||||
| 		"""Delete recently created node""" |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode1')) |  | ||||||
| 	 |  | ||||||
| 	def test004createnode(self): |  | ||||||
| 		"""Create a node with a config""" |  | ||||||
| 		self.statev['defaultconfig'].field['pubsub#access_model'].setValue('open') |  | ||||||
| 		self.statev['defaultconfig'].field['pubsub#notify_retract'].setValue(True) |  | ||||||
| 		self.statev['defaultconfig'].field['pubsub#persist_items'].setValue(True) |  | ||||||
| 		self.statev['defaultconfig'].field['pubsub#presence_based_delivery'].setValue(True) |  | ||||||
| 		p = self.xmpp2.Presence() |  | ||||||
| 		p['to'] = self.pshost |  | ||||||
| 		p.send() |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].create_node(self.pshost, 'testnode2', self.statev['defaultconfig'], ntype='job')) |  | ||||||
| 	 |  | ||||||
| 	def test005reconfigure(self): |  | ||||||
| 		"""Retrieving node config and reconfiguring""" |  | ||||||
| 		nconfig = self.xmpp1['xep_0060'].getNodeConfig(self.pshost, 'testnode2') |  | ||||||
| 		self.failUnless(nconfig, "No configuration returned") |  | ||||||
| 		#print("\n%s ==\n %s" % (nconfig.getValues(), self.statev['defaultconfig'].getValues())) |  | ||||||
| 		self.failUnless(nconfig.getValues() == self.statev['defaultconfig'].getValues(), "Configuration does not match") |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].setNodeConfig(self.pshost, 'testnode2', nconfig)) |  | ||||||
|  |  | ||||||
| 	def test006subscribetonode(self): |  | ||||||
| 		"""Subscribe to node from account 2""" |  | ||||||
| 		self.failUnless(self.xmpp2['xep_0060'].subscribe(self.pshost, "testnode2")) |  | ||||||
| 	 |  | ||||||
| 	def test007publishitem(self): |  | ||||||
| 		"""Publishing item""" |  | ||||||
| 		item = ET.Element('{http://netflint.net/protocol/test}test') |  | ||||||
| 		w = Waiter('wait publish', StanzaPath('message/pubsub_event/items')) |  | ||||||
| 		self.xmpp2.registerHandler(w) |  | ||||||
| 		#result = self.xmpp1['xep_0060'].setItem(self.pshost, "testnode2", (('test1', item),)) |  | ||||||
| 		result = self.xmpp1['jobs'].createJob(self.pshost, "testnode2", 'test1', item) |  | ||||||
| 		msg = w.wait(5) # got to get a result in 5 seconds |  | ||||||
| 		self.failUnless(msg != False, "Account #2 did not get message event") |  | ||||||
| 		#result = self.xmpp1['xep_0060'].setItem(self.pshost, "testnode2", (('test2', item),)) |  | ||||||
| 		result = self.xmpp1['jobs'].createJob(self.pshost, "testnode2", 'test2', item) |  | ||||||
| 		w = Waiter('wait publish2', StanzaPath('message/pubsub_event/items')) |  | ||||||
| 		self.xmpp2.registerHandler(w) |  | ||||||
| 		self.xmpp2['jobs'].claimJob(self.pshost, 'testnode2', 'test1') |  | ||||||
| 		msg = w.wait(5) # got to get a result in 5 seconds |  | ||||||
| 		self.xmpp2['jobs'].claimJob(self.pshost, 'testnode2', 'test2') |  | ||||||
| 		self.xmpp2['jobs'].finishJob(self.pshost, 'testnode2', 'test1') |  | ||||||
| 		self.xmpp2['jobs'].finishJob(self.pshost, 'testnode2', 'test2') |  | ||||||
| 		print result |  | ||||||
| 		#need to add check for update |  | ||||||
|  |  | ||||||
| 	def test900cleanup(self): |  | ||||||
| 		"Cleaning up" |  | ||||||
| 		#self.failUnless(self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode2'), "Could not delete test node.") |  | ||||||
| 		time.sleep(10) |  | ||||||
| 	 |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': |  | ||||||
| 	#parse command line arguements |  | ||||||
| 	optp = OptionParser() |  | ||||||
| 	optp.add_option('-q','--quiet', help='set logging to ERROR', action='store_const', dest='loglevel', const=logging.ERROR, default=logging.INFO) |  | ||||||
| 	optp.add_option('-d','--debug', help='set logging to DEBUG', action='store_const', dest='loglevel', const=logging.DEBUG, default=logging.INFO) |  | ||||||
| 	optp.add_option('-v','--verbose', help='set logging to COMM', action='store_const', dest='loglevel', const=5, default=logging.INFO) |  | ||||||
| 	optp.add_option("-c","--config", dest="configfile", default="config.xml", help="set config file to use") |  | ||||||
| 	optp.add_option("-n","--nodenum", dest="nodenum", default="1", help="set node number to use") |  | ||||||
| 	optp.add_option("-p","--pubsub", dest="pubsub", default="1", help="set pubsub host to use") |  | ||||||
| 	opts,args = optp.parse_args() |  | ||||||
| 	 |  | ||||||
| 	logging.basicConfig(level=opts.loglevel, format='%(levelname)-8s %(message)s') |  | ||||||
|  |  | ||||||
| 	#load xml config |  | ||||||
| 	logging.info("Loading config file: %s" % opts.configfile) |  | ||||||
| 	config = configparser.RawConfigParser() |  | ||||||
| 	config.read(opts.configfile) |  | ||||||
| 	 |  | ||||||
| 	#init |  | ||||||
| 	logging.info("Account 1 is %s" % config.get('account1', 'jid')) |  | ||||||
| 	xmpp1 = TestClient(config.get('account1','jid'), config.get('account1','pass')) |  | ||||||
| 	logging.info("Account 2 is %s" % config.get('account2', 'jid')) |  | ||||||
| 	xmpp2 = TestClient(config.get('account2','jid'), config.get('account2','pass')) |  | ||||||
| 	 |  | ||||||
| 	xmpp1.registerPlugin('xep_0004') |  | ||||||
| 	xmpp1.registerPlugin('xep_0030') |  | ||||||
| 	xmpp1.registerPlugin('xep_0060') |  | ||||||
| 	xmpp1.registerPlugin('xep_0199') |  | ||||||
| 	xmpp1.registerPlugin('jobs') |  | ||||||
| 	xmpp2.registerPlugin('xep_0004') |  | ||||||
| 	xmpp2.registerPlugin('xep_0030') |  | ||||||
| 	xmpp2.registerPlugin('xep_0060') |  | ||||||
| 	xmpp2.registerPlugin('xep_0199') |  | ||||||
| 	xmpp2.registerPlugin('jobs') |  | ||||||
|  |  | ||||||
| 	if not config.get('account1', 'server'): |  | ||||||
| 		# we don't know the server, but the lib can probably figure it out |  | ||||||
| 		xmpp1.connect()  |  | ||||||
| 	else: |  | ||||||
| 		xmpp1.connect((config.get('account1', 'server'), 5222)) |  | ||||||
| 	xmpp1.process(threaded=True) |  | ||||||
| 	 |  | ||||||
| 	#init |  | ||||||
| 	if not config.get('account2', 'server'): |  | ||||||
| 		# we don't know the server, but the lib can probably figure it out |  | ||||||
| 		xmpp2.connect()  |  | ||||||
| 	else: |  | ||||||
| 		xmpp2.connect((config.get('account2', 'server'), 5222)) |  | ||||||
| 	xmpp2.process(threaded=True) |  | ||||||
|  |  | ||||||
| 	TestPubsubServer.xmpp1 = xmpp1 |  | ||||||
| 	TestPubsubServer.xmpp2 = xmpp2 |  | ||||||
| 	TestPubsubServer.pshost = config.get('settings', 'pubsub') |  | ||||||
| 	xmpp1.waitforstart.get(True) |  | ||||||
| 	xmpp2.waitforstart.get(True) |  | ||||||
| 	testsuite = unittest.TestLoader().loadTestsFromTestCase(TestPubsubServer) |  | ||||||
|  |  | ||||||
| 	alltests_suite = unittest.TestSuite([testsuite]) |  | ||||||
| 	result = unittest.TextTestRunner(verbosity=2).run(alltests_suite) |  | ||||||
| 	xmpp1.disconnect() |  | ||||||
| 	xmpp2.disconnect() |  | ||||||
| @@ -1,233 +0,0 @@ | |||||||
| import logging |  | ||||||
| import sleekxmpp |  | ||||||
| from optparse import OptionParser |  | ||||||
| from xml.etree import cElementTree as ET |  | ||||||
| import os |  | ||||||
| import time |  | ||||||
| import sys |  | ||||||
| import unittest |  | ||||||
| import sleekxmpp.plugins.xep_0004 |  | ||||||
| from sleekxmpp.xmlstream.matcher.stanzapath import StanzaPath |  | ||||||
| from sleekxmpp.xmlstream.handler.waiter import Waiter |  | ||||||
| try: |  | ||||||
| 	import configparser |  | ||||||
| except ImportError: |  | ||||||
| 	import ConfigParser as configparser |  | ||||||
| try: |  | ||||||
| 	import queue |  | ||||||
| except ImportError: |  | ||||||
| 	import Queue as queue |  | ||||||
|  |  | ||||||
| class TestClient(sleekxmpp.ClientXMPP): |  | ||||||
| 	def __init__(self, jid, password): |  | ||||||
| 		sleekxmpp.ClientXMPP.__init__(self, jid, password) |  | ||||||
| 		self.add_event_handler("session_start", self.start) |  | ||||||
| 		#self.add_event_handler("message", self.message) |  | ||||||
| 		self.waitforstart = queue.Queue() |  | ||||||
| 	 |  | ||||||
| 	def start(self, event): |  | ||||||
| 		self.getRoster() |  | ||||||
| 		self.sendPresence() |  | ||||||
| 		self.waitforstart.put(True) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class TestPubsubServer(unittest.TestCase): |  | ||||||
| 	statev = {} |  | ||||||
|  |  | ||||||
| 	def __init__(self, *args, **kwargs): |  | ||||||
| 		unittest.TestCase.__init__(self, *args, **kwargs) |  | ||||||
|  |  | ||||||
| 	def setUp(self): |  | ||||||
| 		pass |  | ||||||
|  |  | ||||||
| 	def test001getdefaultconfig(self): |  | ||||||
| 		"""Get the default node config""" |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode2') |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode3') |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode4') |  | ||||||
| 		self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode5') |  | ||||||
| 		result = self.xmpp1['xep_0060'].getNodeConfig(self.pshost) |  | ||||||
| 		self.statev['defaultconfig'] = result |  | ||||||
| 		self.failUnless(isinstance(result, sleekxmpp.plugins.xep_0004.Form)) |  | ||||||
| 	 |  | ||||||
| 	def test002createdefaultnode(self): |  | ||||||
| 		"""Create a node without config""" |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].create_node(self.pshost, 'testnode1')) |  | ||||||
|  |  | ||||||
| 	def test003deletenode(self): |  | ||||||
| 		"""Delete recently created node""" |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode1')) |  | ||||||
| 	 |  | ||||||
| 	def test004createnode(self): |  | ||||||
| 		"""Create a node with a config""" |  | ||||||
| 		self.statev['defaultconfig'].field['pubsub#access_model'].setValue('open') |  | ||||||
| 		self.statev['defaultconfig'].field['pubsub#notify_retract'].setValue(True) |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].create_node(self.pshost, 'testnode2', self.statev['defaultconfig'])) |  | ||||||
| 	 |  | ||||||
| 	def test005reconfigure(self): |  | ||||||
| 		"""Retrieving node config and reconfiguring""" |  | ||||||
| 		nconfig = self.xmpp1['xep_0060'].getNodeConfig(self.pshost, 'testnode2') |  | ||||||
| 		self.failUnless(nconfig, "No configuration returned") |  | ||||||
| 		#print("\n%s ==\n %s" % (nconfig.getValues(), self.statev['defaultconfig'].getValues())) |  | ||||||
| 		self.failUnless(nconfig.getValues() == self.statev['defaultconfig'].getValues(), "Configuration does not match") |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].setNodeConfig(self.pshost, 'testnode2', nconfig)) |  | ||||||
|  |  | ||||||
| 	def test006subscribetonode(self): |  | ||||||
| 		"""Subscribe to node from account 2""" |  | ||||||
| 		self.failUnless(self.xmpp2['xep_0060'].subscribe(self.pshost, "testnode2")) |  | ||||||
| 	 |  | ||||||
| 	def test007publishitem(self): |  | ||||||
| 		"""Publishing item""" |  | ||||||
| 		item = ET.Element('{http://netflint.net/protocol/test}test') |  | ||||||
| 		w = Waiter('wait publish', StanzaPath('message/pubsub_event/items')) |  | ||||||
| 		self.xmpp2.registerHandler(w) |  | ||||||
| 		result = self.xmpp1['xep_0060'].setItem(self.pshost, "testnode2", (('test1', item),)) |  | ||||||
| 		msg = w.wait(5) # got to get a result in 5 seconds |  | ||||||
| 		self.failUnless(msg != False, "Account #2 did not get message event") |  | ||||||
| 		self.failUnless(result) |  | ||||||
| 		#need to add check for update |  | ||||||
| 	 |  | ||||||
| 	def test008updateitem(self): |  | ||||||
| 		"""Updating item""" |  | ||||||
| 		item = ET.Element('{http://netflint.net/protocol/test}test', {'someattr': 'hi there'}) |  | ||||||
| 		w = Waiter('wait publish', StanzaPath('message/pubsub_event/items')) |  | ||||||
| 		self.xmpp2.registerHandler(w) |  | ||||||
| 		result = self.xmpp1['xep_0060'].setItem(self.pshost, "testnode2", (('test1', item),)) |  | ||||||
| 		msg = w.wait(5) # got to get a result in 5 seconds |  | ||||||
| 		self.failUnless(msg != False, "Account #2 did not get message event") |  | ||||||
| 		self.failUnless(result) |  | ||||||
| 		#need to add check for update |  | ||||||
| 	 |  | ||||||
| 	def test009deleteitem(self): |  | ||||||
| 		"""Deleting item""" |  | ||||||
| 		w = Waiter('wait retract', StanzaPath('message/pubsub_event/items@node=testnode2')) |  | ||||||
| 		self.xmpp2.registerHandler(w) |  | ||||||
| 		result = self.xmpp1['xep_0060'].deleteItem(self.pshost, "testnode2", "test1") |  | ||||||
| 		self.failUnless(result, "Got error when deleting item.") |  | ||||||
| 		msg = w.wait(1) |  | ||||||
| 		self.failUnless(msg != False, "Did not get retract notice.") |  | ||||||
| 	 |  | ||||||
| 	def test010unsubscribenode(self): |  | ||||||
| 		"Unsubscribing Account #2" |  | ||||||
| 		self.failUnless(self.xmpp2['xep_0060'].unsubscribe(self.pshost, "testnode2"), "Got error response when unsubscribing.") |  | ||||||
| 	 |  | ||||||
| 	def test011createcollectionnode(self): |  | ||||||
| 		"Create a collection node w/ Account #2" |  | ||||||
| 		self.failUnless(self.xmpp2['xep_0060'].create_node(self.pshost, "testnode3", self.statev['defaultconfig'], True), "Could not create collection node") |  | ||||||
| 	 |  | ||||||
| 	def test012subscribecollection(self): |  | ||||||
| 		"Subscribe Account #1 to collection" |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].subscribe(self.pshost, "testnode3")) |  | ||||||
| 	 |  | ||||||
| 	def test013assignnodetocollection(self): |  | ||||||
| 		"Assign node to collection" |  | ||||||
| 		self.failUnless(self.xmpp2['xep_0060'].addNodeToCollection(self.pshost, 'testnode2', 'testnode3')) |  | ||||||
| 	 |  | ||||||
| 	def test014publishcollection(self): |  | ||||||
| 		"""Publishing item to collection child""" |  | ||||||
| 		item = ET.Element('{http://netflint.net/protocol/test}test') |  | ||||||
| 		w = Waiter('wait publish2', StanzaPath('message/pubsub_event/items@node=testnode2')) |  | ||||||
| 		self.xmpp1.registerHandler(w) |  | ||||||
| 		result = self.xmpp2['xep_0060'].setItem(self.pshost, "testnode2", (('test2', item),)) |  | ||||||
| 		msg = w.wait(5) # got to get a result in 5 seconds |  | ||||||
| 		self.failUnless(msg != False, "Account #1 did not get message event: perhaps node was advertised incorrectly?") |  | ||||||
| 		self.failUnless(result) |  | ||||||
|  |  | ||||||
| #	def test016speedtest(self): |  | ||||||
| #		"Uncached speed test" |  | ||||||
| #		import time |  | ||||||
| #		start = time.time() |  | ||||||
| #		for y in range(0, 50000, 1000): |  | ||||||
| #			start2 = time.time() |  | ||||||
| #			for x in range(y, y+1000): |  | ||||||
| #				self.failUnless(self.xmpp1['xep_0060'].subscribe(self.pshost, "testnode4", subscribee="testuser%s@whatever" % x)) |  | ||||||
| #			print time.time() - start2 |  | ||||||
| #		seconds = time.time() - start |  | ||||||
| #		print "--", seconds |  | ||||||
| #		print "---------" |  | ||||||
| #		time.sleep(15) |  | ||||||
| #		self.failUnless(self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode4'), "Could not delete non-cached test node") |  | ||||||
| 	 |  | ||||||
| #	def test015speedtest(self): |  | ||||||
| #		"cached speed test" |  | ||||||
| #		result = self.xmpp1['xep_0060'].getNodeConfig(self.pshost) |  | ||||||
| #		self.statev['defaultconfig'] = result |  | ||||||
| #		self.statev['defaultconfig'].field['pubsub#node_type'].setValue("leaf") |  | ||||||
| #		self.statev['defaultconfig'].field['sleek#saveonchange'].setValue(True) |  | ||||||
| #		self.failUnless(self.xmpp1['xep_0060'].create_node(self.pshost, 'testnode4', self.statev['defaultconfig'])) |  | ||||||
| #		self.statev['defaultconfig'].field['sleek#saveonchange'].setValue(False) |  | ||||||
| #		self.failUnless(self.xmpp1['xep_0060'].create_node(self.pshost, 'testnode5', self.statev['defaultconfig'])) |  | ||||||
| #		start = time.time() |  | ||||||
| #		for y in range(0, 50000, 1000): |  | ||||||
| #			start2 = time.time() |  | ||||||
| #			for x in range(y, y+1000): |  | ||||||
| #				self.failUnless(self.xmpp1['xep_0060'].subscribe(self.pshost, "testnode5", subscribee="testuser%s@whatever" % x)) |  | ||||||
| #			print time.time() - start2 |  | ||||||
| #		seconds = time.time() - start |  | ||||||
| #		print "--", seconds |  | ||||||
|  |  | ||||||
| 	def test900cleanup(self): |  | ||||||
| 		"Cleaning up" |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode2'), "Could not delete test node.") |  | ||||||
| 		self.failUnless(self.xmpp1['xep_0060'].deleteNode(self.pshost, 'testnode3'), "Could not delete collection node") |  | ||||||
| 	 |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': |  | ||||||
| 	#parse command line arguements |  | ||||||
| 	optp = OptionParser() |  | ||||||
| 	optp.add_option('-q','--quiet', help='set logging to ERROR', action='store_const', dest='loglevel', const=logging.ERROR, default=logging.INFO) |  | ||||||
| 	optp.add_option('-d','--debug', help='set logging to DEBUG', action='store_const', dest='loglevel', const=logging.DEBUG, default=logging.INFO) |  | ||||||
| 	optp.add_option('-v','--verbose', help='set logging to COMM', action='store_const', dest='loglevel', const=5, default=logging.INFO) |  | ||||||
| 	optp.add_option("-c","--config", dest="configfile", default="config.xml", help="set config file to use") |  | ||||||
| 	optp.add_option("-n","--nodenum", dest="nodenum", default="1", help="set node number to use") |  | ||||||
| 	optp.add_option("-p","--pubsub", dest="pubsub", default="1", help="set pubsub host to use") |  | ||||||
| 	opts,args = optp.parse_args() |  | ||||||
| 	 |  | ||||||
| 	logging.basicConfig(level=opts.loglevel, format='%(levelname)-8s %(message)s') |  | ||||||
|  |  | ||||||
| 	#load xml config |  | ||||||
| 	logging.info("Loading config file: %s" % opts.configfile) |  | ||||||
| 	config = configparser.RawConfigParser() |  | ||||||
| 	config.read(opts.configfile) |  | ||||||
| 	 |  | ||||||
| 	#init |  | ||||||
| 	logging.info("Account 1 is %s" % config.get('account1', 'jid')) |  | ||||||
| 	xmpp1 = TestClient(config.get('account1','jid'), config.get('account1','pass')) |  | ||||||
| 	logging.info("Account 2 is %s" % config.get('account2', 'jid')) |  | ||||||
| 	xmpp2 = TestClient(config.get('account2','jid'), config.get('account2','pass')) |  | ||||||
| 	 |  | ||||||
| 	xmpp1.registerPlugin('xep_0004') |  | ||||||
| 	xmpp1.registerPlugin('xep_0030') |  | ||||||
| 	xmpp1.registerPlugin('xep_0060') |  | ||||||
| 	xmpp1.registerPlugin('xep_0199') |  | ||||||
| 	xmpp2.registerPlugin('xep_0004') |  | ||||||
| 	xmpp2.registerPlugin('xep_0030') |  | ||||||
| 	xmpp2.registerPlugin('xep_0060') |  | ||||||
| 	xmpp2.registerPlugin('xep_0199') |  | ||||||
|  |  | ||||||
| 	if not config.get('account1', 'server'): |  | ||||||
| 		# we don't know the server, but the lib can probably figure it out |  | ||||||
| 		xmpp1.connect()  |  | ||||||
| 	else: |  | ||||||
| 		xmpp1.connect((config.get('account1', 'server'), 5222)) |  | ||||||
| 	xmpp1.process(threaded=True) |  | ||||||
| 	 |  | ||||||
| 	#init |  | ||||||
| 	if not config.get('account2', 'server'): |  | ||||||
| 		# we don't know the server, but the lib can probably figure it out |  | ||||||
| 		xmpp2.connect()  |  | ||||||
| 	else: |  | ||||||
| 		xmpp2.connect((config.get('account2', 'server'), 5222)) |  | ||||||
| 	xmpp2.process(threaded=True) |  | ||||||
|  |  | ||||||
| 	TestPubsubServer.xmpp1 = xmpp1 |  | ||||||
| 	TestPubsubServer.xmpp2 = xmpp2 |  | ||||||
| 	TestPubsubServer.pshost = config.get('settings', 'pubsub') |  | ||||||
| 	xmpp1.waitforstart.get(True) |  | ||||||
| 	xmpp2.waitforstart.get(True) |  | ||||||
| 	testsuite = unittest.TestLoader().loadTestsFromTestCase(TestPubsubServer) |  | ||||||
|  |  | ||||||
| 	alltests_suite = unittest.TestSuite([testsuite]) |  | ||||||
| 	result = unittest.TextTestRunner(verbosity=2).run(alltests_suite) |  | ||||||
| 	xmpp1.disconnect() |  | ||||||
| 	xmpp2.disconnect() |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| [settings] |  | ||||||
| enabled=true |  | ||||||
| pubsub=pubsub.recon |  | ||||||
|  |  | ||||||
| [account1] |  | ||||||
| jid=fritzy@recon |  | ||||||
| pass=testing123 |  | ||||||
| server= |  | ||||||
|  |  | ||||||
| [account2] |  | ||||||
| jid=fritzy2@recon |  | ||||||
| pass=testing123 |  | ||||||
| server= |  | ||||||
| @@ -1,350 +0,0 @@ | |||||||
| """ |  | ||||||
|     SleekXMPP: The Sleek XMPP Library |  | ||||||
|     Copyright (C) 2010 Nathanael C. Fritz |  | ||||||
|     This file is part of SleekXMPP. |  | ||||||
|      |  | ||||||
|     See the file LICENSE for copying permission. |  | ||||||
| """ |  | ||||||
|  |  | ||||||
| import logging |  | ||||||
| import sleekxmpp |  | ||||||
| from optparse import OptionParser |  | ||||||
| from xml.etree import cElementTree as ET |  | ||||||
| import os |  | ||||||
| import time |  | ||||||
| import sys |  | ||||||
| import Queue |  | ||||||
| import thread |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class testps(sleekxmpp.ClientXMPP): |  | ||||||
| 	def __init__(self, jid, password, ssl=False, plugin_config = {}, plugin_whitelist=[], nodenum=0, pshost=None): |  | ||||||
| 		sleekxmpp.ClientXMPP.__init__(self, jid, password, ssl, plugin_config, plugin_whitelist) |  | ||||||
| 		self.registerPlugin('xep_0004') |  | ||||||
| 		self.registerPlugin('xep_0030') |  | ||||||
| 		self.registerPlugin('xep_0060') |  | ||||||
| 		self.registerPlugin('xep_0092') |  | ||||||
| 		self.add_handler("<message xmlns='jabber:client'><event xmlns='http://jabber.org/protocol/pubsub#event' /></message>", self.pubsubEventHandler, name='Pubsub Event', threaded=True) |  | ||||||
| 		self.add_event_handler("session_start", self.start, threaded=True) |  | ||||||
| 		self.add_handler("<iq type='error' />", self.handleError, name='Iq Error') |  | ||||||
| 		self.events = Queue.Queue() |  | ||||||
| 		self.default_config = None |  | ||||||
| 		self.ps = self.plugin['xep_0060'] |  | ||||||
| 		self.node = "pstestnode_%s" |  | ||||||
| 		self.pshost = pshost |  | ||||||
| 		if pshost is None: |  | ||||||
| 			self.pshost = self.server |  | ||||||
| 		self.nodenum = int(nodenum) |  | ||||||
| 		self.leafnode = self.nodenum + 1 |  | ||||||
| 		self.collectnode = self.nodenum + 2 |  | ||||||
| 		self.lasterror = '' |  | ||||||
| 		self.sprintchars = 0 |  | ||||||
| 		self.defaultconfig = None |  | ||||||
| 		self.tests = ['test_defaultConfig', 'test_createDefaultNode', 'test_getNodes', 'test_deleteNode', 'test_createWithConfig', 'test_reconfigureNode', 'test_subscribeToNode', 'test_addItem', 'test_updateItem', 'test_deleteItem', 'test_unsubscribeNode', 'test_createCollection', 'test_subscribeCollection', 'test_addNodeCollection', 'test_deleteNodeCollection', 'test_addCollectionNode', 'test_deleteCollectionNode', 'test_unsubscribeNodeCollection', 'test_deleteCollection'] |  | ||||||
| 		self.passed = 0 |  | ||||||
| 		self.width = 120 |  | ||||||
| 	 |  | ||||||
| 	def start(self, event): |  | ||||||
| 		#TODO: make this configurable |  | ||||||
| 		self.getRoster() |  | ||||||
| 		self.sendPresence(ppriority=20) |  | ||||||
| 		thread.start_new(self.test_all, tuple()) |  | ||||||
| 	 |  | ||||||
| 	def sprint(self, msg, end=False, color=False): |  | ||||||
| 		length = len(msg) |  | ||||||
| 		if color: |  | ||||||
| 			if color == "red": |  | ||||||
| 				color = "1;31" |  | ||||||
| 			elif color == "green": |  | ||||||
| 				color = "0;32" |  | ||||||
| 			msg = "%s%s%s" % ("\033[%sm" % color, msg, "\033[0m") |  | ||||||
| 		if not end: |  | ||||||
| 			sys.stdout.write(msg) |  | ||||||
| 			self.sprintchars += length |  | ||||||
| 		else: |  | ||||||
| 			self.sprint("%s%s" % ("." * (self.width - self.sprintchars - length), msg)) |  | ||||||
| 			print('') |  | ||||||
| 			self.sprintchars = 0 |  | ||||||
| 		sys.stdout.flush() |  | ||||||
|  |  | ||||||
| 	def pubsubEventHandler(self, xml): |  | ||||||
| 		for item in xml.findall('{http://jabber.org/protocol/pubsub#event}event/{http://jabber.org/protocol/pubsub#event}items/{http://jabber.org/protocol/pubsub#event}item'): |  | ||||||
| 			self.events.put(item.get('id', '__unknown__')) |  | ||||||
| 		for item in xml.findall('{http://jabber.org/protocol/pubsub#event}event/{http://jabber.org/protocol/pubsub#event}items/{http://jabber.org/protocol/pubsub#event}retract'): |  | ||||||
| 			self.events.put(item.get('id', '__unknown__')) |  | ||||||
| 		for item in xml.findall('{http://jabber.org/protocol/pubsub#event}event/{http://jabber.org/protocol/pubsub#event}collection/{http://jabber.org/protocol/pubsub#event}disassociate'): |  | ||||||
| 			self.events.put(item.get('node', '__unknown__')) |  | ||||||
| 		for item in xml.findall('{http://jabber.org/protocol/pubsub#event}event/{http://jabber.org/protocol/pubsub#event}collection/{http://jabber.org/protocol/pubsub#event}associate'): |  | ||||||
| 			self.events.put(item.get('node', '__unknown__')) |  | ||||||
| 	 |  | ||||||
| 	def handleError(self, xml): |  | ||||||
| 		error = xml.find('{jabber:client}error') |  | ||||||
| 		self.lasterror =  error.getchildren()[0].tag.split('}')[-1] |  | ||||||
| 		 |  | ||||||
| 	def test_all(self): |  | ||||||
| 		print("Running Publish-Subscribe Tests") |  | ||||||
| 		version = self.plugin['xep_0092'].getVersion(self.pshost) |  | ||||||
| 		if version: |  | ||||||
| 			print("%s %s on %s" % (version.get('name', 'Unknown Server'), version.get('version', 'v?'), version.get('os', 'Unknown OS'))) |  | ||||||
| 		print("=" * self.width) |  | ||||||
| 		for test in self.tests: |  | ||||||
| 			testfunc = getattr(self, test) |  | ||||||
| 			self.sprint("%s" % testfunc.__doc__) |  | ||||||
| 			if testfunc(): |  | ||||||
| 				self.sprint("Passed", True, "green") |  | ||||||
| 				self.passed += 1 |  | ||||||
| 			else: |  | ||||||
| 				if not self.lasterror: |  | ||||||
| 					self.lasterror = 'No response' |  | ||||||
| 				self.sprint("Failed (%s)" % self.lasterror, True, "red") |  | ||||||
| 				self.lasterror = '' |  | ||||||
| 		print("=" * self.width) |  | ||||||
| 		self.sprint("Cleaning up...") |  | ||||||
| 		#self.ps.deleteNode(self.pshost, self.node % self.nodenum) |  | ||||||
| 		self.ps.deleteNode(self.pshost, self.node % self.leafnode) |  | ||||||
| 		#self.ps.deleteNode(self.pshost, self.node % self.collectnode) |  | ||||||
| 		self.sprint("Done", True, "green") |  | ||||||
| 		self.disconnect() |  | ||||||
| 		self.sprint("%s" % self.passed, False, "green") |  | ||||||
| 		self.sprint("/%s Passed -- " % len(self.tests)) |  | ||||||
| 		if len(self.tests) - self.passed: |  | ||||||
| 			self.sprint("%s" % (len(self.tests) - self.passed), False, "red") |  | ||||||
| 		else: |  | ||||||
| 			self.sprint("%s" % (len(self.tests) - self.passed), False, "green") |  | ||||||
| 		self.sprint(" Failed Tests") |  | ||||||
| 		print |  | ||||||
| 		#print "%s/%s Passed -- %s Failed Tests" % (self.passed, len(self.tests), len(self.tests) - self.passed) |  | ||||||
| 	 |  | ||||||
| 	def test_defaultConfig(self): |  | ||||||
| 		"Retreiving default configuration" |  | ||||||
| 		result = self.ps.getNodeConfig(self.pshost) |  | ||||||
| 		if result is False or result is None: |  | ||||||
| 			return False |  | ||||||
| 		else: |  | ||||||
| 			self.defaultconfig = result |  | ||||||
| 			try: |  | ||||||
| 				self.defaultconfig.field['pubsub#access_model'].setValue('open') |  | ||||||
| 			except KeyError: |  | ||||||
| 				pass |  | ||||||
| 			try: |  | ||||||
| 				self.defaultconfig.field['pubsub#notify_retract'].setValue(True) |  | ||||||
| 			except KeyError: |  | ||||||
| 				pass |  | ||||||
| 			return True |  | ||||||
| 	 |  | ||||||
| 	def test_createDefaultNode(self): |  | ||||||
| 		"Creating default node" |  | ||||||
| 		return self.ps.create_node(self.pshost, self.node % self.nodenum) |  | ||||||
| 	 |  | ||||||
| 	def test_getNodes(self): |  | ||||||
| 		"Getting list of nodes" |  | ||||||
| 		self.ps.getNodes(self.pshost) |  | ||||||
| 		self.ps.getItems(self.pshost, 'blog') |  | ||||||
| 		return True |  | ||||||
| 	 |  | ||||||
| 	def test_deleteNode(self): |  | ||||||
| 		"Deleting node" |  | ||||||
| 		return self.ps.deleteNode(self.pshost, self.node % self.nodenum) |  | ||||||
| 	 |  | ||||||
| 	def test_createWithConfig(self): |  | ||||||
| 		"Creating node with config" |  | ||||||
| 		if self.defaultconfig is None: |  | ||||||
| 			self.lasterror = "No Avail Config" |  | ||||||
| 			return False |  | ||||||
| 		return self.ps.create_node(self.pshost, self.node % self.leafnode, self.defaultconfig) |  | ||||||
| 	 |  | ||||||
| 	def test_reconfigureNode(self): |  | ||||||
| 		"Retrieving node config and reconfiguring" |  | ||||||
| 		nconfig = self.ps.getNodeConfig(self.pshost, self.node % self.leafnode) |  | ||||||
| 		if nconfig == False: |  | ||||||
| 			return False |  | ||||||
| 		return self.ps.setNodeConfig(self.pshost, self.node % self.leafnode, nconfig) |  | ||||||
| 		 |  | ||||||
| 	def test_subscribeToNode(self): |  | ||||||
| 		"Subscribing to node" |  | ||||||
| 		return self.ps.subscribe(self.pshost, self.node % self.leafnode) |  | ||||||
| 	 |  | ||||||
| 	def test_addItem(self): |  | ||||||
| 		"Adding item, waiting for notification" |  | ||||||
| 		item = ET.Element('test') |  | ||||||
| 		result = self.ps.setItem(self.pshost, self.node % self.leafnode, (('test_node1', item),)) |  | ||||||
| 		if result == False: |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			event = self.events.get(True, 10) |  | ||||||
| 		except Queue.Empty: |  | ||||||
| 			return False |  | ||||||
| 		if event == 'test_node1': |  | ||||||
| 			return True |  | ||||||
| 		return False |  | ||||||
| 	 |  | ||||||
| 	def test_updateItem(self): |  | ||||||
| 		"Updating item, waiting for notification" |  | ||||||
| 		item = ET.Element('test') |  | ||||||
| 		item.attrib['crap'] = 'yup, right here' |  | ||||||
| 		result = self.ps.setItem(self.pshost, self.node % self.leafnode, (('test_node1', item),)) |  | ||||||
| 		if result == False: |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			event = self.events.get(True, 10) |  | ||||||
| 		except Queue.Empty: |  | ||||||
| 			return False |  | ||||||
| 		if event == 'test_node1': |  | ||||||
| 			return True |  | ||||||
| 		return False |  | ||||||
|  |  | ||||||
| 	def test_deleteItem(self): |  | ||||||
| 		"Deleting item, waiting for notification" |  | ||||||
| 		result = self.ps.deleteItem(self.pshost, self.node % self.leafnode, 'test_node1') |  | ||||||
| 		if result == False: |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			event = self.events.get(True, 10) |  | ||||||
| 		except Queue.Empty: |  | ||||||
| 			self.lasterror = "No Notification" |  | ||||||
| 			return False |  | ||||||
| 		if event == 'test_node1': |  | ||||||
| 			return True |  | ||||||
| 		return False |  | ||||||
| 	 |  | ||||||
| 	def test_unsubscribeNode(self): |  | ||||||
| 		"Unsubscribing from node" |  | ||||||
| 		return self.ps.unsubscribe(self.pshost, self.node % self.leafnode) |  | ||||||
|  |  | ||||||
| 	def test_createCollection(self): |  | ||||||
| 		"Creating collection node" |  | ||||||
| 		return self.ps.create_node(self.pshost, self.node % self.collectnode, self.defaultconfig, True) |  | ||||||
| 	 |  | ||||||
| 	def test_subscribeCollection(self): |  | ||||||
| 		"Subscribing to collection node" |  | ||||||
| 		return self.ps.subscribe(self.pshost, self.node % self.collectnode) |  | ||||||
| 	 |  | ||||||
| 	def test_addNodeCollection(self): |  | ||||||
| 		"Assigning node to collection, waiting for notification" |  | ||||||
| 		config = self.ps.getNodeConfig(self.pshost, self.node % self.leafnode) |  | ||||||
| 		if not config or config is None: |  | ||||||
| 			self.lasterror = "Config Error" |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			config.field['pubsub#collection'].setValue(self.node % self.collectnode) |  | ||||||
| 		except KeyError: |  | ||||||
| 			self.sprint("...Missing Field...", False, "red") |  | ||||||
| 			config.addField('pubsub#collection', value=self.node % self.collectnode) |  | ||||||
| 		if not self.ps.setNodeConfig(self.pshost, self.node % self.leafnode, config): |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			event = self.events.get(True, 10) |  | ||||||
| 		except Queue.Empty: |  | ||||||
| 			self.lasterror = "No Notification" |  | ||||||
| 			return False |  | ||||||
| 		if event == self.node % self.leafnode: |  | ||||||
| 			return True |  | ||||||
| 		return False |  | ||||||
| 	 |  | ||||||
| 	def test_deleteNodeCollection(self): |  | ||||||
| 		"Removing node assignment to collection, waiting for notification" |  | ||||||
| 		config = self.ps.getNodeConfig(self.pshost, self.node % self.leafnode) |  | ||||||
| 		if not config or config is None: |  | ||||||
| 			self.lasterror = "Config Error" |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			config.field['pubsub#collection'].delValue(self.node % self.collectnode) |  | ||||||
| 		except KeyError: |  | ||||||
| 			self.sprint("...Missing Field...", False, "red") |  | ||||||
| 			config.addField('pubsub#collection', value='') |  | ||||||
| 		if not self.ps.setNodeConfig(self.pshost, self.node % self.leafnode, config): |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			event = self.events.get(True, 10) |  | ||||||
| 		except Queue.Empty: |  | ||||||
| 			self.lasterror = "No Notification" |  | ||||||
| 			return False |  | ||||||
| 		if event == self.node % self.leafnode: |  | ||||||
| 			return True |  | ||||||
| 		return False |  | ||||||
|  |  | ||||||
| 	def test_addCollectionNode(self): |  | ||||||
| 		"Assigning node from collection, waiting for notification" |  | ||||||
| 		config = self.ps.getNodeConfig(self.pshost, self.node % self.collectnode) |  | ||||||
| 		if not config or config is None: |  | ||||||
| 			self.lasterror = "Config Error" |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			config.field['pubsub#children'].setValue(self.node % self.leafnode) |  | ||||||
| 		except KeyError: |  | ||||||
| 			self.sprint("...Missing Field...", False, "red") |  | ||||||
| 			config.addField('pubsub#children', value=self.node % self.leafnode) |  | ||||||
| 		if not self.ps.setNodeConfig(self.pshost, self.node % self.collectnode, config): |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			event = self.events.get(True, 10) |  | ||||||
| 		except Queue.Empty: |  | ||||||
| 			self.lasterror = "No Notification" |  | ||||||
| 			return False |  | ||||||
| 		if event == self.node % self.leafnode: |  | ||||||
| 			return True |  | ||||||
| 		return False |  | ||||||
|  |  | ||||||
| 	def test_deleteCollectionNode(self): |  | ||||||
| 		"Removing node from collection, waiting for notification" |  | ||||||
| 		config = self.ps.getNodeConfig(self.pshost, self.node % self.collectnode) |  | ||||||
| 		if not config or config is None: |  | ||||||
| 			self.lasterror = "Config Error" |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			config.field['pubsub#children'].delValue(self.node % self.leafnode) |  | ||||||
| 		except KeyError: |  | ||||||
| 			self.sprint("...Missing Field...", False, "red") |  | ||||||
| 			config.addField('pubsub#children', value='') |  | ||||||
| 		if not self.ps.setNodeConfig(self.pshost, self.node % self.collectnode, config): |  | ||||||
| 			return False |  | ||||||
| 		try: |  | ||||||
| 			event = self.events.get(True, 10) |  | ||||||
| 		except Queue.Empty: |  | ||||||
| 			self.lasterror = "No Notification" |  | ||||||
| 			return False |  | ||||||
| 		if event == self.node % self.leafnode: |  | ||||||
| 			return True |  | ||||||
| 		return False |  | ||||||
| 	 |  | ||||||
| 	def test_unsubscribeNodeCollection(self): |  | ||||||
| 		"Unsubscribing from collection" |  | ||||||
| 		return self.ps.unsubscribe(self.pshost, self.node % self.collectnode) |  | ||||||
| 	 |  | ||||||
| 	def test_deleteCollection(self): |  | ||||||
| 		"Deleting collection" |  | ||||||
| 		return self.ps.deleteNode(self.pshost, self.node % self.collectnode) |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': |  | ||||||
| 	#parse command line arguements |  | ||||||
| 	optp = OptionParser() |  | ||||||
| 	optp.add_option('-q','--quiet', help='set logging to ERROR', action='store_const', dest='loglevel', const=logging.ERROR, default=logging.INFO) |  | ||||||
| 	optp.add_option('-d','--debug', help='set logging to DEBUG', action='store_const', dest='loglevel', const=logging.DEBUG, default=logging.INFO) |  | ||||||
| 	optp.add_option('-v','--verbose', help='set logging to COMM', action='store_const', dest='loglevel', const=5, default=logging.INFO) |  | ||||||
| 	optp.add_option("-c","--config", dest="configfile", default="config.xml", help="set config file to use") |  | ||||||
| 	optp.add_option("-n","--nodenum", dest="nodenum", default="1", help="set node number to use") |  | ||||||
| 	optp.add_option("-p","--pubsub", dest="pubsub", default="1", help="set pubsub host to use") |  | ||||||
| 	opts,args = optp.parse_args() |  | ||||||
| 	 |  | ||||||
| 	logging.basicConfig(level=opts.loglevel, format='%(levelname)-8s %(message)s') |  | ||||||
|  |  | ||||||
| 	#load xml config |  | ||||||
| 	logging.info("Loading config file: %s" % opts.configfile) |  | ||||||
| 	config = ET.parse(os.path.expanduser(opts.configfile)).find('auth') |  | ||||||
| 	 |  | ||||||
| 	#init |  | ||||||
| 	logging.info("Logging in as %s" % config.attrib['jid']) |  | ||||||
| 	 |  | ||||||
| 	 |  | ||||||
| 	plugin_config = {} |  | ||||||
| 	plugin_config['xep_0092'] = {'name': 'SleekXMPP Example', 'version': '0.1-dev'} |  | ||||||
| 	plugin_config['xep_0199'] = {'keepalive': True, 'timeout': 30, 'frequency': 300} |  | ||||||
| 	 |  | ||||||
| 	con = testps(config.attrib['jid'], config.attrib['pass'], plugin_config=plugin_config, plugin_whitelist=[], nodenum=opts.nodenum, pshost=opts.pubsub) |  | ||||||
| 	if not config.get('server', None): |  | ||||||
| 		# we don't know the server, but the lib can probably figure it out |  | ||||||
| 		con.connect()  |  | ||||||
| 	else: |  | ||||||
| 		con.connect((config.attrib['server'], 5222)) |  | ||||||
| 	con.process(threaded=False) |  | ||||||
| 	print("") |  | ||||||
							
								
								
									
										1
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | _build/* | ||||||
							
								
								
									
										130
									
								
								docs/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								docs/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,130 @@ | |||||||
|  | # Makefile for Sphinx documentation | ||||||
|  | # | ||||||
|  |  | ||||||
|  | # You can set these variables from the command line. | ||||||
|  | SPHINXOPTS    = | ||||||
|  | SPHINXBUILD   = sphinx-build | ||||||
|  | PAPER         = | ||||||
|  | BUILDDIR      = _build | ||||||
|  |  | ||||||
|  | # Internal variables. | ||||||
|  | PAPEROPT_a4     = -D latex_paper_size=a4 | ||||||
|  | PAPEROPT_letter = -D latex_paper_size=letter | ||||||
|  | ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . | ||||||
|  |  | ||||||
|  | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest | ||||||
|  |  | ||||||
|  | help: | ||||||
|  | 	@echo "Please use \`make <target>' where <target> is one of" | ||||||
|  | 	@echo "  html       to make standalone HTML files" | ||||||
|  | 	@echo "  dirhtml    to make HTML files named index.html in directories" | ||||||
|  | 	@echo "  singlehtml to make a single large HTML file" | ||||||
|  | 	@echo "  pickle     to make pickle files" | ||||||
|  | 	@echo "  json       to make JSON files" | ||||||
|  | 	@echo "  htmlhelp   to make HTML files and a HTML help project" | ||||||
|  | 	@echo "  qthelp     to make HTML files and a qthelp project" | ||||||
|  | 	@echo "  devhelp    to make HTML files and a Devhelp project" | ||||||
|  | 	@echo "  epub       to make an epub" | ||||||
|  | 	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter" | ||||||
|  | 	@echo "  latexpdf   to make LaTeX files and run them through pdflatex" | ||||||
|  | 	@echo "  text       to make text files" | ||||||
|  | 	@echo "  man        to make manual pages" | ||||||
|  | 	@echo "  changes    to make an overview of all changed/added/deprecated items" | ||||||
|  | 	@echo "  linkcheck  to check all external links for integrity" | ||||||
|  | 	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)" | ||||||
|  |  | ||||||
|  | clean: | ||||||
|  | 	-rm -rf $(BUILDDIR)/* | ||||||
|  |  | ||||||
|  | html: | ||||||
|  | 	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html." | ||||||
|  |  | ||||||
|  | dirhtml: | ||||||
|  | 	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." | ||||||
|  |  | ||||||
|  | singlehtml: | ||||||
|  | 	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." | ||||||
|  |  | ||||||
|  | pickle: | ||||||
|  | 	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished; now you can process the pickle files." | ||||||
|  |  | ||||||
|  | json: | ||||||
|  | 	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished; now you can process the JSON files." | ||||||
|  |  | ||||||
|  | htmlhelp: | ||||||
|  | 	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished; now you can run HTML Help Workshop with the" \ | ||||||
|  | 	      ".hhp project file in $(BUILDDIR)/htmlhelp." | ||||||
|  |  | ||||||
|  | qthelp: | ||||||
|  | 	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished; now you can run "qcollectiongenerator" with the" \ | ||||||
|  | 	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:" | ||||||
|  | 	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Slixmpp.qhcp" | ||||||
|  | 	@echo "To view the help file:" | ||||||
|  | 	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Slixmpp.qhc" | ||||||
|  |  | ||||||
|  | devhelp: | ||||||
|  | 	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished." | ||||||
|  | 	@echo "To view the help file:" | ||||||
|  | 	@echo "# mkdir -p $$HOME/.local/share/devhelp/Slixmpp" | ||||||
|  | 	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Slixmpp" | ||||||
|  | 	@echo "# devhelp" | ||||||
|  |  | ||||||
|  | epub: | ||||||
|  | 	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished. The epub file is in $(BUILDDIR)/epub." | ||||||
|  |  | ||||||
|  | latex: | ||||||
|  | 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." | ||||||
|  | 	@echo "Run \`make' in that directory to run these through (pdf)latex" \ | ||||||
|  | 	      "(use \`make latexpdf' here to do that automatically)." | ||||||
|  |  | ||||||
|  | latexpdf: | ||||||
|  | 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex | ||||||
|  | 	@echo "Running LaTeX files through pdflatex..." | ||||||
|  | 	make -C $(BUILDDIR)/latex all-pdf | ||||||
|  | 	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." | ||||||
|  |  | ||||||
|  | text: | ||||||
|  | 	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished. The text files are in $(BUILDDIR)/text." | ||||||
|  |  | ||||||
|  | man: | ||||||
|  | 	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Build finished. The manual pages are in $(BUILDDIR)/man." | ||||||
|  |  | ||||||
|  | changes: | ||||||
|  | 	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes | ||||||
|  | 	@echo | ||||||
|  | 	@echo "The overview file is in $(BUILDDIR)/changes." | ||||||
|  |  | ||||||
|  | linkcheck: | ||||||
|  | 	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck | ||||||
|  | 	@echo | ||||||
|  | 	@echo "Link check complete; look for any errors in the above output " \ | ||||||
|  | 	      "or in $(BUILDDIR)/linkcheck/output.txt." | ||||||
|  |  | ||||||
|  | doctest: | ||||||
|  | 	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest | ||||||
|  | 	@echo "Testing of doctests in the sources finished, look at the " \ | ||||||
|  | 	      "results in $(BUILDDIR)/doctest/output.txt." | ||||||
							
								
								
									
										
											BIN
										
									
								
								docs/_static/images/arch_layers.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/_static/images/arch_layers.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 27 KiB | 
							
								
								
									
										
											BIN
										
									
								
								docs/_static/images/from_&yet.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/_static/images/from_&yet.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.7 KiB | 
							
								
								
									
										88
									
								
								docs/api/api.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								docs/api/api.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,88 @@ | |||||||
|  | .. _internal-api: | ||||||
|  |  | ||||||
|  | Internal "API" | ||||||
|  | ============== | ||||||
|  |  | ||||||
|  | Slixmpp has a generic API registry that can be used by its plugins to allow | ||||||
|  | access control, redefinition of behaviour, without having to inherit from the | ||||||
|  | plugin or do more dark magic. | ||||||
|  |  | ||||||
|  | The idea is that each api call can be replaced, most of them use a form | ||||||
|  | of in-memory storage that can be, for example, replaced with database | ||||||
|  | or file-based storaged. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Each plugin is assigned an API proxy bound to itself, but only a few make use | ||||||
|  | of it. | ||||||
|  |  | ||||||
|  | See also :ref:`api-simple-tuto`. | ||||||
|  |  | ||||||
|  | Description of a generic API call | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | .. code-block:: python | ||||||
|  |  | ||||||
|  |     def get_toto(jid, node, ifrom, args): | ||||||
|  |         return 'toto' | ||||||
|  |  | ||||||
|  |     self.xmpp.plugin['xep_XXXX'].api.register(handler, 'get_toto') | ||||||
|  |  | ||||||
|  | Each API call will receive 4 parameters (which can be ``None`` if data | ||||||
|  | is not relevant to the operation), which are ``jid`` (``Optional[JID]``), | ||||||
|  | ``node`` (``Optional[str]``), ``ifrom`` (``Optional[JID]``), and ``args`` | ||||||
|  | (``Any``). | ||||||
|  |  | ||||||
|  | - ``jid``, if relevant, represents the JID targeted by that operation | ||||||
|  | - ``node``, if relevant is an arbitrary string, but was thought for, e.g., | ||||||
|  |   a pubsub or disco node. | ||||||
|  | - ``ifrom``, if relevant, is the JID the event is coming from. | ||||||
|  | - ``args`` is the event-specific data passed on by the plugin, often a dict | ||||||
|  |   of arguments (can be None as well). | ||||||
|  |  | ||||||
|  | .. note:: | ||||||
|  |     Since 1.8.0, API calls can be coroutines. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Handler hierarchy | ||||||
|  | ~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | The ``self.api.register()`` signature is as follows: | ||||||
|  |  | ||||||
|  | .. code-block:: python | ||||||
|  |  | ||||||
|  |     def register(handler, op, jid=None, node=None, default=False): | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  | As you can see, :meth:`~.APIRegistry.register` takes an additional ctype | ||||||
|  | parameter, but the :class:`~.APIWrapper` takes care of that for us (in most | ||||||
|  | cases, it is the name of the XEP plugin, such as ``'xep_0XXX'``). | ||||||
|  |  | ||||||
|  | When you register a handler, you register it for an ``op``, for **operation**. | ||||||
|  | For example, ``get_vcard``. | ||||||
|  |  | ||||||
|  | ``handler`` and ``op`` are the only two required parameters (and in many cases, | ||||||
|  | all you will ever need). You can, however, go further and register handlers | ||||||
|  | for specific values of the ``jid`` and ``node`` parameters of the calls. | ||||||
|  |  | ||||||
|  | The priority of the execution of handlers is as follows: | ||||||
|  |  | ||||||
|  | - Check if a handler for both values of ``node`` and ``jid`` has been defined | ||||||
|  | - If not found, check if a handler for this value of ``jid`` has been defined | ||||||
|  | - If not found, check if a handler for this value of ``node`` has been defined | ||||||
|  | - If still not found, get the global handler (no parameter registered) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Raw documentation | ||||||
|  | ~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | This documentation is provided for reference, but :meth:`~.APIRegistry.register` | ||||||
|  | should be all you need. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.api | ||||||
|  |  | ||||||
|  | .. autoclass:: APIRegistry | ||||||
|  |     :members: | ||||||
|  |  | ||||||
|  | .. autoclass:: APIWrapper | ||||||
|  |  | ||||||
							
								
								
									
										8
									
								
								docs/api/basexmpp.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								docs/api/basexmpp.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | ======== | ||||||
|  | BaseXMPP | ||||||
|  | ======== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.basexmpp | ||||||
|  |  | ||||||
|  | .. autoclass:: BaseXMPP | ||||||
|  |     :members: | ||||||
							
								
								
									
										8
									
								
								docs/api/clientxmpp.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								docs/api/clientxmpp.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | ========== | ||||||
|  | ClientXMPP | ||||||
|  | ========== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.clientxmpp | ||||||
|  |  | ||||||
|  | .. autoclass:: ClientXMPP | ||||||
|  |     :members: | ||||||
							
								
								
									
										8
									
								
								docs/api/componentxmpp.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								docs/api/componentxmpp.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | ============= | ||||||
|  | ComponentXMPP | ||||||
|  | ============= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.componentxmpp | ||||||
|  |  | ||||||
|  | .. autoclass:: ComponentXMPP | ||||||
|  |     :members: | ||||||
							
								
								
									
										14
									
								
								docs/api/exceptions.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								docs/api/exceptions.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | Exceptions | ||||||
|  | ========== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.exceptions | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. autoexception:: XMPPError | ||||||
|  |     :members: | ||||||
|  |  | ||||||
|  | .. autoexception:: IqError | ||||||
|  |     :members: | ||||||
|  |  | ||||||
|  | .. autoexception:: IqTimeout | ||||||
|  |     :members: | ||||||
							
								
								
									
										17
									
								
								docs/api/index.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								docs/api/index.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | API Reference | ||||||
|  | ------------- | ||||||
|  |  | ||||||
|  | .. toctree:: | ||||||
|  |     :maxdepth: 3 | ||||||
|  |  | ||||||
|  |     clientxmpp | ||||||
|  |     componentxmpp | ||||||
|  |     basexmpp | ||||||
|  |     exceptions | ||||||
|  |     xmlstream/jid | ||||||
|  |     xmlstream/stanzabase | ||||||
|  |     xmlstream/handler | ||||||
|  |     xmlstream/matcher | ||||||
|  |     xmlstream/xmlstream | ||||||
|  |     xmlstream/tostring | ||||||
|  |     api | ||||||
							
								
								
									
										96
									
								
								docs/api/plugins/index.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								docs/api/plugins/index.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | |||||||
|  | Plugin index | ||||||
|  | ============ | ||||||
|  |  | ||||||
|  | .. toctree:: | ||||||
|  |     :maxdepth: 2 | ||||||
|  |  | ||||||
|  |     xep_0004 | ||||||
|  |     xep_0009 | ||||||
|  |     xep_0012 | ||||||
|  |     xep_0013 | ||||||
|  |     xep_0020 | ||||||
|  |     xep_0027 | ||||||
|  |     xep_0030 | ||||||
|  |     xep_0033 | ||||||
|  |     xep_0045 | ||||||
|  |     xep_0047 | ||||||
|  |     xep_0049 | ||||||
|  |     xep_0050 | ||||||
|  |     xep_0054 | ||||||
|  |     xep_0059 | ||||||
|  |     xep_0060 | ||||||
|  |     xep_0065 | ||||||
|  |     xep_0066 | ||||||
|  |     xep_0070 | ||||||
|  |     xep_0071 | ||||||
|  |     xep_0077 | ||||||
|  |     xep_0079 | ||||||
|  |     xep_0080 | ||||||
|  |     xep_0082 | ||||||
|  |     xep_0084 | ||||||
|  |     xep_0085 | ||||||
|  |     xep_0086 | ||||||
|  |     xep_0092 | ||||||
|  |     xep_0106 | ||||||
|  |     xep_0107 | ||||||
|  |     xep_0108 | ||||||
|  |     xep_0115 | ||||||
|  |     xep_0118 | ||||||
|  |     xep_0122 | ||||||
|  |     xep_0128 | ||||||
|  |     xep_0131 | ||||||
|  |     xep_0133 | ||||||
|  |     xep_0152 | ||||||
|  |     xep_0153 | ||||||
|  |     xep_0163 | ||||||
|  |     xep_0172 | ||||||
|  |     xep_0184 | ||||||
|  |     xep_0186 | ||||||
|  |     xep_0191 | ||||||
|  |     xep_0196 | ||||||
|  |     xep_0198 | ||||||
|  |     xep_0199 | ||||||
|  |     xep_0202 | ||||||
|  |     xep_0203 | ||||||
|  |     xep_0221 | ||||||
|  |     xep_0222 | ||||||
|  |     xep_0223 | ||||||
|  |     xep_0224 | ||||||
|  |     xep_0231 | ||||||
|  |     xep_0235 | ||||||
|  |     xep_0249 | ||||||
|  |     xep_0256 | ||||||
|  |     xep_0257 | ||||||
|  |     xep_0258 | ||||||
|  |     xep_0279 | ||||||
|  |     xep_0280 | ||||||
|  |     xep_0297 | ||||||
|  |     xep_0300 | ||||||
|  |     xep_0308 | ||||||
|  |     xep_0313 | ||||||
|  |     xep_0319 | ||||||
|  |     xep_0332 | ||||||
|  |     xep_0333 | ||||||
|  |     xep_0334 | ||||||
|  |     xep_0335 | ||||||
|  |     xep_0352 | ||||||
|  |     xep_0353 | ||||||
|  |     xep_0356 | ||||||
|  |     xep_0359 | ||||||
|  |     xep_0363 | ||||||
|  |     xep_0369 | ||||||
|  |     xep_0377 | ||||||
|  |     xep_0380 | ||||||
|  |     xep_0394 | ||||||
|  |     xep_0403 | ||||||
|  |     xep_0404 | ||||||
|  |     xep_0405 | ||||||
|  |     xep_0421 | ||||||
|  |     xep_0422 | ||||||
|  |     xep_0424 | ||||||
|  |     xep_0425 | ||||||
|  |     xep_0428 | ||||||
|  |     xep_0437 | ||||||
|  |     xep_0439 | ||||||
|  |     xep_0441 | ||||||
|  |     xep_0444 | ||||||
							
								
								
									
										21
									
								
								docs/api/plugins/xep_0004.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								docs/api/plugins/xep_0004.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  |  | ||||||
|  | XEP-0004: Data Forms | ||||||
|  | ==================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0004 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0004 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0004.stanza.field | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0004.stanza.form | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0009.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0009.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0009: Jabber-RPC | ||||||
|  | ==================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0009 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0009 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0009.stanza.RPC | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										56
									
								
								docs/api/plugins/xep_0012.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docs/api/plugins/xep_0012.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | |||||||
|  |  | ||||||
|  | XEP-0012: Last Activity | ||||||
|  | ======================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0012 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0012 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. _api-0012: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | This plugin uses an in-memory storage by default to keep track of the | ||||||
|  | received and sent last activities. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     get_last_activity | ||||||
|  |         - **jid**: :class:`~.JID` of whom to retrieve the last activity | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: who the request is from (None = local) | ||||||
|  |         - **args**: ``None`` or an :class:`~.Iq` that is requesting the | ||||||
|  |         - **returns** | ||||||
|  |           information. | ||||||
|  |  | ||||||
|  |         Get the last activity of a JID from the storage. | ||||||
|  |  | ||||||
|  |     set_last_activity | ||||||
|  |         - **jid**: :class:`~.JID` of whom to set the last activity | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: A dict containing ``'seconds'`` and ``'status'`` | ||||||
|  |           ``{'seconds': Optional[int], 'status': Optional[str]}`` | ||||||
|  |  | ||||||
|  |         Set the last activity of a JID in the storage. | ||||||
|  |  | ||||||
|  |     del_last_activity | ||||||
|  |         - **jid**: :class:`~.JID` to delete from the storage | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |  | ||||||
|  |         Remove the last activity of a JID from the storage. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0012.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0013.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0013.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0013: Flexible Offline Message Retrieval | ||||||
|  | ============================================ | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0013 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0013 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0013.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0020.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0020.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0020: Feature Negotiation | ||||||
|  | ============================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0020 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0020 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0020.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										62
									
								
								docs/api/plugins/xep_0027.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								docs/api/plugins/xep_0027.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  |  | ||||||
|  | XEP-0027: Current Jabber OpenPGP Usage | ||||||
|  | ====================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0027 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0027 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. _api-0027: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The default API here is managing a JID→Keyid dict in-memory. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     get_keyid | ||||||
|  |         - **jid**: :class:`~.JID` to get. | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |         - **returns**: ``Optional[str]``, the keyid or None | ||||||
|  |  | ||||||
|  |         Get the KeyiD for a JID, None if it is not found. | ||||||
|  |  | ||||||
|  |     set_keyid | ||||||
|  |         - **jid**: :class:`~.JID` to set the id for. | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: ``str``, keyid to set | ||||||
|  |  | ||||||
|  |         Set the KeyiD for a JID. | ||||||
|  |  | ||||||
|  |     del_keyid | ||||||
|  |         - **jid**: :class:`~.JID` to delete from the mapping. | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |  | ||||||
|  |         Delete the KeyiD for a JID. | ||||||
|  |  | ||||||
|  |     get_keyids | ||||||
|  |         - **jid**: unused | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |         - **returns**: ``Dict[JID, str]`` the full internal mapping | ||||||
|  |  | ||||||
|  |         Get all currently stored KeyIDs. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0027.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										39
									
								
								docs/api/plugins/xep_0030.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								docs/api/plugins/xep_0030.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | |||||||
|  |  | ||||||
|  | XEP-0030: Service Discovery | ||||||
|  | =========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0030 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0030 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. _api-0030: | ||||||
|  |  | ||||||
|  | Internal API Methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | All ``api`` operations supported by the 0030 plugin are implemented as part of | ||||||
|  | the :class:`~.StaticDisco` class which implement an in-memory cache for disco | ||||||
|  | info and items. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0030.static | ||||||
|  |     :members: | ||||||
|  |     :member-order: bysource | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0030.stanza.info | ||||||
|  |     :members: | ||||||
|  |     :member-order: bysource | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0030.stanza.items | ||||||
|  |     :members: | ||||||
|  |     :member-order: bysource | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0033.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0033.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0033: Extended Stanza Addressing | ||||||
|  | ==================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0033 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0033 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0033.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								docs/api/plugins/xep_0045.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								docs/api/plugins/xep_0045.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  |  | ||||||
|  | XEP-0045: Multi-User Chat | ||||||
|  | ========================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0045 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0045 | ||||||
|  |     :member-order: bysource | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0045.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										89
									
								
								docs/api/plugins/xep_0047.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								docs/api/plugins/xep_0047.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,89 @@ | |||||||
|  |  | ||||||
|  | XEP-0047: In-band Bytestreams | ||||||
|  | ============================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0047 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0047 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. autoclass:: IBBytestream | ||||||
|  |     :members: | ||||||
|  |  | ||||||
|  | .. _api-0047: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The API here is used to manage streams and authorize. The default handlers | ||||||
|  | work with the config parameters. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     authorized_sid (0047 version) | ||||||
|  |         - **jid**: :class:`~.JID` receiving the stream initiation. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream is from. | ||||||
|  |         - **args**: :class:`~.Iq` of the stream request. | ||||||
|  |         - **returns**: ``True`` if the stream should be accepted, | ||||||
|  |           ``False`` otherwise. | ||||||
|  |  | ||||||
|  |         Check if the stream should be accepted. Uses | ||||||
|  |         the information setup by :term:`preauthorize_sid (0047 version)` | ||||||
|  |         by default. | ||||||
|  |  | ||||||
|  |     authorized (0047 version) | ||||||
|  |         - **jid**: :class:`~.JID` receiving the stream initiation. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream is from. | ||||||
|  |         - **args**: :class:`~.Iq` of the stream request. | ||||||
|  |         - **returns**: ``True`` if the stream should be accepted, | ||||||
|  |           ``False`` otherwise. | ||||||
|  |  | ||||||
|  |         A fallback handler (run after :term:`authorized_sid (0047 version)`) | ||||||
|  |         to check if a stream should be accepted. Uses the ``auto_accept`` | ||||||
|  |         parameter by default. | ||||||
|  |  | ||||||
|  |     preauthorize_sid (0047 version) | ||||||
|  |         - **jid**: :class:`~.JID` receiving the stream initiation. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream will be from. | ||||||
|  |         - **args**: Unused. | ||||||
|  |  | ||||||
|  |         Register a stream id to be accepted automatically (called from | ||||||
|  |         other plugins such as XEP-0095). | ||||||
|  |  | ||||||
|  |     get_stream | ||||||
|  |         - **jid**: :class:`~.JID` of local receiver. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream is from. | ||||||
|  |         - **args**: unused | ||||||
|  |         - **returns**: :class:`~.IBBytestream` | ||||||
|  |  | ||||||
|  |         Return a currently opened stream between two JIDs. | ||||||
|  |  | ||||||
|  |     set_stream | ||||||
|  |         - **jid**: :class:`~.JID` of local receiver. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream is from. | ||||||
|  |         - **args**: unused | ||||||
|  |  | ||||||
|  |         Register an opened stream between two JIDs. | ||||||
|  |  | ||||||
|  |     del_stream | ||||||
|  |         - **jid**: :class:`~.JID` of local receiver. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream is from. | ||||||
|  |         - **args**: unused | ||||||
|  |  | ||||||
|  |         Delete a stream between two JIDs. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0047.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0049.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0049.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0049: Private XML Storage | ||||||
|  | ============================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0049 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0049 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0049.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0050.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0050.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0050: Ad-Hoc Commands | ||||||
|  | ========================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0050 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0050 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0050.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										52
									
								
								docs/api/plugins/xep_0054.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/api/plugins/xep_0054.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  |  | ||||||
|  | XEP-0054: vcard-temp | ||||||
|  | ==================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0054 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0054 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. _api-0054: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | This plugin maintains by default an in-memory cache of the received | ||||||
|  | VCards. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     set_vcard | ||||||
|  |         - **jid**: :class:`~.JID` of whom to set the vcard | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: :class:`~.VCardTemp` object to store for this JID. | ||||||
|  |  | ||||||
|  |         Set a VCard for a JID. | ||||||
|  |  | ||||||
|  |     get_vcard | ||||||
|  |         - **jid**: :class:`~.JID` of whom to set the vcard | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: :class:`~.JID` the request is coming from | ||||||
|  |         - **args**: unused | ||||||
|  |         - **returns**: :class:`~.VCardTemp` object for this JID or None. | ||||||
|  |  | ||||||
|  |         Get a stored VCard for a JID. | ||||||
|  |  | ||||||
|  |     del_vcard | ||||||
|  |         - **jid**: :class:`~.JID` of whom to set the vcard | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |  | ||||||
|  |         Delete a stored VCard for a JID. | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0054.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0055.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0055.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0055: Jabber search | ||||||
|  | ======================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0055 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0055 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0055.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										21
									
								
								docs/api/plugins/xep_0059.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								docs/api/plugins/xep_0059.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  |  | ||||||
|  | XEP-0059: Result Set Management | ||||||
|  | =============================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0059 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0059 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. autoclass:: ResultIterator | ||||||
|  |     :members: | ||||||
|  |     :member-order: bysource | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0059.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										37
									
								
								docs/api/plugins/xep_0060.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								docs/api/plugins/xep_0060.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  |  | ||||||
|  | XEP-0060: Publish-Subscribe | ||||||
|  | =========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0060 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0060 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0060.stanza.base | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub_errors | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub_owner | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub_event | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
							
								
								
									
										60
									
								
								docs/api/plugins/xep_0065.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								docs/api/plugins/xep_0065.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  |  | ||||||
|  | XEP-0065: SOCKS5 Bytestreams | ||||||
|  | ============================ | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0065 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0065 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. _api-0065: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The internal API is used here to authorize or pre-authorize streams. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     authorized_sid (0065 version) | ||||||
|  |         - **jid**: :class:`~.JID` receiving the stream initiation. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream is from. | ||||||
|  |         - **args**: :class:`~.Iq` of the stream request. | ||||||
|  |         - **returns**: ``True`` if the stream should be accepted, | ||||||
|  |           ``False`` otherwise. | ||||||
|  |  | ||||||
|  |         Check if the stream should be accepted. Uses | ||||||
|  |         the information setup by :term:`preauthorize_sid (0065 version)` | ||||||
|  |         by default. | ||||||
|  |  | ||||||
|  |     authorized (0065 version) | ||||||
|  |         - **jid**: :class:`~.JID` receiving the stream initiation. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream is from. | ||||||
|  |         - **args**: :class:`~.Iq` of the stream request. | ||||||
|  |         - **returns**: ``True`` if the stream should be accepted, | ||||||
|  |           ``False`` otherwise. | ||||||
|  |  | ||||||
|  |         A fallback handler (run after :term:`authorized_sid (0065 version)`) | ||||||
|  |         to check if a stream should be accepted. Uses the ``auto_accept`` | ||||||
|  |         parameter by default. | ||||||
|  |  | ||||||
|  |     preauthorize_sid (0065 version) | ||||||
|  |         - **jid**: :class:`~.JID` receiving the stream initiation. | ||||||
|  |         - **node**:  stream id | ||||||
|  |         - **ifrom**: who the stream will be from. | ||||||
|  |         - **args**: Unused. | ||||||
|  |  | ||||||
|  |         Register a stream id to be accepted automatically (called from | ||||||
|  |         other plugins such as XEP-0095). | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0065.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0066.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0066.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0066: Out of Band Data | ||||||
|  | ========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0066 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0066 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0066.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0070.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0070.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0070: Verifying HTTP Requests via XMPP | ||||||
|  | ========================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0070 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0070 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0070.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0071.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0071.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0071: XHTML-IM | ||||||
|  | ================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0071 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0071 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0071.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										65
									
								
								docs/api/plugins/xep_0077.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								docs/api/plugins/xep_0077.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | |||||||
|  |  | ||||||
|  | XEP-0077: In-Band Registration | ||||||
|  | ============================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0077 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0077 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | Internal APi methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The API here is made to allow components to manage registered users. | ||||||
|  | The default handlers make use of the plugin options and store users | ||||||
|  | in memory. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     user_get | ||||||
|  |         - **jid**: unused | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: who the request is coming from | ||||||
|  |         - **args**: :class:`~.Iq` registration request. | ||||||
|  |         - **returns**: ``dict`` containing user data or None. | ||||||
|  |  | ||||||
|  |         Get user data for a user. | ||||||
|  |  | ||||||
|  |     user_validate | ||||||
|  |         - **jid**: unused | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: who the request is coming from | ||||||
|  |         - **args**: :class:`~.Iq` registration request, 'register' payload. | ||||||
|  |         - **raises**: ValueError if some fields are invalid | ||||||
|  |  | ||||||
|  |         Validate form fields and save user data. | ||||||
|  |  | ||||||
|  |     user_remove | ||||||
|  |         - **jid**: unused | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: who the request is coming from | ||||||
|  |         - **args**: :class:`~.Iq` registration removal request. | ||||||
|  |         - **raises**: KeyError if the user is not found. | ||||||
|  |  | ||||||
|  |         Remove a user from the store. | ||||||
|  |  | ||||||
|  |     make_registration_form | ||||||
|  |         - **jid**: unused | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: who the request is coming from | ||||||
|  |         - **args**: :class:`~.Iq` registration request. | ||||||
|  |         - **raises**: KeyError if the user is not found. | ||||||
|  |  | ||||||
|  |         Return an :class:`~.Iq` reply for the request, with a form and | ||||||
|  |         options set. By default, use ``form_fields`` and ``form_instructions`` | ||||||
|  |         plugin config options. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0077.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0079.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0079.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0079: Advanced Message Processing | ||||||
|  | ===================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0079 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0079 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0079.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0080.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0080.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0080: User Location | ||||||
|  | ======================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0080 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0080 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0080.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0082.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0082.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0082: XMPP Date and Time Profiles | ||||||
|  | ===================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0082 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0082 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0084.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0084.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0084: User Avatar | ||||||
|  | ===================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0084 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0084 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0084.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0085.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0085.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0085: Chat State Notifications | ||||||
|  | ================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0085 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0085 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0085.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0086.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0086.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0086: Error Condition Mappings | ||||||
|  | ================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0086 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0086 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0086.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0092.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0092.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0092: Software Version | ||||||
|  | ========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0092 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0092 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0092.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0100.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0100.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0106: Gateway interaction | ||||||
|  | ============================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0100 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0100 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0106.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0106.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0106: JID Escaping | ||||||
|  | ====================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0106 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0106 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0107.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0107.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0107: User Mood | ||||||
|  | =================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0107 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0107 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0107.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0108.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0108.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0108: User Activity | ||||||
|  | ======================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0108 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0108 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0108.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										66
									
								
								docs/api/plugins/xep_0115.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								docs/api/plugins/xep_0115.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | |||||||
|  |  | ||||||
|  | XEP-0115: Entity Capabilities | ||||||
|  | ============================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0115 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0115 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. _api-0115: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | This internal API extends the Disco internal API, and also manages an | ||||||
|  | in-memory cache of verstring→disco info, and fulljid→verstring. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     cache_caps | ||||||
|  |         - **jid**: unused | ||||||
|  |         - **node**:  unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: a ``dict`` containing the verstring and | ||||||
|  |           :class:`~.DiscoInfo` payload ( | ||||||
|  |           ``{'verstring': Optional[str], 'info': Optional[DiscoInfo]}``) | ||||||
|  |  | ||||||
|  |         Cache a verification string with its payload. | ||||||
|  |  | ||||||
|  |     get_caps | ||||||
|  |         - **jid**: JID to retrieve the verstring for (unused with the default | ||||||
|  |           handler) | ||||||
|  |         - **node**:  unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: a ``dict`` containing the verstring | ||||||
|  |           ``{'verstring': str}`` | ||||||
|  |         - **returns**: The :class:`~.DiscoInfo` payload for that verstring. | ||||||
|  |  | ||||||
|  |         Get a disco payload from a verstring. | ||||||
|  |  | ||||||
|  |     assign_verstring | ||||||
|  |         - **jid**: :class:`~.JID` (full) to assign the verstring to | ||||||
|  |         - **node**:  unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: a ``dict`` containing the verstring | ||||||
|  |           ``{'verstring': str}`` | ||||||
|  |  | ||||||
|  |         Cache JID→verstring information. | ||||||
|  |  | ||||||
|  |     get_verstring | ||||||
|  |         - **jid**: :class:`~.JID` to use for fetching the verstring | ||||||
|  |         - **node**:  unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |         - **returns**: ``str``, the verstring | ||||||
|  |  | ||||||
|  |         Retrieve a verstring for a JID. | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0115.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0118.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0118.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0118: User Tune | ||||||
|  | =================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0118 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0118 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0118.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0122.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0122.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0122: Data Forms Validation | ||||||
|  | =============================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0122 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0122 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0122.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										44
									
								
								docs/api/plugins/xep_0128.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								docs/api/plugins/xep_0128.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  |  | ||||||
|  | XEP-0128: Service Discovery Extensions | ||||||
|  | ====================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0128 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0128 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. _api-0128: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     add_extended_info | ||||||
|  |         - **jid**: JID to set the extended info for | ||||||
|  |         - **node**:  note to set the info at | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: A :class:`~.Form` or list of forms to add to the disco | ||||||
|  |           extended info for this JID/node. | ||||||
|  |  | ||||||
|  |         Add extended info for a JID/node. | ||||||
|  |  | ||||||
|  |     set_extended_info | ||||||
|  |         - **jid**: JID to set the extended info for | ||||||
|  |         - **node**:  note to set the info at | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: A :class:`~.Form` or list of forms to set as the disco | ||||||
|  |           extended info for this JID/node. | ||||||
|  |  | ||||||
|  |         Set extended info for a JID/node. | ||||||
|  |  | ||||||
|  |     del_extended_info | ||||||
|  |         - **jid**: JID to delete the extended info from | ||||||
|  |         - **node**:  note to delete the info from | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |  | ||||||
|  |         Delete extended info for a JID/node. | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0131.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0131.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0131: Stanza Headers and Internet Metadata | ||||||
|  | ============================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0131 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0131 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0131.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0133.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0133.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0133: Service Administration | ||||||
|  | ================================ | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0133 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0133 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0152.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0152.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0152: Reachability Addresses | ||||||
|  | ================================ | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0152 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0152 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0152.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										55
									
								
								docs/api/plugins/xep_0153.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								docs/api/plugins/xep_0153.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  |  | ||||||
|  | XEP-0153: vCard-Based Avatars | ||||||
|  | ============================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0153 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0153 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. _api-0153: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The internal API is used here to maintain an in-memory JID→avatar hash | ||||||
|  | cache. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     set_hash | ||||||
|  |         - **jid**: :class:`~.JID` of whom to retrieve the last activity | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: ``str``, avatar hash | ||||||
|  |  | ||||||
|  |         Set the avatar hash for a JID. | ||||||
|  |  | ||||||
|  |     reset_hash | ||||||
|  |         - **jid**: :class:`~.JID` of whom to retrieve the last activity | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: :class:`~.JID` of the entity requesting the reset. | ||||||
|  |         - **args**: unused | ||||||
|  |         - **returns** | ||||||
|  |           information. | ||||||
|  |  | ||||||
|  |         Reset the avatar hash for a JID. This downloads the vcard and computes | ||||||
|  |         the hash. | ||||||
|  |  | ||||||
|  |     get_hash | ||||||
|  |         - **jid**: :class:`~.JID` of whom to retrieve the last activity | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: unused | ||||||
|  |         - **returns**: ``Optional[str]``, the avatar hash | ||||||
|  |  | ||||||
|  |         Get the avatar hash for a JID. | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0153.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0163.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0163.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0163: Personal Eventing Protocol (PEP) | ||||||
|  | ========================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0163 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0163 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0172.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0172.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0172: User Nickname | ||||||
|  | ======================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0172 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0172 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0172.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0184.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0184.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0184: Message Delivery Receipts | ||||||
|  | =================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0184 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0184 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0184.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0186.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0186.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0186: Invisible Command | ||||||
|  | =========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0186 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0186 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0186.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0191.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0191.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0191: Blocking Command | ||||||
|  | ========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0191 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0191 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0191.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0196.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0196.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0196: User Gaming | ||||||
|  | ===================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0196 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0196 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0196.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0198.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0198.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0198: Stream Management | ||||||
|  | =========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0198 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0198 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0198.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0199.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0199.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0199: XMPP Ping | ||||||
|  | =================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0199 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0199 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0199.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0202.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0202.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0202: Entity Time | ||||||
|  | ===================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0202 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0202 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0202.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0203.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0203.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0203: Delayed Delivery | ||||||
|  | ========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0203 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0203 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0203.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0221.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0221.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0221: Data Forms Media Element | ||||||
|  | ================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0221 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0221 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0221.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0222.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0222.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0222: Persistent Storage of Public Data via PubSub | ||||||
|  | ====================================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0222 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0222 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0223.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0223.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0223: Persistent Storage of Private Data via PubSub | ||||||
|  | ======================================================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0223 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0223 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0224.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0224.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0224: Attention | ||||||
|  | =================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0224 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0224 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0224.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										53
									
								
								docs/api/plugins/xep_0231.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/api/plugins/xep_0231.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  |  | ||||||
|  | XEP-0231: Bits of Binary | ||||||
|  | ======================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0231 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0231 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  | .. _api-0231: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The default API handlers for this plugin manage an in-memory cache of | ||||||
|  | bits of binary by content-id. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     set_bob | ||||||
|  |         - **jid**: :class:`~.JID` sending the bob | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: :class:`~JID` receiving the bob | ||||||
|  |         - **args**: :class:`~.BitsOfBinary` element. | ||||||
|  |  | ||||||
|  |         Set a BoB in the cache. | ||||||
|  |  | ||||||
|  |     get_bob | ||||||
|  |         - **jid**: :class:`~.JID` receiving the bob | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: :class:`~JID` sending the bob | ||||||
|  |         - **args**: ``str`` content-id of the bob | ||||||
|  |         - **returns**: :class:`~.BitsOfBinary` element. | ||||||
|  |  | ||||||
|  |         Get a BoB from the cache. | ||||||
|  |  | ||||||
|  |     del_bob | ||||||
|  |         - **jid**: unused | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: :class:`~JID` sending the bob | ||||||
|  |         - **args**: ``str`` content-id of the bob | ||||||
|  |  | ||||||
|  |         Delete a BoB from the cache. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0231.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0235.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0235.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0235: OAuth Over XMPP | ||||||
|  | ========================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0235 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0235 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0235.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0249.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0249.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0249: Direct MUC Invitations | ||||||
|  | ================================ | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0249 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0249 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0249.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								docs/api/plugins/xep_0256.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/api/plugins/xep_0256.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  |  | ||||||
|  | XEP-0256: Last Activity in Presence | ||||||
|  | =================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0256 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0256 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0257.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0257.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0257: Client Certificate Management for SASL EXTERNAL | ||||||
|  | ========================================================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0257 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0257 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0257.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0258.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0258.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0258: Security Labels in XMPP | ||||||
|  | ================================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0258 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0258 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0258.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0279.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0279.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0279: Server IP Check | ||||||
|  | ========================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0279 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0279 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0279.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0280.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0280.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0280: Message Carbons | ||||||
|  | ========================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0280 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0280 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0280.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0297.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0297.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0297: Stanza Forwarding | ||||||
|  | =========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0297 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0297 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0297.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0300.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0300.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0300: Use of Cryptographic Hash Functions in XMPP | ||||||
|  | ===================================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0300 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0300 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0300.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0308.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0308.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0308: Last Message Correction | ||||||
|  | ================================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0308 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0308 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0308.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								docs/api/plugins/xep_0313.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								docs/api/plugins/xep_0313.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  |  | ||||||
|  | XEP-0313: Message Archive Management | ||||||
|  | ==================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0313 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0313 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0313.stanza | ||||||
|  |     :members: | ||||||
|  |     :member-order: bysource | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										45
									
								
								docs/api/plugins/xep_0319.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								docs/api/plugins/xep_0319.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  |  | ||||||
|  | XEP-0319: Last User Interaction in Presence | ||||||
|  | =========================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0319 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0319 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. _api-0319: | ||||||
|  |  | ||||||
|  | Internal API methods | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The default API manages an in-memory cache of idle periods. | ||||||
|  |  | ||||||
|  | .. glossary:: | ||||||
|  |  | ||||||
|  |     set_idle | ||||||
|  |         - **jid**: :class:`~.JID` who has been idling | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: :class:`datetime`, timestamp of the idle start | ||||||
|  |  | ||||||
|  |         Set the idle start for a JID. | ||||||
|  |  | ||||||
|  |     get_idle | ||||||
|  |         - **jid**: :class:`~.JID` to get the idle time of | ||||||
|  |         - **node**: unused | ||||||
|  |         - **ifrom**: unused | ||||||
|  |         - **args**: : unused | ||||||
|  |         - **returns**: :class:`datetime` | ||||||
|  |  | ||||||
|  |         Get the idle start timestamp for a JID. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0319.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										26
									
								
								docs/api/plugins/xep_0332.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								docs/api/plugins/xep_0332.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  |  | ||||||
|  | XEP-0332: HTTP over XMPP transport | ||||||
|  | ================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0332 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0332 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0332.stanza.data | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0332.stanza.request | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0332.stanza.response | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0333.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0333.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0333: Chat Markers | ||||||
|  | ====================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0333 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0333 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0333.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0334.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0334.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0334: Message Processing Hints | ||||||
|  | ================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0334 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0334 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0334.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0335.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0335.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0335: JSON Containers | ||||||
|  | ========================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0335 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0335 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0335.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0352.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0352.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0352: Client State Indication | ||||||
|  | ================================= | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0352 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0352 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0352.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								docs/api/plugins/xep_0353.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/api/plugins/xep_0353.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  |  | ||||||
|  | XEP-0353: Jingle Message Initiation | ||||||
|  | =================================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0353 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0353 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0353.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								docs/api/plugins/xep_0356.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								docs/api/plugins/xep_0356.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  |  | ||||||
|  | XEP-0356: Privileged Entity | ||||||
|  | =========================== | ||||||
|  |  | ||||||
|  | .. module:: slixmpp.plugins.xep_0356 | ||||||
|  |  | ||||||
|  | .. autoclass:: XEP_0356 | ||||||
|  |     :members: | ||||||
|  |     :exclude-members: session_bind, plugin_init, plugin_end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Stanza elements | ||||||
|  | --------------- | ||||||
|  |  | ||||||
|  | .. automodule:: slixmpp.plugins.xep_0356.stanza | ||||||
|  |     :members: | ||||||
|  |     :undoc-members: | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user