all repos — honk @ v1.3.1

my fork of honk

docs/hfcs.1 (view raw)

  1.\"
  2.\" Copyright (c) 2019 Ted Unangst
  3.\"
  4.\" Permission to use, copy, modify, and distribute this software for any
  5.\" purpose with or without fee is hereby granted, provided that the above
  6.\" copyright notice and this permission notice appear in all copies.
  7.\"
  8.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 10.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 11.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 12.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 13.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 14.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 15.\"
 16.Dd $Mdocdate$
 17.Dt HFCS 1
 18.Os
 19.Sh NAME
 20.Nm hfcs
 21.Nd honk filtering and censorship system
 22.Sh DESCRIPTION
 23The honk filtering and censorship system,
 24.Nm hfcs ,
 25controls what messages are seen and how they are presented to the user.
 26Filter rules are based on a series of matches and actions.
 27It is accessed via the
 28.Pa filters
 29menu item.
 30.Pp
 31Each filter has an optional
 32.Ar name
 33and
 34.Ar notes
 35for user defined purposes.
 36.Pp
 37The following match types are possible.
 38All nonempty criteria must match.
 39.Bl -tag -width include-audience
 40.It Ar who
 41Match an actor or domain name.
 42Matches against
 43.Fa Ar actor
 44property.
 45.It Ar include audience
 46Previous match is applied against
 47.It Ar only unknowns
 48Previous (domain) match is applied only to unknown actors.
 49.It Ar text
 50Regular expression match against the post
 51.Fa content .
 52The special value of "." will match any post with a summary only.
 53.It Ar is reply
 54A reply to another post.
 55.It Ar is announce
 56Is announced (shared).
 57.It Ar announce of
 58Limit prevous match to only specified actor or domain name.
 59.El
 60.Pp
 61The following actions may be applied.
 62Multiple actions may be applied, but some are subsumed by others.
 63.Bl -tag -width tenletters
 64.It Ar reject
 65Reject this message entirely.
 66.It Ar skip media
 67Don't include images or attachments.
 68.It Ar hide
 69Remove this message from most feeds.
 70.It Ar collapse
 71Show only a short summary with click to view content.
 72.It Ar rewrite
 73Rewrite message content, using
 74.Ar replace
 75replacement text.
 76.El
 77.Pp
 78The
 79.Ar text
 80and
 81.Ar rewrite
 82fields are case insensitive word anchored regular expressions.
 83Specifically, an argument
 84.Ql re
 85will be automatically rewritten as
 86.Ql \\\b(?i:re)\\\b .
 87The
 88.Ar replace
 89text may refer to submatches using $1, etc.
 90.Pp
 91A post marked sensitive that does not otherwise contain a summary will
 92have an invisible summary of
 93.Dq unspecified horror
 94that can be matched against and will appear if the post is collapsed.
 95.Pp
 96An optional expiration may be specified as a duration.
 97XdYhZm for X days, Y hours, and Z minutes.
 98.Sh EXAMPLES
 99A rudimentary spam filter to reject randos shilling their discord.
100It will expire after two days.
101.Lk filter.png screenshot of filter
102.Pp
103Following a group my result in the timeline being flooded with replies.
104These may also be rejected.
105.Lk filtermemes.png screenshot of filter
106.Sh SEE ALSO
107.Xr honk 1
108.Sh CAVEATS
109Not seeing is not erasing.