Commit Graph

289 Commits (a3f22bd4cad22312311e7304071ebb188f2bde38)

Author SHA1 Message Date
Eugen e245115f47 Merge branch 'master' into mastodon-site-api
Eugen Rochko d6cb4bbe99 Performance improvement for profiles
Eugen Rochko 5f4e402204 Improved /api/v1/accounts/:id/statuses with new params: only_media, exclude_replies
Redirect /:username to /users/:username
Redirect /:username/:id to /users/:username/updates/:id
Updated API documentation and sponsors
Kit Redgrave 442fdbfc53 Mute button progress so far. WIP, doesn't entirely work correctly.
Kibigo 620f70e42c Adds site metadata access to the API
Eugen Rochko 5f511324b6 Add validation of media attachments, clean up mastodon-own exception classes
Eugen Rochko 063432d7e3 Merge branch 'fix_462' of https://github.com/rmhasan/mastodon into rmhasan-fix_462
Eugen Rochko 3e9d794ea5 Add tuning documentation, add <content> tags back to most salmons,
make status pagination headers generation more lax about next page
existing
Rakib Hasan 9433d03705 Removed try clause from create action in status controller
Using catch statement in api_controller.rb to catch NotPermitted
Exception, and render error message
Rakib Hasan 6f9ecd899e revisted fix for
Moved validation to services/post_status_service.rb
Rakib Hasan 6d2301988f Fix for issue
Modified uploadCompose action to send media ids of attached
media when sending a request. Modified create method in MediaController
to check if when posting a video, there are no other media attached
to the status by looking at the media ids sent from the uploadCompose
action.
Eugen Rochko 8132cf8153 Add GET /api/v1/accounts/:id/statuses/media that returns only statuses with media attachments
Make replies default to privacy settings of the status being replied to
Eugen Rochko 3b81baaaaf Adding POST /api/v1/reports API, and a UI for submitting reports
Eugen Rochko 149887a0ff Make follow requests federate
Eugen Rochko 347a153b3d Add API modifiers to limit returned toots from public/hashtag timelines
to only those from local users; Add link to "extended information" to
getting started in the UI; Add defaults for posting privacy; Change
how publish button looks depending on posting privacy chosen
Eugen Rochko eee8afb0b7 Remove bios from blocked users list, filter out broken entries from API response
Eugen Rochko 77e13c2bc9 Removing failed push notification API, make context loads use cache
Eugen Rochko d9ca46b464 Cleaning up format of broadcast real-time messages, removing
redis-backed "mentions" timeline as redundant (given notifications)
Eugen Rochko 3f075c7794 API for apps to register for push notifications
Eugen Rochko 905c829179 Improve infinite scroll on notifications
Eugen Rochko 999cde94a6 Instead of using spoiler boolean and spoiler_text, simply check for non-blank spoiler_text
Federate spoiler_text using warning attribute on <content /> instead of a <category term="spoiler" />
Clean up schema file from accidental development migrations
Eugen f8da0dd490 Merge branch 'master' into master
Eugen Rochko 8a880a3d46 Make blocks create entries and unfollows instantly, but do the clean up
in the background instead. Should fix delay where blocked person
can interact with blocker for a short time before background job
gets processed
Eugen Rochko 1f5792c834 API now respects ?limit param as long as it's within 2x default limit
blackle bf0f6eb62d Implement a click-to-view spoiler system
Eugen Rochko cca82bf0a2 Move merging/unmerging of timelines into background. Move blocking into
background as well since it's a computationally expensive
Eugen Rochko f392030ab8 Add /api/v1/notifications/clear, non-existing link cards for statuses will
now return empty hash instead of throwing a 404 error. When following,
merge into timeline will filter statuses
Eugen Rochko 3a4b5961be Method to fetch a single notification
Eugen Rochko f0de621e76 Fix - Fetch and display previews of URLs using OpenGraph tags
Eugen Rochko 98560b232a Don't show loading bar when re-loading already loaded status. Don't even try to fetch ancestors from DB when in_reply_to_id is nil
Eugen Rochko 7d53ee73f3 Fix - Add "favourites" column
Effy Elden d6bc0e8db4 Add tracking of OAuth app that posted a status, extend OAuth apps to have optional website field, add application details to API, show application name and website on detailed status views. Resolves
Eugen Rochko 2939e9898b Extend rails-settings-cached to merge db-saved hash values with defaults
Eugen Rochko a302e56f9a Add API for retrieving favourites
Eugen Rochko 49834a6e7f Add API for retrieving blocked accounts
Eugen Rochko 2146ac91a0 Follow requests send e-mail notifications, but are excluded from notifications API
Better initial state for unlisted/nsfw toggles
Eugen Rochko 004382e4d0 Adding follow requests API
Eugen Rochko b891a81008 Follow call on locked account creates follow request instead
Reflect "requested" relationship in API and UI
Reflect inability of private posts to be reblogged in the UI
Disable Webfinger for locked accounts
Eugen Rochko 80e02b90e4 Private visibility on statuses prevents non-followers from seeing those
Filters out hidden stream entries from Atom feed
Blocks now generate hidden stream entries, can be used to federate blocks
Private statuses cannot be reblogged (generates generic 422 error for now)
POST /api/v1/statuses now takes visibility=(public|unlisted|private) param instead of unlisted boolean
Statuses JSON now contains visibility=(public|unlisted|private) field
Eugen Rochko 0542773bca Make unfavouriting async to prevent timeout errors from leaving orphaned records behind
Eugen Rochko 1d0321fc45 Fix pt translations, improve pre-cache queries, removing will_paginate
from accounts/tags because it's a terribly inefficient way to paginate
large sets of data
Eugen Rochko 14bd46946d Per-status control for unlisted mode, also federation for unlisted mode
Fix , fix 
Eugen Rochko 7e90772c92 Unify collection caching code
Eugen Rochko 93a90cd9c3 Delete statuses asynchronously but provide instant feedback in the API
Eugen Rochko 8a3745a4df Remove stale entries from cache results
Eugen Rochko 8efa081f21 Remove Neo4J
Alyssa Ross cefef2c571 Extract filename obfuscation into module
Andrea Faulds 7161f91313 Rename media to avoid exposing filename (fixes )
Eugen Rochko 79a0135869 Cache accounts/:id/statuses and single statuses too
Eugen Rochko 0603971894 Adding sensitive marker to statuses in API
Eugen Rochko 4bdb6a0eaf Rename "publish" to "toot" in english locale, fix lightbox showing old image
before loading new one, cache notifications API, fix missing follow button
on public profiles
Eugen Rochko cf912e01fd Implement includes caching for timelines APIs
Eugen Rochko 5c78547198 More query optimizations
Eugen Rochko fc90d38893 Moving some counter queries out of subqueries in the API
Eugen Rochko 45c7ee39b3 Remove unneeded indices, improve error handling in background workers, don't needlessly reload reblogged status, send Devise e-mails asynchronously
Eugen Rochko f88ca4a206 Performance improvement for notifications API
Eugen Rochko 52119104b9 Remove some n+1 queries from notifications API
Eugen Rochko e8c27767aa Remove orphaned notifications, add scopes param to app create API
Eugen Rochko da2ef4d676 Adding unified streamable notifications
Eugen Rochko 4f07fb1f0a Fix - Filter statuses from blocked users out of ancestors/descendants results
Eugen Rochko fdc17bea58 Fix rubocop issues, introduce usage of frozen literal to improve performance
Eugen Rochko cea28e0c1d Fix wrong link header on followers API, wrong link in tabs component, order
account results
Eugen Rochko afded319d2 Add limit to search results
Eugen Rochko 09218d4c01 Use full-text search for autosuggestions
Eugen Rochko 17903c6dae Improve filtering of public/hashtag timelines, both in backlog and real-time
Eugen Rochko b13e7dda1f API pagination for all collections using Link header
Eugen Rochko 9aecc0f48a Move timelines API from statuses to its own controller, add a check for
resources that require a user context vs those that don't (such as public timeline)

