Revision history for Net-Async-Matrix 0.19 2017/04/04 16:25:19 [CHANGES] * Rebuild internals to use /sync rather than /initialSync + /events * Add first-class exposed API to encapsulate "room state" * Improvements to formatted message utility functions * Added some simple one-method example scripts * Support sending and receiving m.read receipts * Configurable amount of initial backlog to request from homeserver at first sync * Have $state->members only return non-"leave" state members * Support monospace tags in build_formatted_message * Added ->convert_mxc_url 0.18 2015/07/22 16:44:56 [CHANGES] * Turn off HTTP pipelining by default * Include the Matrix user_id in the Notifier name, for logging identification [BUGFIXES] * Placate synapse bug involving duplicate rooms in initialSync result * Use JSON::MaybeXS also in unit tests 0.17 2015/04/30 16:07:30 [CHANGES] * Configurable longpoll timeout * Give Rooms a startup future so users can await the initialSync of a room * Allow message sending using transaction IDs * Use JSON::MaybeXS so we have a chance of faster JSON parsing [BUGFIXES] * Don't crash if ->stop is called twice * Avoid a race condition if a new room event arrives before we finish the room initialSync * Fix to optional dependency in test skip logic * Ensure that ->stop/re->start doesn't crash 0.16 2015/02/18 20:08:08 [CHANGES] * Support m.notice and the various attachment types (m.file, audio, video) in bundled client.pl * Added ->upload method 0.15 2015/02/03 16:33:49 [CHANGES] * Add an option to disable the evenstream for the case of lightweight send-only clients * Support m.notice 0.14 2015/01/09 19:25:06 [CHANGES] * Support typing notifications 0.13 2014/12/10 17:08:42 [CHANGES] * Initial start at some unit tests [BUGFIXES] * 'use URI' since it's needed * Clear the (global and room) initialSync futures if the operation fails so that the next call will re-attempt it 0.12 2014/12/02 15:50:18 [CHANGES] * Cope with new m.room.power_levels event format * Allow applications to handle new/unrecognised events by adding 'on_unknown_events' event [BUGFIXES] * Don't emit rich formatted messages if there are no actual formatting tags set on the String::Tagged instance 0.11 2014/11/14 18:25:06 [CHANGES] * Support formatted messages in the "org.matrix.custom.html" format by conversion to/from String::Tagged::Formatting instances * Display formatted messages and image URLs in the client 0.10 2014/11/04 16:15:31 [CHANGES] * Extracted 'make_room' as a subclassable method * Use new Net::Async::HTTP 0.36 ability to store SSL parameters * Pass $event as another param in on{_back,}_message so that new timestamp API is visible [BUGFIXES] * Declare correct version of IaNotifier in Build.PL * Not all '/register' alternatives will have 'stages' * Fix to ->join_room ensuring that $room itself is always returned 0.09 2014/10/07 18:05:58 [CHANGES] * Many more events are handled and reported via on_state: + m.room.aliases + m.room.join_rules + m.room.*_level * Added ability to send invites and an event for incoming invites * Room membership change events now also include the member making the change as well as the member the change is about * Allow setting room names and topics, adding and removing aliases, and changing member and room power levels [BUGFIXES] * Fetch full room initial state on join or create before invoking on_state_synced event 0.08 2014/09/24 17:09:50 [CHANGES] * Added $room->joined_members, to allow filtering of other states (invitees, kicks/bans) * Fix ->register for new Registration API, including multi-stage flows * Added $room->leave * Client improvements + per-room commands: /me and /leave + display a user total count on the user list for a room 0.07 2014/09/22 17:05:01 [CHANGES] * Support /register Matrix API with user_id + password * Fix on_membership event argument order to match on_state_change 0.06 2014/09/19 17:35:40 [CHANGES] * New room event model to handle back-pagination as well as forward events * Support room names and topics * Much improvement to 'client.pl' - nicer formatting, room topics, put member joins/leaves/renames in the event log * Support /login Matrix API with user_id + password 0.05 2014/09/10 11:25:22 [CHANGES] * Split room 'on_member' events into separate events for membership vs. presence * Various neatenings and improvements in included 'client.pl' script [BUGFIXES] * Apply a timeout for longpoll so we don't end up waiting forever * Invoke ->log method of containing $matrix object, not toplevel main::log() 0.04 2014/09/04 18:10:00 [CHANGES] * Many and various improvements to the display of the sample client * Added 'on_synced_*' events to Room objects, removed 'on_room_synced' from Matrix object 0.03 2014/09/03 16:30:54 [CHANGES] * Many more updates for current Matrix API * Split 'on_room_add' into on_room_new + on_room_synced events * Support SSL 0.02 2014/08/27 19:30:34 [CHANGES] * Updates for latest Matrix REST API * ->create_room to return a new Room object * Document the user and membership structs * Initial sync of rooms when joining * Don't store room alias names * Added $room->members * Allow setting default on_room_* event handlers [BUGFIXES] * Remember to fill in request content body of event stream requests, so wrappers around NaHTTP still see it 0.01 2014/08/23 10:29:11 First version, released on an unsuspecting world.