Commit Graph

1769 Commits (bba537a7bebe11be4b1e4a7e126a34cd27b73678)

Author SHA1 Message Date
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 b1a670af8d Handle remote account mentions a little better by trying a URL lookup in the db 8 years ago
Eugen Rochko 2a84271e85 Infinite scroll for account timelines 8 years ago
Eugen Rochko 4a670780f0 Fix #51 - prevent duplicate attachments for remote statuses 8 years ago
Eugen Rochko 2c0261ac25 Infinite scroll for timeline columns 8 years ago
Eugen Rochko 74dfefabd3 Make in-text mentions open account detailed view when possible 8 years ago
Eugen Rochko bc98865c1a API returns mentions for statuses, compose form pre-fills all relevant usernames into the form when replying 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 6d89edc4f7 Fix #47 by renaming TIMELINE_SET action to TIMELINE_REFRESH_SUCCESS 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 a86f21cf90 Fix rake tasks and loading bar 8 years ago
Eugen Rochko 1cfc9aa20e OStatus2 and Goldfinger gems now have timeouts for requests 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 1245ee42fb Update OStatus2 library 8 years ago
Eugen Rochko 98de6927f3 Remove background mask from avatars 8 years ago
Eugen Rochko 337462aa5e Re-organizing components to be more modular, adding loading bars 8 years ago
Eugen Rochko f820edb463 Fix type mistake in account component 8 years ago
Eugen Rochko ee770c3fd3 Live update account timelines, small fix for replyCompose 8 years ago
Eugen Rochko 0967961de7 Improve how account detailed view looks, load account's statuses 8 years ago
Eugen Rochko dafcb02153 Remove unused action constants 8 years ago
Eugen Rochko 9863196f7b Small rubocop offences removed 8 years ago
Eugen Rochko 08896f7dcf Detailed status view scrollable 8 years ago
Eugen Rochko ab7291b8fe Add ancestors/descendants during normalization in timeline reducer
This way replies will appear in the detailed view live if they are from
statuses that would be delivered to the user normally
8 years ago
Eugen Rochko dfd5deacf4 Volume toggle control in VideoPlayer 8 years ago
Eugen Rochko adffc7a495 Fix #43 8 years ago
Eugen Rochko 5342629a0a Adding webm playback to UI 8 years ago
Eugen Rochko bd5ad304ba Adding media controller, 1 webm/compose form allowed, previews generated 8 years ago
Eugen Rochko 183a23943b Fix how other services used old FollowRemoteAccountService 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 e906677092 Stop event propagation after IconButton onClick 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 2e7aac793a Adding sense of self to the UI, cleaning up routing, adding third (detail) column 8 years ago
Eugen Rochko d6a64f45fd Adding a notification stack for error messages 8 years ago
Eugen Rochko 05b0c985b4 Send "delete" Salmons to remote mentioned accounts on status removal
Fixes #27
8 years ago
Eugen Rochko ce29624c6d Fixing image upload limits, allowing webm, merge/unmerge events trigger
timeline reload in UI, other small fixes
8 years ago
Eugen Rochko 3d566279cb Fix formatter return block 8 years ago
Eugen Rochko 0077fc26df Merge and unmerge timelines on follow/unfollow, solves #21, #22 8 years ago
Eugen Rochko 7d45a4e692 Fix local mention regex so it works on newlines in HTML (with a preceding tag) 8 years ago
Eugen Rochko 457625591d Styling for paragraphs in statuses 8 years ago
Eugen Rochko 73615d7a79 Newlines and paragraphs in local statuses properly formatted 8 years ago
Eugen Rochko 76c40cbfb1 Disallow self-follow 8 years ago
Eugen Rochko 33ad2e5423 Shorten mentions to only usernames 8 years ago
Eugen Rochko d6b3113304 Validates local username, max sizes for uploads. Fixes #32 8 years ago
Eugen de7eb2341a Fix typo in deleteFromTimelines action creator 8 years ago
Eugen Rochko 3cc47beb6e Refactored generation of unique tags, URIs and object URLs into own classes,
as well as formatting of content
8 years ago
Eugen Rochko 735b4cc62e Probably fixes #31 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 a4cc966476 Removing default avatars 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
Eugen Rochko 87576e1ab1 Fixing atom feeds for accounts, adding tests that would catch such bugs in future 8 years ago
Eugen Rochko 499beb4484 UI for uploading media attachments (and cancelling them)
Mostly resolves #8, though attachments are still not displayed in public view
8 years ago
Eugen 1efa8e48d1 Fix enclosures not being parsed for reblogged statuses 8 years ago
Eugen Rochko aca988a16b Fix for Drawer growing horizontally 8 years ago
Eugen Rochko 75fbde1c1a Fixed styling for media attachments in statuses (margins) 8 years ago
Eugen Rochko ac77170d19 Add icons to column headers, click them to scroll to top 8 years ago
Eugen Rochko 1f18cf97b5 Fix styling of media attachments in statuses 8 years ago
Eugen 265215dae9 Fix reply bug introduced when compose form started using normalized data 8 years ago
Eugen Rochko 5f36d8828a Better layout for attachments in <MediaGallery> 8 years ago
Eugen Rochko fc222dfa49 Displaying media attachments in timelines 8 years ago
Eugen Rochko 14fb0ab4a2 Improve JSON output for media attachments, generate :small preview for them 8 years ago
Eugen Rochko ed94e998bc Fix for media attachments remote URL download 8 years ago
Eugen Rochko 1d9c886518 Adding enclosures to Atom and statuses JSON 8 years ago
Eugen Rochko eec0dc46a6 PostStatusService can attach media to status, ProcessFeedService likewise 8 years ago
Eugen Rochko ae1fac0062 Add API to upload media attachments 8 years ago
Eugen Rochko 05001d54d1 Make compose form also use normalized data 8 years ago
Eugen Rochko 926eea89b5 RemoveStatusService fleshed out, still doesn't send Salmon slaps though 8 years ago
Eugen Rochko b5ebf99439 Possibly fix issue with stale favourite/reblog information after API call 8 years ago
Eugen Rochko 35dfc0fbcb Fixed more case-sensitivity issues 8 years ago
Eugen Rochko 29996a7e8b Fix wrongful mentions breaking status update 8 years ago
Eugen Rochko 54ea7f5dfe Case-insensitive search by usernames 8 years ago
Eugen Rochko a82f2e4b82 Fix timelines for users whose user id and account_id are not the same 8 years ago
Eugen Rochko a289c1d52f Handle delete Salmons, todo: clean up timelines 8 years ago
Eugen Rochko 1022d682dc Normalized data in Redux, fix for asset URLs when rendered outside request 8 years ago
Eugen Rochko d0e2733f63 Fix reblogs of reblogs in UI, add follow form in UI 8 years ago
Eugen Rochko 2d57bcf1b7 Preparing for follow form 8 years ago
Eugen Rochko c249ceb10c Reblogs fixed 8 years ago
Eugen Rochko 595c8dda60 Favouriting works, reblogging is a little broken because of <Status> 8 years ago
Eugen Rochko c2a4d70265 Small style fixes 8 years ago
Eugen Rochko 2093cda89a Fixing one more typo 8 years ago
Eugen Rochko d6873797ac Fix typo 8 years ago
Eugen Rochko dbae8062f4 Replies in the compose form 8 years ago
Eugen Rochko 1e0e17ba85 Improving styling a little bit 8 years ago
Eugen Rochko 72591cc6d5 Cleaning up action names and compose drawer 8 years ago
Eugen Rochko 92afd29650 The frontend will now be an OAuth app, auto-authorized. The frontend will use an access token for API requests
Adding better errors for the API controllers, posting a simple status works from the frontend now
8 years ago
Eugen Rochko 44e57f64dd Improving statuses, adding a composer drawer, which doesn't work yet 8 years ago
Eugen f5e1127894 Forgotten return 8 years ago
Eugen Rochko a541e937ca More styling for statuses 8 years ago
Eugen Rochko bc0692d75b Removing mini-profiler that doesn't work, formatting timelines a bit better 8 years ago
Eugen Rochko 03f5ffcd06 Dockerfile adjustments 8 years ago
Eugen Rochko 49520d6e62 Adding React.js, Redux, revamping dashboard 8 years ago
Eugen Rochko 8985f8e66c Fixing more configuration issues with ActionCable 8 years ago
Eugen Rochko 8459acd123 Fix for force SSL issue with websockets 8 years ago
Eugen Rochko 6426819b6f Fix tests 8 years ago
Eugen Rochko 6deb9f966e Live timelines using ActionCable 8 years ago
Eugen Rochko 10ba09f546 Upgrade to Rails 5.0.0.1 8 years ago
Eugen Rochko ff2cbc0753 Remember me enabled by default 9 years ago
Eugen Rochko c38ad208c3 Fix mentions regex to exclude usernames in Medium URLs 9 years ago
Eugen Rochko 039e6f951c Fix issue with unresolvable usernames 9 years ago
Eugen Rochko 882c94a6bf Cleaning up status partial 9 years ago
Eugen Rochko 85b00d19b8 Moving Salmon notifications to background processing, fixing mini-profiler
behaviour with Turbolinks enabled, optimizing Rabl for production
9 years ago
Eugen Rochko da4b675aca Fix favourite handling in ProcessInteractionService 9 years ago
Eugen Rochko 43bb8a25e7 Remember user logins by default 9 years ago
Eugen Rochko f2da848a3e Add alternate link to entries Atom 9 years ago
Eugen Rochko 5764d52b04 Fix Sidekiq pooling issues. Remove API docs from homepage, replace with
a basic home timeline
9 years ago
Eugen Rochko 318886287b Fixing some stuff for Turbolinks, adding gzip on top, fixing a n+1 query 9 years ago
Eugen Rochko e24bfbde1a Fixing FanOutOnWriteService, fixing Sidekiq not having enough DB connections
in the pool, adding a throttle of 60rpm per IP, adding mini profiler, adding
admin status to users
9 years ago
Eugen Rochko 8eeec389c1 Add link to github project to footer, move FanOutOnWriteService calls to
DistributionWorker. That isn't the heaviest service, yet, but gotta start
somewhere
9 years ago
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
9 years ago
Eugen Rochko 9594f0e858 Fix preloading 9 years ago
Eugen Rochko 97d5aba1ec Do not try to send notification e-mails for reblogs if the reblog is not of a
local account
9 years ago
Eugen Rochko 0f5bbb999c Pre-loading polymorphic associations for Atom feeds 9 years ago
Eugen Rochko 7e58303a8d Limit Atom feeds to 20 items by default, add pagination by max_id
(But there are no Atom feed pagination elements yet)
9 years ago
Eugen Rochko c8999a116e Sanitize remote html in atom feeds, API (not just UI), use cached mention
relations on Status#mentions
9 years ago
Eugen Rochko 7cd3de3494 Do display top-level content on remote shared notices 9 years ago
Eugen Rochko 082e1cbe5a Fix default max_id query in paginate_by_max_id 9 years ago
Eugen Rochko 12559b01ea Add pagination by max_id instead of offset/limit 9 years ago
Eugen Rochko 02e4fb2e06 Only re-download avatar if URL changed (fix #19) 9 years ago
Eugen Rochko 921f40c187 Omit empty tags in Atom feed 9 years ago
Eugen Rochko 12d1d9dd80 Reblogs in Atom feeds now have published, updated, and activity:verb. Still related to #20 9 years ago
Eugen Rochko 78137929e6 Fix #20, reblogs in Atom should be formatted correctly now 9 years ago
Eugen Rochko f14f462eaf Adding Turbolinks, adding status posting form on homepage 9 years ago
Eugen Rochko c28971c70c Fixed the lookup API method 9 years ago
Eugen Rochko 5b10329394 Resize default avatar cat to fit circle better 9 years ago
Eugen Rochko 02696a063e Change default avatar, redirect to home after sign up 9 years ago
Eugen Rochko 9d55529318 Fix text color in dashboard inputs, sanitize remote status content in UI,
simplify FanOutOnWriteService, add /api/accounts/lookup method
9 years ago
Eugen Rochko bf08d46e58 Improving borders between predecessor/successor statuses 9 years ago
Eugen Rochko 35aafdba96 Ancestors and descendants of statuses 9 years ago
Eugen Rochko 7e00a21ea6 Small optimizations in Atom feeds 9 years ago
Eugen Rochko 19a259915e Security update 9 years ago
Eugen Rochko 2ba6537f52 Escape PuSH challenge and change subscriptions and salmon APIs to text/plain 9 years ago
Eugen Rochko 46cbb9c551 Increase note truncation length on account grids, improve FanOutOnWrite a bit,
fix tests (the recorded Salmon fixture expects LOCAL_DOMAIN to be something
specific unfortunately)
9 years ago
Eugen Rochko 253ab26520 Adding more tests for helpers 9 years ago
Eugen Rochko b640f35621 Writing out more tests, fixed some bugs 9 years ago
Eugen Rochko e14b76c7cb On following/followers pages, show most recent first 9 years ago
Eugen Rochko 7e53efae31 Fix for incoming favourites 9 years ago
Eugen Rochko f4ad2fb35a Strip out HTML in plain text notification e-mails. Oh, and fix #14 9 years ago
Eugen Rochko 2b116131d7 Adding e-mail notifications about mentions, follows, favourites and reblogs. Fixing another mention recording bug 9 years ago
Eugen Rochko 5d72b92271 Improving account grid cards layout for longer usernames and notes 9 years ago
Eugen Rochko 71ae4dd3d2 Adding public following and followers pages, fix #3 9 years ago
Eugen Rochko c349200761 Removing some unused gems, adding pagination to profiles, fix #10 9 years ago
Eugen Rochko d4892ace62 Adding more test stubs 9 years ago
Eugen Rochko 66a2107527 Turns out that replies don't have to have the type comment. Changed handling
of those to depend on presence of <thr:in-reply-to /> instead
9 years ago
Eugen Rochko f97fc9744f Use FanOutOnWriteService AFTER processing mentions 9 years ago
Eugen Rochko 47d1cb4e21 TIL a return from a block seems to return from the whole method rather than
the block, even though the last line of a block is an implicit return. I am
confused to say the least
9 years ago
Eugen Rochko 071f64d317 Fix #13, Atom feeds now contain formatted post content 9 years ago
Eugen Rochko 580b91c387 Fix more subtle bugs with first_or_create 9 years ago
Eugen Rochko 48aeacd5f9 Fixed ANOTHER first_or_create bug. Seriously who came up with that API smh 9 years ago
Eugen Rochko 9a7485d034 Fix typo on /api/accounts/:id/statuses, fix potential case-sensitivity issue
when registering incoming status mentions, add Travis CI file
9 years ago
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
9 years ago
Eugen Rochko af7ae348d7 Include AtomBuilderHelper (which declared url_for_target) to all services 9 years ago
Eugen Rochko e239fc3050 Fix error when unfollowing somebody who wasn't followed in the first place 9 years ago
Eugen Rochko d022975444 Fixing small bug with FollowRemoteAccountService usage 9 years ago
Eugen Rochko 086d487145 Fix unfollows 9 years ago
Eugen Rochko 9cb690c706 Access tokens no longer expire, case-insensitive local username validation, as well as case-insensitive Webfinger look-up 9 years ago
Eugen Rochko 8767a98fbb Adding CSS for form errors, adding missing indices 9 years ago
Eugen Rochko a9db42a956 Validations for local profiles 9 years ago
Eugen Rochko 5c99e304e5 Deleting statuses, deletion propagation 9 years ago
Eugen Rochko 75b3339a99 Respect "delete" verb on remote feeds 9 years ago
Eugen Rochko 6fec8afc3f Bind oauth applications to users 9 years ago
Eugen Rochko 25d7c1b6ea Customizing the last of doorkeeper views, adding CSS for dashboard forms 9 years ago
Eugen Rochko 3441361568 Adding simple_form, adding profile settings, header image 9 years ago
Eugen Rochko 1aa477ac2f Customized more doorkeeper views, only logged in users can create oauth apps 9 years ago
Eugen Rochko aab9f57e36 Adding config for puma, dashboard layout, fixing some queries 9 years ago
Eugen Rochko 447cfef62d Improving feed queries, switching API to doorkeeper authentication 9 years ago
Eugen Rochko b919f39b31 Customizing doorkeeper views for authorizing app 9 years ago
Eugen Rochko d4b9b289e8 Adding Mastodon logo 9 years ago
Eugen Rochko 6c4c84b161 Distrubute statuses as a fan-out-on-write system, with optional precomputing 9 years ago
Eugen Rochko fe57f6330f API methods for retrieving home and mentions timelines 9 years ago
Eugen Rochko f099bc6091 Adding API for favouriting a status 9 years ago
Eugen Rochko ffe48fd7c6 Improving how the API responses look 9 years ago
Eugen Rochko ab6696e855 Adding doorkeeper, adding a REST API
POST /api/statuses                  Params: status (text contents), in_reply_to_id (optional)
GET  /api/statuses/:id
POST /api/statuses/:id/reblog

GET  /api/accounts/:id
GET  /api/accounts/:id/following
GET  /api/accounts/:id/followers
POST /api/accounts/:id/follow
POST /api/accounts/:id/unfollow

POST /api/follows                  Params: uri (e.g. user@domain)

OAuth authentication is currently disabled, but the API can be used with HTTP Auth.
9 years ago
Eugen Rochko 3824c58853 Adding GNU Public license, adding home timeline, reblog/favourite counters 9 years ago
Eugen Rochko c605b828b5 Adding routes to follow, unfollow, favourite and reblog (locally known models) 9 years ago
Eugen Rochko aab330eb2d Adjusting design of public pages, optimizing account page queries 9 years ago
Eugen Rochko ab80ebdeec Adjusting design of profile and entry pages, linkify mentions in statuses 9 years ago
Eugen Rochko 6045b6cb18 Customizing devise views and controllers 9 years ago
Eugen Rochko 7e93da3f8d Removing grape and adding devise 9 years ago
Eugen Rochko 3b4e04dc32 Fixing some bugs, adding pending test examples 9 years ago
Eugen Rochko 23d08c6749 Changing the use of config constants to the Rails configuration object 9 years ago
Eugen Rochko 0e8f59c16f Refactoring Grape API methods into normal controllers & other things 9 years ago
Eugen Rochko 11ff92c9d7 Adding a test for ReblogService, fixing mentions for remote statuses 9 years ago
Eugen Rochko 47d50b0e39 A lot of fixes from a live test 9 years ago
Eugen Rochko f1654da7ad Added <link> tags to profiles and entries 9 years ago
Eugen Rochko 9ec03ab5f5 Ping hubs when following somebody, too 9 years ago
Eugen Rochko 8fada4fae2 When posting a status or reblogging one, ping hubs about the feed update 9 years ago
Eugen Rochko ad5ae3f60e Update profile information and download avatar of remote accounts 9 years ago
Eugen Rochko 2825991e09 Improving status display design, including replies and threads 9 years ago
Eugen Rochko 5ae54f9e36 Adding avatars to profile page and statuses 9 years ago
Eugen Rochko 2c70f0ecaa Adding paperclip for avatars, fixing design of the public pages 9 years ago
Eugen Rochko fa29ef3a41 Improving design 9 years ago
Eugen Rochko 24646d5769 Adding views for the profile and entry pages 9 years ago
Eugen Rochko f16b31f077 Adding a bunch of tests 9 years ago
Eugen Rochko 44c5958203 Fixed small bugs and code style offences 9 years ago
Eugen Rochko 71fe24096c Adding a Mention model, test stubs 9 years ago
Eugen Rochko 42eeecba3f Service to reblog statuses 9 years ago
Eugen Rochko c967802c43 Notify remote users about mentions 9 years ago
Eugen Rochko 79609d6270 Add service for posting statuses (normal and replies), mention regex to
fetch webfinger information of mentioned accounts
9 years ago
Eugen Rochko 8da8387afe Add shared statuses to the database 9 years ago
Eugen Rochko fa7868675d Send Salmon interactions 9 years ago
Eugen Rochko 10eb47a33e Do not PuSH-subscribe to remote accounts when creating them for salmon 9 years ago
Eugen Rochko 784b9cca6a Forgotten argument fix 9 years ago
Eugen Rochko 9411e8c35a Feed processing except fetching remote statuses 9 years ago
Eugen Rochko 79baf2fd99 Process favourites, reblogs and replies from Salmon 9 years ago
Eugen Rochko ee73d35eea Incoming Salmon requests can be turned into follows and unfollows 9 years ago
Eugen Rochko fa33750105 Adding reblogs, favourites, improving atom generation 9 years ago
Eugen Rochko 3b0bc18db9 Improved Atom rendering templates, added README 9 years ago
Eugen Rochko 2bc48e9064 Individual atom entries 9 years ago
Eugen Rochko 1dad72bf13 Fixes and general progress 9 years ago
Eugen Rochko 709c6685a9 Made some progress 9 years ago
Eugen Rochko 9c4856bdb1 Initial commit 9 years ago