Commit Graph

127 Commits (6d26bfd14706872f6e4d1c3a3e45b00d81cf86cb)

Author SHA1 Message Date
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
8 years ago
Eugen Rochko e4671adc25 Fix reblogged/favourited caching; add API endpoints for who favd/reblogged status 8 years ago
Eugen Rochko 562044f36a Need to disable caching again due to bug in Rabl 8 years ago
Eugen Rochko 9467b900a2 Make cookies https-only if LOCAL_HTTPS is true, set X-Frame-Options to DENY,
add permissive CORS to API controllers
8 years ago
Eugen Rochko dd03118098 Fix follow icon changing plus to minus, add terms page stub 8 years ago
Eugen Rochko fa1cc2d05a Limit returned followees/followers by API to 40 for now 8 years ago
Eugen Rochko e0a197650a Adding common followers API, fixing fallback query again 8 years ago
Eugen Rochko b746a931a5 Fix OAuth authorization redirect 8 years ago
Eugen Rochko a9e40a3d80 Adding OAuth access scopes, fixing OAuth authorization UI, adding rate limiting
to the API
8 years ago
Eugen Rochko 04bbc57690 Fix #100 - Add "back" button to certain views
Also fix reloading of timelines after merge-type events
8 years ago
Eugen Rochko 43df35213e Improving all forms 8 years ago
Eugen Rochko 2e0a38d07c Added e-mail edit field to settings, proper format default for webfinger 8 years ago
Eugen Rochko d5e086a47b Adding application/jrd+json webfinger resource 8 years ago
Eugen Rochko de1f3aab86 Fix #16 - Optimize n+1 queries when checking reblogged/favourited values for status lists in API 8 years ago
Eugen Rochko e21a3fe0cd Adding sync of follow relationships to Neo4J, accounts/suggestions API 8 years ago
Eugen Rochko 7a6d95f70c E-mail preferences page 8 years ago
Eugen Rochko 33f7e1cf99 Shorten rendered links (strip protocol and www, truncate to 30 chars), redirect
to sign in page after sign up instead of root path which redirects to /about
8 years ago
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)
8 years ago
Eugen Rochko 68eed8c61f Stop logging incoming Atom 8 years ago
Eugen Rochko f49ed8c819 Log incoming Atom from PuSH 8 years ago
Eugen Rochko 427ba27641 Public timeline to exclude users you blocked 8 years ago
Eugen Rochko 22a8801dbc Adding domain blocks 8 years ago
Eugen Rochko 1f650d327d Adding public timeline 8 years ago
Eugen Rochko 943c69c65d Fix #73 - Click on in-UI profile avatar/name to open public profile 8 years ago
Eugen Rochko 3554d638b3 Fix #72 - add follow/unfollow button to public profiles 8 years ago
Eugen Rochko 15d01a5e08 Better comparison of "local" domain 8 years ago
Eugen Rochko b60430fe8f Fix sign-in redirecting "back" to a missing image because missing static files hit the raise_not_found method 8 years ago
Eugen Rochko 2f5b205916 Catch Paperclip errors on /api/v1/media, return early from update profile service if XML given is nil 8 years ago
Eugen Rochko fe77921e47 Catching more exceptions that slipped through, removing AR logging from
production as it's very verbose and not very useful
8 years ago
Eugen Rochko 7b9a4af311 API for blocking and unblocking 8 years ago
Eugen Rochko 2c9e672ee2 Integrating block relationships into the API (read-only for now) 8 years ago
Eugen Rochko 9d59d7b463 Adding a block model and filter mentions from blocked users (fix #60) 8 years ago
Eugen Rochko fc198a8b4c Adding e-mail confirmations 8 years ago
Eugen Rochko 188c6f326b Making public pages responsive, removing reblogs/favs counts from them 8 years ago
Eugen Rochko 9fd3d7b6cd Add since_id param to feeds 8 years ago
Eugen Rochko a0f85774c4 Redirect after sign in to previous page (unless it's a sign in/up/etc page) 8 years ago
Eugen Rochko 6d7290f47c Add API for getting info about authenticated user: /api/v1/accounts/verify_credentials 8 years ago
Eugen Rochko 96ad9b0db1 Meaningful validation errors in API response 8 years ago
Eugen Rochko 62b057b085 Adjust client registration API 8 years ago
Eugen Rochko ef2b50c9ac Deleting statuses from UI 8 years ago
Eugen Rochko 927333f4f8 Improve code style 8 years ago
Eugen Rochko e63aebff7a Adding landing page 8 years ago
Eugen Rochko 4f9b7432dd Fix #52 - Add API versioning (v1) 8 years ago
Eugen Rochko 7e14eefc81 Replace logo, fix #57 - delete/unreblog/unfavourite API, fix #45 - app
registration API
8 years ago
Eugen Rochko 693383234c Improved style of settings page 8 years ago
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)
8 years ago
Eugen Rochko c6d893a71d Uploading/undoing media modifies status text. Also: status text trimmed before validation 8 years ago
Eugen Rochko c0e9603c92 Fix #50 - Order ancestors/descendants by tree path 8 years ago
Eugen Rochko e46abc71ca Fix notifications in UI, added new API for fetching account relationships 8 years ago
Eugen Rochko 4bec613897 Fix #24 - Thread resolving for remote statuses
This is a big one, so let me enumerate:

Accounts as well as stream entry pages now contain Link headers that
reference the Atom feed and Webfinger URL for the former and Atom entry
for the latter. So you only need to HEAD those resources to get that
information, no need to download and parse HTML <link>s.

ProcessFeedService will now queue ThreadResolveWorker for each remote
status that it cannot find otherwise. Furthermore, entries are now
processed in reverse order (from bottom to top) in case a newer entry
references a chronologically previous one.

ThreadResolveWorker uses FetchRemoteStatusService to obtain a status
and attach the child status it was queued for to it.

FetchRemoteStatusService looks up the URL, first with a HEAD, tests
if it's an Atom feed, in which case it processes it directly. Next
for Link headers to the Atom feed, in which case that is fetched
and processed. Lastly if it's HTML, it is checked for <link>s to the Atom
feed, and if such is found, that is fetched and processed. The account for
the status is derived from author/name attribute in the XML and the hostname
in the URL (domain). FollowRemoteAccountService and ProcessFeedService
are used.

This means that potentially threads are resolved recursively until a dead-end
is encountered, however it is performed asynchronously over background jobs,
so it should be ok.
8 years ago