2018-04-16 22:21:51 -04:00
< style >
.advancedcontentfilter-content-wrapper {
min-height: calc(100vh - 150px);
padding: 15px;
padding-bottom: 20px;
margin-bottom: 20px;
border: none;
/*background-color: #fff ;*/
background-color: rgba(255,255,255,0.95);
border-radius: 4px;
position: relative;
/*overflow: hidden;*/
color: #555 ;
box-shadow: 0 0 3px #dadada ;
-webkit-box-shadow: 0 0 3px #dadada ;
-moz-box-shadow: 0 0 3px #dadada ;
}
< / style >
2018-04-17 07:20:21 -04:00
< a href = "advancedcontentfilter" > 🔙 Back to Advanced Content Filter Settings< / a >
2018-04-16 22:21:51 -04:00
# Advanced Content Filter Help
The advanced Content Filter uses Symfony's Expression Language.
This help page includes a summary of [the Symfony's Expression Language documentation page. ](https://symfony.com/doc/current/components/expression_language/syntax.html )
## Basics
The advanced content filter matches each post that is about to be displayed against each enabled rule you set.
A rule is a boolean expression that should return either `true` or `false` depending on post variables.
If the expression using a post variables returns `true` , the post will be collapsed and the matching rule name will be displayed above the collapsed content.
A post will be collapsed if at least one rule matches, but all matching rule names will be displayed above the collapsed content.
2020-09-26 04:39:34 -04:00
## Examples
2020-09-26 04:45:55 -04:00
1. To block specific domains `body matches "/\\.example\\.com/"`
2. To block everything that contains the words `body matches "/Guten Morgen/"`
2020-09-26 04:39:34 -04:00
3. To block every occurence of the word facebook with a space in front and after the word `body matches "//s facebook/s /"`
4. To colapse every post that contains more than 1 image `body matches "/(?:(?:(?:\\[url(?:=.*)?\\])?\\[img(?:=.*)?\\].*\\[\\/img\\]\\s*(?:\\[\\/url\\])?)\\s*){2}/"`
2018-04-16 22:21:51 -04:00
## Expression Syntax
### Supported Literals
- **strings** - single and double quotes (e.g. `'hello'` ).
- **numbers** - e.g. `103` .
- **arrays** - using JSON-like notation (e.g. `[1, 2]` ).
- **hashes** - using JSON-like notation (e.g. `{ foo: 'bar' }` ).
- **booleans** - `true` and `false` .
- **null** - `null` .
2018-04-18 23:49:15 -04:00
A backslash (``\``) must be escaped by 2 backslashes (``\\``) in a string and 4 backslashes (``\\\\` `) in a regex::
2018-04-16 22:21:51 -04:00
2018-04-18 23:49:15 -04:00
`"a\\b" matches "/^a\\\\b$/"`
2018-04-16 22:21:51 -04:00
2018-04-17 07:17:25 -04:00
Control characters (e.g. ``\n``) in expressions are replaced with whitespace. To avoid this, escape the sequence with a single backslash (e.g. ``\\n``).
2018-04-16 22:21:51 -04:00
### Supported Operators
The component comes with a lot of operators:
#### Arithmetic Operators
* ``+`` (addition)
* ``-`` (subtraction)
* ``*`` (multiplication)
* ``/`` (division)
* ``%`` (modulus)
* ``**`` (pow)
#### Bitwise Operators
* ``& `` (and)
* ``|`` (or)
* ``^`` (xor)
#### Comparison Operators
* ``==`` (equal)
* ``===`` (identical)
* ``!=`` (not equal)
* ``!==`` (not identical)
* ``< `` (less than)
* ``>`` (greater than)
* ``< =`` (less than or equal to)
* ``>=`` (greater than or equal to)
* ``matches`` (regex match)
2018-04-17 07:17:25 -04:00
To test if a string does *not* match a regex, use the logical ``not`` operator in combination with the ``matches`` operator:
2018-04-16 22:21:51 -04:00
2018-04-17 07:17:25 -04:00
`not ("foo" matches "/bar/")`
2018-04-16 22:21:51 -04:00
2018-04-17 07:17:25 -04:00
You must use parenthesis because the unary operator ``not`` has precedence over the binary operator ``matches``.
2018-04-16 22:21:51 -04:00
#### Logical Operators
* ``not`` or ``!``
* ``and`` or ``&& ``
* ``or`` or ``||``
#### String Operators
* ``~`` (concatenation)
For example: ``firstName ~ " " ~ lastName``
#### Array Operators
* ``in`` (contain)
* ``not in`` (does not contain)
For example: ``user.group in ["human_resources", "marketing"]``
#### Numeric Operators
* ``..`` (range)
For example: ``user.age in 18..45``
#### Ternary Operators
* ``foo ? 'yes' : 'no'``
* ``foo ?: 'no'`` (equal to ``foo ? foo : 'no'``)
* ``foo ? 'yes'`` (equal to ``foo ? 'yes' : ''``)
### Supported variables
Here are a sample of the available variables you can use in your expressions.
You can also retrieve the variables of a specific post by pasting its URL below the rule list.
< table class = "table-bordered table-condensed table-striped" >
< thead >
< tr >
< th > Variable< / th >
< th > Type< / th >
< th > Sample Value< / th >
< / tr >
< / thead >
< tbody >
< tr >
2018-04-18 20:34:26 -04:00
< th > author_id< / th >
2018-04-16 22:21:51 -04:00
< td > number< / td >
< td > 6< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > author_link< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > https://friendica.mrpetovan.com/profile/hypolite< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > author_name< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > Hypolite Petovan< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > author_avatar< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > https://friendica.mrpetovan.com/photo/41084997915a94a8c83cc39708500207-5.png< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > owner_id< / th >
2018-04-16 22:21:51 -04:00
< td > number< / td >
< td > 6< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > owner_link< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > https://friendica.mrpetovan.com/profile/hypolite< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > owner_name< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > Hypolite Petovan< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > owner_avatar< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > https://friendica.mrpetovan.com/photo/41084997915a94a8c83cc39708500207-5.png< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > contact_id< / th >
2018-04-16 22:21:51 -04:00
< td > number< / td >
< td > 1< / td >
< / tr >
< tr >
< th > uid< / th >
< td > number< / td >
< td > 1< / td >
< / tr >
< tr >
< th > id< / th >
< td > number< / td >
< td > 791875< / td >
< / tr >
< tr >
< th > parent< / th >
< td > number< / td >
< td > 791875< / td >
< / tr >
< tr >
< th > uri< / th >
< td > string< / td >
< td > urn:X-dfrn:friendica.mrpetovan.com:1:twit:978740198937907200< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > thr_parent< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > urn:X-dfrn:friendica.mrpetovan.com:1:twit:978740198937907200< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > parent_uri< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > urn:X-dfrn:friendica.mrpetovan.com:1:twit:978740198937907200< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > content_warning< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > commented< / th >
< td > date< / td >
< td > 2018-03-27 21:10:18< / td >
< / tr >
< tr >
< th > created< / th >
< td > date< / td >
< td > 2018-03-27 21:10:18< / td >
< / tr >
< tr >
< th > edited< / th >
< td > date< / td >
< td > 2018-03-27 21:10:18< / td >
< / tr >
< tr >
< th > received< / th >
< td > date< / td >
< td > 2018-03-27 21:10:18< / td >
< / tr >
< tr >
< th > verb< / th >
< td > string< / td >
< td > http://activitystrea.ms/schema/1.0/post< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > object_type< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > http://activitystrea.ms/schema/1.0/bookmark< / td >
< / tr >
< tr >
< th > postopts< / th >
< td > string< / td >
< td > twitter&lang=pidgin; 0.24032407407407:english;0.225:french;0.18055555555556< / td >
< / tr >
< tr >
< th > plink< / th >
< td > string< / td >
< td > https://friendica.mrpetovan.com/display/735a2029995abab33a5c006052376776< / td >
< / tr >
< tr >
< th > guid< / th >
< td > string< / td >
< td > 735a2029995abab33a5c006052376776< / td >
< / tr >
< tr >
< th > wall< / th >
< td > boolean< / td >
< td > 1< / td >
< / tr >
< tr >
< th > private< / th >
< td > boolean< / td >
< td > 0< / td >
< / tr >
< tr >
< th > starred< / th >
< td > boolean< / td >
< td > 0< / td >
< / tr >
< tr >
< th > title< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > body< / th >
< td > string< / td >
< td > Over-compensation #[url=https://friendica.mrpetovan.com/search?tag=Street]Street[/url] #[url=https://friendica.mrpetovan.com/search?tag=Night]Night[/url] #[url=https://friendica.mrpetovan.com/search?tag=CarLights]CarLights[/url] #[url=https://friendica.mrpetovan.com/search?tag=Jeep]Jeep[/url] #[url=https://friendica.mrpetovan.com/search?tag=NoPeople]NoPeople[/url] #[url=https://friendica.mrpetovan.com/search?tag=Close]Close[/url]-up
[attachment type='link' url='https://www.eyeem.com/p/120800309' title='Over-compensation Street Night Car Lights Jeep No | EyeEm' image='https://cdn.eyeem.com/thumb/b2f019738cbeef06e2f8c9517c6286a8adcd3a00-1522184820641/640/480']Photo by @[url=https://twitter.com/MrPetovan]MrPetovan[/url][/attachment]< / td >
< / tr >
< tr >
< th > file< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_id< / th >
2018-04-16 22:21:51 -04:00
< td > number< / td >
< td > null
< tr >
< th > location< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > coord< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > app< / th >
< td > string< / td >
< td > EyeEm< / td >
< / tr >
< tr >
< th > attach< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > rendered_hash< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > b70abdea8b362dc5dcf63e1b2836ad89< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > rendered_html< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td >
2020-02-24 20:08:43 -05:00
Over-compensation #< a href="https://friendica.mrpetovan.com/search?tag=Street" class="tag" title="Street"> Street< /a> #< a href="https://friendica.mrpetovan.com/search?tag=Night" class="tag" title="Night"> Night< /a> #< a href="https://friendica.mrpetovan.com/search?tag=CarLights" class="tag" title="CarLights"> CarLights< /a> #< a href="https://friendica.mrpetovan.com/search?tag=Jeep" class="tag" title="Jeep"> Jeep< /a> #< a href="https://friendica.mrpetovan.com/search?tag=NoPeople" class="tag" title="NoPeople"> NoPeople< /a> #< a href="https://friendica.mrpetovan.com/search?tag=Close" class="tag" title="Close"> Close< /a> -up < div class="type-link"> < a href="https://www.eyeem.com/p/120800309" target="_blank" rel="noopener noreferrer"> < img src="https://friendica.mrpetovan.com/proxy/bb/aHR0cHM6Ly9jZG4uZXllZW0uY29tL3RodW1iL2IyZjAxOTczOGNiZWVmMDZlMmY4Yzk1MTdjNjI4NmE4YWRjZDNhMDAtMTUyMjE4NDgyMDY0MS82NDAvNDgw" alt="" title="Over-compensation Street Night Car Lights Jeep No | EyeEm" class="attachment-image"> < /a> < br> < h4> < a href="https://www.eyeem.com/p/120800309"> Over-compensation Street Night Car Lights Jeep No | EyeEm< /a> < /h4> < blockquote> Photo by @< a href="https://twitter.com/MrPetovan" class="userinfo mention" title="MrPetovan"> MrPetovan< /a> < /blockquote> < sup> < a href="https://www.eyeem.com/p/120800309"> www.eyeem.com< /a> < /sup> < /div>
2018-04-16 22:21:51 -04:00
< / td >
< / tr >
< tr >
< th > object< / th >
< td > string< / td >
< td > {"created_at":"Tue Mar 27 21:07:02 +0000 2018","id":978740198937907200,"id_str":"978740198937907200","full_text":"Over-compensation #Street #Night #CarLights #Jeep #NoPeople #Close -up https:\/\/t.co\/7w4ua13QA7","truncated":false,"display_text_range":[0,93],"entities":{"hashtags":[{"text":"Street","indices":[18,25]},{"text":"Night","indices":[26,32]},{"text":"CarLights","indices":[33,43]},{"text":"Jeep","indices":[44,49]},{"text":"NoPeople","indices":[50,59]},{"text":"Close","indices":[60,66]}],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/7w4ua13QA7","expanded_url":"http:\/\/EyeEm.com\/p\/120800309","display_url":"EyeEm.com\/p\/120800309","indices":[70,93]}]},"source":"< a href=\"http:\/\/www.eyeem.com\" rel=\"nofollow\"> EyeEm< \/a> ","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":403748896,"id_str":"403748896","name":"\ud83d\udc30yp\ud83e\udd5ali\u271d\ufe0fe Pet\ud83e\udd5avan","screen_name":"MrPetovan","location":"NYC","description":"White male form of milquetoast. Avatar by @DearMsDear inspired by @TSG_LAB .\n\nFriendica\/Diaspora\/Mastodon: hypolite@friendica.mrpetovan.com","url":"https:\/\/t.co\/PcARi5OhQO","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/PcARi5OhQO","expanded_url":"https:\/\/mrpetovan.com","display_url":"mrpetovan.com","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":182,"friends_count":146,"listed_count":15,"created_at":"Wed Nov 02 23:13:14 +0000 2011","favourites_count":45826,"utc_offset":-14400,"time_zone":"Eastern Time (US & Canada)","geo_enabled":false,"verified":false,"statuses_count":15554,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/pbs.twimg.com\/profile_background_images\/370213187\/fond_twitter_mrpetovan.png","profile_background_image_url_https":"https:\/\/pbs.twimg.com\/profile_background_images\/370213187\/fond_twitter_mrpetovan.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/968008546322395136\/6qLCiu0o_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/968008546322395136\/6qLCiu0o_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/403748896\/1464321684","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"}</ td >
< / tr >
< tr >
< th > allow_cid< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > allow_gid< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > deny_cid< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > deny_gid< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > item_id< / th >
< td > number< / td >
< td > 791875< / td >
< / tr >
< tr >
< th > item_network< / th >
< td > string< / td >
< td > dfrn< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > author_thumb< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > https://friendica.mrpetovan.com/photo/0cb3d7231eb751139d7d309c7c686c49-5.png?ts=1522941604< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > owner_thumb< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > https://friendica.mrpetovan.com/photo/0cb3d7231eb751139d7d309c7c686c49-5.png?ts=1522941604< / td >
< / tr >
< tr >
< th > network< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
< th > url< / th >
< td > string< / td >
< td > https://friendica.mrpetovan.com/profile/hypolite< / td >
< / tr >
< tr >
< th > name< / th >
< td > string< / td >
< td > Hypolite Petovan< / td >
< / tr >
< tr >
< th > writable< / th >
< td > boolean< / td >
< td > 0< / td >
< / tr >
< tr >
< th > self< / th >
< td > boolean< / td >
< td > 1< / td >
< / tr >
< tr >
< th > cid< / th >
< td > number< / td >
< td > 1< / td >
< / tr >
< tr >
< th > alias< / th >
< td > string< / td >
< td > < / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_created< / th >
2018-04-16 22:21:51 -04:00
< td > date< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_edited< / th >
2018-04-16 22:21:51 -04:00
< td > date< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_start< / th >
2018-04-16 22:21:51 -04:00
< td > date< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_finish< / th >
2018-04-16 22:21:51 -04:00
< td > date< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_summary< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_desc< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_location< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_type< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_nofinish< / th >
2018-04-16 22:21:51 -04:00
< td > string< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_adjust< / th >
2018-04-16 22:21:51 -04:00
< td > boolean< / td >
< td > null< / td >
< / tr >
< tr >
2018-04-18 20:34:26 -04:00
< th > event_ignore< / th >
2018-04-16 22:21:51 -04:00
< td > boolean< / td >
< td > null< / td >
< / tr >
< tr >
< th > pagedrop< / th >
< td > string< / td >
< td > true< / td >
< / tr >
< tr >
< th > tags< / th >
< td > list< / td >
< td >
< ol start = "0" >
2020-02-24 20:08:43 -05:00
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Street" target="_blank" rel="noopener noreferrer"> street< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Night" target="_blank" rel="noopener noreferrer"> night< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=CarLights" target="_blank" rel="noopener noreferrer"> carlights< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Jeep" target="_blank" rel="noopener noreferrer"> jeep< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=NoPeople" target="_blank" rel="noopener noreferrer"> nopeople< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Close" target="_blank" rel="noopener noreferrer"> close< /a> < / li >
< li > @< a href="https://twitter.com/MrPetovan" target="_blank" rel="noopener noreferrer"> mrpetovan< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Close-up" target="_blank" rel="noopener noreferrer"> close-up< /a> < / li >
2018-04-16 22:21:51 -04:00
< / ol >
< / td >
< / tr >
< tr >
< th > hashtags< / th >
< td > list< / td >
< td >
< ol start = "0" >
2020-02-24 20:08:43 -05:00
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Street" target="_blank" rel="noopener noreferrer"> street< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Night" target="_blank" rel="noopener noreferrer"> night< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=CarLights" target="_blank" rel="noopener noreferrer"> carlights< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Jeep" target="_blank" rel="noopener noreferrer"> jeep< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=NoPeople" target="_blank" rel="noopener noreferrer"> nopeople< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Close" target="_blank" rel="noopener noreferrer"> close< /a> < / li >
< li > #< a href="https://friendica.mrpetovan.com/search?tag=Close-up" target="_blank" rel="noopener noreferrer"> close-up< /a> < / li >
2018-04-16 22:21:51 -04:00
< / ol >
< / td >
< / tr >
< tr >
< th > mentions< / th >
< td > string< / td >
< td >
< ol start = "0" >
2020-02-24 20:08:43 -05:00
< li > @< a href="https://twitter.com/MrPetovan" target="_blank" rel="noopener noreferrer"> mrpetovan< /a> < / li >
2018-04-16 22:21:51 -04:00
< / ol >
< / td >
< / tr >
< / tbody >
2020-09-26 04:39:34 -04:00
< / table >