about summary refs log tree commit diff
path: root/app/serializers/rest/status_serializer.rb
AgeCommit message (Collapse)Author
2020-02-16expose `hidden` attribute to client appsmultiple creatures
2020-02-14limit visibility of post defederation & deletion timers to the author(s)multiple creatures
2020-02-13fix `card_not_filtered?` logicmultiple creatures
2020-02-13(reso: report #201) add option to strip embed cards from sensitive posts, ↵multiple creatures
make default
2020-01-20Original upstream mergeThibG
2020-01-19add chest floof to monsterfork api & outgoing federationmultiple creatures
2020-01-13add new privacy option to auto-defederate after a given timespan + add ↵multiple creatures
options to defederate and/or delete past posts + add `defed_in`/`parent:defed_in`/`thread:defed_in` bangtags + ui indicator for posts marked for auto-defederation
2020-01-11expose `local` visibility flag only when monsterfork api exposure is set to ↵multiple creatures
`full`
2020-01-11pass monsterfork api exposure setting to all serializers + add ↵multiple creatures
`MONSTERFORK_API_FORCE_*` env vars to set api compatability modes for clients/apps
2020-01-10make sure it is actually a local user before checking `monsterfork_api` propmultiple creatures
2020-01-10add option for changing the monsterfork api exposure level, defaulting to ↵multiple creatures
`full` - if this gives your app indigestion change it to back to `basic` in preferences
2020-01-04monsterpit says trans rights!!!multiple creatures
2019-12-11move sharekeys & import metadata to own tablesmultiple creatures
2019-11-18Add support for updating posts in-place to the frontend and API. This makes ↵multiple creatures
it possible to implement features such as *real* post editing.
2019-08-15handle custom cws when a filter has the `entire thread` option setmultiple creatures
2019-08-15custom filters now have an option to add or override content warnings; ↵multiple creatures
filter caching has been fixed
2019-08-03respect 'don't @ me' requestsmultiple creatures
2019-07-24revert the current unfinished chat implementationmultiple creatures
2019-07-23add self-destructing roars & `live`/`lifespan` bangtagsmultiple creatures
2019-07-15add text representation of statuses to status serializermultiple creatures
2019-07-15local visibility scope, chat scope+tags, unlisted tagsmultiple creatures
2019-05-21Implement share keys and related bangtags, add `sharekey`, `network`, and ↵multiple creatures
`curated` to the API, remove app info from the UI, and move timestamps to the right.
2019-05-21allow pinning packmate roarsmultiple creatures
2019-05-17Serialize content-type on Delete & RedraftThibaut Girka
2019-05-11Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
2019-05-11Add toot source to delete result to ease Delete & Redraft (#10669)ThibG
* Return Status with raw text in raw_content when deleting a status * Use raw content if available on delete & redraft * Rename raw_content to text; do not serialize formatted content when source is requested
2019-03-28Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - app/workers/activitypub/distribute_poll_update_worker.rb - config/locales/pl.yml
2019-03-28Rename :poll to :preloadable_poll and :owned_poll to :poll on Status (#10401)Eugen Rochko
Also, fix some n+1 queries Resolve #10365
2019-03-05Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - app/models/status.rb - db/schema.rb Both conflicts are caused by us having extra database columns.
2019-03-03Add polls (#10111)Eugen Rochko
* Add polls Fix #1629 * Add tests * Fixes * Change API for creating polls * Use name instead of content for votes * Remove poll validation for remote polls * Add polls to public pages * When updating the poll, update options just in case they were changed * Fix public pages showing both poll and other media
2019-02-02Make displaying application used to toot opt-in (#9897)ThibG
* Make storing and displaying application used to toot opt-in * Revert to storing application info, and display it to the author via API
2019-01-27Revert to storing application info, and display it to the author via APIThibaut Girka
2019-01-27Make storing and displaying application used to toot opt-inThibaut Girka
2018-11-13Add field to serialized local-only statusesThibaut Girka
2018-10-28Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
2018-10-28Include preview cards in status entity in REST API (#9120)Eugen Rochko
* Include preview cards in status entity in REST API * Display preview card in-stream * Improve in-stream display of preview cards
2018-10-22Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: - .github/ISSUE_TEMPLATE/bug_report.md Took our version. - CONTRIBUTING.md Updated the embedded copy of upstream's version. - README.md Took our version. - app/policies/status_policy.rb Not a real conflict, took code from both. - app/views/layouts/embedded.html.haml Added upstream's changes (dns-prefetch) and fixed `%body.embed` - app/views/settings/preferences/show.html.haml Reverted some of upstream changes, as we have a page dedicated for flavours and skins. - config/initializers/content_security_policy.rb Kept our version of the CSP. - config/initializers/doorkeeper.rb Not a real conflict, took code from both.
2018-10-17Improve support for aspects/circles (#8950)Eugen Rochko
* Add silent column to mentions * Save silent mentions in ActivityPub Create handler and optimize it Move networking calls out of the database transaction * Add "limited" visibility level masked as "private" in the API Unlike DMs, limited statuses are pushed into home feeds. The access control rules between direct and limited statuses is almost the same, except for counter and conversation logic * Ensure silent column is non-null, add spec * Ensure filters don't check silent mentions for blocks/mutes As those are "this person is also allowed to see" rather than "this person is involved", therefore does not warrant filtering * Clean up code * Use Status#active_mentions to limit returned mentions * Fix code style issues * Use Status#active_mentions in Notification And remove stream_entry eager-loading from Notification
2018-08-17Merge branch 'master' into glitch-soc/merge-upstreamThibaut Girka
Conflicts: app/models/status.rb db/migrate/20180528141303_fix_accounts_unique_index.rb db/schema.rb Resolved by taking upstream changes (no real conflicts, just glitch-soc specific code too close to actual changes).
2018-08-14Move status counters to separate table, count replies (#8104)Eugen Rochko
* Move status counters to separate table, count replies * Migration to remove old counter columns from statuses table * Fix schema file
2018-04-11Add backend support for bookmarksThibaut Girka
Bookmarks behave like favourites, except they aren't shared with other users and do not have an associated counter.
2018-03-22Do not re-query mentions from serializers (#6858)Eugen Rochko
Fix performance regression from #6836
2018-03-19Serialize mentions in the order they are added (#6836)ThibG
Up until now, the order seemed to be in the *opposite* order, which caused the WebUI to populate mentions in reversed order when replying to toots local to one's instance.
2017-09-24Make sure nil IDs to not get cast to empty string in REST API (#5068)Eugen Rochko
2017-09-23New API: GET /api/v1/custom_emojis to get a server's custom emojis (#5051)Eugen Rochko
2017-09-20Change IDs to strings rather than numbers in API JSON output (#5019)aschmitz
* Fix JavaScript interface with long IDs Somewhat predictably, the JS interface handled IDs as numbers, which in JS are IEEE double-precision floats. This loses some precision when working with numbers as large as those generated by the new ID scheme, so we instead handle them here as strings. This is relatively simple, and doesn't appear to have caused any problems, but should definitely be tested more thoroughly than the built-in tests. Several days of use appear to support this working properly. BREAKING CHANGE: The major(!) change here is that IDs are now returned as strings by the REST endpoints, rather than as integers. In practice, relatively few changes were required to make the existing JS UI work with this change, but it will likely hit API clients pretty hard: it's an entirely different type to consume. (The one API client I tested, Tusky, handles this with no problems, however.) Twitter ran into this issue when introducing Snowflake IDs, and decided to instead introduce an `id_str` field in JSON responses. I have opted to *not* do that, and instead force all IDs to 64-bit integers represented by strings in one go. (I believe Twitter exacerbated their problem by rolling out the changes three times: once for statuses, once for DMs, and once for user IDs, as well as by leaving an integer ID value in JSON. As they said, "If you’re using the `id` field with JSON in a Javascript-related language, there is a very high likelihood that the integers will be silently munged by Javascript interpreters. In most cases, this will result in behavior such as being unable to load or delete a specific direct message, because the ID you're sending to the API is different than the actual identifier associated with the message." [1]) However, given that this is a significant change for API users, alternatives or a transition time may be appropriate. 1: https://blog.twitter.com/developer/en_us/a/2011/direct-messages-going-snowflake-on-sep-30-2011.html * Additional fixes for stringified IDs in JSON These should be the last two. These were identified using eslint to try to identify any plain casts to JavaScript numbers. (Some such casts are legitimate, but these were not.) Adding the following to .eslintrc.yml will identify casts to numbers: ~~~ no-restricted-syntax: - warn - selector: UnaryExpression[operator='+'] > :not(Literal) message: Avoid the use of unary + - selector: CallExpression[callee.name='Number'] message: Casting with Number() may coerce string IDs to numbers ~~~ The remaining three casts appear legitimate: two casts to array indices, one in a server to turn an environment variable into a number. * Back out RelationshipsController Change This was made to make a test a bit less flakey, but has nothing to do with this branch. * Change internal streaming payloads to stringified IDs as well Per https://github.com/tootsuite/mastodon/pull/5019#issuecomment-330736452 we need these changes to send deleted status IDs as strings, not integers.
2017-09-19Introduce OStatus::TagManager (#5008)Akihiko Odaki
2017-09-19Custom emoji (#4988)Eugen Rochko
* Custom emoji - In OStatus: `<link rel="emoji" name="coolcat" href="http://..." />` - In ActivityPub: `{ type: "Emoji", name: ":coolcat:", href: "http://..." }` - In REST API: Status object includes `emojis` array (`shortcode`, `url`) - Domain blocks with reject media stop emojis - Emoji file up to 50KB - Web UI handles custom emojis - Static pages render custom emojis as `<img />` tags Side effects: - Undo #4500 optimization, as I needed to modify it to restore shortcode handling in emojify() - Formatter#plaintext should now make sure stripped out line-breaks and paragraphs are replaced with newlines * Fix emoji at the start not being converted
2017-08-25Pinned statuses (#4675)Eugen Rochko
* Pinned statuses * yarn manage:translations
2017-07-07Refactor JSON templates to be generated with ActiveModelSerializers instead ↵Eugen Rochko
of Rabl (#4090)