Matt Jankowski
0687ab8ae3
Clean up generation of account webfinger string ( #1477 )
...
* Consolidate webfinger string creation under Account#to_webfinger_s
* Introduce Account#local_username_and_domain for consolidation
2017-04-10 22:58:06 +02:00
Eugen
c172919745
Fix #1339 - better Atom titles ( #1343 )
2017-04-09 20:55:54 +02:00
Matt Jankowski
388ec0d5b6
Search cleanup ( #1333 )
...
* Clean up SQL output in Tag and Account search methods
* Add basic coverage for Tag.search_for
* Add coverage for Account.search_for
* Add coverage for Account.advanced_search_for
2017-04-09 14:45:01 +02:00
Eugen
9acdb166e8
Fix #795 , fix #704 , fix #835 - 2FA requires confirmation to be enabled ( #1278 )
...
* Fix #795 , fix #704 , fix #835 - 2FA requires confirmation to be enabled
TOTP secret is not shown again after 2FA is enabled
* Clean up
2017-04-08 22:20:08 +02:00
Joël Quenneville
d4c94fa004
DRY up reblog vs original status check
...
Checking reblog vs original status was happening in multiple places
across the app. For views, this logic was encapsulated in a helper
method named `proper_status` but in the other layers of the app, the
logic was duplicated.
Because the logic is used at all layers of the app, we extracted it into
a `Status#proper` method on the model and changed all uses of the logic
to use this method. There is now a single source of truth for this
condition.
We added test coverage to untested methods that got refactored.
2017-04-07 14:18:30 -04:00
Eugen
6d6a429af8
Rewrite Atom generation from stream entries to use Ox instead of Nokogiri ( #1124 )
...
* Rewrite Atom generation from stream entries to use Ox instead of Nokogiri::Builder
StreamEntry is now limited to only statuses, which allows some optimization. Removed
extra queries on AccountsController#show. AtomSerializer instead of AtomBuilderHelper
used in AccountsController#show, StreamEntriesController#show, StreamEntryRenderer
and PubSubHubbub::DistributionWorker
PubSubHubbub::DistributionWorker moves n+1 DomainBlock query to PubSubHubbub::DeliveryWorker
instead.
All Salmon slaps that aren't based on StreamEntry still use AtomBuilderHelper and Nokogiri
* All Salmon slaps now use Ox instead of Nokogiri. No touch from status on account
2017-04-07 05:56:56 +02:00
Brad Urani
6a1da87cd3
Eliminate unnecessary queries and query clauses with none and all
2017-04-05 06:02:58 +00:00
Samy KACIMI
79ef756f64
fix rubocop issues
2017-04-05 00:47:17 +02:00
Samy KACIMI
81c76fe375
add more tests to models
2017-04-05 00:29:56 +02:00
Eugen Rochko
b510a56c0c
Only call regeneration worker after first login after a 14 day break
2017-04-04 02:00:10 +02:00
Eugen Rochko
4c53af64f0
Fix ActionController::Parameters in API issue
2017-04-04 01:33:34 +02:00
Eugen Rochko
68f829e11c
Add basic logging of who resolved report
2017-04-03 19:35:00 +02:00
Eugen Rochko
808017ff18
Paperclip will complain on its own if this variable is missing
2017-04-01 22:16:26 +02:00
Eugen Rochko
e8875c6046
Import feature for following/blocking lists (addresses #62 , #177 , #201 , #454 )
2017-03-30 19:42:33 +02:00
Eugen Rochko
de22c202f5
Add counter caches for a large performance increase on API requests
2017-03-30 15:06:59 +02:00
Eugen Rochko
5aa3df017b
Fix full-text search query quotation, improve tag search performance with an index,
...
add ability to open status by URL from search (fix #53 )
2017-03-22 17:36:34 +01:00
Eugen Rochko
acfee0945c
Merge branch 'master' into feature-omnisearch
...
this merge is necessary,
2017-03-22 03:34:58 +01:00
Eugen Rochko
1b09c3cb17
More efficient single account retrieval (0.9ms vs 50ms before)
2017-03-22 03:21:38 +01:00
Eugen Rochko
05cf086766
New API method: /api/v1/search
...
Returns accounts, statuses, hashtags arrays
2017-03-22 02:32:27 +01:00
Eugen Rochko
2816b1bf8e
Federate header images, fix open-uri http->https redirection error
2017-03-18 22:51:20 +01:00
Eugen Rochko
ad0d82d3ce
Make account search blazing fast and rank followers/followees higher in the results
2017-03-17 20:48:14 +01:00
Eugen Rochko
017350e0ea
Add method for retrieving triadic closures
2017-03-16 20:10:51 +01:00
Eugen Rochko
74ae158c2f
Add "direct" visibility level in the backend. Web UI is not yet
...
adjusted to allow choosing it, yet
2017-03-15 22:55:45 +01:00
Eugen Rochko
d6cb4bbe99
Performance improvement for profiles
2017-03-06 01:50:35 +01:00
Eugen Rochko
03a857f59a
Use more widely supported MP4 format for gifv's
2017-03-06 00:30:03 +01:00
Eugen Rochko
8d93f0ca56
Increase max bitrate of converted webms, slightly optimized counter queries
...
(Because postgres can tell that count(*) needs no extra checks, but
counting a specific column requires them)
2017-03-05 23:43:58 +01:00
Eugen Rochko
6382ef2bc6
Add vsync -cfr option when converting gif to webm
2017-03-05 23:27:25 +01:00
Eugen Rochko
79b08c5f0a
Higher quality webms? Might improve conversation of some types of gifs
2017-03-05 23:13:21 +01:00
Eugen Rochko
85fce04d1b
Detect videos with no sound, handle them like gifv
2017-03-05 22:55:24 +01:00
Eugen Rochko
4fb95c91fb
Fix wrongful matching of last period in extended usernames
...
Fix anchor tags in some wikipedia URLs being matches as a hashtag
2017-03-05 18:08:19 +01:00
Eugen Rochko
5f4e402204
Improved /api/v1/accounts/:id/statuses with new params: only_media, exclude_replies
...
Redirect /:username to /users/:username
Redirect /:username/:id to /users/:username/updates/:id
Updated API documentation and sponsors
2017-03-05 17:27:17 +01:00
Eugen Rochko
caf5b8e975
Fix #431 - convert gif to webm during upload. Web UI treats them like it did
...
before. In the API, attachments now can be either image, video or gifv. Gifv
is to be treated like images in terms of behaviour, but are videos by file
type.
2017-03-04 23:02:24 +01:00
Eugen Rochko
6b81d10030
Add digest e-mails
2017-03-04 00:00:48 +01:00
Eugen Rochko
c64a1c25c4
Fix #231 - Muting
2017-03-02 18:49:32 +01:00
Kit Redgrave
442fdbfc53
Mute button progress so far. WIP, doesn't entirely work correctly.
2017-03-01 22:31:21 -06:00
Eugen Rochko
175a9b9caa
Fix #104 - Style OAuth authorized applications page
...
Add ability to search accounts by display name
2017-02-27 00:15:00 +01:00
Eugen Rochko
53ae431867
Skip remote media URLs that don't have a hostname
2017-02-22 19:55:14 +01:00
Eugen Rochko
4aa5ebe591
Split public timeline into "public timeline" which is local, and
...
"whole known network" which is what public timeline used to be
Only domain blocks with suspend severity will block PuSH subscriptions
Silenced accounts should not appear in conversations unless followed
2017-02-19 20:25:54 +01:00
Eugen Rochko
5ddad41245
Do not display non-Status stream entries anymore
2017-02-17 02:20:52 +01:00
Eugen Rochko
24ba7c9762
Adding index overview for reports in admin UI
2017-02-16 02:28:10 +01:00
Eugen Rochko
3b81baaaaf
Adding POST /api/v1/reports API, and a UI for submitting reports
2017-02-14 20:59:26 +01:00
Eugen Rochko
0518492158
Stop trying to shoehorn all Salmon updates into the poor database-connected
...
StreamEntry model. Simply render Salmon slaps as they are needed
2017-02-12 01:19:14 +01:00
Eugen Rochko
94d2182717
Resolve issue with rendering authorize/reject Salmon slaps
2017-02-11 19:42:05 +01:00
Eugen Rochko
31c633e528
Fix Status.permitted_for scope query
2017-02-11 19:16:10 +01:00
Eugen Rochko
50660d54e8
Fix semantics of follow requests another slaps
2017-02-11 17:13:11 +01:00
Eugen Rochko
446aad4ce2
Make PuSH only distribute to subscriptions that match follower domains
...
Allow PuSH to distribute private toots with that condition
2017-02-11 15:41:39 +01:00
Eugen Rochko
dc851c922e
Mentions in private statuses allow mentioned people to see them
2017-02-11 15:10:22 +01:00
Eugen Rochko
149887a0ff
Make follow requests federate
2017-02-11 02:58:00 +01:00
Eugen Rochko
0afed995ce
Fix the fix
2017-02-09 21:22:49 +01:00
Eugen Rochko
6331ed16e5
Fix #614 - extra reply-boolean on statuses to account for cases when replied-to
...
status is not in the system at time of distribution; fix #607 - reset privacy
settings to defaults when cancelling replies
2017-02-09 20:25:39 +01:00
Eugen Rochko
ac035108aa
Add "clear notifications" button, exclude posts from people who have blocked *you* from public/hashtag timelines
2017-02-07 00:06:40 +01:00
Eugen Rochko
347a153b3d
Add API modifiers to limit returned toots from public/hashtag timelines
...
to only those from local users; Add link to "extended information" to
getting started in the UI; Add defaults for posting privacy; Change
how publish button looks depending on posting privacy chosen
2017-02-06 23:16:20 +01:00
Eugen Rochko
920ba5fc4e
Fix #61 - Add list of blocked users to the UI; clean up failed push notifications API
...
Try to fix Travis CI setup
2017-02-05 19:18:11 +01:00
Eugen Rochko
77e13c2bc9
Removing failed push notification API, make context loads use cache
2017-02-05 17:51:44 +01:00
Eugen Rochko
d9ca46b464
Cleaning up format of broadcast real-time messages, removing
...
redis-backed "mentions" timeline as redundant (given notifications)
2017-02-02 00:03:31 +01:00
Eugen Rochko
bf60f2898d
Fix #529 - Make hashtag timelines show conversations, fix hashtag loading in the UI
2017-01-31 22:35:38 +01:00
Eugen Rochko
3f075c7794
API for apps to register for push notifications
2017-01-29 01:30:32 +01:00
Eugen Rochko
ba192f12e3
Added optional two-factor authentication
2017-01-27 20:35:16 +01:00
Eugen Rochko
450ad43180
Do not run FetchLinkCardService on local URLs, increase file size limit to 8MB,
...
fix ProcessFeedService pushing status into distribution if called a second time
while the first is still running (i.e. when a PuSH comes after a Salmon slap),
fix not running escape on spoiler text before emojify
2017-01-27 16:57:23 +01:00
Eugen Rochko
cc5c1e5feb
Removed accidental n+1 query from notifications, updated some deps,
...
improved how "show more" link looks
2017-01-26 14:52:07 +01:00
Eugen Rochko
57f7cf8349
Follow request authorizations faster
2017-01-26 03:56:26 +01:00
Eugen Rochko
999cde94a6
Instead of using spoiler boolean and spoiler_text, simply check for non-blank spoiler_text
...
Federate spoiler_text using warning attribute on <content /> instead of a <category term="spoiler" />
Clean up schema file from accidental development migrations
2017-01-25 01:29:16 +01:00
blackle
bf0f6eb62d
Implement a click-to-view spoiler system
2017-01-23 21:07:40 -05:00
Eugen Rochko
6d98a73180
Domain blocks now have varying severity - auto-suspend vs auto-silence
2017-01-23 17:38:38 +01:00
Eugen
cea9fb31fe
Mitigate inconsistent notifications
2017-01-22 21:50:17 +01:00
Eugen Rochko
f0de621e76
Fix #463 - Fetch and display previews of URLs using OpenGraph tags
2017-01-20 01:00:14 +01:00
Eugen Rochko
f051c2e813
Fix statsd null backend not being initialized properly
2017-01-19 09:37:07 +01:00
Eugen
8b9206f7d9
Try to avoid any potential loops
2017-01-19 02:14:57 +01:00
Eugen Rochko
6cf44ca92c
Improve how the list entry Account component looks when target is blocked/follow is requested
2017-01-16 19:36:32 +01:00
Eugen Rochko
e9737c2235
Fix tests, add applications to eager loading/cache for statuses, fix
...
application website validation, don't link to app website if website isn't set,
also comment out animated boost icon from #464 until it's consistent with non-animated version
2017-01-15 14:01:33 +01:00
Effy Elden
d6bc0e8db4
Add tracking of OAuth app that posted a status, extend OAuth apps to have optional website field, add application details to API, show application name and website on detailed status views. Resolves #11
2017-01-15 08:58:50 +11:00
Eugen Rochko
e25170f960
Add extended about page stub
2017-01-13 03:24:41 +01:00
Eugen Rochko
2939e9898b
Extend rails-settings-cached to merge db-saved hash values with defaults
2017-01-13 02:42:22 +01:00
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
2017-01-12 20:46:24 +01:00
Eugen Rochko
75f80bef10
Persist UI settings, add missing localizations for German
2017-01-09 14:00:55 +01:00
Eugen Rochko
2e71bb031b
Fix Paperclip timeout setting. Fix bug introduced in #437
2017-01-08 19:12:54 +01:00
Eugen
69643338f6
Merge pull request #437 from krainboltgreene/patch-1
...
Simplifying followers mappings
2017-01-08 04:14:54 +01:00
Kurtis Rainbolt-Greene
abe3ae1cc2
Simplifying followers mappings
...
Deduplicating some logic and switching to pluck, to avoid pulling the entire model in memory.
2017-01-07 18:09:00 -08:00
Kurtis Rainbolt-Greene
4a7e3e5082
Less complicated determination
2017-01-07 17:59:51 -08:00
Kurtis Rainbolt-Greene
e5d9009d71
Using "rails style" order arguments
2017-01-07 17:55:40 -08:00
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.
2017-01-06 00:29:12 +01:00
Eugen Rochko
8f47f6a7ec
Adding remote follow button
2017-01-01 19:54:34 +01:00
Eugen Rochko
8d44281677
Set in_reply_to_account on statuses to non-self value when possible, thus
...
resolving the confusion from self-chain replies ultimately linking to a
non-self status. Adjust filters
2016-12-31 14:36:25 +01:00
Eugen Rochko
49834a6e7f
Add API for retrieving blocked accounts
2016-12-29 20:12:32 +01:00
Eugen Rochko
8b94d283fb
Fix wrong person being notified after nested reblog call, fix favourites leaking private toots in Atom feeds
2016-12-28 13:21:12 +01:00
Eugen Rochko
2146ac91a0
Follow requests send e-mail notifications, but are excluded from notifications API
...
Better initial state for unlisted/nsfw toggles
2016-12-26 21:52:03 +01:00
Eugen Rochko
004382e4d0
Adding follow requests API
2016-12-26 19:30:45 +01:00
Eugen Rochko
7376af90f7
Don't show statuses to blocked users
2016-12-26 19:13:56 +01:00
Eugen Rochko
6e064cf715
Fix account timelines bug
2016-12-23 01:13:16 +01:00
Eugen Rochko
9d42bff285
Hide follow/unfollow button from public page if follow already requested
2016-12-22 23:07:46 +01:00
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
2016-12-22 23:03:57 +01:00
Eugen Rochko
f91b6fa9e1
Merge branch 'master' into development
2016-12-22 11:35:00 +01:00
Eugen Rochko
3caf0cfb03
Ensure that reblogs and favs always refer to the original status rather than a reblog wrapper
2016-12-22 11:34:05 +01:00
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
2016-12-21 20:04:13 +01:00
Eugen Rochko
aed25932b5
Add OEmbed iframe HTML, convert emojis on public pages, increase size of attachment thumbnails
2016-12-18 15:20:39 +01:00
Eugen Rochko
6de079a5af
Removing external hub completely, fix #333 fixing digit-only hashtags,
...
removing web app capability from non-webapp pages
2016-12-18 12:24:37 +01:00
Eugen Rochko
06dd359239
Downsize attachment previews, but improve quality from 80 to 90
2016-12-07 12:09:20 +01:00
Eugen Rochko
f978b06dd1
Add suspend account functionality to admin UI
2016-12-06 18:22:59 +01:00
Eugen Rochko
84d2371d6a
Fix
2016-12-06 00:24:33 +01:00
Eugen Rochko
39cc9fde8a
Add account suspension
2016-12-05 22:59:30 +01:00