Commit Graph

12235 Commits (78a6b871fe3dae308380ea88132ddadc86a1431e)
 

Author SHA1 Message Date
Eugen Rochko 4909bbf415 Add logging for outgoing http requests
Eugen Rochko b36197c307 Fix tests, update goldfinger to catch XML errors
Eugen Rochko 492224b93f Allow non-https redirect URIs for OAuth apps (AndStatus seems to require this)
Eugen Rochko 96ad9b0db1 Meaningful validation errors in API response
Eugen Rochko 62b057b085 Adjust client registration API
Eugen Rochko ef2b50c9ac Deleting statuses from UI
Eugen Rochko a41c3487bd Fix - Add default avatar
Eugen Rochko a4f7eca5fa Fix - Only latest reblog of status kept on feed as zset value is set to "true" status ID
Eugen Rochko 927333f4f8 Improve code style
Eugen Rochko e4aebad35a Fix handling of multiple Link headers (that should not be a thing though)
Eugen Rochko 2603c7e69f Fix tests
Eugen Rochko e63aebff7a Adding landing page
Eugen Rochko 45a96e899e Fix - disable compose form while image is uploading
Eugen Rochko 4f9b7432dd Fix - Add API versioning (v1)
Eugen 3f75f52285 Fix subtle home feed filtering bug
Eugen Rochko 7e14eefc81 Replace logo, fix - delete/unreblog/unfavourite API, fix - app
registration API
Eugen Rochko 210362e665 Improve redirect handling in FetchAtomService
Eugen Rochko c6b0311b86 Fix - 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.
Eugen Rochko 0bd4608ad1 Fix - Filter self from pre-filled mentions
Eugen Rochko 693383234c Improved style of settings page
Eugen Rochko e9bc4a4a08 Limit usernames to 30 chars, statuses to 500, open account after follow form success
Eugen Rochko 62b384824d Improved styling for media/videos in detailed status view
Eugen Rochko 15f51dbf8c Better styling for selected status in detailed view
Eugen fc7b982b67 Add screenshot to readme
Eugen Rochko 1215ab57ff Some extra scopes for user sorting
Eugen Rochko a706f1af04 Don't generate stream entries for streamables of remote accounts
Eugen Rochko fb94013796 Improved partial rendering for threads
Eugen Rochko 3b56350121 Fix - Rate limit GET reqs to 300/5min, POST to 100/5min
Eugen Rochko db6df6ddb3 Only load JS on homepage, no other page uses it
Eugen Rochko 57583f3fb8 Improve partial rendering and Haml performance (Haml->Hamlit)
Eugen Rochko 95d72b2249 Temporarily link "settings" to the static version of the form
Eugen Rochko 0c75ce1122 Improved ColumnsArea on smaller windows, improved how ActionBar looks
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)
Eugen Rochko c6d893a71d Uploading/undoing media modifies status text. Also: status text trimmed before validation
Eugen Rochko b1a670af8d Handle remote account mentions a little better by trying a URL lookup in the db
Eugen Rochko 2a84271e85 Infinite scroll for account timelines
Eugen Rochko 4a670780f0 Fix - prevent duplicate attachments for remote statuses
Eugen d09f3768b7 Add BTC address for donations to readme
Eugen Rochko 2c0261ac25 Infinite scroll for timeline columns
Eugen Rochko 74dfefabd3 Make in-text mentions open account detailed view when possible
Eugen Rochko bc98865c1a API returns mentions for statuses, compose form pre-fills all relevant usernames into the form when replying
Eugen Rochko 94525b596a Improve README, fix
Eugen Rochko c0e9603c92 Fix - Order ancestors/descendants by tree path
Eugen Rochko d709151781 Fix - License changed from GPL-2.0 to AGPL-3.0
Eugen Rochko e46abc71ca Fix notifications in UI, added new API for fetching account relationships
Eugen Rochko 4bec613897 Fix - 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.
Eugen Rochko 6d89edc4f7 Fix by renaming TIMELINE_SET action to TIMELINE_REFRESH_SUCCESS
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.
Eugen Rochko 246330493b More debugging for PuSH confirmations
Eugen Rochko a66d34878c Add more logging to PuSH callback