File

spec/scansion/pep_nickname.scs @ 12254:5b0c8e499288

modulemanager: Add plugin load filter that reads module metadata from source Metadata in modules is added using lines formatted as: --% key: value Where key is a valid identifier string, and value is also a string (leading and trailing whitespace are trimmed during parsing). The initial supported keys are: --% requires_core_features: feature1, feature2, ... --% conflicts_core_features: feature1, feature2. ... These 'features' map to features reported by the new core.features module. A benefit of this load-time metadata approach compared to e.g. something like module:requires()/module:conflicts() is that we can continue to look in module search paths for a suitable module. Aborting an already-loaded module due to a version conflict would be too late.
author Matthew Wild <mwild1@gmail.com>
date Fri, 04 Feb 2022 14:20:00 +0000
parent 11714:d783716103c1
child 12965:edde56b60fd7
line wrap: on
line source

# Publishing a nickname in PEP and receiving a notification

[Client] Romeo
	jid: romeo@localhost
	password: password

-----

Romeo connects

Romeo sends:
	<iq id="4" type="set">
	  <pubsub xmlns="http://jabber.org/protocol/pubsub">
	    <publish node="http://jabber.org/protocol/nick">
	      <item id="current">
	        <nickname xmlns="http://jabber.org/protocol/nick"/>
	      </item>
	    </publish>
	  </pubsub>
	</iq>

Romeo receives:
	<iq id="4" type="result">
	  <pubsub xmlns="http://jabber.org/protocol/pubsub">
	    <publish node="http://jabber.org/protocol/nick">
	      <item id="current"/>
	    </publish>
	  </pubsub>
	</iq>

Romeo sends:
	<presence>
	  <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://code.matthewwild.co.uk/clix/" ver="jC32N+FhQoLrZ7nNQtZK3aqR0Fk="/>
	</presence>

Romeo receives:
	<iq id="disco" from="romeo@localhost" type="get">
	  <query xmlns="http://jabber.org/protocol/disco#info" node="http://code.matthewwild.co.uk/clix/#jC32N+FhQoLrZ7nNQtZK3aqR0Fk="/>
	</iq>

Romeo receives:
	<presence>
	  <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://code.matthewwild.co.uk/clix/" ver="jC32N+FhQoLrZ7nNQtZK3aqR0Fk="/>
	</presence>

Romeo sends:
	<iq id="disco" type="result" to="romeo@localhost">
	  <query xmlns="http://jabber.org/protocol/disco#info" node="http://code.matthewwild.co.uk/clix/#jC32N+FhQoLrZ7nNQtZK3aqR0Fk=">
	    <identity type="console" name="clix" category="client"/>
	    <feature var="http://jabber.org/protocol/disco#items"/>
	    <feature var="http://jabber.org/protocol/disco#info"/>
	    <feature var="http://jabber.org/protocol/caps"/>
	    <feature var="http://jabber.org/protocol/nick+notify"/>
	  </query>
	</iq>

Romeo receives:
	<message type="headline" from="romeo@localhost">
	  <event xmlns="http://jabber.org/protocol/pubsub#event">
	    <items node="http://jabber.org/protocol/nick">
	      <item id="current" publisher="${Romeo's JID}">
	        <nickname xmlns="http://jabber.org/protocol/nick"/>
	      </item>
	    </items>
	  </event>
	</message>

Romeo sends:
	<presence type="unavailable"/>

Romeo disconnects