0e6a2f87f9Get presence for members when you enter a room (it was coming down but wasn't being stored in the right place)
Kegan Dougal
2014-08-15 17:47:45 +0100
f5fca6f787Fix some of the tests to reflect changes in the storage layer.
Erik Johnston
2014-08-15 17:42:21 +0100
5b817ecd44Added infinite scrolling. It's sliiiightly buggy in that it jumps down the list a bit, but it is overall working pretty well. Added ng-infinite-scroll-matrix.js and jquery-1.8.3 as deps.
Kegan Dougal
2014-08-15 17:42:02 +0100
02e45da895When new invites come down, update the My Rooms list. Added hacks to make the display name a bit nicer (/im/sync needs to return room aliases / membership events better)
Kegan Dougal
2014-08-15 15:40:37 +0100
1731781145Document that /rooms/:room_id/members/list yields profile and presence information about room members
Paul "LeoNerd" Evans
2014-08-15 17:24:02 +0100
9c41f635a9When starting to poll for presence, also include members of all shared rooms
Paul "LeoNerd" Evans
2014-08-15 17:12:07 +0100
40c020ad13Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Erik Johnston
2014-08-15 16:48:16 +0100
ec1fd20e59Also include users' presence when responding to /rooms/:room_id/members/list
Paul "LeoNerd" Evans
2014-08-15 16:47:50 +0100
0e938b1ff7Rename method name to not clash with other ones in storage.
Erik Johnston
2014-08-15 16:47:48 +0100
6efc688917Fix typo of key name
Erik Johnston
2014-08-15 16:47:09 +0100
506711749fWe no longer need to special case room config events.
Erik Johnston
2014-08-15 16:45:16 +0100
a17b371384Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Erik Johnston
2014-08-15 16:21:13 +0100
d260a42ca2PEP8 cleanups
Erik Johnston
2014-08-15 16:17:36 +0100
8fa3cc37f9Comment.
Erik Johnston
2014-08-15 16:11:25 +0100
19946509a4Support generic events.
Erik Johnston
2014-08-15 16:06:08 +0100
cd2967d271Fix bug when generating a key when get_room_events_stream returned zero rows
Erik Johnston
2014-08-15 16:05:46 +0100
86be66c34eActually use MAX_STREAM_SIZE constant.
Erik Johnston
2014-08-15 16:04:54 +0100
8d1f763209Fix pagination to work with new db schema
Erik Johnston
2014-08-15 15:53:06 +0100
3c532314ecFix imsync's SELECT query to only find the rooms I'm actually joined in, not every room I have ever joined
Paul "LeoNerd" Evans
2014-08-15 15:44:53 +0100
01f089d9fbCorrectly return new token when returning events. Serialize events correctly.
Erik Johnston
2014-08-15 15:28:54 +0100
5c88e57555Create a room-nuking script as it's useful for emergency debugging
Paul "LeoNerd" Evans
2014-08-15 15:06:36 +0100
5ac87292c4Remove old polling stuff from RoomController. Added service comments. Do not start the event stream on startup unless you have credentials.
Kegan Dougal
2014-08-15 14:06:48 +0100
7ddb7a5cbbEvent streaming now happens on an app level, rather than a per-room level. Make eventStreamService manage it's own repolling provided no one calls stop() on it. Couple the stream with eventHandlerService so any controller can just blithely call eventStreamService.resume() and expect to 'get stuff' without having to handle promises (though resume() still returns a promise for that request and proxies it through $q). Kill and reset the stream if you logout.
Kegan Dougal
2014-08-15 13:43:07 +0100
c51cf4efcaStore messages in $rootScope so they can be accessed from multiple controllers without duplicated storage for each. This also gives updates.
Kegan Dougal
2014-08-15 12:51:20 +0100
5dbceaf5a4Added event handler service which.. handles events. More specifically, it $broadcasts events depending on their type, and does processing on events (shuffling keys, adding events to $rootScope so displays will automatically update, sending delivery receipts, and so on). Some of this logic was previously contained in the RoomController, which fails the moment you add >1 room into the mix, hence requiring a Service to handle events, rather than having each individual controller maintain their part of the world.
Kegan Dougal
2014-08-15 11:31:13 +0100
8bf3994c2eAdded event stream service which neatly blobs together requests / state for the event stream. This depends on matrix service to do the actual hit. Currently this has exactly the same behaviour as before.
Kegan Dougal
2014-08-15 10:20:14 +0100
114984a236Start chagning the events stream to work with the new DB schema
Erik Johnston
2014-08-15 13:58:28 +0100
d72f897f07Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Erik Johnston
2014-08-15 11:50:14 +0100
c5f2da5875Add a check to make sure that during state conflict res we only request a PDU we don't have.
Erik Johnston
2014-08-15 11:47:01 +0100
1a26905cc9Fix pontenial bug in state resolution handler that compared dicts rather than their id's
Erik Johnston
2014-08-15 11:41:11 +0100
33d62c2c66Remember to reflect membership LEAVE events to the leaving member so they know it happened
Paul "LeoNerd" Evans
2014-08-15 11:40:58 +0100
5002efa31bReimplement the get public rooms api to work with new DB schema
Erik Johnston
2014-08-15 10:26:35 +0100
286e90e58fUpdated README about -w in all the places.
Kegan Dougal
2014-08-15 09:29:39 +0100
0b179db36ds/Synapse/Matrix/
Matthew Hodgson
2014-08-14 18:58:40 +0100
7a025d6368It's called Matrix :)
Matthew Hodgson
2014-08-14 18:58:01 +0100
2c46bb6208Fix up typos and correct sql queries
Erik Johnston
2014-08-14 18:40:50 +0100
7e681ad778Update StreamStore
Erik Johnston
2014-08-14 18:01:39 +0100
3ddfc949dcmanual syutil
Matthew Hodgson
2014-08-14 17:54:40 +0100
24dfdb4a7dUpdate README to mention -w and remove SimpleHTTPServer
Kegan Dougal
2014-08-14 17:51:12 +0100
94eb2560f4Add documentation about Federation Queries and EDUs
Paul "LeoNerd" Evans
2014-08-14 17:50:43 +0100
856f29c03cfix linewrap
Matthew Hodgson
2014-08-14 17:44:21 +0100
5de086b736More helpful display when the event stream fails, wiping it when the connection is regained.
Kegan Dougal
2014-08-14 17:40:27 +0100
e6c62d5d7fWe can now upload avatar image somewhere
Emmanuel ROHEE
2014-08-14 18:40:20 +0200
deae7f4f5dCreate a temporary upload service server side (by hacking demos/webserver.py) and client side with an angularjs service component.
Emmanuel ROHEE
2014-08-14 18:39:23 +0200
f5973d8ddbCreate a temporary upload service server side (by hacking demos/webserver.py) and client side with an angularjs service component.
Emmanuel ROHEE
2014-08-14 18:38:42 +0200
661c711765Start fixing places that use the data store.
Erik Johnston
2014-08-14 17:34:37 +0100
30da8c81c7webclient: You can now paginate in rooms. Defaults to 10 messages, with a button to get more (needs to be hooked into infini-scrolling).
Kegan Dougal
2014-08-14 17:23:47 +0100
78b501eba6Fix typo
Erik Johnston
2014-08-14 17:09:28 +0100
2529f2bc01Rename _execute_query
Erik Johnston
2014-08-14 16:58:51 +0100
fef3183461Pass back the user_id in the response to /login in case it has changed. Store and use that on the webclient rather than the input field.
Kegan Dougal
2014-08-14 16:40:15 +0100
ca3747fb2fhs: Make /login accept full user IDs or just local parts. webclient: Only enable Register button when both password fields match.
Kegan Dougal
2014-08-14 16:29:24 +0100
53147e5ae4Reflect user's messages up to themselves before pushing it to federatoin; also release roomlock before touching federation so we don't halt progress on the world
Paul "LeoNerd" Evans
2014-08-14 16:22:08 +0100
93a8be7befWe really don't need debug logging of all the SQL statements we execute; we're quite happy these all work now
Paul "LeoNerd" Evans
2014-08-14 16:15:53 +0100
6f925f61ffAuto-correct the username when logging in if there isn't an @
Kegan Dougal
2014-08-14 16:08:14 +0100
657ab9ba9dPut some DEBUG logging in lockutils.py so we can debug roomlocks
Paul "LeoNerd" Evans
2014-08-14 16:06:02 +0100
fb93e14e53Be more helpful when failing to register/login, stating why (communication error, user in user, wrong credentials, etc). Make the HS send M_USER_IN_USE.
Kegan Dougal
2014-08-14 16:03:04 +0100
937c175029Fix up RoomMemberStore to work with the new schema.
Erik Johnston
2014-08-14 16:02:10 +0100
40c998336dFinish up room controller too. May have missed one or two, but testing didn't pick anything up.
Kegan Dougal
2014-08-14 15:47:38 +0100
24bd133d9dAdded extra nesting .data and rename callback to be response not data
Kegan Dougal
2014-08-14 15:43:16 +0100
db3e1d73c6Move the unknown token broadcast to the interceptor. Return the $http promise and not a wrapped one via $q. Everything now needs a level deeper nesting. Fixed registration and login.
Kegan Dougal
2014-08-14 15:36:40 +0100
76005c44f7Added an access token interceptor to check unknown tokens.
Kegan Dougal
2014-08-14 15:21:39 +0100
6d6a1c3454Actually encode dicts as json in the DB
Erik Johnston
2014-08-14 14:30:25 +0100
0fa05ea331Round Presence mtime and mtime_age to nearest msec; avoids floats for msec values over the wire
Paul "LeoNerd" Evans
2014-08-14 14:15:54 +0100
cbd5d55222Change relative db paths to absolute paths in case we daemonize.
Erik Johnston
2014-08-14 14:08:57 +0100
e4061383b8Change relative db paths to absolute paths in case we daemonize.
Erik Johnston
2014-08-14 14:07:14 +0100
e37de2aef3chmod +x homeserver.py
Paul "LeoNerd" Evans
2014-08-14 14:05:05 +0100
7143f358f1Detect when the user access token is no more valid and log the user out in this case
Emmanuel ROHEE
2014-08-14 14:59:33 +0200
613e468b89Guess the home server URL on the login screen by inspecting the URL of the web client.
Kegan Dougal
2014-08-14 13:57:55 +0100
61933f8e52Added M_UNKNOWN_TOKEN error code and send it when there is an unrecognised access_token
Kegan Dougal
2014-08-14 13:47:39 +0100
d5033849a5BF: Use ng-src
Emmanuel ROHEE
2014-08-14 13:51:35 +0200
d253a35539Added web client prefix
Kegan Dougal
2014-08-14 11:54:37 +0100
c75add6ec8Added a urls module for keeping client and federation prefixes.
Kegan Dougal
2014-08-14 11:52:56 +0100
9fd445eb92If the web client is enabled, automatically redirect root '/' to the web client path.
Kegan Dougal
2014-08-14 11:37:13 +0100
e543d6a91dFixed dynamic resource mapping to clobber dummy Resources with the actual desired Resource in the event of a collision (as is the case for '/matrix/client' and '/matrix/client/api/v1')
Kegan Dougal
2014-08-14 11:17:58 +0100
28a49a9eafShow avatar in profile section and added a button to select a file (not yet wired to upload service)
Emmanuel ROHEE
2014-08-14 11:39:03 +0200
7dc0a28e17Created m-file-input. A directive to open a file selection dialog on whatever HTML element
Emmanuel ROHEE
2014-08-14 11:36:11 +0200
de65c34fcfHonour the -w flag to enable the web client at /matrix/client
Kegan Dougal
2014-08-14 10:24:17 +0100
9a1638ed21Removed http_server from HomeServer. Updated unit tests to use either resource_for_federation or resource_for_client depending on what is being tested.
Kegan Dougal
2014-08-14 10:18:54 +0100
29aa13f0d4Make federation use resource_for_federation as well.
Kegan Dougal
2014-08-14 10:05:06 +0100
10294b6082Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Erik Johnston
2014-08-14 10:01:04 +0100
9f863d3466Start phasing out HttpServer: we should be using Resources instead. Added resource_for_client/federation/web_client to the HomeServer and hooked the C-S servlets to operate on resource_for_client. Dynamically construct the Resource tree.
Kegan Dougal
2014-08-14 09:52:20 +0100
e7736668bagrammar fix
Matthew Hodgson
2014-08-14 03:36:03 +0100
9391be0f5dfix emote presentation
Matthew Hodgson
2014-08-14 03:35:09 +0100
a4da962babfix http client GET parameters; somehow missing named param. how could this have ever worked!?
Matthew Hodgson
2014-08-14 02:59:54 +0100
d7dcef7ff4config css
Matthew Hodgson
2014-08-14 02:21:49 +0100
6c2db18be1completely change the CSS to be an entirely 'position: absolute' layout rather than top-to-bottom. makes the overscroll much more predictable and sane and not dependent on CSS expressions.
Matthew Hodgson
2014-08-14 02:13:14 +0100
aebe5ce08afix whitespace
Matthew Hodgson
2014-08-13 20:53:38 +0100
4e21bfd2dbConsistent capitalisation of 'Matrix' as a proper noun in README; 80 col wrap
Paul "LeoNerd" Evans
2014-08-13 21:19:21 +0100
d05aa651f8An initial hack at storing presence state-change mtimes in database and presenting age durations to clients/federation events
Paul "LeoNerd" Evans
2014-08-13 19:18:55 +0100
a6a9b71da0Allow advancing the MockClock's time
Paul "LeoNerd" Evans
2014-08-13 19:17:30 +0100
eef58a299eDon't mock out presence_handler's internal start/stop methods in presencelike unit test; it's rude
Paul "LeoNerd" Evans
2014-08-13 19:07:22 +0100
fc778e2bceMove MockClock into tests.utils so we can reüse it
Paul "LeoNerd" Evans
2014-08-13 18:26:42 +0100
baf04be5cfSet datastore's .hs field in SQLBaseStore rather than in the toplevel DataStore mixed-in result class
Paul "LeoNerd" Evans
2014-08-13 18:15:23 +0100
59dfbaba3bwhen we're talking about backfilling data in federation, call it backfilling - not pagination.
Matthew Hodgson
2014-08-13 18:14:37 +0100
f729f13735don't hammer after 403
Matthew Hodgson
2014-08-13 17:39:08 +0100
b80b32d1c0pagination was a terrible name
Matthew Hodgson
2014-08-13 17:14:42 +0100