summary refs log tree commit diff
path: root/synapse/rest (follow)
Commit message (Expand)AuthorAgeFilesLines
* Fix Content-Disposition in media repository (#4176)Amber Brown2018-11-153-90/+110
* Use <meta> tags to discover the per-page encoding of html previews (#4183)Amber Brown2018-11-151-9/+22
* Add a test for the public T&Cs formRichard van der Hoff2018-11-141-1/+1
* Fix an internal server error when viewing the public privacy policyRichard van der Hoff2018-11-141-4/+7
* Fix encoding error for consent form on python3hera2018-11-081-1/+3
* Fix URL preview bugs (type error when loading cache from db, content-type inc...Amber Brown2018-11-081-6/+16
* Add config variables for enabling terms auth and the policy name (#4142)Travis Ralston2018-11-062-2/+2
* handle empty backups according to latest spec proposal (#4123)Hubert Chathi2018-11-051-3/+18
* Tests for user consent resource (#4140)Amber Brown2018-11-061-1/+1
* Fix logic error that prevented guests from seeing the privacy policyTravis Ralston2018-11-011-1/+1
* Include a version query string arg for the consent routeTravis Ralston2018-10-311-2/+4
* Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-317-177/+93
|\
| * Remove deprecated v1 key exchange endpoint (#4119)Amber Brown2018-10-312-106/+0
| * Delete the disused & unspecced identicon functionality (#4106)Amber Brown2018-10-292-70/+0
| * Address review commentsRichard van der Hoff2018-10-261-5/+16
| * Basic initial support for room upgradesRichard van der Hoff2018-10-252-0/+80
| * Refactor state group lookup to reduce DB hits (#4011)Erik Johnston2018-10-251-1/+2
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-246-49/+30
|\|
| * Fix a number of flake8 errorsRichard van der Hoff2018-10-242-2/+2
| * Merge pull request #4063 from matrix-org/erikj/cleaup_alias_creationErik Johnston2018-10-241-32/+5
| |\
| | * Clean up room alias creationErik Johnston2018-10-191-32/+5
| * | Correctly account for cpu usage by background threads (#4074)Richard van der Hoff2018-10-233-15/+23
| |/
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-181-2/+5
|\|
| * Fix bug where we raised StopIteration in a generatorErik Johnston2018-10-171-2/+5
* | pep8Travis Ralston2018-10-152-13/+2
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-152-0/+374
|\|
| * missed oneDavid Baker2018-10-121-0/+1
| * Don't mangle exceptionsDavid Baker2018-10-121-4/+2
| * Split /room_keys/version into 2 servletsDavid Baker2018-10-121-9/+21
| * PR feedback pt. 1David Baker2018-10-121-1/+1
| * isortDavid Baker2018-10-091-1/+1
| * Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backupsDavid Baker2018-10-0921-123/+197
| |\
| * | WIP e2e key backupsDavid Baker2018-09-131-4/+10
| * | try to make flake8 and isort happyHubert Chathi2018-09-061-1/+4
| * | Merge branch 'develop' into e2e_backupsHubert Chathi2018-08-2413-79/+143
| |\ \
| * | | missing importMatthew Hodgson2018-08-121-1/+1
| * | | use parse_stringMatthew Hodgson2018-08-121-3/+3
| * | | support DELETE /version with no argsMatthew Hodgson2018-08-121-2/+3
| * | | implement remaining tests and make them workMatthew Hodgson2018-08-121-0/+6
| * | | improve docstringMatthew Hodgson2018-08-121-1/+5
| * | | add a tonne of docstring; make upload_room_keys properly assert versionMatthew Hodgson2018-08-121-1/+10
| * | | more docstring for the e2e_room_keys restMatthew Hodgson2018-08-121-0/+51
| * | | blindly incorporate PR review - needs testing & fixingMatthew Hodgson2018-08-121-0/+2
| * | | make /room_keys/version workMatthew Hodgson2018-08-121-1/+8
| * | | implement /room_keys/version too (untested)Matthew Hodgson2018-08-121-0/+47
| * | | document the APIMatthew Hodgson2018-08-121-0/+133
| * | | make it work and fix pep8Matthew Hodgson2018-08-122-13/+22
| * | | interim WIP checkin; doesn't build yetMatthew Hodgson2018-08-121-4/+33
| * | | total WIP skeleton for /room_keys APIMatthew Hodgson2018-08-121-0/+56
* | | | Rely on the lack of ?u to represent public accessTravis Ralston2018-10-122-10/+6
* | | | Use a flag rather than a new route for the public policyTravis Ralston2018-10-032-16/+24
* | | | Auto-consent to the privacy policy if the user registered with termsTravis Ralston2018-10-031-0/+6
* | | | Make the terms flow requriedTravis Ralston2018-10-031-4/+4
* | | | Flesh out the fallback auth for termsTravis Ralston2018-10-031-7/+67
* | | | Incorporate Dave's work for GDPR login flowsTravis Ralston2018-10-032-0/+35
| |_|/ |/| |
* | | Merge pull request #3932 from matrix-org/erikj/auto_start_expiring_cachesRichard van der Hoff2018-09-251-1/+0
|\ \ \
| * | | Fix some instances of ExpiringCache not expiring cache itemsErik Johnston2018-09-211-1/+0
* | | | added "media-src: 'self'" to CSP for resources (#3578)Jérémy Farnaud2018-09-251-0/+1
|/ / /
* | | Merge pull request #3835 from krombel/fix_3821Amber Brown2018-09-121-1/+5
|\ \ \
| * | | fix VOIP crashes under Python 3 (#3821)Krombel2018-09-101-1/+5
* | | | Port rest/ to Python 3 (#3823)Amber Brown2018-09-1217-100/+112
|/ / /
* | | Merge pull request #3790 from matrix-org/rav/respect_event_format_in_filterRichard van der Hoff2018-09-051-13/+38
|\ \ \
| * | | Implement 'event_format' filter param in /syncRichard van der Hoff2018-09-041-13/+38
* | | | improve human readable error messageNeil Johnson2018-09-041-1/+2
* | | | improve human readable error messagesNeil Johnson2018-09-042-7/+20
|/ / /
* | | move threepid checker to config, add missing yieldsNeil Johnson2018-08-312-5/+7
* | | ensure post registration auth checks do not fail erroneouslyNeil Johnson2018-08-312-0/+8
* | | fix bug where preserved threepid user comes to sign up and server is mau blockedNeil Johnson2018-08-312-1/+10
| |/ |/|
* | Merge pull request #3724 from Half-Shot/hs/guest-fetch-eventErik Johnston2018-08-221-1/+1
|\ \
| * | Allow guests to access /rooms/:roomId/event/:eventIdWill Hunt2018-08-201-1/+1
* | | fix another consent encoding failRichard van der Hoff2018-08-211-1/+1
* | | Fix 500 error from /consent formRichard van der Hoff2018-08-211-2/+11
|/ /
* | Port over enough to get some sytests running on Python 3 (#3668)Amber Brown2018-08-202-6/+6
* | Integrate presence from hotfixes (#3694)Amber Brown2018-08-181-1/+2
* | Remove v1/register's broken shared secret functionality (#3703)Amber Brown2018-08-181-54/+0
* | Add GET media/v1/config (#3184)Will Hunt2018-08-162-1/+50
* | lazyload aware /messages (#3589)Matthew Hodgson2018-08-161-1/+12
* | initial cut at a room summary API (#3574)Matthew Hodgson2018-08-161-0/+1
* | speed up /members and add at= and membership params (#3568)Matthew Hodgson2018-08-151-3/+29
* | Merge pull request #3667 from matrix-org/erikj/fixup_unbindErik Johnston2018-08-152-6/+27
|\ \
| * | Don't fail requests to unbind 3pids for non supporting ID serversErik Johnston2018-08-082-6/+27
| |/
* / Rename async to async_helpers because `async` is a keyword on Python 3.7 (#3678)Amber Brown2018-08-103-3/+3
|/
* Merge pull request #3639 from matrix-org/rav/refactor_error_handlingRichard van der Hoff2018-08-021-1/+1
|\
| * Refactor code for turning HttpResponseException into SynapseErrorRichard van der Hoff2018-08-011-1/+1
* | Merge branch 'master' into developRichard van der Hoff2018-08-022-2/+2
|\ \
| * | Check room visibility for /event/ requestsRichard van der Hoff2018-08-022-2/+2
* | | Merge pull request #3620 from fuzzmz/return-404-room-not-foundRichard van der Hoff2018-08-011-2/+2
|\ \ \ | |_|/ |/| |
| * | return NotFoundError if room not foundSerban Constantin2018-07-311-2/+2
* | | Python 3: Convert some unicode/bytes uses (#3569)Amber Brown2018-08-023-14/+22
|/ /
* | make /context lazyload & filter aware (#3567)Matthew Hodgson2018-07-271-0/+9
* | Fix some looping_call calls which were broken in #3604Richard van der Hoff2018-07-262-2/+2
* | Wrap a number of things that run in the backgroundRichard van der Hoff2018-07-252-2/+14
* | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/client_api...Erik Johnston2018-07-236-13/+206
|\ \
| * | Admin API for creating new users (#3415)Amber Brown2018-07-201-0/+122
| * | Move v1-only APIs into their own module & isolate deprecated ones (#3460)Amber Brown2018-07-195-13/+84
| |/
* | Move RoomContextHandler out of HandlersErik Johnston2018-07-181-2/+2
* | Split MessageHandler into read only and writersErik Johnston2018-07-182-15/+13
|/
* Refactor REST API tests to use explicit reactors (#3351)Amber Brown2018-07-171-1/+1
* rerun isort with latest versionKrombel2018-07-161-13/+3
* check isort by travisKrombel2018-07-165-9/+19
* Fix develop because I broke it :( (#3535)Amber Brown2018-07-141-2/+2
* Merge pull request #3534 from krombel/use_parse_and_asserts_from_servletAmber Brown2018-07-1414-139/+92
|\
| * fix sytestsAmber Brown2018-07-141-1/+1
| * add changelogKrombel2018-07-131-1/+1
| * rename assert_params_in_request to assert_params_in_dictKrombel2018-07-139-30/+30
| * Use parse_{int,str} and assert from http.servletKrombel2018-07-1313-132/+85
* | Make auth & transactions more testable (#3499)Amber Brown2018-07-147-35/+31
|/
* Merge branch 'develop' into rav/enforce_report_apiRichard van der Hoff2018-07-1251-339/+338
|\
| * run isortAmber Brown2018-07-0950-307/+288
| * Attempt to be more performant on PyPy (#3462)Amber Brown2018-06-285-5/+8
| * update doc for deactivate APIMatthew Hodgson2018-06-261-1/+1
| * add GDPR erase param to deactivate APIMatthew Hodgson2018-06-261-1/+12
| * Revert "Revert "Merge pull request #3431 from matrix-org/rav/erasure_visibili...Erik Johnston2018-06-252-3/+14
| * Revert "Merge pull request #3431 from matrix-org/rav/erasure_visibility"Richard van der Hoff2018-06-222-14/+3
| * Merge pull request #3431 from matrix-org/rav/erasure_visibilityErik Johnston2018-06-222-3/+14
| |\
| | * mark accounts as erased when requestedRichard van der Hoff2018-06-122-3/+14
| * | Pass around the reactor explicitly (#3385)Amber Brown2018-06-222-3/+7
| * | Remove run_on_reactor (#3395)Amber Brown2018-06-143-17/+0
| |/
| * Merge pull request #3276 from matrix-org/dbkr/unbindDavid Baker2018-06-111-3/+10
| |\
| | * Merge remote-tracking branch 'origin/develop' into dbkr/unbindDavid Baker2018-05-241-3/+5
| | |\
| | * | pep8David Baker2018-05-241-1/+1
| | * | Unbind 3pids when they're deleted tooDavid Baker2018-05-241-3/+10
| * | | fix logRichard van der Hoff2018-06-071-1/+1
| * | | Fix event-purge-by-ts admin APIRichard van der Hoff2018-06-071-6/+4
| * | | Consistently use six's iteritems and wrap lazy keys/values in list() if they'...Amber Brown2018-05-311-1/+1
* | | | Enforce the specified API for report_eventRichard van der Hoff2018-05-311-2/+23
|/ / /
* | | Merge pull request #3244 from NotAFile/py3-six-4Amber Brown2018-05-241-1/+2
|\ \ \
| * | | replace some iteritems with sixAdrian Tschira2018-05-191-1/+2
* | | | Merge pull request #3247 from NotAFile/py3-miscAmber Brown2018-05-241-3/+5
|\ \ \ \ | |_|_|/ |/| | |
| * | | py3-ize url previewAdrian Tschira2018-05-191-3/+5
| |/ /
* | | Merge pull request #3243 from NotAFile/py3-six-3Erik Johnston2018-05-241-3/+5
|\ \ \ | |_|/ |/| |
| * | Replace some more comparisons with sixAdrian Tschira2018-05-191-3/+5
| |/
* | Add a 'has_consented' template var to consent formsRichard van der Hoff2018-05-221-3/+14
* | Enable auto-escaping for the consent templatesRichard van der Hoff2018-05-221-1/+4
* | Stub out ServerNoticesSender on the workersRichard van der Hoff2018-05-221-0/+4
* | Move consent config parsing into ConsentConfigRichard van der Hoff2018-05-221-5/+3
* | Rename 'version' param on user consent configRichard van der Hoff2018-05-221-1/+1
* | Fix logcontext leak in HttpTransactionCacheRichard van der Hoff2018-05-211-25/+21
* | Stop the transaction cache caching failuresRichard van der Hoff2018-05-211-9/+13
|/
* Merge pull request #3221 from matrix-org/erikj/purge_tokenErik Johnston2018-05-181-7/+10
|\
| * Make purge_history operate on tokensErik Johnston2018-05-151-7/+10
* | Move RoomCreationHandler out of synapse.handlers.HandlersRichard van der Hoff2018-05-172-5/+4
* | Merge pull request #3213 from matrix-org/rav/consent_handlerRichard van der Hoff2018-05-162-0/+210
|\ \ | |/ |/|
| * ConsentResource to gather policy consent from usersRichard van der Hoff2018-05-152-0/+210
* | Set Server header in SynapseRequestRichard van der Hoff2018-05-109-14/+1
|/
* Remove redundant request_handler decoratorRichard van der Hoff2018-05-105-29/+38
* notifications: Convert next_token to string according to the specKonstantinos Sideris2018-05-051-1/+1
* Merge pull request #3161 from NotAFile/remove-v1authRichard van der Hoff2018-05-032-2/+6
|\
| * Burminate v1authAdrian Tschira2018-04-302-2/+6
* | Fix logcontext leak in media repoRichard van der Hoff2018-05-022-1/+4
|/
* add guard for None on purge_history apiKrombel2018-04-301-1/+14
* Merge pull request #3155 from NotAFile/py3-bytes-1Richard van der Hoff2018-04-301-3/+3
|\
| * more bytes stringsAdrian Tschira2018-04-291-3/+3
* | Merge pull request #3140 from matrix-org/rav/use_run_in_backgroundRichard van der Hoff2018-04-301-2/+3
|\ \
| * | Merge remote-tracking branch 'origin/develop' into rav/use_run_in_backgroundRichard van der Hoff2018-04-271-2/+7
| |\|
| * | Use run_in_background in preference to preserve_fnRichard van der Hoff2018-04-271-2/+3
* | | Merge pull request #3156 from NotAFile/py3-hmac-bytesRichard van der Hoff2018-04-302-11/+15
|\ \ \
| * | | Construct HMAC as bytes on py3Adrian Tschira2018-04-292-11/+15
| | |/ | |/|
* | | Merge pull request #3108 from NotAFile/py3-six-urlparseRichard van der Hoff2018-04-304-7/+8
|\ \ \ | |/ / |/| |
| * | Use six.moves.urlparseAdrian Tschira2018-04-154-7/+8
| |/
* / Improve exception handling for background processesRichard van der Hoff2018-04-271-2/+7
|/
* Merge pull request #3079 from matrix-org/erikj/limit_concurrent_sendsErik Johnston2018-04-101-6/+1
|\
| * Use create_and_send_nonmember_event everywhereErik Johnston2018-04-091-6/+1
* | Merge pull request #2996 from krombel/allow_auto_join_roomsRichard van der Hoff2018-04-101-32/+0
|\ \
| * \ Merge branch 'develop' of into allow_auto_join_roomsKrombel2018-03-283-3/+3
| |\ \
| * | | move handling of auto_join_rooms to RegisterHandlerKrombel2018-03-141-32/+0
* | | | Merge pull request #3061 from NotAFile/add-some-byte-stringsRichard van der Hoff2018-04-091-2/+2
|\ \ \ \
| * | | | Add b prefixes to some strings that are bytes in py3Adrian Tschira2018-04-041-2/+2
| | |/ / | |/| |
* | | | Merge pull request #3073 from NotAFile/use-six-reraiseRichard van der Hoff2018-04-091-1/+3
|\ \ \ \
| * | | | Replace old-style raise with six.reraiseAdrian Tschira2018-04-061-1/+3
| | |_|/ | |/| |
* | | | Merge pull request #2938 from dklug/developRichard van der Hoff2018-04-091-1/+4
|\ \ \ \ | |/ / / |/| | |
| * | | Return 401 for invalid access_token on logoutdklug2018-03-021-1/+4
* | | | Merge pull request #2986 from jplatte/join_reponse_room_idRichard van der Hoff2018-04-051-1/+6
|\ \ \ \
| * | | | Add room_id to the response of `rooms/{roomId}/join`Jonas Platte2018-03-131-1/+6
| | |_|/ | |/| |
* | | | Use "/settings/" (plural)Luke Barnard2018-04-051-1/+1
* | | | Use join_policy API instead of joinableLuke Barnard2018-04-031-6/+6
* | | | This should probably be a PUTDavid Baker2018-03-281-1/+1
* | | | Add joinability for groupsDavid Baker2018-03-281-0/+28
| |_|/ |/| |
* | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2018-03-192-2/+2
|\ \ \
| * | | Replace ujson with simplejsonErik Johnston2018-03-153-3/+3
* | | | Replace some ujson with simplejson to make it workErik Johnston2018-03-161-1/+1
| |/ / |/| |
* | | RoomMembershipRestServlet doesn't handle /forgetErik Johnston2018-03-131-1/+1
* | | Add transactional API to history purgeRichard van der Hoff2018-03-121-3/+35
* | | Provide a means to pass a timestamp to purge_historyRichard van der Hoff2018-03-051-3/+55
| |/ |/|
* | Move RoomMemberHandler out of HandlersErik Johnston2018-03-013-13/+15
* | Make store_file use store_into_fileErik Johnston2018-02-141-26/+11
* | Merge pull request #2854 from matrix-org/erikj/event_create_workerErik Johnston2018-02-131-1/+0
|\ \
| * | Add event_creator workerErik Johnston2018-02-071-1/+0
* | | Fix typos in purge api & docRichard van der Hoff2018-02-131-3/+1
* | | Merge pull request #2857 from matrix-org/erikj/upload_storeErik Johnston2018-02-121-0/+6
|\ \ \
| * | | Tell storage providers about new file so they can uploadErik Johnston2018-02-071-0/+6
| |/ /
* | | Merge pull request #2858 from matrix-org/rav/purge_updatesRichard van der Hoff2018-02-091-1/+10
|\ \ \ | |/ / |/| |
| * | delete_local_events for purge_historyRichard van der Hoff2018-02-091-1/+10
* | | Update copyrightErik Johnston2018-02-062-0/+2
* | | Update places where we create eventsErik Johnston2018-02-052-9/+11
* | | Merge pull request #2791 from matrix-org/erikj/media_storage_refactorErik Johnston2018-02-053-12/+47
|\ \ \
| * | | Use better file consumerErik Johnston2018-01-181-5/+10
| * | | Ensure media is in local cache before thumbnailingErik Johnston2018-01-183-10/+40
* | | | Merge pull request #2845 from matrix-org/rav/urlcache_error_handlingRichard van der Hoff2018-02-021-21/+34
|\ \ \ \
| * | | | Handle url_previews with no content-typeRichard van der Hoff2018-02-021-21/+34
* | | | | Merge branch 'develop' into travis/admin-list-mediaTravis Ralston2018-02-016-30/+138
|\| | | |
| * | | | fix thinko on 3pid whitelistingMatthew Hodgson2018-01-241-2/+2
| * | | | add ?ts massaging for ASes (#2754)Matthew Hodgson2018-01-231-6/+11
| * | | | Add federation_domain_whitelist option (#2820)Matthew Hodgson2018-01-222-2/+25
| * | | | Merge pull request #2813 from matrix-org/matthew/registrations_require_3pidMatthew Hodgson2018-01-223-22/+102
| |\ \ \ \
| | * | | | fix typo (thanks sytest)Matthew Hodgson2018-01-191-1/+1
| | * | | | oops, check all login typesMatthew Hodgson2018-01-191-14/+11
| | * | | | trailing commasMatthew Hodgson2018-01-192-7/+7
| | * | | | rewrite based on PR feedback:Matthew Hodgson2018-01-194-76/+43
| | * | | | fix up v1, and improve errorsMatthew Hodgson2018-01-193-19/+53
| | * | | | fix pep8Matthew Hodgson2018-01-191-2/+1
| | * | | | add registrations_require_3pidMatthew Hodgson2018-01-193-13/+96
| | | |/ / | | |/| |
* | / | | Add an admin route to get all the media in a roomTravis Ralston2018-01-201-0/+22
|/ / / /
* | | | Merge pull request #2814 from matrix-org/rav/fix_urlcache_thumbsRichard van der Hoff2018-01-191-0/+8
|\ \ \ \
| * | | | Use the right path for url_preview thumbnailsRichard van der Hoff2018-01-191-0/+8
| |/ / /
* | | | Fix storage provider bug introduced when renamed to store_localErik Johnston2018-01-181-1/+1
* | | | Merge pull request #2812 from matrix-org/erikj/media_storage_provider_configErik Johnston2018-01-182-20/+27
|\ \ \ \
| * | | | Missing staticmethodErik Johnston2018-01-181-0/+1
| * | | | Fixup commentsErik Johnston2018-01-181-2/+2
| * | | | Make storage providers more configurableErik Johnston2018-01-182-20/+26
| | |/ / | |/| |
* | | | Fix typo in thumbnail resource causing access times to be incorrectErik Johnston2018-01-181-2/+2
| |/ / |/| |
* | | Update last access time when thumbnails are viewedErik Johnston2018-01-171-0/+2
* | | Keep track of last access time for local mediaErik Johnston2018-01-171-7/+25
|/ /
* | Add docstringErik Johnston2018-01-171-1/+1
* | Use local varsErik Johnston2018-01-161-6/+2
* | Change _generate_thumbnails to take media_typeErik Johnston2018-01-162-7/+10
* | Move setting of file_id up to callerErik Johnston2018-01-162-13/+14
* | Fix typoErik Johnston2018-01-161-7/+10
* | Fix up log linesErik Johnston2018-01-162-7/+10
* | Correctly use server_name/file_id when generating/fetching remote thumbnailsErik Johnston2018-01-162-5/+8
* | Log when we respond with 404Erik Johnston2018-01-162-1/+8
* | Fix thumbnailing remote filesErik Johnston2018-01-162-2/+30
* | Merge pull request #2767 from matrix-org/erikj/media_storage_refactorErik Johnston2018-01-167-346/+843
|\ \
| * | Fix up commentsErik Johnston2018-01-122-7/+16
| * | Correctly reraise exceptionErik Johnston2018-01-121-2/+4
| * | Make Responder a context managerErik Johnston2018-01-122-9/+10
| * | Add missing class varErik Johnston2018-01-121-0/+3
| * | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/media_stor...Erik Johnston2018-01-121-3/+26
| |\ \
| * | | Remove unnecessary conditionErik Johnston2018-01-121-4/+1
| * | | Remove unused variablesErik Johnston2018-01-121-3/+0
| * | | Make class var localErik Johnston2018-01-121-3/+3
| * | | CommentsErik Johnston2018-01-123-15/+65
| * | | Add StorageProvider conceptErik Johnston2018-01-093-9/+162
| * | | Make PreviewUrlResource use MediaStorageErik Johnston2018-01-092-8/+14
| * | | Make ThumbnailResource use MediaStorageErik Johnston2018-01-092-48/+68
| * | | Use MediaStorage for remote mediaErik Johnston2018-01-092-136/+156
| * | | Use MediaStorage for local filesErik Johnston2018-01-092-119/+73
| * | | Add MediaStorage classErik Johnston2018-01-091-0/+198
| * | | Add some helper classesErik Johnston2018-01-091-0/+73
| * | | Split out add_file_headersErik Johnston2018-01-091-28/+42