David Yip
cb4ef24ac9
Match keyword mute filter on hashtags. #208 .
...
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-15 18:12:29 -06:00
David Yip
431503bae2
Also run the keyword matcher on a status' tags. #208 .
2017-11-15 18:12:26 -06:00
beatrix
04508868b0
Merge pull request #212 from aschmitz/feat/mute-reblogs
...
Allow hiding reblogs on a per-follow basis
2017-11-15 12:01:17 -05:00
David Yip
bfd9230d61
Merge pull request #214 from glitch-soc/keyword-mute
...
Maintain case-insensitivity when merging multiple matchers (#213 )
2017-11-13 12:33:19 -06:00
David Yip
656d54e945
Maintain case-insensitivity when merging multiple matchers ( #213 )
...
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-13 11:06:02 -06:00
aschmitz
9a42f7cbed
Actually filter blocked reblogs from feed
...
And even a relevant test. Whoops.
2017-11-11 22:10:49 -06:00
aschmitz
48c705bbad
Don't update follower counts on reblog toggle
2017-11-11 21:42:22 -06:00
aschmitz
5128c4261e
Updates per code review
...
Thanks, @valerauko!
2017-11-11 14:37:23 -06:00
aschmitz
b95c48748c
Per-user reblog hiding implementation/fixes/tests
...
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-10 22:04:54 -06:00
aschmitz
4944515020
"Show reblogs" per-follower UI/database changes
...
TODO:
* Tests (particularly for FollowRequests).
* Anything to respect the setting when putting reblogs in timelines.
2017-11-09 08:41:10 -06:00
David Yip
e1b7785788
Merge pull request #209 from glitch-soc/update-mastodongo
...
Mastodon GO! -> v0.1.1
2017-11-06 23:12:58 -06:00
kibigo!
bc8532359b
Mastodon GO! -> v0.1.1
2017-11-06 20:00:03 -08:00
David Yip
a617060dfc
Merge pull request #206 from glitch-soc/autocollapse-boost
...
Autocollapse boosts option
2017-11-05 21:02:37 -06:00
kibigo!
e0298d66f8
Autocollapse boosts option
2017-11-05 15:05:12 -08:00
beatrix
73bf0ea7d1
Merge pull request #204 from glitch-soc/with-mastodon-go
...
Introducing: Mastodon GO!
2017-11-04 09:14:08 -04:00
kibigo!
276432790a
Introducing: Mastodon GO!
2017-11-04 05:48:42 -07:00
beatrix
254b74c71f
add memorial to production.rb
...
in memory of Natalie Nguyen
let her name ring through the ether
2017-11-03 12:34:50 -04:00
David Yip
870d71b78b
Merge branch 'master' into gs-master
2017-10-27 09:45:25 -05:00
nullkal
781105293c
Feature: Unlisted custom emojis ( #5485 )
2017-10-27 16:11:30 +02:00
puckipedia
0cb329f63a
Allow ActivityPub Note's tag and attachment to be single objects ( #5534 )
2017-10-27 16:10:36 +02:00
unarist
0129f5eada
Optimize FixReblogsInFeeds migration ( #5538 )
...
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-27 16:10:22 +02:00
Jenkins
656f5b6f87
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
2017-10-26 15:08:34 +00:00
erin
22da775a85
Fix copying emojos: redirect to the page you were on ( #5509 )
2017-10-26 23:44:24 +09:00
David Yip
dd28b94cf0
Merge remote-tracking branch 'origin/master' into gs-master
2017-10-26 09:18:27 -05:00
りんすき
d556be2968
Fix 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-26 22:52:48 +09:00
unarist
4f337c020a
Fix Cocaine::ExitStatusError when upload small non-animated GIF ( #5489 )
...
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-26 22:48:35 +09:00
Nolan Lawson
02f7f3619a
Remove translateZ(0) on modal overlay ( #5478 )
2017-10-26 22:46:50 +09:00
beatrix
a2612d0d38
Merge pull request #179 from glitch-soc/keyword-mute
...
Keyword muting
2017-10-25 17:37:48 -04:00
beatrix
31814ddda0
Merge pull request #198 from glitch-soc/gs-direct-timeline
...
Direct messages timeline from tootsuite/mastodon#4514
2017-10-25 17:37:06 -04:00
David Yip
42f2045c21
Merge remote-tracking branch 'STJrInuyasha/feature/direct-timeline' into gs-direct-timeline
2017-10-25 16:01:20 -05:00
Jenkins
5f0268ab84
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
2017-10-25 16:17:14 +00:00
Ratmir Karabut
20fee786b1
Update Russian translation ( #5517 )
...
* 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-26 00:21:58 +09:00
Anna e só
74777599cf
l10n: PT-BR translation updated ( #5530 )
2017-10-25 23:11:03 +09:00
Olivier Nicole
1ba3725473
Complete Esperanto translation ( #5520 )
2017-10-25 22:38:37 +09:00
David Yip
e40fe4092d
Remove nil check in Glitch::KeywordMute#=~.
...
@regex can no longer be nil, so we don't need to check it.
2017-10-24 19:03:59 -05:00
David Yip
d9485e6497
Assume Glitch::KeywordMute#destroy! works and error out if it doesn't.
...
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-24 18:56:57 -05:00
David Yip
d5c8ebe205
Use edit template for displaying errors in update.
2017-10-24 18:56:44 -05:00
David Yip
d03b48cea0
Also filter notifications containing muted keywords.
2017-10-24 18:51:27 -05:00
David Yip
9226257a1b
Override Action View name inference in settings/keyword_mutes.
...
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-24 18:40:28 -05:00
David Yip
641f90e73a
Fix example description.
...
This example actually checks matches at the end of a string.
2017-10-24 18:33:02 -05:00
David Yip
f5a3283976
Switch to Regexp.union for building the mute expression.
...
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-24 18:31:34 -05:00
Ondřej Hruška
516eeeb43d
option to add title to <Button>, use for toot buttons ( #197 )
2017-10-24 19:08:07 +02:00
David Yip
664c9aa708
Merge pull request #196 from glitch-soc/fix-imports
...
Added app/javascript for imports
2017-10-23 23:34:43 -05:00
kibigo!
119d477c8b
Added app/javascript for imports
2017-10-23 20:22:48 -07:00
David Yip
8410d33b49
Only cache the regex text, not the regex itself.
...
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-23 19:31:59 -05:00
David Yip
4f01e6e8d5
Merge remote-tracking branch 'origin/master' into gs-master
2017-10-22 22:57:41 -05:00
Matthew Walsh
a76b024228
Changes to match other timelines in 2.0
2017-10-22 18:45:35 -07:00
Matthew Walsh
3db80f75a6
Added a timeline for Direct statuses
...
* Lists all Direct statuses you've sent and received
* Displayed in Getting Started
* Streaming server support for direct TL
2017-10-22 18:35:14 -07:00
David Yip
af8f06413e
KeywordMute matcher: more closely mimic Regexp#=~ behavior.
...
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.
2017-10-22 01:12:21 -05:00
David Yip
1a60445a5f
Address unused translation errors.
2017-10-22 01:05:56 -05:00