Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor | Erik Johnston | 2014-08-15 | 1 | -0/+7 |
|\ | |||||
| * | Also include users' presence when responding to /rooms/:room_id/members/list | Paul "LeoNerd" Evans | 2014-08-15 | 1 | -0/+7 |
| | | |||||
* | | Rename method name to not clash with other ones in storage. | Erik Johnston | 2014-08-15 | 2 | -4/+4 |
| | | |||||
* | | Fix typo of key name | Erik Johnston | 2014-08-15 | 1 | -1/+1 |
| | | |||||
* | | We no longer need to special case room config events. | Erik Johnston | 2014-08-15 | 1 | -2/+2 |
| | | |||||
* | | Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor | Erik Johnston | 2014-08-15 | 10 | -88/+330 |
|\| | | | | | | | | | Conflicts: synapse/storage/roommember.py | ||||
| * | Fix imsync's SELECT query to only find the rooms I'm actually joined in, not ↵ | Paul "LeoNerd" Evans | 2014-08-15 | 1 | -2/+5 |
| | | | | | | | | every room I have ever joined | ||||
| * | Create a room-nuking script as it's useful for emergency debugging | Paul "LeoNerd" Evans | 2014-08-15 | 1 | -0/+24 |
| | | |||||
| * | Remove old polling stuff from RoomController. Added service comments. Do not ↵ | Kegan Dougal | 2014-08-15 | 4 | -45/+20 |
| | | | | | | | | start the event stream on startup unless you have credentials. | ||||
| * | Event streaming now happens on an app level, rather than a per-room level. ↵ | Kegan Dougal | 2014-08-15 | 5 | -19/+76 |
| | | | | | | | | 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. | ||||
| * | Store messages in $rootScope so they can be accessed from multiple ↵ | Kegan Dougal | 2014-08-15 | 3 | -12/+29 |
| | | | | | | | | controllers without duplicated storage for each. This also gives updates. | ||||
| * | Added event handler service which.. handles events. More specifically, it ↵ | Kegan Dougal | 2014-08-15 | 5 | -32/+124 |
| | | | | | | | | $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. | ||||
| * | Added event stream service which neatly blobs together requests / state for ↵ | Kegan Dougal | 2014-08-15 | 5 | -14/+91 |
| | | | | | | | | the event stream. This depends on matrix service to do the actual hit. Currently this has exactly the same behaviour as before. | ||||
* | | PEP8 cleanups | Erik Johnston | 2014-08-15 | 7 | -16/+29 |
| | | |||||
* | | Comment. | Erik Johnston | 2014-08-15 | 1 | -0/+1 |
| | | |||||
* | | Support generic events. | Erik Johnston | 2014-08-15 | 2 | -5/+8 |
| | | |||||
* | | Fix bug when generating a key when get_room_events_stream returned zero rows | Erik Johnston | 2014-08-15 | 1 | -3/+7 |
| | | |||||
* | | Actually use MAX_STREAM_SIZE constant. | Erik Johnston | 2014-08-15 | 1 | -1/+1 |
| | | |||||
* | | Fix pagination to work with new db schema | Erik Johnston | 2014-08-15 | 2 | -31/+48 |
| | | |||||
* | | Correctly return new token when returning events. Serialize events correctly. | Erik Johnston | 2014-08-15 | 5 | -9/+25 |
| | | |||||
* | | Start chagning the events stream to work with the new DB schema | Erik Johnston | 2014-08-15 | 8 | -118/+102 |
| | | |||||
* | | Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor | Erik Johnston | 2014-08-15 | 47 | -270/+714 |
|\| | | | | | | | | | Conflicts: synapse/storage/stream.py | ||||
| * | Add a check to make sure that during state conflict res we only request a ↵ | Erik Johnston | 2014-08-15 | 2 | -2/+13 |
| | | | | | | | | PDU we don't have. | ||||
| * | Fix pontenial bug in state resolution handler that compared dicts rather ↵ | Erik Johnston | 2014-08-15 | 1 | -1/+4 |
| | | | | | | | | than their id's | ||||
| * | Remember to reflect membership LEAVE events to the leaving member so they ↵ | Paul "LeoNerd" Evans | 2014-08-15 | 1 | -0/+4 |
| | | | | | | | | know it happened | ||||
| * | Updated README about -w in all the places. | Kegan Dougal | 2014-08-15 | 1 | -3/+3 |
| | | |||||
| * | s/Synapse/Matrix/ | Matthew Hodgson | 2014-08-14 | 1 | -3/+3 |
| | | |||||
| * | It's called Matrix :) | Matthew Hodgson | 2014-08-14 | 1 | -11/+11 |
| | | |||||
| * | manual syutil | Matthew Hodgson | 2014-08-14 | 1 | -0/+4 |
| | | |||||
| * | Update README to mention -w and remove SimpleHTTPServer | Kegan Dougal | 2014-08-14 | 1 | -9/+3 |
| | | |||||
| * | Add documentation about Federation Queries and EDUs | Paul "LeoNerd" Evans | 2014-08-14 | 1 | -9/+59 |
| | | |||||
| * | fix linewrap | Matthew Hodgson | 2014-08-14 | 1 | -1/+2 |
| | | |||||
| * | More helpful display when the event stream fails, wiping it when the ↵ | Kegan Dougal | 2014-08-14 | 2 | -5/+10 |
| | | | | | | | | connection is regained. | ||||
| * | We can now upload avatar image somewhere | Emmanuel ROHEE | 2014-08-14 | 1 | -4/+13 |
| | | |||||
| * | Create a temporary upload service server side (by hacking ↵ | Emmanuel ROHEE | 2014-08-14 | 1 | -0/+1 |
| | | | | | | | | demos/webserver.py) and client side with an angularjs service component. | ||||
| * | Create a temporary upload service server side (by hacking ↵ | Emmanuel ROHEE | 2014-08-14 | 2 | -1/+71 |
| | | | | | | | | demos/webserver.py) and client side with an angularjs service component. | ||||
| * | webclient: You can now paginate in rooms. Defaults to 10 messages, with a ↵ | Kegan Dougal | 2014-08-14 | 4 | -21/+74 |
| | | | | | | | | button to get more (needs to be hooked into infini-scrolling). | ||||
| * | Pass back the user_id in the response to /login in case it has changed. ↵ | Kegan Dougal | 2014-08-14 | 4 | -7/+9 |
| | | | | | | | | Store and use that on the webclient rather than the input field. | ||||
| * | hs: Make /login accept full user IDs or just local parts. webclient: Only ↵ | Kegan Dougal | 2014-08-14 | 3 | -8/+6 |
| | | | | | | | | enable Register button when both password fields match. | ||||
| * | Reflect user's messages up to themselves before pushing it to federatoin; ↵ | Paul "LeoNerd" Evans | 2014-08-14 | 1 | -2/+2 |
| | | | | | | | | also release roomlock before touching federation so we don't halt progress on the world | ||||
| * | We really don't need debug logging of all the SQL statements we execute; ↵ | Paul "LeoNerd" Evans | 2014-08-14 | 1 | -4/+0 |
| | | | | | | | | we're quite happy these all work now | ||||
| * | Auto-correct the username when logging in if there isn't an @ | Kegan Dougal | 2014-08-14 | 1 | -0/+6 |
| | | |||||
| * | Put some DEBUG logging in lockutils.py so we can debug roomlocks | Paul "LeoNerd" Evans | 2014-08-14 | 1 | -3/+9 |
| | | |||||
| * | Be more helpful when failing to register/login, stating why (communication ↵ | Kegan Dougal | 2014-08-14 | 2 | -6/+18 |
| | | | | | | | | error, user in user, wrong credentials, etc). Make the HS send M_USER_IN_USE. | ||||
| * | Finish up room controller too. May have missed one or two, but testing ↵ | Kegan Dougal | 2014-08-14 | 1 | -14/+14 |
| | | | | | | | | didn't pick anything up. | ||||
| * | Added extra nesting .data and rename callback to be response not data | Kegan Dougal | 2014-08-14 | 2 | -31/+31 |
| | | |||||
| * | Move the unknown token broadcast to the interceptor. Return the $http ↵ | Kegan Dougal | 2014-08-14 | 4 | -30/+16 |
| | | | | | | | | promise and not a wrapped one via $q. Everything now needs a level deeper nesting. Fixed registration and login. | ||||
| * | Added an access token interceptor to check unknown tokens. | Kegan Dougal | 2014-08-14 | 1 | -3/+19 |
| | | |||||
| * | Send forbidden codes when doing login attempts. | Kegan Dougal | 2014-08-14 | 1 | -3/+3 |
| | | |||||
| * | Round Presence mtime and mtime_age to nearest msec; avoids floats for msec ↵ | Paul "LeoNerd" Evans | 2014-08-14 | 1 | -5/+15 |
| | | | | | | | | values over the wire | ||||
| * | Change relative db paths to absolute paths in case we daemonize. | Erik Johnston | 2014-08-14 | 1 | -2/+9 |
| | | |||||
| * | chmod +x homeserver.py | Paul "LeoNerd" Evans | 2014-08-14 | 1 | -0/+0 |
| | | |||||
| * | Detect when the user access token is no more valid and log the user out in ↵ | Emmanuel ROHEE | 2014-08-14 | 2 | -4/+20 |
| | | | | | | | | this case | ||||
| * | Guess the home server URL on the login screen by inspecting the URL of the ↵ | Kegan Dougal | 2014-08-14 | 1 | -1/+9 |
| | | | | | | | | web client. | ||||
| * | Added M_UNKNOWN_TOKEN error code and send it when there is an unrecognised ↵ | Kegan Dougal | 2014-08-14 | 3 | -3/+8 |
| | | | | | | | | access_token | ||||
| * | BF: Use ng-src | Emmanuel ROHEE | 2014-08-14 | 1 | -1/+1 |
| | | |||||
| * | Default error code BAD_PAGINATION for EventStreamErrors | Kegan Dougal | 2014-08-14 | 1 | -1/+4 |
| | | |||||
| * | Added web client prefix | Kegan Dougal | 2014-08-14 | 2 | -4/+5 |
| | | |||||
| * | Added a urls module for keeping client and federation prefixes. | Kegan Dougal | 2014-08-14 | 5 | -14/+23 |
| | | |||||
| * | If the web client is enabled, automatically redirect root '/' to the web ↵ | Kegan Dougal | 2014-08-14 | 2 | -4/+30 |
| | | | | | | | | client path. | ||||
| * | Fixed dynamic resource mapping to clobber dummy Resources with the actual ↵ | Kegan Dougal | 2014-08-14 | 1 | -5/+27 |
| | | | | | | | | desired Resource in the event of a collision (as is the case for '/matrix/client' and '/matrix/client/api/v1') | ||||
| * | Use ng-src | Emmanuel ROHEE | 2014-08-14 | 1 | -1/+1 |
| | | |||||
| * | Show avatar in profile section and added a button to select a file (not yet ↵ | Emmanuel ROHEE | 2014-08-14 | 3 | -6/+45 |
| | | | | | | | | wired to upload service) | ||||
| * | Merge remote-tracking branch 'origin/master' | Emmanuel ROHEE | 2014-08-14 | 16 | -93/+123 |
| |\ | |||||
| | * | Honour the -w flag to enable the web client at /matrix/client | Kegan Dougal | 2014-08-14 | 1 | -5/+8 |
| | | | |||||
| | * | Removed http_server from HomeServer. Updated unit tests to use either ↵ | Kegan Dougal | 2014-08-14 | 12 | -30/+21 |
| | | | | | | | | | | | | resource_for_federation or resource_for_client depending on what is being tested. | ||||
| | * | Make federation use resource_for_federation as well. | Kegan Dougal | 2014-08-14 | 4 | -49/+5 |
| | | | |||||
| | * | Start phasing out HttpServer: we should be using Resources instead. Added ↵ | Kegan Dougal | 2014-08-14 | 7 | -21/+101 |
| | | | | | | | | | | | | 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. | ||||
| * | | Created m-file-input. A directive to open a file selection dialog on ↵ | Emmanuel ROHEE | 2014-08-14 | 2 | -0/+44 |
| |/ | | | | | | | whatever HTML element | ||||
* | | Reimplement the get public rooms api to work with new DB schema | Erik Johnston | 2014-08-15 | 7 | -37/+101 |
| | | |||||
* | | Fix up typos and correct sql queries | Erik Johnston | 2014-08-14 | 6 | -44/+36 |
| | | |||||
* | | Update StreamStore | Erik Johnston | 2014-08-14 | 1 | -245/+36 |
| | | |||||
* | | Start fixing places that use the data store. | Erik Johnston | 2014-08-14 | 6 | -39/+33 |
| | | |||||
* | | Fix typo | Erik Johnston | 2014-08-14 | 1 | -1/+1 |
| | | |||||
* | | Rename _execute_query | Erik Johnston | 2014-08-14 | 4 | -4/+4 |
| | | |||||
* | | Fix up RoomMemberStore to work with the new schema. | Erik Johnston | 2014-08-14 | 3 | -97/+79 |
| | | |||||
* | | Actually encode dicts as json in the DB | Erik Johnston | 2014-08-14 | 2 | -3/+4 |
| | | |||||
* | | Change relative db paths to absolute paths in case we daemonize. | Erik Johnston | 2014-08-14 | 1 | -2/+9 |
| | | |||||
* | | Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor | Erik Johnston | 2014-08-14 | 35 | -188/+412 |
|\| | | | | | | | | | Conflicts: synapse/storage/_base.py | ||||
| * | grammar fix v0.0.0 alpha | Matthew Hodgson | 2014-08-14 | 1 | -2/+2 |
| | | |||||
| * | fix emote presentation | Matthew Hodgson | 2014-08-14 | 1 | -1/+1 |
| | | |||||
| * | fix http client GET parameters; somehow missing named param. how could this ↵ | Matthew Hodgson | 2014-08-14 | 1 | -2/+2 |
| | | | | | | | | have ever worked!? | ||||
| * | config css | Matthew Hodgson | 2014-08-14 | 1 | -0/+12 |
| | | |||||
| * | completely change the CSS to be an entirely 'position: absolute' layout ↵ | Matthew Hodgson | 2014-08-14 | 6 | -29/+46 |
| | | | | | | | | rather than top-to-bottom. makes the overscroll much more predictable and sane and not dependent on CSS expressions. | ||||
| * | fix whitespace | Matthew Hodgson | 2014-08-14 | 1 | -0/+1 |
| | | |||||
| * | Consistent capitalisation of 'Matrix' as a proper noun in README; 80 col wrap | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -4/+5 |
| | | |||||
| * | An initial hack at storing presence state-change mtimes in database and ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 7 | -29/+101 |
| | | | | | | | | presenting age durations to clients/federation events | ||||
| * | Allow advancing the MockClock's time | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -0/+4 |
| | | |||||
| * | Don't mock out presence_handler's internal start/stop methods in ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -9/+5 |
| | | | | | | | | presencelike unit test; it's rude | ||||
| * | Move MockClock into tests.utils so we can reüse it | Paul "LeoNerd" Evans | 2014-08-13 | 2 | -11/+11 |
| | | |||||
| * | Set datastore's .hs field in SQLBaseStore rather than in the toplevel ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 2 | -1/+1 |
| | | | | | | | | DataStore mixed-in result class | ||||
| * | when we're talking about backfilling data in federation, call it backfilling ↵ | Matthew Hodgson | 2014-08-13 | 9 | -54/+54 |
| | | | | | | | | - not pagination. | ||||
| * | don't hammer after 403 | Matthew Hodgson | 2014-08-13 | 1 | -1/+4 |
| | | |||||
| * | pagination was a terrible name | Matthew Hodgson | 2014-08-13 | 1 | -5/+5 |
| | | |||||
| * | Implement directory service federation by Federation Queries; avoid ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 3 | -27/+141 |
| | | | | | | | | local_only hack; add unit tests | ||||
| * | Add a HomeServer.parse_roomalias() to avoid having to ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 4 | -14/+18 |
| | | | | | | | | RoomAlias.from_sring(..., hs=hs) - similar to parse_userid() | ||||
* | | Make feedback table also store sender. | Erik Johnston | 2014-08-13 | 2 | -1/+3 |
| | | |||||
* | | Initial stab at refactoring the SQL tables, including rejigging some of the ↵ | Erik Johnston | 2014-08-13 | 6 | -261/+115 |
| | | | | | | | | storage layer. | ||||
* | | Convert im schema to a 'one' table structure | Erik Johnston | 2014-08-13 | 1 | -26/+31 |
|/ | |||||
* | Update graph.py to use new federation urls | Erik Johnston | 2014-08-13 | 1 | -1/+1 |
| | |||||
* | Now that HS->HS Profile lookups use Federation Queries, we don't need the ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 2 | -10/+4 |
| | | | | 'local_only' antirecursion hack | ||||
* | Use new Federation Query API to implement HS->HS fetching of remote users' ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 3 | -33/+71 |
| | | | | profile information instead of (ab)using the client-side REST API | ||||
* | Define the concept of a 'federation Query'; creating API for making and ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 3 | -0/+113 |
| | | | | handling Queries on the Federation's increasingly-inaccurately-named ReplicationLayer | ||||
* | Update get_json()'s documentation to match the actual observed behaviour | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -4/+3 |
| | |||||
* | Handle a potential race in the notifier when calling get_events_for which ↵ | Erik Johnston | 2014-08-13 | 1 | -3/+7 |
| | | | | resulted in an uncaught KeyError | ||||
* | Store public room id > alias mappings. | Kegan Dougal | 2014-08-13 | 1 | -0/+6 |
| | |||||
* | typo | Matthew Hodgson | 2014-08-13 | 1 | -1/+1 |
| | |||||
* | Merge branch 'master' of git+ssh://github.com/matrix-org/synapse | Matthew Hodgson | 2014-08-13 | 116 | -188/+940 |
|\ | |||||
| * | Don't pass host_web_client flag to register_servlets, it needs to be a ↵ | Kegan Dougal | 2014-08-13 | 2 | -4/+2 |
| | | | | | | | | Resource not a RestServlet. | ||||
| * | Merge branch 'master' of github.com:matrix-org/synapse | Kegan Dougal | 2014-08-13 | 13 | -146/+160 |
| |\ | |||||
| | * | more quickstart fixes | Matthew Hodgson | 2014-08-13 | 1 | -4/+9 |
| | | | |||||
| | * | Merge branch 'master' of git+ssh://github.com/matrix-org/synapse | Matthew Hodgson | 2014-08-13 | 1 | -3/+2 |
| | |\ | |||||
| | | * | Fix logging verbosity parsing code | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -3/+2 |
| | | | | |||||
| | * | | refactor the README a load more to make the quickstart more visible | Matthew Hodgson | 2014-08-13 | 2 | -84/+83 |
| | |/ | |||||
| | * | Namespace all the Federation HTTP URLs to /matrix/federation/v1/... | Paul "LeoNerd" Evans | 2014-08-13 | 3 | -27/+35 |
| | | | |||||
| | * | Add troubleshooting section to help with PyNaCl bug. | David Baker | 2014-08-13 | 1 | -0/+6 |
| | | | |||||
| | * | Use strings instead of opaque magic-number constants for presence states; ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 7 | -37/+34 |
| | | | | | | | | | | | | rename AWAY to UNAVAILABLE | ||||
| * | | Merge branch 'master' of github.com:matrix-org/synapse | Kegan Dougal | 2014-08-13 | 1 | -3/+3 |
| |\| | |||||
| | * | verbose by default please | Matthew Hodgson | 2014-08-13 | 1 | -3/+3 |
| | | | |||||
| * | | Added a -w flag which will host the web client if specified. Currently this ↵ | Kegan Dougal | 2014-08-13 | 5 | -48/+65 |
| |/ | | | | | | | just delegates to the webclient RestServlet. | ||||
| * | Merge branch 'master' of github.com:matrix-org/synapse | Kegan Dougal | 2014-08-13 | 1 | -3/+5 |
| |\ | |||||
| | * | fix footnotes a bit | Matthew Hodgson | 2014-08-13 | 1 | -3/+5 |
| | | | |||||
| * | | Return the room_alias when GETing public rooms. | Kegan Dougal | 2014-08-13 | 1 | -2/+5 |
| |/ | |||||
| * | Room: Added a text input to type an image URL in order to send an image message | Emmanuel ROHEE | 2014-08-13 | 4 | -3/+37 |
| | | |||||
| * | Display image messages from the stream | Emmanuel ROHEE | 2014-08-13 | 2 | -1/+10 |
| | | |||||
| * | add in copyrights to everything, not just the synapse subdir, and add a ↵ | Matthew Hodgson | 2014-08-13 | 35 | -1/+523 |
| | | | | | | | | copyrighter.pl whilst we're at it | ||||
| * | add in whitespace after copyright statements to improve legibility | Matthew Hodgson | 2014-08-13 | 76 | -1/+76 |
| | | |||||
| * | Merge branch 'master' of git+ssh://github.com/matrix-org/synapse | Matthew Hodgson | 2014-08-13 | 1 | -3/+2 |
| |\ | |||||
| | * | actually register the login servlet (uncommitted code thinko?) | Matthew Hodgson | 2014-08-13 | 1 | -3/+2 |
| | | | |||||
| * | | remove remaining TODOs and fill in lots more info | Matthew Hodgson | 2014-08-13 | 1 | -29/+108 |
| |/ | |||||
* / | timestamps | Matthew Hodgson | 2014-08-13 | 1 | -1/+1 |
|/ | |||||
* | and tweak some more... | Matthew Hodgson | 2014-08-12 | 1 | -4/+5 |
| | |||||
* | fix rst issues correctly... | Matthew Hodgson | 2014-08-12 | 1 | -4/+5 |
| | |||||
* | fix rst issues | Matthew Hodgson | 2014-08-12 | 2 | -534/+0 |
| | |||||
* | make README a bit more comprehensive and rename example/ as experiments/ | Matthew Hodgson | 2014-08-12 | 3 | -16/+640 |
| | |||||
* | remove the png profile image for now | Matthew Hodgson | 2014-08-12 | 1 | -0/+0 |
| | |||||
* | Fix dependency_link url | Erik Johnston | 2014-08-12 | 1 | -1/+1 |
| | |||||
* | Change syutil dependency link to point at github. | Erik Johnston | 2014-08-12 | 1 | -1/+1 |
| | |||||
* | Fix the 'Go to room' button to use the correct room alias api | Erik Johnston | 2014-08-12 | 3 | -2/+31 |
| | |||||
* | Just say yes to OPTIONS requests, since we want to turn on CORS headers for ↵ | Erik Johnston | 2014-08-12 | 1 | -0/+5 |
| | | | | all paths | ||||
* | Make messages list and room users list scroll-overflow | Emmanuel ROHEE | 2014-08-12 | 3 | -13/+32 |
| | |||||
* | Capture the .gitignore file | Paul "LeoNerd" Evans | 2014-08-12 | 1 | -0/+19 |
| | |||||
* | Add .rst suffix to documentation files so that github auto-formats them | Mark Haines | 2014-08-12 | 16 | -0/+0 |
| | |||||
* | Reference Matrix Home Server | matrix.org | 2014-08-12 | 217 | -0/+48447 |