/api/v1/statuses/public   -> /api/v1/timelines/public
/api/v1/statuses/home     -> /api/v1/timelines/home
/api/v1/statuses/mentions -> /api/v1/timelines/mentions
/api/v1/statuses/tag/:tag -> /api/v1/timelines/tag/:tag
Eugen Rochko 48b9619439 Adding hashtags
Eugen Rochko 62292797ec Adding hashtag model
Eugen Rochko 3731230c6d Allow @username@domain/@username in follow form, prevent duplicate accounts
created via remote look-up when domains differ but point to the same resource
Eugen Rochko e4671adc25 Fix reblogged/favourited caching; add API endpoints for who favd/reblogged status
Eugen Rochko 562044f36a Need to disable caching again due to bug in Rabl
Eugen Rochko fa1cc2d05a Limit returned followees/followers by API to 40 for now
Eugen Rochko e0a197650a Adding common followers API, fixing fallback query again
Eugen Rochko a9e40a3d80 Adding OAuth access scopes, fixing OAuth authorization UI, adding rate limiting
to the API
Eugen Rochko de1f3aab86 Fix - Optimize n+1 queries when checking reblogged/favourited values for status lists in API
Eugen Rochko e21a3fe0cd Adding sync of follow relationships to Neo4J, accounts/suggestions API
Eugen Rochko 427ba27641 Public timeline to exclude users you blocked
Eugen Rochko 1f650d327d Adding public timeline
Eugen Rochko 15d01a5e08 Better comparison of "local" domain
Eugen Rochko 2f5b205916 Catch Paperclip errors on /api/v1/media, return early from update profile service if XML given is nil
Eugen Rochko 7b9a4af311 API for blocking and unblocking
Eugen Rochko 2c9e672ee2 Integrating block relationships into the API (read-only for now)
Eugen Rochko 9fd3d7b6cd Add since_id param to feeds
Eugen Rochko 6d7290f47c Add API for getting info about authenticated user: /api/v1/accounts/verify_credentials
Eugen Rochko 62b057b085 Adjust client registration API
Eugen Rochko ef2b50c9ac Deleting statuses from UI
Eugen Rochko 927333f4f8 Improve code style
Eugen Rochko 4f9b7432dd Fix - Add API versioning (v1)