about summary refs log tree commit diff
AgeCommit message (Collapse)Author
2017-11-15Prefix cache keys with the matcher type. #208.David Yip
We already know about one regex limitation, which is that they cannot segment words in e.g. Japanese, Chinese, or Thai. It may also end up that regex matching is too slow compared to other methods. However, the regex is an implementation detail. We still want the ability to switch between "occurs anywhere" and "match whole word", and caching the matcher result is likely to still be important (since the matcher itself won't change nearly as often as status ingress rate). Therefore, we ought to be able to change the cache keys to reflect a change of data structure. (Old cache keys expire within minutes, so they shouldn't be too big of an issue. Old cache keys could also be explicitly removed by an instance administrator.)
2017-11-15Match keyword mute filter on hashtags. #208.David Yip
It is reasonable to expect someone to enter #foo to mute hashtag #foo. However, tags are recorded on statuses without the preceding #. To adjust for this, we build a separate tag matcher and use Tag::HASHTAG_RE to extract a hashtag from the hashtag syntax.
2017-11-15Also run the keyword matcher on a status' tags. #208.David Yip
2017-11-15Merge pull request #212 from aschmitz/feat/mute-reblogsbeatrix
Allow hiding reblogs on a per-follow basis
2017-11-13Merge pull request #214 from glitch-soc/keyword-muteDavid Yip
Maintain case-insensitivity when merging multiple matchers (#213)
2017-11-13Maintain case-insensitivity when merging multiple matchers (#213)David Yip
When given two regexps, Regexp.union preserves the options set (or not set) on each regex; this meant that none of the multiline (m), case-insensitivity (i), or extended syntax (x) options were set. Our regexps are written expecting the m, i, and x options were set on all of them, so we need to make sure that we preserve that behavior.
2017-11-11Actually filter blocked reblogs from feedaschmitz
And even a relevant test. Whoops.
2017-11-11Don't update follower counts on reblog toggleaschmitz
2017-11-11Updates per code reviewaschmitz
Thanks, @valerauko!
2017-11-10Per-user reblog hiding implementation/fixes/testsaschmitz
Note that this will only hide/show *future* reblogs by a user, and does nothing to remove/add reblogs that are already in the timeline. I don't think that's a particularly confusing behavior, and it's a lot easier to implement (similar to mutes, I believe).
2017-11-09"Show reblogs" per-follower UI/database changesaschmitz
TODO: * Tests (particularly for FollowRequests). * Anything to respect the setting when putting reblogs in timelines.
2017-11-06Merge pull request #209 from glitch-soc/update-mastodongoDavid Yip
Mastodon GO! -> v0.1.1
2017-11-06Mastodon GO! -> v0.1.1kibigo!
2017-11-05Merge pull request #206 from glitch-soc/autocollapse-boostDavid Yip
Autocollapse boosts option
2017-11-05Autocollapse boosts optionkibigo!
2017-11-04Merge pull request #204 from glitch-soc/with-mastodon-gobeatrix
Introducing: Mastodon GO!
2017-11-04Introducing: Mastodon GO!kibigo!
2017-11-03add memorial to production.rbbeatrix
in memory of Natalie Nguyen let her name ring through the ether
2017-10-27Merge branch 'master' into gs-masterDavid Yip
2017-10-27Feature: Unlisted custom emojis (#5485)nullkal
2017-10-27Allow ActivityPub Note's tag and attachment to be single objects (#5534)puckipedia
2017-10-27Optimize FixReblogsInFeeds migration (#5538)unarist
We have changed how we store reblogs in the redis for bigint IDs. This process is done by 1) scan all entries in users feed, and 2) re-store reblogs by 3 write commands. However, this operation is really slow for large instances. e.g. 1hrs on friends.nico (w/ 50k users). So I have tried below tweaks. * It checked non-reblogs by `entry[0] == entry[1]`, but this condition won't work because `entry[0]` is String while `entry[1]` is Float. Changing `entry[0].to_i == entry[1]` seems work. -> about 4-20x faster (feed with less reblogs will be faster) * Write operations can be batched by pipeline -> about 6x faster * Wrap operation by Lua script and execute by EVALSHA command. This really reduces packets between Ruby and Redis. -> about 3x faster I've taken Lua script way, though doing other optimizations may be enough.
2017-10-26Merge remote-tracking branch 'tootsuite/master' into glitchsoc/masterJenkins
2017-10-26Fix copying emojos: redirect to the page you were on (#5509)erin
2017-10-26Merge remote-tracking branch 'origin/master' into gs-masterDavid Yip
2017-10-26Fix column design broken with very long title (#5493)りんすき
* Fix #5314 * fix not beautiful code * fix broken design with mobile view * remove no longer needed code
2017-10-26Fix Cocaine::ExitStatusError when upload small non-animated GIF (#5489)unarist
Looks like copied tempfile need to be flushed before further processing. This issue won't happen if the uploaded file has enough file size.
2017-10-26Remove translateZ(0) on modal overlay (#5478)Nolan Lawson
2017-10-25Merge pull request #179 from glitch-soc/keyword-mutebeatrix
Keyword muting
2017-10-25Merge pull request #198 from glitch-soc/gs-direct-timelinebeatrix
Direct messages timeline from tootsuite/mastodon#4514
2017-10-25Merge remote-tracking branch 'STJrInuyasha/feature/direct-timeline' into ↵David Yip
gs-direct-timeline
2017-10-25Merge remote-tracking branch 'tootsuite/master' into glitchsoc/masterJenkins
2017-10-26Update Russian translation (#5517)Ratmir Karabut
* Add Russian translation (ru) * Fix a missing comma * Fix the wording for better consistency * Update Russian translation * Arrange Russian setting alphabetically * Fix syntax error * Update Russian translation * Fix formatting error * Update Russian translation * Update Russian translation * Update ru.jsx * Fix syntax error * Remove two_factor_auth.warning (appears obsolete) * Add missing strings in ru.yml A lot of new strings translated, especially for the newly added admin section * Fix translation consistency * Update Russian translation * Update Russian translation (pluralizations) * Update Russian translation * Update Russian translation * Update Russian translation (pin) * Update Russian translation (account deletion) * Fix extra line * Update Russian translation (sessions) * Update Russian translation * Update Russian translation * Fix merge conflicts (revert) * Update Russian translation * Update Russian translation (fix) * Update Russian translation (fix quotes) * Update Russian translation (fix quotes) * Update Russian translation (fix) * Update Russian translation * Add quotes * bundle exec i18n-tasks normalize
2017-10-25l10n: PT-BR translation updated (#5530)Anna e só
2017-10-25Complete Esperanto translation (#5520)Olivier Nicole
2017-10-24Remove nil check in Glitch::KeywordMute#=~.David Yip
@regex can no longer be nil, so we don't need to check it.
2017-10-24Assume Glitch::KeywordMute#destroy! works and error out if it doesn't.David Yip
There's nothing useful we can display if the destroy action messes up, so might as well assert it does and complain loudly if it doesn't.
2017-10-24Use edit template for displaying errors in update.David Yip
2017-10-24Also filter notifications containing muted keywords.David Yip
2017-10-24Override Action View name inference in settings/keyword_mutes.David Yip
Glitch::KeywordMute's name is inferred as glitch_keyword_mutes, and in templates this turns into e.g. settings/glitch/keyword_mutes. Going along with this convention means a lot of file movement, though, and for a UI that's as temporary and awkward as this one I think it's less effort to slap a bunch of as: options everywhere. We'll do the Right Thing when we build out the API and frontend UI.
2017-10-24Fix example description.David Yip
This example actually checks matches at the end of a string.
2017-10-24Switch to Regexp.union for building the mute expression.David Yip
Also make the keyword-building methods private: they always probably should have been private, but now I have encoded enough fun and games into them that it now seems wrong for them to *not* be private.
2017-10-24option to add title to <Button>, use for toot buttons (#197)Ondřej Hruška
2017-10-23Merge pull request #196 from glitch-soc/fix-importsDavid Yip
Added app/javascript for imports
2017-10-23Added app/javascript for importskibigo!
2017-10-23Only cache the regex text, not the regex itself.David Yip
It is possible to cache a Regexp object, but I'm not sure what happens if e.g. that object remains in cache across two different Ruby versions. Caching a string seems to raise fewer questions.
2017-10-22Merge remote-tracking branch 'origin/master' into gs-masterDavid Yip
2017-10-22Changes to match other timelines in 2.0Matthew Walsh
2017-10-22Added a timeline for Direct statusesMatthew Walsh
* Lists all Direct statuses you've sent and received * Displayed in Getting Started * Streaming server support for direct TL
2017-10-22KeywordMute matcher: more closely mimic Regexp#=~ behavior.David Yip
Regexp#=~ returns nil if it does not match. An empty mute set does not match any status, so KeywordMute::Matcher#=~ ought to return nil also.