about summary refs log tree commit diff
path: root/app
AgeCommit message (Collapse)Author
2019-07-08Fix Status.remote scope matching *all* statuses (#11265)ThibG
2019-07-08Remove unused remote unfollow controller (#11250)Eugen Rochko
2019-07-08Refactor controllers for statuses, accounts, and more (#11249)Eugen Rochko
2019-07-08Fix BackupService crashing when an attachment is missing (#11241)ThibG
* Fix BackupService crashing when an attachment is missing For various reasons such as admin error or out-of-sync media and database backups, it might be possible for local attachments to be lost. This commit allows the BackupService to continue its work even if some media file is missing. * Change error message
2019-07-07Remove Atom feeds and old URLs in the form of `GET /:username/updates/:id` ↵Eugen Rochko
(#11247)
2019-07-07Fix URLs appearing twice in errors of ActivityPub::DeliveryWorker (#11231)Eugen Rochko
2019-07-07Fix support for HTTP proxies (#11245)ThibG
* Disable incorrect check for hidden services in Socket Hidden services can only be accessed with an HTTP proxy, in which case the host seen by the Socket class will be the proxy, not the target host. Hidden services are already filtered in `Request#initialize`. * Use our Socket class to connect to HTTP proxies Avoid the timeout logic being bypassed * Add support for IP addresses in Request::Socket * Refactor a bit, no need to keep the DNS resolver around
2019-07-06Remove Salmon and PubSubHubbub (#11205)Eugen Rochko
* Remove Salmon and PubSubHubbub endpoints * Add error when trying to follow OStatus accounts * Fix new accounts not being created in ResolveAccountService
2019-07-06Only scroll to the compose form if it's not horizontally in the viewport ↵ThibG
(#11246) Avoids jumping the scroll around vertically when giving it focus and editing long toots.
2019-07-06Fix option to send e-mail notification about account action always being ↵Eugen Rochko
true (#11242)
2019-07-05Fix HTTP requests to IPv6 hosts (#11240)ThibG
2019-07-05Remove deprecated REST API `GET /api/v1/statuses/:id/card` (#11213)Eugen Rochko
2019-07-05Remove deprecated REST API `GET /api/v1/timelines/direct` (#11212)Eugen Rochko
2019-07-02Memoize ancestorIds and descendantIds in detailed status view (#11234)ThibG
2019-07-02Fix statsd UDP sockets not being cleaned up in Sidekiq (#11230)Eugen Rochko
2019-07-02Change ActivityPub::DeliveryWorker to not retry HTTP 501 errors (#11233)Eugen Rochko
2019-07-02When deleting & redrafting a poll, fill in closest expires_in (#11203)ThibG
Use the smallest preset expires_in such that the new poll would not expire before the old one. In the typical case of a quick delete & redraft, this results in using the same poll duration. Fixes #10567
2019-07-02Add request pool to improve delivery performance (#10353)Eugen Rochko
* Add request pool to improve delivery performance Fix #7909 * Ensure connection is closed when exception interrupts execution * Remove Timeout#timeout from socket connection * Fix infinite retrial loop on HTTP::ConnectionError * Close sockets on failure, reduce idle time to 90 seconds * Add MAX_REQUEST_POOL_SIZE option to limit concurrent connections to the same server * Use a shared pool size, 512 by default, to stay below open file limit * Add some tests * Add more tests * Reduce MAX_IDLE_TIME from 90 to 30 seconds, reap every 30 seconds * Use a shared pool that returns preferred connection but re-purposes other ones when needed * Fix wrong connection being returned on subsequent calls within the same thread * Reduce mutex calls on flushes from 2 to 1 and add test for reaping
2019-07-01Change domain block behaviour to prevent creation of accounts from suspended ↵Eugen Rochko
domains (#11219)
2019-06-30Fix expiration date of filters being set to “Never” when editing them ↵ThibG
(#11204) When editing a custom filter, select the shortest preset duration that still covers the remaining time of that filter. Fixes #9506
2019-06-30Fix support for MP4 files that are actually M4V files (#11210)Eugen Rochko
Resolve #11187
2019-06-30Optimize makeGetStatus (#11211)ThibG
* Optimize makeGetStatus Because `ImmutableList.filter` always returns a new object and `createSelector` memoizes based on object identity, the selector returned by `makeGetStatus` would *always* execute. To avoid that, we wrap `getFilters` into a new memoizer that memoizes based on deep equality, thus returning the same object as long as the filters haven't changed, allowing the memoization of `makeGetStatus` to work. Furthermore, we memoize the compiled regexs instead of recomputing them each time the selector is called. * Fix memoized result being cleared too often * Make notifications use memoized getFiltersRegex
2019-06-29When sending a toot, ensure a CW is only set if the CW field is visible (#11206)ThibG
In some occasions, such as the browser or a browser extension auto-filling the existing but disabled/hidden CW field, a CW can be set without the user knowing.
2019-06-29Use ScrollToOptions for smooth scrolling if supported (#11207)ThibG
2019-06-28Display FTS warning based on actual search term, not the one being typed ↵ThibG
(#11202) Follow-up to #11112
2019-06-28Add categories for custom emojis (#11196)Eugen Rochko
Fix #7940
2019-06-28Fix swiping columns on mobile sometimes failing (#11200)ThibG
Fixes #9779
2019-06-27Add message telling FTS is disabled when no toot can be found because of ↵ThibG
this (#11112) * Add message telling FTS is disabled when no toot can be found because of this Fixes #11082 * Remove info icon and reword message
2019-06-27Fix account URI in UpdatePollSerializer (#11194)ThibG
* Fix account URI in UpdatePollSerializer Fixes #11185 * Add specs
2019-06-27Fix NameError (#11192)mayaeh
2019-06-26Add option to disable blurhash previews (#11188)ThibG
* Add option to disable blurhash previews * Update option text * Change options order
2019-06-26Add support for Audio activities (#11189)ThibG
Fixes #11127
2019-06-26Scroll to compose form rather than reply indicator on focus (#11182)ThibG
2019-06-26Removed extra pipes from regex. (#11181)PatOnTheBack
2019-06-25Fix unnecessary SQL query performed on unauthenticated requests (#11179)Eugen Rochko
2019-06-25Apply filters to poll options (#11174)ThibG
* Apply filters to poll options in WebUI Fixes #11128 * Apply filters to poll options server-side * Add poll options to searchable text
2019-06-22New Crowdin translations (#11144)Eugen Rochko
* New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations en.json (Slovenian) [ci skip] * i18n-tasks normalize * yarn manage:translations
2019-06-22Fix audio-only OGG and WebM files not being processed as such (#11151)Eugen Rochko
Also, because Chrome sends audio/mp3 instead of audio/mpeg as it's supposed to, we need to whitelist that mime type as well
2019-06-22Change camera icon to paperclip icon in upload form (#11149)koyu
2019-06-22Add `short_description` and `approval_required` to `GET /api/v1/instance` ↵Eugen Rochko
(#11146)
2019-06-22Fix audio not being downloaded from remote servers (#11145)Eugen Rochko
2019-06-22Bump version to 2.9.1 (#11143)Eugen Rochko
2019-06-22New Crowdin translations (#11116)Eugen Rochko
* New translations devise.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations devise.en.yml (Chinese Traditional) [ci skip] * New translations activerecord.en.yml (Thai) [ci skip] * New translations activerecord.en.yml (Slovak) [ci skip] * New translations activerecord.en.yml (French) [ci skip] * New translations activerecord.en.yml (Hungarian) [ci skip] * New translations activerecord.en.yml (Hebrew) [ci skip] * New translations activerecord.en.yml (Greek) [ci skip] * New translations activerecord.en.yml (German) [ci skip] * New translations activerecord.en.yml (Georgian) [ci skip] * New translations activerecord.en.yml (Galician) [ci skip] * New translations activerecord.en.yml (Esperanto) [ci skip] * New translations activerecord.en.yml (Danish) [ci skip] * New translations activerecord.en.yml (Czech) [ci skip] * New translations activerecord.en.yml (Corsican) [ci skip] * New translations activerecord.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations activerecord.en.yml (Indonesian) [ci skip] * New translations activerecord.en.yml (Japanese) [ci skip] * New translations activerecord.en.yml (Swedish) [ci skip] * New translations activerecord.en.yml (Portuguese, Brazilian) [ci skip] * New translations activerecord.en.yml (Spanish) [ci skip] * New translations activerecord.en.yml (Slovenian) [ci skip] * New translations devise.en.yml (Ido) [ci skip] * New translations activerecord.en.yml (Serbian (Latin)) [ci skip] * New translations activerecord.en.yml (Serbian (Cyrillic)) [ci skip] * New translations activerecord.en.yml (Russian) [ci skip] * New translations activerecord.en.yml (Portuguese) [ci skip] * New translations activerecord.en.yml (Kazakh) [ci skip] * New translations activerecord.en.yml (Polish) [ci skip] * New translations activerecord.en.yml (Persian) [ci skip] * New translations activerecord.en.yml (Occitan) [ci skip] * New translations activerecord.en.yml (Norwegian) [ci skip] * New translations activerecord.en.yml (Korean) [ci skip] * New translations devise.en.yml (Hungarian) [ci skip] * New translations devise.en.yml (Indonesian) [ci skip] * New translations doorkeeper.en.yml (Ido) [ci skip] * New translations doorkeeper.en.yml (Korean) [ci skip] * New translations doorkeeper.en.yml (Kazakh) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Indonesian) [ci skip] * New translations doorkeeper.en.yml (Hungarian) [ci skip] * New translations doorkeeper.en.yml (Norwegian) [ci skip] * New translations doorkeeper.en.yml (Hebrew) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations doorkeeper.en.yml (German) [ci skip] * New translations doorkeeper.en.yml (Georgian) [ci skip] * New translations doorkeeper.en.yml (Galician) [ci skip] * New translations doorkeeper.en.yml (French) [ci skip] * New translations doorkeeper.en.yml (Finnish) [ci skip] * New translations doorkeeper.en.yml (Occitan) [ci skip] * New translations doorkeeper.en.yml (Slovenian) [ci skip] * New translations doorkeeper.en.yml (Ukrainian) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Thai) [ci skip] * New translations doorkeeper.en.yml (Swedish) [ci skip] * New translations doorkeeper.en.yml (Spanish) [ci skip] * New translations doorkeeper.en.yml (Slovak) [ci skip] * New translations doorkeeper.en.yml (Persian) [ci skip] * New translations doorkeeper.en.yml (Serbian (Latin)) [ci skip] * New translations doorkeeper.en.yml (Serbian (Cyrillic)) [ci skip] * New translations doorkeeper.en.yml (Russian) [ci skip] * New translations doorkeeper.en.yml (Portuguese, Brazilian) [ci skip] * New translations doorkeeper.en.yml (Portuguese) [ci skip] * New translations doorkeeper.en.yml (Polish) [ci skip] * New translations doorkeeper.en.yml (Esperanto) [ci skip] * New translations doorkeeper.en.yml (Danish) [ci skip] * New translations devise.en.yml (Persian) [ci skip] * New translations devise.en.yml (Serbian (Latin)) [ci skip] * New translations devise.en.yml (Serbian (Cyrillic)) [ci skip] * New translations devise.en.yml (Russian) [ci skip] * New translations devise.en.yml (Portuguese, Brazilian) [ci skip] * New translations devise.en.yml (Portuguese) [ci skip] * New translations devise.en.yml (Polish) [ci skip] * New translations devise.en.yml (Occitan) [ci skip] * New translations devise.en.yml (Slovenian) [ci skip] * New translations devise.en.yml (Norwegian) [ci skip] * New translations activerecord.en.yml (Chinese Simplified) [ci skip] * New translations devise.en.yml (Korean) [ci skip] * New translations devise.en.yml (Kazakh) [ci skip] * New translations devise.en.yml (Japanese) [ci skip] * New translations devise.en.yml (Slovak) [ci skip] * New translations devise.en.yml (Spanish) [ci skip] * New translations doorkeeper.en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (Croatian) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations doorkeeper.en.yml (Chinese Traditional) [ci skip] * New translations doorkeeper.en.yml (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Catalan) [ci skip] * New translations doorkeeper.en.yml (Bulgarian) [ci skip] * New translations doorkeeper.en.yml (Basque) [ci skip] * New translations devise.en.yml (Swedish) [ci skip] * New translations doorkeeper.en.yml (Asturian) [ci skip] * New translations devise.en.yml (Welsh) [ci skip] * New translations devise.en.yml (Ukrainian) [ci skip] * New translations devise.en.yml (Turkish) [ci skip] * New translations devise.en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Welsh) [ci skip] * New translations activerecord.en.yml (Catalan) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Bengali) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Ido) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Hebrew) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Croatian) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations devise.en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Czech) [ci skip] * New translations en.json (Georgian) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.json (Lithuanian) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations en.json (Kazakh) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.json (Ido) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations simple_form.en.yml (Occitan) [ci skip] * New translations simple_form.en.yml (Norwegian) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Polish) [ci skip] * New translations simple_form.en.yml (Indonesian) [ci skip] * New translations simple_form.en.yml (Ido) [ci skip] * New translations simple_form.en.yml (Hungarian) [ci skip] * New translations simple_form.en.yml (Hebrew) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations simple_form.en.yml (Persian) [ci skip] * New translations simple_form.en.yml (Portuguese) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * New translations activerecord.en.yml (Basque) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations simple_form.en.yml (Swedish) [ci skip] * New translations simple_form.en.yml (Portuguese, Brazilian) [ci skip] * New translations simple_form.en.yml (Spanish) [ci skip] * New translations simple_form.en.yml (Slovenian) [ci skip] * New translations simple_form.en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (Serbian (Latin)) [ci skip] * New translations simple_form.en.yml (Serbian (Cyrillic)) [ci skip] * New translations simple_form.en.yml (Russian) [ci skip] * New translations simple_form.en.yml (Romanian) [ci skip] * New translations simple_form.en.yml (Georgian) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Malay) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Tamil) [ci skip] * New translations simple_form.en.yml (Finnish) [ci skip] * New translations simple_form.en.yml (Chinese Simplified) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Danish) [ci skip] * New translations simple_form.en.yml (Croatian) [ci skip] * New translations simple_form.en.yml (Corsican) [ci skip] * New translations simple_form.en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations simple_form.en.yml (Chinese Traditional) [ci skip] * New translations simple_form.en.yml (Catalan) [ci skip] * New translations en.yml (Telugu) [ci skip] * New translations simple_form.en.yml (Bulgarian) [ci skip] * New translations simple_form.en.yml (Basque) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Thai) [ci skip] * New translations doorkeeper.en.yml (Welsh) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations activerecord.en.yml (Finnish) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations doorkeeper.en.yml (Japanese) [ci skip] * New translations doorkeeper.en.yml (Greek) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations doorkeeper.en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations doorkeeper.en.yml (Polish) [ci skip] * New translations doorkeeper.en.yml (Czech) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations doorkeeper.en.yml (Corsican) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations doorkeeper.en.yml (Slovenian) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations doorkeeper.en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (German) [ci skip] * i18n-tasks normalize * yarn manage:translations
2019-06-22Remove expensive counters from federation page in admin UI (#11139)Eugen Rochko
2019-06-22Change domain blocks to automatically support subdomains (#11138)Eugen Rochko
* Change domain blocks to automatically support subdomains If a more authoritative domain is blocked (example.com), then the same block will be applied to a subdomain (foo.example.com) * Match subdomains of existing accounts when blocking/unblocking domains * Improve code style
2019-06-21Change audio format from ogg to mp3 for wider compatibility (#11141)Eugen Rochko
* Change audio format from ogg to mp3 for wider compatibility * Add media description as title to links of unknown media attachments
2019-06-20Fix converted media being saved with original extension and mime type (#11130)Eugen Rochko
2019-06-20Add moderation API (#9387)Eugen Rochko
Fix #8580 Fix #7143
2019-06-20Fix layout of identity proofs settings (#11126)Acid Chicken (硫酸鶏)
2019-06-19Add audio uploads (#11123)Eugen Rochko
* Add audio uploads Fix #4827 Accept uploads of OGG, WAV, FLAC, OPUS and MP3 files, and converts them to OGG. Media attachments get a new `audio` type. In the UI, audio uploads are displayed identically to video uploads. * Improve code style