Eugen Rochko
2d4ce8a867
Fix #248 - Reload all accounts when fetching from cache
8 years ago
Eugen Rochko
8260628fc8
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
8 years ago
Eugen Rochko
a8814a19dc
Add basic OEmbed provider API, fix #247
8 years ago
Eugen Rochko
8d4ef0b6c3
Per-status control for unlisted mode, also federation for unlisted mode
...
Fix #233 , fix #268
8 years ago
Eugen Rochko
1bb1ec3b8d
Further abstract caching for includes
8 years ago
Eugen Rochko
329b2a326d
Normalize localizations, add stub for admin/accounts
8 years ago
Eugen Rochko
015cd99f41
Make User#current_sign_in_at actually track when user was last active,
...
by updating it at least every 24h if the user visits the site
8 years ago
Eugen Rochko
bee7aeaea5
Unify collection caching code
8 years ago
Eugen Rochko
d26b8f3cce
Delete statuses asynchronously but provide instant feedback in the API
8 years ago
Eugen Rochko
02da8fdcbe
Fix setting of confirmed=true on successful confirmation
8 years ago
Eugen Rochko
f37efe8e56
Add simple admin overview of PuSH subscriptions
8 years ago
Eugen Rochko
b5ad0eb4ea
Adding embedded PuSH server
8 years ago
Eugen Rochko
abeccf6eb2
X-RateLimit-Reset formatted with iso8601
8 years ago
Eugen Rochko
666eda7256
Remove stale entries from cache results
8 years ago
Eugen Rochko
ea0846645a
Fix #65 - Options to block notifications from people you don't follow/who don't follow you
8 years ago
Eugen Rochko
30f9e9e624
Remove Neo4J
8 years ago
Eugen Rochko
8ab2fcbb2c
Mini Profiler not working well, remove it
8 years ago
Alyssa Ross
cb06801b21
Extract filename obfuscation into module
8 years ago
Andrea Faulds
66a20701b7
Rename media to avoid exposing filename ( fixes #207 )
8 years ago
Eugen Rochko
d78962c1ed
Cache accounts/:id/statuses and single statuses too
8 years ago
Eugen Rochko
65d6191147
Adding sensitive marker to statuses in API
8 years ago
Eugen Rochko
c60df460af
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
8 years ago
Eugen Rochko
dda6354c76
Implement includes caching for timelines APIs
8 years ago
Eugen Rochko
f6a975af8b
More query optimizations
8 years ago
Eugen Rochko
30010a6dbd
Moving some counter queries out of subqueries in the API
8 years ago
Eugen Rochko
f07b0dc82f
Remove unneeded indices, improve error handling in background workers, don't needlessly reload reblogged status, send Devise e-mails asynchronously
8 years ago
Eugen Rochko
74df3ba1d7
Local accounts can control "silenced" attribute which removes them from public timeline
8 years ago
Eugen Rochko
0aeae195cb
Better error message in doorkeeper json response
8 years ago
Eugen Rochko
0a68464995
Performance improvement for notifications API
8 years ago
Eugen Rochko
4d100a1b36
Remove some n+1 queries from notifications API
8 years ago
Eugen Rochko
83cdfefa7d
Remove orphaned notifications, add scopes param to app create API
8 years ago
Eugen Rochko
80d58c6c04
Desktop notifications
8 years ago
Eugen Rochko
38025dfea3
Adding unified streamable notifications
8 years ago
Eugen Rochko
fbaddca49e
Move Salmon processing to background as well as PuSH
8 years ago
Eugen Rochko
b8e6ca45e5
Add user locale setting
8 years ago
Eugen Rochko
0e956910c3
Adding some localizations
8 years ago
Eugen Rochko
c6f5eb8aa7
Fix #144 - Filter statuses from blocked users out of ancestors/descendants results
8 years ago
Eugen Rochko
e71b152d89
Fix rubocop issues, introduce usage of frozen literal to improve performance
8 years ago
Eugen Rochko
a7332acba3
Delegate processing of incoming PuSH data to background workers
8 years ago
Eugen Rochko
19ea717b3c
Fix wrong link header on followers API, wrong link in tabs component, order
...
account results
8 years ago
Eugen Rochko
6206f75837
Add limit to search results
8 years ago
Eugen Rochko
cbfa28b9cc
Use full-text search for autosuggestions
8 years ago
Eugen Rochko
6d9f8ee11e
Improve filtering of public/hashtag timelines, both in backlog and real-time
8 years ago
Eugen Rochko
a6667f7f58
Replace setting custom CORS headers with rack-cors, set it on /oauth/token endpoint
8 years ago
Eugen Rochko
beb36e24fe
API pagination for all collections using Link header
8 years ago
Eugen Rochko
d98b43cf56
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
8 years ago
Eugen Rochko
814907e870
Fix linking of remote hashtags in UI, add public view of hashtags
8 years ago
Eugen Rochko
cb22dce970
Adding hashtags
8 years ago
Eugen Rochko
082e57fc13
Adding hashtag model
8 years ago
Eugen Rochko
4c3885b952
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
7a527c947d
Fix reblogged/favourited caching; add API endpoints for who favd/reblogged status
8 years ago
Eugen Rochko
695f62e49e
Need to disable caching again due to bug in Rabl
8 years ago
Eugen Rochko
e7035a4d39
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
36470feeb2
Fix follow icon changing plus to minus, add terms page stub
8 years ago
Eugen Rochko
95e65d883a
Limit returned followees/followers by API to 40 for now
8 years ago
Eugen Rochko
38cacac4b0
Adding common followers API, fixing fallback query again
8 years ago
Eugen Rochko
cab1211ef7
Fix OAuth authorization redirect
8 years ago
Eugen Rochko
6657414266
Adding OAuth access scopes, fixing OAuth authorization UI, adding rate limiting
...
to the API
8 years ago
Eugen Rochko
4470966cd9
Fix #100 - Add "back" button to certain views
...
Also fix reloading of timelines after merge-type events
8 years ago
Eugen Rochko
be98addccc
Improving all forms
8 years ago
Eugen Rochko
683c42724f
Added e-mail edit field to settings, proper format default for webfinger
8 years ago
Eugen Rochko
02613aef3b
Adding application/jrd+json webfinger resource
8 years ago
Eugen Rochko
41aae40927
Fix #16 - Optimize n+1 queries when checking reblogged/favourited values for status lists in API
8 years ago
Eugen Rochko
5860094354
Adding sync of follow relationships to Neo4J, accounts/suggestions API
8 years ago
Eugen Rochko
588cb77e9f
E-mail preferences page
8 years ago
Eugen Rochko
84495615b4
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
405f7f0541
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
ad2a5cc79f
Stop logging incoming Atom
8 years ago
Eugen Rochko
4f406d89b1
Log incoming Atom from PuSH
8 years ago
Eugen Rochko
102eab0ac9
Public timeline to exclude users you blocked
8 years ago
Eugen Rochko
9bf5a73968
Adding domain blocks
8 years ago
Eugen Rochko
c3f5dfeabb
Adding public timeline
8 years ago
Eugen Rochko
93aa4085a2
Fix #73 - Click on in-UI profile avatar/name to open public profile
8 years ago
Eugen Rochko
10395fd275
Fix #72 - add follow/unfollow button to public profiles
8 years ago
Eugen Rochko
b23c4b488c
Better comparison of "local" domain
8 years ago
Eugen Rochko
c02bdd64a0
Fix sign-in redirecting "back" to a missing image because missing static files hit the raise_not_found method
8 years ago
Eugen Rochko
96cc77ce55
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
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.
8 years ago