Discover XEPs

XEPs are XMPP Extension Protocols, and there are a bunch. The best way to discover them would probably be to read XEP-0001: XMPP Extension Protocols. :slight_smile:

Discover XEP-0402: Bookmarks 2 (This Time it's Serious)
Discover XEP-0401: Easy User Onboarding
Discover XEP-0400: Multi-Factor Authentication with TOTP
Discover XEP-0399: Client Key Support
Discover XEP-0398: User Avatar to vCard-Based Avatars Conversion
Discover XEP-0397: Instant Stream Resumption
Discover XEP-0393: Message Styling
Discover XEP-0392: Consistent Color Generation
Discover XEP-0391: Jingle Encrypted Transports
Discover XEP-0387: XMPP Compliance Suites 2018
Discover XEP-0385: Stateless Inline Media Sharing (SIMS)
Discover XEP-0384: OMEMO Encryption
Discover XEP-0381: Internet of Things Special Interest Group (IoT SIG)
Discover XEP-0373: OpenPGP for XMPP
Discover XEP-0369: Mediated Information eXchange (MIX)
Discover XEP-0368: SRV records for XMPP over TLS
Discover XEP-0363: HTTP File Upload
Discover XEP-0359: Unique and Stable Stanza IDs
Discover XEP-0357: Push Notifications
Discover XEP-0335: JSON Containers
Discover XEP-0319: Last User Interaction in Presence
Discover XEP-0313: Message Archive Management
Discover XEP-0308: Last Message Correction
Discover XEP-0301: In-Band Real Time Text
Discover XEP-0300: Use of Cryptographic Hash Functions in XMPP
Discover XEP-0297: Stanza Forwarding
Discover XEP-0295: JSON Encodings for XMPP
Discover XEP-0294: Jingle RTP Header Extensions Negotiation
Discover XEP-0293: Jingle RTP Feedback Negotiation
Discover XEP-0288: Bidirectional Server-to-Server Connections
Discover XEP-0286: Mobile Considerations on LTE Networks
Discover XEP-0283: Moved
Discover XEP-0280: Message Carbons
Discover XEP-0266: Codecs for Jingle Audio
Discover XEP-0263: ECO-XMPP
Discover XEP-0262: Use of ZRTP in Jingle RTP Sessions
Discover XEP-0261: Jingle In-Band Bytestreams Transport Method
Discover XEP-0260: Jingle SOCKS5 Bytestreams Transport Method
Discover XEP-0258: Security Labels in XMPP
Discover XEP-0256: Last Activity in Presence
Discover XEP-0249: Direct MUC Invitations
Discover XEP-0245: The /me Command
Discover XEP-0239: Binary XMPP
Discover XEP-0233: XMPP Server Registration for use with Kerberos V5
Discover XEP-0231: Bits of Binary
Discover XEP-0229: Stream Compression with LZW
Discover XEP-0227: Portable Import/Export Format for XMPP-IM Servers
Discover XEP-0224: Attention
Discover XEP-0223: Persistent Storage of Private Data via PubSub
Discover XEP-0222: Persistent Storage of Public Data via PubSub
Discover XEP-0221: Data Forms Media Element
Discover XEP-0220: Server Dialback
Discover XEP-0207: XMPP Eventing via Pubsub
Discover XEP-0206: XMPP Over BOSH
Discover XEP-0205: Best Practices to Discourage Denial of Service Attacks
Discover XEP-0203: Delayed Delivery
Discover XEP-0202: Entity Time
Discover XEP-0201: Best Practices for Message Threads
Discover XEP-0199: XMPP Ping
Discover XEP-0198: Stream Management
Discover XEP-0191: Blocking Command
Discover XEP-0185: Dialback Key Generation and Validation
Discover XEP-0184: Message Delivery Receipts
Discover XEP-0183: Jingle Telepathy Transport
Discover XEP-0182: Application-Specific Error Conditions
Discover XEP-0178: Best Practices for Use of SASL EXTERNAL with Certificates
Discover XEP-0177: Jingle Raw UDP Transport Method
Discover XEP-0176: Jingle ICE-UDP Transport Method
Discover XEP-0175: Best Practices for Use of SASL ANONYMOUS
Discover XEP-0174: Serverless Messaging
Discover XEP-0172: User Nickname
Discover XEP-0171: Language Translation
Discover XEP-0170: Recommended Order of Stream Feature Negotiation
Discover XEP-0169: Twas The Night Before Christmas (Jabber Version)
Discover XEP-0167: Jingle RTP Sessions
Discover XEP-0166: Jingle
Discover XEP-0163: Personal Eventing Protocol
Discover XEP-0160: Best Practices for Handling Offline Messages
Discover XEP-0158: CAPTCHA Forms
Discover XEP-0157: Contact Addresses for XMPP Services
Discover XEP-0156: Discovering Alternative XMPP Connection Methods
Discover XEP-0155: Stanza Session Negotiation
Discover XEP-0153: vCard-Based Avatars
Discover XEP-0152: Reachability Addresses
Discover XEP-0149: Time Periods
Discover XEP-0148: Instant Messaging Intelligence Quotient (IM IQ)
Discover XEP-0147: XMPP URI Scheme Query Components
Discover XEP-0145: Annotations
Discover XEP-0144: Roster Item Exchange
Discover XEP-0143: Guidelines for Authors of XMPP Extension Protocols
Discover XEP-0141: Data Forms Layout
Discover XEP-0138: Stream Compression
Discover XEP-0134: XMPP Design Guidelines
Discover XEP-0133: Service Administration
Discover XEP-0132: Presence Obtained via Kinesthetic Excitation (POKE)
Discover XEP-0131: Stanza Headers and Internet Metadata
Discover XEP-0128: Service Discovery Extensions
Discover XEP-0127: Common Alerting Protocol (CAP) Over XMPP
Discover XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)
Discover XEP-0122: Data Forms Validation
Discover XEP-0118: User Tune
Discover XEP-0115: Entity Capabilities
Discover XEP-0114: Jabber Component Protocol
Discover XEP-0108: User Activity
Discover XEP-0107: User Mood
Discover XEP-0106: JID Escaping
Discover XEP-0100: Gateway Interaction
Discover XEP-0092: Software Version
Discover XEP-0085: Chat State Notifications
Discover XEP-0084: User Avatar
Discover XEP-0083: Nested Roster Groups
Discover XEP-0082: XMPP Date and Time Profiles
Discover XEP-0080: User Location
Discover XEP-0079: Advanced Message Processing
Discover XEP-0077: In-Band Registration
Discover XEP-0076: Malicious Stanzas
Discover XEP-0072: SOAP Over XMPP
Discover XEP-0070: Verifying HTTP Requests via XMPP
Discover XEP-0068: Field Standardization for Data Forms
Discover XEP-0066: Out of Band Data
Discover XEP-0065: SOCKS5 Bytestreams
Discover XEP-0060: Publish-Subscribe
Discover XEP-0059: Result Set Management
Discover XEP-0055: Jabber Search
Discover XEP-0054: vcard-temp
Discover XEP-0053: XMPP Registrar Function
Discover XEP-0050: Ad-Hoc Commands
Discover XEP-0049: Private XML Storage
Discover XEP-0048: Bookmarks
Discover XEP-0412: XMPP Compliance Suites 2019
Discover XEP-0045: Multi-User Chat
Discover XEP-0033: Extended Stanza Addressing
Discover XEP-0030: Service Discovery
Discover XEP-0019: Streamlining the SIGs
Discover XEP-0013: Flexible Offline Message Retrieval
Discover XEP-0012: Last Activity
Discover XEP-0009: Jabber-RPC
Discover XEP-0004: Data Forms
Discover XEP-0002: Special Interest Groups (SIGs)
Discover XEP-0001: XMPP Extension Protocols
Discover XEP-0047: In-Band Bytestreams
Discover XEP-0411: Bookmarks Conversion
Discover XEP-0410: MUC Self-Ping (Schrödinger's Chat)
Discover XEP-0409: IM Routing-NG
Discover XEP-0408: Mediated Information eXchange (MIX): Co-existence with MUC
Discover XEP-0407: Mediated Information eXchange (MIX): Miscellaneous Capabilities
Discover XEP-0406: Mediated Information eXchange (MIX): MIX Administration
Discover XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements
Discover XEP-0404: Mediated Information eXchange (MIX): JID Hidden Channels.
Discover XEP-0403: Mediated Information eXchange (MIX): Presence Support.

I think @tim should read a few key XEPs. And I recently figured out how to spam the #quest-board, so let’s create 150 new quests! ((Because that is how many there are, counting active, draft, experimental, final, and proposed))

Okay, this one is complete! 150 new quests added, as seen at Topics tagged xeps!

I copy and pasted the table at XMPP | Specifications and used LibreCalc to move the XEP name column to the far right, since everything else was standardized. Then I removed quotes from fields, and delimited with a comma (important details).

spex.csv (10.3 KB)

I called it spex, because xeps was taken at the time…

Then I wrote, a little more detailed than

while IFS=, read -r xep type status date name; do
    curl -X POST -d title="Discover $xep: $name" -d raw="This quest to discover $xep ($name) was automagically added, to fulfill the quest at As of $date the status of this $type XEP is $status. What does that even mean?! Check it out at${xep,,}.html ^_^" -d category="21" ; sleep 3 ;
done < "$filename"

See that ${xep,,}? Have no idea how that works! But I picked it up at How to convert a string to lower case in Bash? - Stack Overflow, filed under Non-POSIX, so… not a problem for a simple little bash script. :slight_smile:

You’ll notice there are no tags. I forgot! But I did get them working with curl. Because it is an array, each tags[]= you send along is added as a tag; so you’d have something like: -d tags[]="jabber" -d tags[]="xmpp".

Because I forgot, I found that the editing features in Discourse are dope! I searched for Search results for 'discover xep-' - talkgroup, and scrolling down got the 150 results (+1 for this quest, so all good). I selected all from the top, hit the edit wrench, and it gave me all kinds of options.

I appended xeps, xmpp, and jabber to them. We’ll add more as we get to them. But for now that should make them easy to find, discuss and hack on! :slight_smile: