Skip to content

Instantly share code, notes, and snippets.

@Madhur96
Last active September 1, 2019 08:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Madhur96/98cde10cd5f9d868b8dc22cb06b2e9c2 to your computer and use it in GitHub Desktop.
Save Madhur96/98cde10cd5f9d868b8dc22cb06b2e9c2 to your computer and use it in GitHub Desktop.
GSoC 19 Work Submission

Final Work Submission

Student: Madhur Garg

Mentor: Maxime “pep” Buquet

Project: Infinite scrolling using MAM and General Improvement.

Organization: XMPP Standards Foundation (XSF)

Proposal: Project Proposal

Blog: Weekly blog.

Description: In this project, my work was to enable MAM support in Poezio, implement infinite scrolling of messages for the chats which support MAM and to implement a few other features for general improvement.

What was done?

  1. Infinite scrolling using MAM

    Other miscellaneous Merge Requests for this work:

    • !40 Fixes sudden change in the order of messages.
    • !41 Added top argument in the build_new_message function.
    • !43 Fixes message duplication on /reconnect.
    • !44 Removes error and info messages on startup.
    • Slixmpp: !16 Added 'reverse' parameter so that I can query messages in reverse order for 'inifinite scroll in poezio'.
    • Slixmpp: !20 Removed 'block' from set_preferences as it was giving a TypeError while sending the staza.
    • Slixmpp: !25 Removed assigning 'reverse' value to the 'before' tag
    • Slixmpp: !26 Assign True to before tag if it's value is None.
  2. Command to scroll back through messages.

  3. A Plugin to search for the pattern in the current window and display the results.

What's under progress?

  1. A Tab to let the user browse the online archives.

    Status: Under Review

    • Slixmpp: !19 Added a function in xep313 plugin to get current MAM preferences.

    Status: Merged

How to use?

Follow instructions to download Poezio in you terminal.

  1. Infinite scrolling using MAM

    • Join any Multi User Chat (MUC) using /join <JID> command.
    • Each time you press 'PageUp' key, you will get 10 messages added at the top of your window. (when you are at the top of the window)
  2. Command to scroll back through messages.

    • In any kind of chat, use the command /sb or /scrollback with the following parameters:
    • clear: Clears the screen and the buffer of all text.
    • goto: Go to the given position.
    1. Syntax: /sb goto <+|-linecount>|<linenum>|<timestamp>
    2. The format of timestamp is: [dd[.mm] -<days ago>] hh:mi[:ss].
    • home: Go to the start of the buffer.
    • end: Go to the end of the buffer.
  3. A Plugin to search for the pattern in the current window and display the results.

    • Load 'lastlog' plugin by using /load lastlog command.
    • In any kind of chat, use the command /lastlog <Keyword>.

XEPs used in the project:

  1. XEP-0313 Message Archive Management
  2. XEP-0059 Result Set Management
  3. XEP-0045 Multi User Chat
  4. XEP-0030 Service Discovery
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment