mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-09-27 05:50:09 +00:00
5e2bf0bdca
* [chore] Remove years from all license headers Years or year ranges aren't required in license headers. Many projects have removed them in recent years and it avoids a bit of yearly toil. In many cases our copyright claim was also a bit dodgy since we added the 2021-2023 header to files created after 2021 but you can't claim copyright into the past that way. * [chore] Add license header check This ensures a license header is always added to any new file. This avoids maintainers/reviewers needing to remember to check for and ask for it in case a contribution doesn't include it. * [chore] Add missing license headers * [chore] Further updates to license header * Use the more common // indentend comment format * Remove the hack we had for the linter now that we use the // format * Add SPDX license identifier
45 lines
2.4 KiB
Go
45 lines
2.4 KiB
Go
// GoToSocial
|
||
// Copyright (C) GoToSocial Authors admin@gotosocial.org
|
||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||
//
|
||
// This program is free software: you can redistribute it and/or modify
|
||
// it under the terms of the GNU Affero General Public License as published by
|
||
// the Free Software Foundation, either version 3 of the License, or
|
||
// (at your option) any later version.
|
||
//
|
||
// This program is distributed in the hope that it will be useful,
|
||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
// GNU Affero General Public License for more details.
|
||
//
|
||
// You should have received a copy of the GNU Affero General Public License
|
||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
||
package model
|
||
|
||
// Filter represents a user-defined filter for determining which statuses should not be shown to the user.
|
||
// If whole_word is true , client app should do:
|
||
// Define ‘word constituent character’ for your app. In the official implementation, it’s [A-Za-z0-9_] in JavaScript, and [[:word:]] in Ruby.
|
||
// Ruby uses the POSIX character class (Letter | Mark | Decimal_Number | Connector_Punctuation).
|
||
// If the phrase starts with a word character, and if the previous character before matched range is a word character, its matched range should be treated to not match.
|
||
// If the phrase ends with a word character, and if the next character after matched range is a word character, its matched range should be treated to not match.
|
||
// Please check app/javascript/mastodon/selectors/index.js and app/lib/feed_manager.rb in the Mastodon source code for more details.
|
||
type Filter struct {
|
||
// The ID of the filter in the database.
|
||
ID string `json:"id"`
|
||
// The text to be filtered.
|
||
Phrase string `json:"text"`
|
||
// The contexts in which the filter should be applied.
|
||
// Array of String (Enumerable anyOf)
|
||
// home = home timeline and lists
|
||
// notifications = notifications timeline
|
||
// public = public timelines
|
||
// thread = expanded thread of a detailed status
|
||
Context []string `json:"context"`
|
||
// Should the filter consider word boundaries?
|
||
WholeWord bool `json:"whole_word"`
|
||
// When the filter should no longer be applied (ISO 8601 Datetime), or null if the filter does not expire
|
||
ExpiresAt string `json:"expires_at,omitempty"`
|
||
// Should matching entities in home and notifications be dropped by the server?
|
||
Irreversible bool `json:"irreversible"`
|
||
}
|