Sorin Davidoi
0c7c188c45
Web Push Notifications ( #3243 )
...
* feat: Register push subscription
* feat: Notify when mentioned
* feat: Boost, favourite, reply, follow, follow request
* feat: Notification interaction
* feat: Handle change of public key
* feat: Unsubscribe if things go wrong
* feat: Do not send normal notifications if push is enabled
* feat: Focus client if open
* refactor: Move push logic to WebPushSubscription
* feat: Better title and body
* feat: Localize messages
* chore: Fix lint errors
* feat: Settings
* refactor: Lazy load
* fix: Check if push settings exist
* feat: Device-based preferences
* refactor: Simplify logic
* refactor: Pull request feedback
* refactor: Pull request feedback
* refactor: Create /api/web/push_subscriptions endpoint
* feat: Spec PushSubscriptionController
* refactor: WebPushSubscription => Web::PushSubscription
* feat: Spec Web::PushSubscription
* feat: Display first media attachment
* feat: Support direction
* fix: Stuff broken while rebasing
* refactor: Integration with session activations
* refactor: Cleanup
* refactor: Simplify implementation
* feat: Set VAPID keys via environment
* chore: Comments
* fix: Crash when no alerts
* fix: Set VAPID keys in testing environment
* fix: Follow link
* feat: Notification actions
* fix: Delete previous subscription
* chore: Temporary logs
* refactor: Move migration to a later date
* fix: Fetch the correct session activation and misc bugs
* refactor: Move migration to a later date
* fix: Remove follow request (no notifications)
* feat: Send administrator contact to push service
* feat: Set time-to-live
* fix: Do not show sensitive images
* fix: Reducer crash in error handling
* feat: Add badge
* chore: Fix lint error
* fix: Checkbox label overlap
* fix: Check for payload support
* fix: Rename action "type" (crash in latest Chrome)
* feat: Action to expand notification
* fix: Lint errors
* fix: Unescape notification body
* fix: Do not allow boosting if the status is hidden
* feat: Add VAPID keys to the production sample environment
* fix: Strip HTML tags from status
* refactor: Better error messages
* refactor: Handle browser not implementing the VAPID protocol (Samsung Internet)
* fix: Error when target_status is nil
* fix: Handle lack of image
* fix: Delete reference to invalid subscriptions
* feat: Better error handling
* fix: Unescape HTML characters after tags are striped
* refactor: Simpify code
* fix: Modify to work with #4091
* Sort strings alphabetically
* i18n: Updated Polish translation
it annoys me that it's not fully localized :P
* refactor: Use current_session in PushSubscriptionController
* fix: Rebase mistake
* fix: Set cacheName to mastodon
* refactor: Pull request feedback
* refactor: Remove logging statements
* chore(yarn): Fix conflicts with master
* chore(yarn): Copy latest from master
* chore(yarn): Readd offline-plugin
* refactor: Use save! and update!
* refactor: Send notifications async
* fix: Allow retry when push fails
* fix: Save track for failed pushes
* fix: Minify sw.js
* fix: Remove account_id from fabricator
2017-07-13 22:15:32 +02:00
Eugen Rochko
f93de3a516
Fix #3462 - Require authentication for search API ( #4155 )
...
This makes it consistent with /api/v1/accounts/search and
previous behaviour has been an oversight.
2017-07-11 17:08:26 +02:00
Yamagishi Kazutoshi
f8212da329
Add attribute for default privacy to verify credentials ( #4075 )
...
* Add attribute for default privacy to verify credentials
* add raw_note
* source
2017-07-10 03:29:34 +02:00
Eugen Rochko
864e3f8d9c
Replace OEmbed and initial state Rabl templates with serializers ( #4110 )
...
* Replace OEmbed Rabl template with serializer
* Replace initial state rabl with serializer
2017-07-08 14:51:05 +02:00
Eugen Rochko
8b2cad5637
Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl ( #4090 )
2017-07-07 04:02:06 +02:00
Eugen Rochko
42b8220632
Fix #1624 - Send e-mail notifications to admins about new reports ( #3949 )
2017-06-27 00:04:00 +02:00
Eugen Rochko
f3be605286
Rename FollowRemoteAccountService to ResolveRemoteAccountService ( #3847 )
...
Rename Activitypub to ActivityPub
2017-06-19 01:51:04 +02:00
Matt Jankowski
2925372ff4
Move create/destroy actions for api/v1/statuses to namespace ( #3678 )
...
Each of mute, favourite, reblog has been updated to:
- Have a separate controller with just a create and destroy action
- Preserve historical route names to not break the API
- Mild refactoring to break up long methods
2017-06-10 09:39:26 +02:00
Matt Jankowski
5282ba862a
Move reblogged_by and favourited_by actions out of api/v1/statuses and into unique controllers ( #3646 )
...
* Add specs for api statuses routes
* Update favourited_by and reblogged_by api routes
* Move methods into new controllers
* Use load_accounts methods to simplify index actions
* Clean up load_accounts methods
* Clean up link header generation
* Check for link headers in specs
* Remove unused actions from api/v1/statuses controller
* Remove specs for moved actions
2017-06-09 14:12:40 -04:00
Yamagishi Kazutoshi
0a0b9a271a
Improve RuboCop rules (compatibility to Code Climate) ( #3636 )
...
08f8de84eb/Gemfile.lock (L38)
Code Climate is using RuboCop v0.46.0.
Change several rules to maintain compatibility.
2017-06-08 13:24:28 +02:00
Matt Jankowski
73540ffe6b
Clean up for api/base controller ( #3629 )
...
* Move ApiController to Api/BaseController
* API controllers inherit from Api::BaseController
* Add coverage for various error cases in api/base controller
2017-06-07 20:09:25 +02:00
Daigo 3 Dango
2985d08951
Redirect to streaming_api_base_url ( #3579 )
...
* Redirect to streaming_api_base_url
When Rails receives a request to streaming API, it most likely
means that there is another host which is configured to respond
to it. This is to redirect clients to that host if
`STREAMING_API_BASE_URL` is set as another host.
* Use the new Ruby 1.9 hash syntax
2017-06-05 12:09:29 +02:00
Naoki Kosaka
e014bf8ed0
Fix limit_param in favourites_controller.rb ( #3553 )
2017-06-04 14:52:26 +02:00
Matt Jankowski
5c63523972
Spec coverage and refactor for the api/v1/accounts controllers ( #3451 )
2017-05-31 21:36:24 +02:00
Matt Jankowski
5236a62861
Improve spec coverage and clean up api/v1/blocks controller ( #3464 )
2017-05-31 20:34:51 +02:00
Matt Jankowski
0f155829b7
Improve spec coverage and clean up api/v1/follow_requests controller ( #3465 )
2017-05-31 20:32:11 +02:00
Matt Jankowski
84dda45df9
Improve spec coverage and clean up api/v1/domain_blocks controller ( #3466 )
2017-05-31 20:31:14 +02:00
Matt Jankowski
9c7505489f
Refactor api/v1/notifications controller ( #3470 )
2017-05-31 20:30:55 +02:00
Matt Jankowski
75cad1d9d6
Improve spec coverage and clean up api/v1/favourites controller ( #3472 )
2017-05-31 20:30:39 +02:00
Matt Jankowski
bf811e4d4a
Improve spec coverage and clean up api/v1/mutes controller ( #3481 )
2017-05-31 20:27:34 +02:00
Matt Jankowski
d6774d2ca3
Refactor and spec coverage for api/v1/timelines actions ( #3482 )
2017-05-31 20:27:17 +02:00
Matt Jankowski
79335e46fd
Refactor api/v1/apps controller ( #3471 )
2017-05-30 21:16:28 -04:00
Matt Jankowski
7c6e02aaf3
Refactor api/v1/reports controller ( #3469 )
2017-05-30 21:13:31 -04:00
Matt Jankowski
7f55430652
Refactor api/v1/search controller ( #3468 )
2017-05-30 21:11:54 -04:00
Matt Jankowski
8235623362
Improve spec coverage and clean up api/v1/media controller ( #3467 )
2017-05-30 21:11:29 -04:00
Matt Jankowski
83435c49ea
Clean up api/subscriptions controller ( #3448 )
2017-05-31 02:15:09 +02:00
Jack Jennings
33f669a5f8
Add status destroy authorization to policy ( #3453 )
...
* Add status destroy authorization to policy
* Create explicit unreblog status authorization
2017-05-30 22:56:31 +02:00
Matt Jankowski
3576fa0d59
Improve api oembed controller ( #3450 )
...
* Add StreamEntryFinder class to parse URLs
* Use StreamEntryFinder and clean up api/oembed controller
2017-05-30 16:30:06 -04:00
Matt Jankowski
1dcfb90202
Clean up api/salmon controller ( #3449 )
2017-05-30 16:28:58 -04:00
Jack Jennings
3a2003ba86
Extract authorization policy for viewing statuses ( #3150 )
2017-05-29 18:22:22 +02:00
unarist
cf4fe6cab8
More use of next link header on account (media) timelines ( #3311 )
...
This will reduce requests on who have only few statuses.
- Use next link header to detect more items from first request
- Omit next link header if result items are fewer than requested count
(It had omit it only if result was empty before)
2017-05-25 17:09:13 +02:00
unarist
3ce9ca4c99
Fix following/followers API to return correct link headers ( #3268 )
...
Link headers in following/followers API should include follow_id as max_id/since_id.
However, these API use current_user's account_id instead of follow_id from #3167 .
This causes irrelevant result on loading more users.
2017-05-23 23:26:23 +02:00
Matt Jankowski
4289ed1d13
Refactor of API timeline actions ( #3263 )
...
- Increase coverage to exercise all parts of each action
- Move into namespace to share common code
- Misc refactor of each action for smaller methods, simpler code
2017-05-23 18:11:39 +02:00
Matt Jankowski
a28ce13b3e
Coverage for api/web/settings controller ( #3238 )
2017-05-22 23:12:28 +02:00
Akihiko Odaki
2af5cd96fe
Fix mutes_controller error and incorrect statuses_controller report ( #3202 )
...
This commit fixes a regression in commit
f554807563
.
2017-05-21 13:32:13 +02:00
Akihiko Odaki
22cb286ad7
Fix regressions in api/v1 ( #3178 )
...
The regressions are introduced at commit
f554807563
by me (Akihiko Odaki)
2017-05-20 17:48:34 +02:00
Yamagishi Kazutoshi
6c1122a1d9
Fix block list 500 ( #3174 )
2017-05-20 17:01:14 +02:00
Akihiko Odaki
f554807563
Use joins for account properties ( #3167 )
2017-05-20 15:13:51 +02:00
Eugen Rochko
f1ab70649b
Add buttons to block and unblock domain ( #3127 )
...
* Add buttons to block and unblock domain
* Relationship API now returns "domain_blocking" status for accounts,
rename "block entire domain" to "hide entire domain", fix unblocking domain,
do not block notifications from domain-blocked-but-followed people, do
not send Salmons to domain blocked users
* Add test
* Personal domain blocks shouldn't affect Salmon after all, since in this
direction of communication the control is very thin when it comes to
public stuff. Best stay consistent and not affect federation in this way
* Ignore followers and follow request from domain blocked folks,
ensure account domain blocks are not created for empty domain,
and avoid duplicates in validation
* Purge followers when blocking domain (without soft-blocks, since they
are useless here)
* Add tests, fix local timeline being empty when having any domain blocks
2017-05-19 21:05:32 +02:00
Eugen Rochko
620d0d8029
Account domain blocks ( #2381 )
...
* Add <ostatus:conversation /> tag to Atom input/output
Only uses ref attribute (not href) because href would be
the alternate link that's always included also.
Creates new conversation for every non-reply status. Carries
over conversation for every reply. Keeps remote URIs verbatim,
generates local URIs on the fly like the rest of them.
* Conversation muting - prevents notifications that reference a conversation
(including replies, favourites, reblogs) from being created. API endpoints
/api/v1/statuses/:id/mute and /api/v1/statuses/:id/unmute
Currently no way to tell when a status/conversation is muted, so the web UI
only has a "disable notifications" button, doesn't work as a toggle
* Display "Dismiss notifications" on all statuses in notifications column, not just own
* Add "muted" as a boolean attribute on statuses JSON
For now always false on contained reblogs, since it's only relevant for
statuses returned from the notifications endpoint, which are not nested
Remove "Disable notifications" from detailed status view, since it's
only relevant in the notifications column
* Up max class length
* Remove pending test for conversation mute
* Add tests, clean up
* Rename to "mute conversation" and "unmute conversation"
* Raise validation error when trying to mute/unmute status without conversation
* Adding account domain blocks that filter notifications and public timelines
* Add tests for domain blocks in notifications, public timelines
Filter reblogs of blocked domains from home
* Add API for listing and creating account domain blocks
* API for creating/deleting domain blocks, tests for Status#ancestors
and Status#descendants, filter domain blocks from them
* Filter domains in streaming API
* Update account_domain_block_spec.rb
2017-05-19 01:14:30 +02:00
Eugen Rochko
d0dd9eb5b5
Feature conversations muting ( #3017 )
...
* Add <ostatus:conversation /> tag to Atom input/output
Only uses ref attribute (not href) because href would be
the alternate link that's always included also.
Creates new conversation for every non-reply status. Carries
over conversation for every reply. Keeps remote URIs verbatim,
generates local URIs on the fly like the rest of them.
* Conversation muting - prevents notifications that reference a conversation
(including replies, favourites, reblogs) from being created. API endpoints
/api/v1/statuses/:id/mute and /api/v1/statuses/:id/unmute
Currently no way to tell when a status/conversation is muted, so the web UI
only has a "disable notifications" button, doesn't work as a toggle
* Display "Dismiss notifications" on all statuses in notifications column, not just own
* Add "muted" as a boolean attribute on statuses JSON
For now always false on contained reblogs, since it's only relevant for
statuses returned from the notifications endpoint, which are not nested
Remove "Disable notifications" from detailed status view, since it's
only relevant in the notifications column
* Up max class length
* Remove pending test for conversation mute
* Add tests, clean up
* Rename to "mute conversation" and "unmute conversation"
* Raise validation error when trying to mute/unmute status without conversation
2017-05-15 03:04:13 +02:00
Matt Jankowski
04166c4a35
Specs for API push controller, with refactor ( #2926 )
...
* Coverage for api push controller
* Refactor the api/push controller
2017-05-09 00:44:30 +02:00
rch850
453fb84c9c
Use null as default oEmbed height ( #2842 )
...
Height 640 is too big for most toots.
Twitter use null value to support flexible height.
2017-05-06 16:31:43 +02:00
Eugen Rochko
bafd22ecf4
Fix #2706 - Always respond with 200 to PuSH payloads ( #2733 )
...
Fix #2196 - Respond with 201 when Salmon accepted, 400 when unverified
Fix #2629 - Correctly handle confirm_domain? for local accounts
Unify rules for extracting author acct from XML, prefer <email>, fall back
to <name> + <uri> (see also #2017 , #2172 )
2017-05-03 17:02:18 +02:00
Eugen Rochko
88725d6ce8
OEmbed support for PreviewCard ( #2337 )
...
* OEmbed support for PreviewCard
* Improve ProviderDiscovery code failure treatment
* Do not crawl links if there is a content warning, since those
don't display a link card anyway
* Reset db schema
* Fresh migrate
* Fix rubocop style issues
Fix #1681 - return existing access token when applicable instead of creating new
* Fix test
* Extract http client to helper
* Improve oembed controller
2017-04-27 14:42:22 +02:00
Evan Minto
122d59ac41
Change ActivityPub paging to match spec. Clean up ActivityPub outbox changes. ( #2410 )
...
* Change ActivityPub paging to match spec. Clean up ActivityPub outbox changes.
* Fix code style and test failures for OutboxController.
* Attempt to fix CI errors.
2017-04-25 15:06:06 +02:00
Eugen Rochko
8b5179d006
Fix #2402 - Add Idempotency-Key header to PostStatusService that prevents ( #2419 )
...
duplicates. Web UI regenerates UUID for that header every time the compose
form is changed or successfully submitted
Also, fix Farsi i18n overwriting the English one
2017-04-25 15:04:49 +02:00
Eugen
17c591ffba
Punycode URI normalization ( #2370 )
...
* Fix #2119 - Whenever about to send a HTTP request, normalize the URI
* Add test for IDN request in FetchLinkCardService
* Perform IDN normalization on domains before they are stored in the DB
2017-04-25 02:47:31 +02:00
Evan Minto
66fd8e7821
ActivityPub: Add basic, read-only support for Outboxes, Notes, and Create/Announce Activities ( #2197 )
...
* Clean up collapsible components
* Expose user Outboxes and AS2 representations of statuses
* Save work thus far.
* Fix bad merge.
* Save my work
* Clean up pagination.
* First test working.
* Add tests.
* Add Forbidden error template.
* Revert yarn.lock changes.
* Fix code style deviations and use localized instead of hardcoded English text.
2017-04-23 05:21:10 +02:00
Ashley
05ac28f3e4
Added API for single notification dismissal ( #2251 )
...
* Added API backend for notification dismissal
* Added render statement
* Changed statement
2017-04-22 02:30:35 +02:00
Matt Jankowski
a8e1afc30a
Simplify render in controllers ( #2144 )
2017-04-19 15:37:42 +02:00
happycoloredbanana
0a7588282a
Remove API authentication for public statuses (after review) ( #1919 )
2017-04-18 21:58:57 +02:00
Eugen
e43071a2f9
Fix #1897 - Return reblogged: false on unreblog (was wrongly named variable) ( #1989 )
2017-04-17 19:58:38 +02:00
alpaca-tc
00392d3c63
ActiveRecord::NotFound is not defined ( #1864 )
2017-04-15 21:17:59 +02:00
ThibG
a9529d3b4b
Allow running mastodon on a different domain as the one used for identifying users ( #1267 )
...
* Allow running mastodon on a different domain as the one used for identifying users
* Alter documentation of WEB_DOMAIN to make clear it shouldn't be used unless the admin knows what they are doing
* Compare to web_domain instead of local_domain when dealing with feeds/API
* Correctly identify mentions to local accounts
Mentions URLs point to the person's web profile, i.e., the user page served on WEB_DOMAIN.
2017-04-15 02:15:46 +02:00
Eugen
2810013b93
API param to exclude notification types from response ( #1341 )
...
* Add exclude_types param to /api/v1/notifications
* Exclude notification types in web UI through exclude_types in the API
2017-04-10 23:45:29 +02:00
Eugen
15d442cf9d
Fix /api/v1/accounts/update_credentials tests ( #1357 )
2017-04-09 20:23:14 +02:00
David Celis
d4fe6cd2bf
Allow users to update their Account in the API ( #1179 )
...
* Allow users to update their Account in the API
It would be nice for API clients to be able to allow users to update
their accounts without having to wrap Mastodon in a web view. This patch
adds an API endpoint to let users submit a PATCH for their account.
Signed-off-by: David Celis <me@davidcel.is>
* Add /api/v1/accounts/update_credentials to the API docs
Signed-off-by: David Celis <me@davidcel.is>
2017-04-09 18:33:40 +02:00
Eugen
b89f007862
Make public timelines API not require user context/app credentials ( #1291 )
...
* Make /api/v1/timelines/public and /api/v1/timelines/tag/:id public
Fix #1156 - respect query params when generating pagination links in API
* Apply pagination fix to more APIs
2017-04-08 23:39:31 +02:00
Eugen Rochko
4c53af64f0
Fix ActionController::Parameters in API issue
2017-04-04 01:33:34 +02:00
Eugen Rochko
e8875c6046
Import feature for following/blocking lists (addresses #62 , #177 , #201 , #454 )
2017-03-30 19:42:33 +02:00
Eugen Rochko
de22c202f5
Add counter caches for a large performance increase on API requests
2017-03-30 15:06:59 +02:00
Eugen Rochko
05cf086766
New API method: /api/v1/search
...
Returns accounts, statuses, hashtags arrays
2017-03-22 02:32:27 +01:00
Eugen Rochko
5cfc9c7487
Forgot to hook up API with the latest method
2017-03-17 21:02:47 +01:00
Eugen Rochko
6be7bde243
Fix #525 - Add instance information API
2017-03-15 23:12:48 +01:00
Eugen
e245115f47
Merge branch 'master' into mastodon-site-api
2017-03-15 22:55:22 +01:00
Eugen Rochko
d6cb4bbe99
Performance improvement for profiles
2017-03-06 01:50:35 +01:00
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
2017-03-05 17:27:17 +01:00
Kit Redgrave
442fdbfc53
Mute button progress so far. WIP, doesn't entirely work correctly.
2017-03-01 22:31:21 -06:00
Kibigo
620f70e42c
Adds site metadata access to the API
2017-02-27 04:06:25 -08:00
Eugen Rochko
5f511324b6
Add validation of media attachments, clean up mastodon-own exception classes
2017-02-26 23:23:06 +01:00
Eugen Rochko
063432d7e3
Merge branch 'fix_462' of https://github.com/rmhasan/mastodon into rmhasan-fix_462
2017-02-26 23:09:18 +01:00
Eugen Rochko
3e9d794ea5
Add tuning documentation, add <content> tags back to most salmons,
...
make status pagination headers generation more lax about next page
existing
2017-02-25 03:34:37 +01:00
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
2017-02-19 08:29:56 +00:00
Rakib Hasan
6f9ecd899e
revisted fix for #462
...
Moved validation to services/post_status_service.rb
2017-02-19 08:28:33 +00:00
Rakib Hasan
6d2301988f
Fix for issue #462
...
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.
2017-02-19 08:28:33 +00:00
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
2017-02-17 01:30:24 +01:00
Eugen Rochko
3b81baaaaf
Adding POST /api/v1/reports API, and a UI for submitting reports
2017-02-14 20:59:26 +01:00
Eugen Rochko
149887a0ff
Make follow requests federate
2017-02-11 02:58:00 +01:00
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
2017-02-06 23:16:20 +01:00
Eugen Rochko
eee8afb0b7
Remove bios from blocked users list, filter out broken entries from API response
2017-02-05 19:39:00 +01:00
Eugen Rochko
77e13c2bc9
Removing failed push notification API, make context loads use cache
2017-02-05 17:51:44 +01:00
Eugen Rochko
d9ca46b464
Cleaning up format of broadcast real-time messages, removing
...
redis-backed "mentions" timeline as redundant (given notifications)
2017-02-02 00:03:31 +01:00
Eugen Rochko
3f075c7794
API for apps to register for push notifications
2017-01-29 01:30:32 +01:00
Eugen Rochko
905c829179
Improve infinite scroll on notifications
2017-01-26 04:30:40 +01:00
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
2017-01-25 01:29:16 +01:00
Eugen
f8da0dd490
Merge branch 'master' into master
2017-01-24 21:56:06 +01:00
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
2017-01-24 21:40:41 +01:00
Eugen Rochko
1f5792c834
API now respects ?limit param as long as it's within 2x default limit
2017-01-24 04:22:10 +01:00
blackle
bf0f6eb62d
Implement a click-to-view spoiler system
2017-01-23 21:07:40 -05:00
Eugen Rochko
cca82bf0a2
Move merging/unmerging of timelines into background. Move blocking into
...
background as well since it's a computationally expensive
2017-01-23 21:29:34 +01:00
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
2017-01-23 21:09:27 +01:00
Eugen
1953e3b6ed
Fix inflection
2017-01-22 23:08:51 +01:00
Eugen Rochko
3a4b5961be
Method to fetch a single notification
2017-01-21 22:14:13 +01:00
Eugen Rochko
f0de621e76
Fix #463 - Fetch and display previews of URLs using OpenGraph tags
2017-01-20 01:00:14 +01:00
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
2017-01-19 11:06:06 +01:00
Eugen Rochko
7d53ee73f3
Fix #238 - Add "favourites" column
2017-01-16 13:28:25 +01:00
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 #11
2017-01-15 08:58:50 +11:00
Eugen Rochko
2939e9898b
Extend rails-settings-cached to merge db-saved hash values with defaults
2017-01-13 02:42:22 +01:00
Eugen Rochko
312c51b5c8
Home column filters
2017-01-10 17:25:10 +01:00
Eugen Rochko
75f80bef10
Persist UI settings, add missing localizations for German
2017-01-09 14:00:55 +01:00
Eugen Rochko
a302e56f9a
Add API for retrieving favourites
2016-12-29 20:33:26 +01:00
Eugen Rochko
49834a6e7f
Add API for retrieving blocked accounts
2016-12-29 20:12:32 +01:00
Eugen Rochko
2146ac91a0
Follow requests send e-mail notifications, but are excluded from notifications API
...
Better initial state for unlisted/nsfw toggles
2016-12-26 21:52:03 +01:00
Eugen Rochko
004382e4d0
Adding follow requests API
2016-12-26 19:30:45 +01:00
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
2016-12-22 23:03:57 +01:00
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
2016-12-21 20:04:13 +01:00
Eugen Rochko
0542773bca
Make unfavouriting async to prevent timeout errors from leaving orphaned records behind
2016-12-19 09:12:29 +01:00
Eugen Rochko
5ae1b39ec9
Adjusting public display of statuses to look similar to logged-in UI,
...
fix #361 with rich OEmbed display via iframe, fix #237 by hiding sensitive
content behind a spoiler on public pages
2016-12-18 19:47:11 +01:00
Eugen Rochko
aed25932b5
Add OEmbed iframe HTML, convert emojis on public pages, increase size of attachment thumbnails
2016-12-18 15:20:39 +01:00
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
2016-12-01 16:26:25 +01:00
Eugen Rochko
6ff93845d5
Add basic OEmbed provider API, fix #247
2016-11-30 23:01:03 +01:00
Eugen Rochko
14bd46946d
Per-status control for unlisted mode, also federation for unlisted mode
...
Fix #233 , fix #268
2016-11-30 21:34:59 +01:00
Eugen Rochko
7e90772c92
Unify collection caching code
2016-11-29 15:49:39 +01:00
Eugen Rochko
93a90cd9c3
Delete statuses asynchronously but provide instant feedback in the API
2016-11-29 15:32:25 +01:00
Eugen Rochko
2d2c81765b
Adding embedded PuSH server
2016-11-28 13:36:47 +01:00
Eugen Rochko
8a3745a4df
Remove stale entries from cache results
2016-11-25 13:25:40 +01:00
Eugen Rochko
8efa081f21
Remove Neo4J
2016-11-24 23:46:27 +01:00
Alyssa Ross
cefef2c571
Extract filename obfuscation into module
2016-11-24 00:30:58 +00:00
Andrea Faulds
7161f91313
Rename media to avoid exposing filename ( fixes #207 )
2016-11-23 21:03:03 +00:00
Eugen Rochko
79a0135869
Cache accounts/:id/statuses and single statuses too
2016-11-23 19:00:43 +01:00
Eugen Rochko
0603971894
Adding sensitive marker to statuses in API
2016-11-23 10:46:48 +01:00
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
2016-11-23 09:20:34 +01:00
Eugen Rochko
cf912e01fd
Implement includes caching for timelines APIs
2016-11-23 08:34:35 +01:00
Eugen Rochko
5c78547198
More query optimizations
2016-11-22 23:18:54 +01:00
Eugen Rochko
fc90d38893
Moving some counter queries out of subqueries in the API
2016-11-22 22:59:54 +01:00
Eugen Rochko
45c7ee39b3
Remove unneeded indices, improve error handling in background workers, don't needlessly reload reblogged status, send Devise e-mails asynchronously
2016-11-22 17:32:51 +01:00
Eugen Rochko
f88ca4a206
Performance improvement for notifications API
2016-11-21 16:10:42 +01:00
Eugen Rochko
52119104b9
Remove some n+1 queries from notifications API
2016-11-21 15:16:04 +01:00
Eugen Rochko
e8c27767aa
Remove orphaned notifications, add scopes param to app create API
2016-11-21 14:59:13 +01:00
Eugen Rochko
da2ef4d676
Adding unified streamable notifications
2016-11-20 19:39:58 +01:00
Eugen Rochko
7dea6a23f7
Move Salmon processing to background as well as PuSH
2016-11-18 23:24:57 +01:00
Eugen Rochko
4f07fb1f0a
Fix #144 - Filter statuses from blocked users out of ancestors/descendants results
2016-11-15 17:33:41 +01:00
Eugen Rochko
fdc17bea58
Fix rubocop issues, introduce usage of frozen literal to improve performance
2016-11-15 16:56:29 +01:00
Eugen Rochko
a91c3ef6ce
Delegate processing of incoming PuSH data to background workers
2016-11-15 15:43:33 +01:00
Eugen Rochko
cea28e0c1d
Fix wrong link header on followers API, wrong link in tabs component, order
...
account results
2016-11-14 01:19:25 +01:00
Eugen Rochko
afded319d2
Add limit to search results
2016-11-12 14:49:28 +01:00
Eugen Rochko
09218d4c01
Use full-text search for autosuggestions
2016-11-12 14:36:10 +01:00
Eugen Rochko
17903c6dae
Improve filtering of public/hashtag timelines, both in backlog and real-time
2016-11-10 00:03:33 +01:00
Eugen Rochko
b13e7dda1f
API pagination for all collections using Link header
2016-11-09 17:48:44 +01:00
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
2016-11-08 23:29:08 +01:00
Eugen Rochko
48b9619439
Adding hashtags
2016-11-05 17:13:14 +01:00
Eugen Rochko
62292797ec
Adding hashtag model
2016-11-04 19:12:59 +01:00
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
2016-11-03 16:57:44 +01:00
Eugen Rochko
e4671adc25
Fix reblogged/favourited caching; add API endpoints for who favd/reblogged status
2016-11-03 14:50:22 +01:00
Eugen Rochko
562044f36a
Need to disable caching again due to bug in Rabl
2016-11-03 13:59:31 +01:00
Eugen Rochko
fa1cc2d05a
Limit returned followees/followers by API to 40 for now
2016-10-30 15:14:07 +01:00
Eugen Rochko
e0a197650a
Adding common followers API, fixing fallback query again
2016-10-29 01:29:19 +02:00
Eugen Rochko
a9e40a3d80
Adding OAuth access scopes, fixing OAuth authorization UI, adding rate limiting
...
to the API
2016-10-22 19:39:44 +02:00
Eugen Rochko
de1f3aab86
Fix #16 - Optimize n+1 queries when checking reblogged/favourited values for status lists in API
2016-10-16 19:10:16 +02:00
Eugen Rochko
e21a3fe0cd
Adding sync of follow relationships to Neo4J, accounts/suggestions API
2016-10-14 23:10:07 +02:00
Eugen Rochko
157f03f8bd
No-op for Salmons without body, fail fast if Webfinger does not contain
...
all required resource links (profile page, salmon, atom feed, magic key)
2016-10-13 13:41:06 +02:00
Eugen Rochko
68eed8c61f
Stop logging incoming Atom
2016-10-10 18:16:39 +02:00
Eugen Rochko
f49ed8c819
Log incoming Atom from PuSH
2016-10-10 17:40:28 +02:00
Eugen Rochko
427ba27641
Public timeline to exclude users you blocked
2016-10-09 15:15:21 +02:00
Eugen Rochko
22a8801dbc
Adding domain blocks
2016-10-09 14:48:59 +02:00
Eugen Rochko
1f650d327d
Adding public timeline
2016-10-07 16:00:11 +02:00
Eugen Rochko
15d01a5e08
Better comparison of "local" domain
2016-10-06 16:36:16 +02:00
Eugen Rochko
2f5b205916
Catch Paperclip errors on /api/v1/media, return early from update profile service if XML given is nil
2016-10-06 14:40:15 +02:00
Eugen Rochko
7b9a4af311
API for blocking and unblocking
2016-10-03 18:17:06 +02:00
Eugen Rochko
2c9e672ee2
Integrating block relationships into the API (read-only for now)
2016-10-03 17:16:58 +02:00
Eugen Rochko
9fd3d7b6cd
Add since_id param to feeds
2016-10-02 22:35:27 +02:00
Eugen Rochko
6d7290f47c
Add API for getting info about authenticated user: /api/v1/accounts/verify_credentials
2016-10-02 16:14:21 +02:00
Eugen Rochko
62b057b085
Adjust client registration API
2016-09-30 00:03:08 +02:00
Eugen Rochko
ef2b50c9ac
Deleting statuses from UI
2016-09-30 00:00:45 +02:00
Eugen Rochko
927333f4f8
Improve code style
2016-09-29 21:28:21 +02:00
Eugen Rochko
4f9b7432dd
Fix #52 - Add API versioning (v1)
2016-09-27 16:59:08 +02:00
Eugen Rochko
7e14eefc81
Replace logo, fix #57 - delete/unreblog/unfavourite API, fix #45 - app
...
registration API
2016-09-26 23:56:53 +02:00
Eugen Rochko
3f9708edc4
Change output of api/accounts/:id/follow and unfollow to return relationship
...
Track relationship in redux state. Display follow/unfollow and following-back
information on account view (unstyled)
2016-09-23 20:23:26 +02:00
Eugen Rochko
c0e9603c92
Fix #50 - Order ancestors/descendants by tree path
2016-09-21 23:18:28 +02:00
Eugen Rochko
e46abc71ca
Fix notifications in UI, added new API for fetching account relationships
2016-09-21 22:07:18 +02:00
Eugen Rochko
1d2856c2af
Since GNU Social hubs don't seem to return a hub.lease_seconds param in the subscription confirmation request,
...
we'll have to default that value to the GS "minimum" (from their code) which is 24 hours.
2016-09-20 03:24:04 +02:00
Eugen Rochko
246330493b
More debugging for PuSH confirmations
2016-09-20 03:18:55 +02:00
Eugen Rochko
a66d34878c
Add more logging to PuSH callback
2016-09-20 03:12:23 +02:00
Eugen Rochko
608a2bfffc
Upgrade to PubSubHubbub 0.4 (removing verify_token)
2016-09-20 02:43:20 +02:00
Eugen Rochko
059ebbf48d
Separate PuSH subscriptions from following, add mastodon:push:refresh task,
...
respect hub.lease_seconds (fix #46 )
2016-09-20 00:43:36 +02:00
Eugen Rochko
adffc7a495
Fix #43
2016-09-18 12:28:49 +02:00
Eugen Rochko
8c0b19012b
Fix #41 , debug #42
2016-09-17 16:36:10 +02:00
Eugen Rochko
5b0cef9781
Setting up preliminary "detailed" routes in the UI, new API end-point for fetching status context
2016-09-16 00:21:51 +02:00
Eugen Rochko
d6a64f45fd
Adding a notification stack for error messages
2016-09-12 19:20:55 +02:00
Eugen Rochko
85d89b472d
Optimized n+1 queries in accounts Atom and HTML views
...
Added stack trace for SQL queries in development
Removed badly thought out accounts/lookup API
2016-09-08 20:36:01 +02:00
Eugen Rochko
509c18eb13
Fix local follows, 404 in logs
2016-09-08 02:40:51 +02:00
Eugen Rochko
eec0dc46a6
PostStatusService can attach media to status, ProcessFeedService likewise
2016-09-05 18:39:53 +02:00
Eugen Rochko
ae1fac0062
Add API to upload media attachments
2016-09-05 17:46:36 +02:00
Eugen Rochko
b5ebf99439
Possibly fix issue with stale favourite/reblog information after API call
2016-09-04 21:28:48 +02:00
Eugen Rochko
10ba09f546
Upgrade to Rails 5.0.0.1
2016-08-17 17:58:00 +02:00
Eugen Rochko
a08e724476
Fix subscriptions:clear task, refactor feeds, refactor streamable activites
...
and atom feed generation to some extent, as well as the way mentions are
stored
2016-03-25 02:13:30 +01:00
Eugen Rochko
082e1cbe5a
Fix default max_id query in paginate_by_max_id
2016-03-22 21:53:33 +01:00
Eugen Rochko
12559b01ea
Add pagination by max_id instead of offset/limit
2016-03-22 21:38:47 +01:00
Eugen Rochko
c28971c70c
Fixed the lookup API method
2016-03-21 17:33:04 +01:00
Eugen Rochko
9d55529318
Fix text color in dashboard inputs, sanitize remote status content in UI,
...
simplify FanOutOnWriteService, add /api/accounts/lookup method
2016-03-21 17:02:16 +01:00
Eugen Rochko
2ba6537f52
Escape PuSH challenge and change subscriptions and salmon APIs to text/plain
2016-03-21 09:24:29 +01:00
Eugen Rochko
b640f35621
Writing out more tests, fixed some bugs
2016-03-20 13:03:06 +01:00
Eugen Rochko
9a7485d034
Fix typo on /api/accounts/:id/statuses, fix potential case-sensitivity issue
...
when registering incoming status mentions, add Travis CI file
2016-03-18 23:23:19 +01:00
Eugen Rochko
323474c97e
Fix #2 , add rake task for PuSH-unsubscribing from remote users who have no
...
local followers. Remote users' usernames SHOULD be case-sensitive
2016-03-17 12:02:45 +01:00
Eugen Rochko
aab9f57e36
Adding config for puma, dashboard layout, fixing some queries
2016-03-12 16:21:53 +01:00
Eugen Rochko
447cfef62d
Improving feed queries, switching API to doorkeeper authentication
2016-03-11 16:47:36 +01:00
Eugen Rochko
6c4c84b161
Distrubute statuses as a fan-out-on-write system, with optional precomputing
2016-03-08 20:20:45 +01:00
Eugen Rochko
fe57f6330f
API methods for retrieving home and mentions timelines
2016-03-07 13:25:26 +01:00
Eugen Rochko
f099bc6091
Adding API for favouriting a status
2016-03-07 12:58:42 +01:00