Changeset 128:db5de9ee45fa for wokkel/iwokkel.py
- Timestamp:
- Jun 4, 2009, 10:15:16 AM (13 years ago)
- Branch:
- wokkel-muc-client-support-24
- Parents:
- 127:1610e7a3b777 (diff), 60:e5e6ff37ea27 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
wokkel/iwokkel.py
r59 r128 768 768 @rtype: L{defer.Deferred} 769 769 """ 770 771 772 773 class IMUCClient(Interface): 774 """ 775 Multi-User Chat Client 776 777 A client interface to XEP-045 : http://xmpp.org/extensions/xep-0045.html 778 779 """ 780 781 def receivedSubject(room, subject): 782 """ 783 A subject is received when you join a room and when the subject is changed. This 784 method is triggered by one of those two events. 785 786 @param room: The room the subject was accepted for. 787 @type room: L{muc.Room} 788 789 @param subject: The subject of the given room. 790 @type subject: C{unicode} 791 """ 792 793 794 def receivedHistory(room, user, message, history, frm=None): 795 """ 796 Past messages from a chat room has been received. This occurs when you join a room. 797 798 799 """ 800 801 802 def disco(entity, type='info'): 803 """Send disco queries to a XMPP entity 804 805 @param entity: A XMPP entity to send the disco request to. 806 @type entity: C{unicode} 807 808 @param type: Optional argument to determine the type of discovery being done. 809 @type type: C{str} 810 811 """ 812 813 814 815 def configure(room_jid, fields=[]): 816 """Configure a room. When a user has administration privledges they can configure 817 a room. 818 819 @param room_jid: A XMPP entity for the room. 820 @type room_jid: L{jid.JID} 821 822 @param fields: A list of fields to change or add to the room's configuration. 823 @type fields: C{list} 824 825 """ 826 827 def getConfigureForm(room_jid): 828 """ 829 In order to know the fields to change in a room you will need to get the form. 830 831 @param room_jid: The room you want the configuration form from. 832 @type room_jid: L{jid.JID} 833 834 """ 835 836 def join(server, room, nick): 837 """ 838 Join a multi-user chat room. 839 840 @param server: The server the room is on. 841 @type server: C{str} 842 843 @param room: The room name. 844 @type room: C{str} 845 846 @param nick: The nick name you want when you join the room. 847 @type nick: C{str} 848 849 """ 850 851 852 def leave(room_jid): 853 """ 854 Leave a multi-user chat room. 855 856 @param room_jid: The room you want the configuration form from. 857 @type room_jid: L{jid.JID} 858 859 """ 860 861 def userJoinedRoom(room, user): 862 """User has joined the room. 863 864 @param room: The room the user joined. 865 @type room: L{muc.Room} 866 867 @param user: The user that joined the room. 868 @type user: L{muc.User} 869 870 """ 871 872 873 def groupChat(to, message, children=None): 874 """Send a groupchat message to a room. 875 876 """ 877 878 879 def chat(to, message, children=None): 880 """ 881 882 """ 883 884 885 def password(to, password): 886 """ 887 """ 888 889 def register(to, fields=[]): 890 """ 891 """ 892 893 894 def subject(to, subject): 895 """ 896 """ 897 898 def voice(to): 899 """ 900 """ 901 902 903 def history(to, message_list): 904 """ 905 """ 906 907 def ban(to, ban_jid, frm, reason=None): 908 """ 909 """ 910 911 912 def kick(to, kick_jid, frm, reason=None): 913 """ 914 """ -
wokkel/iwokkel.py
r113 r128 16 16 """ 17 17 18 manager = Attribute("""XML stream manager""")18 parent = Attribute("""XML stream manager for this handler""") 19 19 xmlstream = Attribute("""The managed XML stream""") 20 20 … … 26 26 """ 27 27 28 28 29 def disownHandlerParent(parent): 29 30 """ … … 32 33 @type parent: L{IXMPPHandlerCollection} 33 34 """ 35 34 36 35 37 def makeConnection(xs): … … 45 47 @type xs: L{XmlStream<twisted.words.protocols.jabber.XmlStream>} 46 48 """ 49 47 50 48 51 def connectionMade(): … … 55 58 """ 56 59 60 57 61 def connectionInitialized(): 58 62 """ … … 64 68 """ 65 69 70 66 71 def connectionLost(reason): 67 72 """ … … 73 78 @type reason: L{twisted.python.failure.Failure} 74 79 """ 80 75 81 76 82 … … 87 93 """ 88 94 95 89 96 def addHandler(handler): 90 97 """ … … 94 101 """ 95 102 103 96 104 def removeHandler(handler): 97 105 """ … … 100 108 @type handler: L{IXMPPHandler} 101 109 """ 110 102 111 103 112 … … 270 279 """ 271 280 272 def notifyDelete(service, nodeIdentifier, subscriptions): 281 282 def notifyDelete(service, nodeIdentifier, subscribers, 283 redirectURI=None): 273 284 """ 274 285 Send out node deletion notifications. … … 278 289 @param nodeIdentifier: The identifier of the node that was deleted. 279 290 @type nodeIdentifier: C{unicode} 280 @param subscriptions: The subscriptions for which a notification should 281 be sent out. 282 @type subscriptions: C{list} of L{jid.JID} 291 @param subscribers: The subscribers for which a notification should 292 be sent out. 293 @type subscribers: C{list} of L{jid.JID} 294 @param redirectURI: Optional XMPP URI of another node that subscribers 295 are redirected to. 296 @type redirectURI: C{str} 283 297 """ 284 298 … … 387 401 that option in a dictionary: 388 402 389 - C{'type'} (C{str}): The option's type (see390 L{Field<wokkel.data_form.Field>}'s doc string for possible values).391 - C{'label'} (C{unicode}): A human readable label for this option.392 - C{'options'} (C{dict}): Optional list of possible values for this393 option.403 - C{'type'} (C{str}): The option's type (see 404 L{Field<wokkel.data_form.Field>}'s doc string for possible values). 405 - C{'label'} (C{unicode}): A human readable label for this option. 406 - C{'options'} (C{dict}): Optional list of possible values for this 407 option. 394 408 395 409 Example:: … … 414 428 """ 415 429 416 def getDefaultConfiguration(requestor, service ):430 def getDefaultConfiguration(requestor, service, nodeType): 417 431 """ 418 432 Called when a default node configuration request has been received. … … 422 436 @param service: The entity the request was addressed to. 423 437 @type service: L{jid.JID} 438 @param nodeType: The type of node for which the configuration is 439 retrieved, C{'leaf'} or C{'collection'}. 440 @type nodeType: C{str} 424 441 @return: A deferred that fires with a C{dict} representing the default 425 442 node configuration. Keys are C{str}s that represent the … … 511 528 @type nodeIdentifier: C{unicode} 512 529 """ 530 531 532 533 class IPubSubResource(Interface): 534 535 def locateResource(request): 536 """ 537 Locate a resource that will handle the request. 538 539 @param request: The publish-subscribe request. 540 @type request: L{wokkel.pubsub.PubSubRequest} 541 """ 542 543 544 def getInfo(requestor, service, nodeIdentifier): 545 """ 546 Get node type and meta data. 547 548 @param requestor: The entity the request originated from. 549 @type requestor: L{jid.JID} 550 @param service: The publish-subscribe service entity. 551 @type service: L{jid.JID} 552 @param nodeIdentifier: Identifier of the node to request the info for. 553 @type nodeIdentifier: L{unicode} 554 @return: A deferred that fires with a dictionary. If not empty, 555 it must have the keys C{'type'} and C{'meta-data'} to keep 556 respectively the node type and a dictionary with the meta 557 data for that node. 558 @rtype: L{defer.Deferred} 559 """ 560 561 562 def getNodes(requestor, service, nodeIdentifier): 563 """ 564 Get all nodes contained by this node. 565 566 @param requestor: The entity the request originated from. 567 @type requestor: L{jid.JID} 568 @param service: The publish-subscribe service entity. 569 @type service: L{jid.JID} 570 @param nodeIdentifier: Identifier of the node to request the childs for. 571 @type nodeIdentifier: L{unicode} 572 @return: A deferred that fires with a list of child node identifiers. 573 @rtype: L{defer.Deferred} 574 """ 575 576 577 def getConfigurationOptions(): 578 """ 579 Retrieve all known node configuration options. 580 581 The returned dictionary holds the possible node configuration options 582 by option name. The value of each entry represents the specifics for 583 that option in a dictionary: 584 585 - C{'type'} (C{str}): The option's type (see 586 L{Field<wokkel.data_form.Field>}'s doc string for possible values). 587 - C{'label'} (C{unicode}): A human readable label for this option. 588 - C{'options'} (C{dict}): Optional list of possible values for this 589 option. 590 591 Example:: 592 593 { 594 "pubsub#persist_items": 595 {"type": "boolean", 596 "label": "Persist items to storage"}, 597 "pubsub#deliver_payloads": 598 {"type": "boolean", 599 "label": "Deliver payloads with event notifications"}, 600 "pubsub#send_last_published_item": 601 {"type": "list-single", 602 "label": "When to send the last published item", 603 "options": { 604 "never": "Never", 605 "on_sub": "When a new subscription is processed"} 606 } 607 } 608 609 @rtype: C{dict}. 610 """ 611 612 613 def publish(request): 614 """ 615 Called when a publish request has been received. 616 617 @param request: The publish-subscribe request. 618 @type request: L{wokkel.pubsub.PubSubRequest} 619 @return: deferred that fires on success. 620 @rtype: L{defer.Deferred} 621 """ 622 623 624 def subscribe(request): 625 """ 626 Called when a subscribe request has been received. 627 628 @param request: The publish-subscribe request. 629 @type request: L{wokkel.pubsub.PubSubRequest} 630 @return: A deferred that fires with a 631 L{Subscription<wokkel.pubsub.Subscription>}. 632 @rtype: L{defer.Deferred} 633 """ 634 635 636 def unsubscribe(request): 637 """ 638 Called when a subscribe request has been received. 639 640 @param request: The publish-subscribe request. 641 @type request: L{wokkel.pubsub.PubSubRequest} 642 @return: A deferred that fires with C{None} when unsubscription has 643 succeeded. 644 @rtype: L{defer.Deferred} 645 """ 646 647 648 def subscriptions(request): 649 """ 650 Called when a subscriptions retrieval request has been received. 651 652 @param request: The publish-subscribe request. 653 @type request: L{wokkel.pubsub.PubSubRequest} 654 @return: A deferred that fires with a C{list} of subscriptions as 655 L{Subscription<wokkel.pubsub.Subscription>}. 656 @rtype: L{defer.Deferred} 657 """ 658 659 660 def affiliations(request): 661 """ 662 Called when a affiliations retrieval request has been received. 663 664 @param request: The publish-subscribe request. 665 @type request: L{wokkel.pubsub.PubSubRequest} 666 @return: A deferred that fires with a C{list} of affiliations as 667 C{tuple}s of (node identifier as C{unicode}, affiliation state 668 as C{str}). The affiliation can be C{'owner'}, C{'publisher'}, 669 or C{'outcast'}. 670 @rtype: L{defer.Deferred} 671 """ 672 673 674 def create(request): 675 """ 676 Called when a node creation request has been received. 677 678 @param request: The publish-subscribe request. 679 @type request: L{wokkel.pubsub.PubSubRequest} 680 @return: A deferred that fires with a C{unicode} that represents 681 the identifier of the new node. 682 @rtype: L{defer.Deferred} 683 """ 684 685 686 def default(request): 687 """ 688 Called when a default node configuration request has been received. 689 690 @param request: The publish-subscribe request. 691 @type request: L{wokkel.pubsub.PubSubRequest} 692 @return: A deferred that fires with a C{dict} representing the default 693 node configuration. Keys are C{str}s that represent the 694 field name. Values can be of types C{unicode}, C{int} or 695 C{bool}. 696 @rtype: L{defer.Deferred} 697 """ 698 699 700 def configureGet(request): 701 """ 702 Called when a node configuration retrieval request has been received. 703 704 @param request: The publish-subscribe request. 705 @type request: L{wokkel.pubsub.PubSubRequest} 706 @return: A deferred that fires with a C{dict} representing the node 707 configuration. Keys are C{str}s that represent the field name. 708 Values can be of types C{unicode}, C{int} or C{bool}. 709 @rtype: L{defer.Deferred} 710 """ 711 712 713 def configureSet(request): 714 """ 715 Called when a node configuration change request has been received. 716 717 @param request: The publish-subscribe request. 718 @type request: L{wokkel.pubsub.PubSubRequest} 719 @return: A deferred that fires with C{None} when the node's 720 configuration has been changed. 721 @rtype: L{defer.Deferred} 722 """ 723 724 725 def items(request): 726 """ 727 Called when a items retrieval request has been received. 728 729 @param request: The publish-subscribe request. 730 @type request: L{wokkel.pubsub.PubSubRequest} 731 @return: A deferred that fires with a C{list} of L{pubsub.Item}. 732 @rtype: L{defer.Deferred} 733 """ 734 735 736 def retract(request): 737 """ 738 Called when a item retraction request has been received. 739 740 @param request: The publish-subscribe request. 741 @type request: L{wokkel.pubsub.PubSubRequest} 742 @return: A deferred that fires with C{None} when the given items have 743 been retracted. 744 @rtype: L{defer.Deferred} 745 """ 746 747 748 def purge(request): 749 """ 750 Called when a node purge request has been received. 751 752 @param request: The publish-subscribe request. 753 @type request: L{wokkel.pubsub.PubSubRequest} 754 @return: A deferred that fires with C{None} when the node has been 755 purged. 756 @rtype: L{defer.Deferred} 757 """ 758 759 760 def delete(request): 761 """ 762 Called when a node deletion request has been received. 763 764 @param request: The publish-subscribe request. 765 @type request: L{wokkel.pubsub.PubSubRequest} 766 @return: A deferred that fires with C{None} when the node has been 767 deleted. 768 @rtype: L{defer.Deferred} 769 """ 770 513 771 514 772 … … 655 913 """ 656 914 """ 657
Note: See TracChangeset
for help on using the changeset viewer.