Eugen Rochko
2939e9898b
Extend rails-settings-cached to merge db-saved hash values with defaults
8 years ago
Eugen Rochko
b11fdc3ae3
Migrate from ledermann/rails-settings to rails-settings-cached which allows global settings
...
with YAML-defined defaults. Add admin page for editing global settings. Add "site_description"
setting that would show as a paragraph on the frontpage
8 years ago
Eugen Rochko
312c51b5c8
Home column filters
8 years ago
Eugen Rochko
75f80bef10
Persist UI settings, add missing localizations for German
8 years ago
Eugen Rochko
7b9f8766e8
Fix #416 - Generate random unique 14-byte (19 characters) shortcodes
...
for local attachments, use them in URLs. Check status privacy
before redirecting to actual file.
8 years ago
Eugen Rochko
1bbcd71cd4
Fix #390 - fix redirect after sign-up (to login page instead of homepage)
8 years ago
Eugen Rochko
f79ba2de83
Fix admin UI not loading JS, make sure to strip "acct:" out of remote account's usernames when authorizing follow
8 years ago
Eugen Rochko
75122e162d
Fix uri expansion during remote follow
8 years ago
Eugen Rochko
8f47f6a7ec
Adding remote follow button
8 years ago
Eugen Rochko
a302e56f9a
Add API for retrieving favourites
8 years ago
Eugen Rochko
49834a6e7f
Add API for retrieving blocked accounts
8 years ago
Eugen Rochko
8724094ed0
Support remote follow request providing URL instead of acct
8 years ago
Eugen Rochko
d7dc84439c
Add ability to use remote follow function on other sites
8 years ago
Eugen Rochko
eca6110fc4
Add preferences for follow request notification e-mails
8 years ago
Eugen Rochko
2146ac91a0
Follow requests send e-mail notifications, but are excluded from notifications API
...
Better initial state for unlisted/nsfw toggles
8 years ago
Eugen Rochko
3689c119f0
Replacing follow requests in the settings area with in-UI column
8 years ago
Eugen Rochko
004382e4d0
Adding follow requests API
8 years ago
Eugen Rochko
3282448878
Fix #86 - resolve layout breaking on zoom-out on accounts grid
8 years ago
Eugen Rochko
b302b9202b
Add page for authorizing/rejecting follow requests
8 years ago
Eugen Rochko
05b13c38b5
Re-enable Webfinger for locked accounts but don't handle "follow" events
...
coming in via Salmon.
Currently no way to prevent remote follows, but they will only receive public
and unlisted posts
8 years ago
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
8 years ago
Eugen Rochko
2d2154ba75
Add "locked" flag to accounts, prevent blocked users from following, force-unfollow blocked users
8 years ago
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
8 years ago
Eugen Rochko
e09d3a2c66
Fix #249 - use window.location hack to let people login from sandboxed iOS homescreen
8 years ago
Eugen Rochko
0542773bca
Make unfavouriting async to prevent timeout errors from leaving orphaned records behind
8 years ago
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
8 years ago
Eugen Rochko
aed25932b5
Add OEmbed iframe HTML, convert emojis on public pages, increase size of attachment thumbnails
8 years ago
Eugen Rochko
76ec907993
Improved admin UI
8 years ago
Eugen Rochko
f978b06dd1
Add suspend account functionality to admin UI
8 years ago
Eugen Rochko
f406e01fcf
Add filters for suspended accounts
8 years ago
Eugen Rochko
1357c1cb3d
Add single user mode
8 years ago
Eugen Rochko
39cc9fde8a
Add account suspension
8 years ago
Eugen Rochko
9d9f796130
Adding more to admin accounts UI
8 years ago
Eugen Rochko
d236dcded2
Fix public tags page
8 years ago
Eugen Rochko
5abf64d647
Add "next" pagination to public profiles
8 years ago
Eugen Rochko
ec44cff9a2
Admin accounts page lists accounts
8 years ago
Eugen Rochko
816284d739
Fix #248 - Reload all accounts when fetching from cache
8 years ago
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
8 years ago
Eugen Rochko
6ff93845d5
Add basic OEmbed provider API, fix #247
8 years ago
Eugen Rochko
14bd46946d
Per-status control for unlisted mode, also federation for unlisted mode
...
Fix #233 , fix #268
8 years ago
Eugen Rochko
a21bcac9e1
Further abstract caching for includes
8 years ago
Eugen Rochko
356d3874eb
Normalize localizations, add stub for admin/accounts
8 years ago
Eugen Rochko
ff21ff1489
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
7e90772c92
Unify collection caching code
8 years ago
Eugen Rochko
93a90cd9c3
Delete statuses asynchronously but provide instant feedback in the API
8 years ago
Eugen Rochko
3ba6531611
Fix setting of confirmed=true on successful confirmation
8 years ago
Eugen Rochko
27fc49d745
Add simple admin overview of PuSH subscriptions
8 years ago
Eugen Rochko
2d2c81765b
Adding embedded PuSH server
8 years ago
Eugen Rochko
4495baf451
X-RateLimit-Reset formatted with iso8601
8 years ago
Eugen Rochko
8a3745a4df
Remove stale entries from cache results
8 years ago
Eugen Rochko
71401659b8
Fix #65 - Options to block notifications from people you don't follow/who don't follow you
8 years ago
Eugen Rochko
8efa081f21
Remove Neo4J
8 years ago
Eugen Rochko
8e34bed7cc
Mini Profiler not working well, remove it
8 years ago
Alyssa Ross
cefef2c571
Extract filename obfuscation into module
8 years ago
Andrea Faulds
7161f91313
Rename media to avoid exposing filename ( fixes #207 )
8 years ago
Eugen Rochko
79a0135869
Cache accounts/:id/statuses and single statuses too
8 years ago
Eugen Rochko
0603971894
Adding sensitive marker to statuses in API
8 years ago
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
8 years ago
Eugen Rochko
cf912e01fd
Implement includes caching for timelines APIs
8 years ago
Eugen Rochko
5c78547198
More query optimizations
8 years ago
Eugen Rochko
fc90d38893
Moving some counter queries out of subqueries in the API
8 years ago
Eugen Rochko
45c7ee39b3
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
1788164352
Local accounts can control "silenced" attribute which removes them from public timeline
8 years ago
Eugen Rochko
627a85f4e4
Better error message in doorkeeper json response
8 years ago
Eugen Rochko
f88ca4a206
Performance improvement for notifications API
8 years ago
Eugen Rochko
52119104b9
Remove some n+1 queries from notifications API
8 years ago
Eugen Rochko
e8c27767aa
Remove orphaned notifications, add scopes param to app create API
8 years ago
Eugen Rochko
fb48cc3b74
Desktop notifications
8 years ago
Eugen Rochko
da2ef4d676
Adding unified streamable notifications
8 years ago
Eugen Rochko
7dea6a23f7
Move Salmon processing to background as well as PuSH
8 years ago
Eugen Rochko
2c766bd4b4
Add user locale setting
8 years ago
Eugen Rochko
3ce6ac0ce2
Adding some localizations
8 years ago
Eugen Rochko
4f07fb1f0a
Fix #144 - Filter statuses from blocked users out of ancestors/descendants results
8 years ago
Eugen Rochko
fdc17bea58
Fix rubocop issues, introduce usage of frozen literal to improve performance
8 years ago
Eugen Rochko
a91c3ef6ce
Delegate processing of incoming PuSH data to background workers
8 years ago
Eugen Rochko
cea28e0c1d
Fix wrong link header on followers API, wrong link in tabs component, order
...
account results
8 years ago
Eugen Rochko
afded319d2
Add limit to search results
8 years ago
Eugen Rochko
09218d4c01
Use full-text search for autosuggestions
8 years ago
Eugen Rochko
17903c6dae
Improve filtering of public/hashtag timelines, both in backlog and real-time
8 years ago
Eugen Rochko
448ab18a20
Replace setting custom CORS headers with rack-cors, set it on /oauth/token endpoint
8 years ago
Eugen Rochko
b13e7dda1f
API pagination for all collections using Link header
8 years ago
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
8 years ago
Eugen Rochko
a698b767c1
Fix linking of remote hashtags in UI, add public view of hashtags
8 years ago
Eugen Rochko
48b9619439
Adding hashtags
8 years ago
Eugen Rochko
62292797ec
Adding hashtag model
8 years ago
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
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
Eugen Rochko
246330493b
More debugging for PuSH confirmations
8 years ago
Eugen Rochko
a66d34878c
Add more logging to PuSH callback
8 years ago
Eugen Rochko
608a2bfffc
Upgrade to PubSubHubbub 0.4 (removing verify_token)
8 years ago
Eugen Rochko
059ebbf48d
Separate PuSH subscriptions from following, add mastodon:push:refresh task,
...
respect hub.lease_seconds (fix #46 )
8 years ago
Eugen Rochko
adffc7a495
Fix #43
8 years ago
Eugen Rochko
bd5ad304ba
Adding media controller, 1 webm/compose form allowed, previews generated
8 years ago
Eugen Rochko
0e9c1a297a
Improved error handling for FollowRemoteService
8 years ago
Eugen Rochko
8c0b19012b
Fix #41 , debug #42
8 years ago
Eugen Rochko
5b0cef9781
Setting up preliminary "detailed" routes in the UI, new API end-point for fetching status context
8 years ago
Eugen Rochko
d6a64f45fd
Adding a notification stack for error messages
8 years ago
Eugen Rochko
762157ee4e
Fix for single status pages
8 years ago
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
8 years ago
Eugen Rochko
509c18eb13
Fix local follows, 404 in logs
8 years ago
Eugen Rochko
0f4bc56719
Improving production logs, removing n+1 on media attachments in atom,
...
adding attachments display to static views
8 years ago