Commit Graph

151 Commits (665ec615e30274bc10307ba9e56d37e3f9836f03)

Author SHA1 Message Date
Eugen Rochko 7e90772c92 Unify collection caching code 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 2cb3dc5e5a Update hub URL and re-subscribe if hub URL changes 8 years ago
Eugen Rochko 8efa081f21 Remove Neo4J 8 years ago
Eugen Rochko da2ef4d676 Adding unified streamable notifications 8 years ago
Eugen Rochko 7b7bf834e9 Fix OAuth authorization page and add a spec for it 8 years ago
Eugen Rochko 7ac574d9a9 Fix #148 - Devise mailer fixed, test spec added so it won't slip past again 8 years ago
Eugen Rochko b2e504616a Remove broken test 8 years ago
Eugen Rochko 546c4718e7 Localizations for most server-side strings 8 years ago
Eugen Rochko 8152584cf5 Fix #142 - Escape ILIKE special characters from Account.find_remote 8 years ago
Eugen Rochko cd765f26a9 Upgrade ruby to 2.3.1 8 years ago
Eugen Rochko aabf884c5f Discard misattributed remote statuses, improve timelines filter 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 93212bc2c4 Add test for FanOutOnWriteService 8 years ago
Eugen Rochko 7bb28bf780 Improve @mention regex 8 years ago
Eugen Rochko 48b9619439 Adding hashtags 8 years ago
Eugen Rochko 62292797ec Adding hashtag model 8 years ago
Eugen Rochko 829d189f44 Add tests for recently added API end points 8 years ago
Kai Schaper 19cfe64455 add/update specs for Button, DisplayName, DropdownMenu 8 years ago
Eugen Rochko d5e086a47b Adding application/jrd+json webfinger resource 8 years ago
Eugen Rochko 67b35a601a Exclude blocked users from follow suggestions, fix tests 8 years ago
Eugen Rochko ab7cb80dd5 Merge branch 'kschaper-avatar-component-testing' into development 8 years ago
Eugen Rochko 44856fb641 Merge branch 'avatar-component-testing' of https://github.com/kschaper/mastodon into kschaper-avatar-component-testing 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
Kai Schaper cbfc12044d actually use const 8 years ago
Kai Schaper b113cf97fb add chai-enzyme; add/improve Avatar component specs 8 years ago
Kai Schaper ecd4042c20 use ES6 arrow functions 8 years ago
Kai Schaper e0a4455622 add sinon; add basic Button component test 8 years ago
Kai Schaper 998f161e1d add jsdom; add basic Avatar component test 8 years ago
Kai Schaper d7c55853e9 set up Mocha/Chai/Enzyme for React component unit testing 8 years ago
Eugen Rochko 81065bc06c Adding test for ProcessFeedService 8 years ago
Eugen Rochko 22a8801dbc Adding domain blocks 8 years ago
Eugen Rochko 1f650d327d Adding public timeline 8 years ago
Eugen Rochko 7b9a4af311 API for blocking and unblocking 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 6d7290f47c Add API for getting info about authenticated user: /api/v1/accounts/verify_credentials 8 years ago
Eugen Rochko be86d4e0a3 Preparing feeds for better filtering 8 years ago
Eugen Rochko b36197c307 Fix tests, update goldfinger to catch XML errors 8 years ago
Eugen Rochko 2603c7e69f Fix tests 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 c6b0311b86 Fix #54 - Fetch remote accounts by URL from mentions
Fetching atom extracted from FetchRemoteAccountService and FetchRemoteStatusService
into FetchAtomService. Mentions of the constant "http://activityschema.org/collection/public"
skipped as it's not a real URL/user.
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 608a2bfffc Upgrade to PubSubHubbub 0.4 (removing verify_token) 8 years ago
Eugen Rochko 9863196f7b Small rubocop offences removed 8 years ago
Eugen Rochko adffc7a495 Fix #43 8 years ago
Eugen Rochko 4f25e3d042 Test case for new api endpoint 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 3cc47beb6e Refactored generation of unique tags, URIs and object URLs into own classes,
as well as formatting of content
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 87576e1ab1 Fixing atom feeds for accounts, adding tests that would catch such bugs in future 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 413e700fe0 Enhancing test suite but I think the problem might have been caching setting 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 8985f8e66c Fixing more configuration issues with 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 85b00d19b8 Moving Salmon notifications to background processing, fixing mini-profiler
behaviour with Turbolinks enabled, optimizing Rabl for production
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 c8999a116e Sanitize remote html in atom feeds, API (not just UI), use cached mention
relations on Status#mentions
9 years ago
Eugen Rochko 02e4fb2e06 Only re-download avatar if URL changed (fix #19) 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 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 35aafdba96 Ancestors and descendants of statuses 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 2b116131d7 Adding e-mail notifications about mentions, follows, favourites and reblogs. Fixing another mention recording bug 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 071f64d317 Fix #13, Atom feeds now contain formatted post content 9 years ago
Eugen Rochko 7837afbb5f Removing autogenerated test stubs that were not needed 9 years ago
Eugen Rochko 6fec8afc3f Bind oauth applications to users 9 years ago
Eugen Rochko 3441361568 Adding simple_form, adding profile settings, header image 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 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 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 f16b31f077 Adding a bunch of tests 9 years ago
Eugen Rochko 71fe24096c Adding a Mention model, test stubs 9 years ago
Eugen Rochko fa33750105 Adding reblogs, favourites, improving atom generation 9 years ago
Eugen Rochko 709c6685a9 Made some progress 9 years ago