TARS Config

This is the temporary home for the TARS configuration file.

Please do not edit this page unless you are on Tech/IO, or without permission from Croquembouche.

This file is written in TOML. Please use two spaces for indentation.

TARS will check this page automatically on every use of .promote. If there's an error, TARS will let you know. In the meantime, it'll use a cached version.

# PART 0 - INTERNAL STUFF
 
[test]
message = "This is a test"
 
[schedule]
metadata.often = "00 12 * * *"
 
#    ___ ___  ___  __  __  ___ _____ ___ ___  _  _        
#   | _ \ _ \/ _ \|  \/  |/ _ \_   _|_ _/ _ \| \| |       
#   |  _/   / (_) | |\/| | (_) || |  | | (_) | .` |       
#   |_|_|_|_\\___/|_| _|_|\___/_|_| |___\___/|_|\_|  _  _ 
#     /_\| | | |_   _/ _ \|  \/  | /_\_   _|_ _/ _ \| \| |
#    / _ \ |_| | | || (_) | |\/| |/ _ \| |  | | (_) | .` |
#   /_/ \_\___/  |_| \___/|_|  |_/_/ \_\_| |___\___/|_|\_|
# PART 1 / 3
 
[logging]
# Should TARS tell you when it autopromotes something?
# If yes, set to a channel name. If no, leave the string empty.
logpromotion = "#site42"
 
[formats]
# What text should go in the social media post?
# Use curly braces to insert variables. Valid variables are:
#   {tag} - The formatted tag name (see the Tag Handling section)
#   {raw_tag} - The unformatted tag name
#   {num} - The SCP number (just the number! No "SCP-")
#           e.g. 4873, 003, 096-J, 2222-EX
#   {title} - The title of the SCP or page
#   {url} - The URL of the page
#   {author} - The author/s of the page. TARS will check the Attribution Metadata.
#   {message} - A custom message, specified when you use the command.
#               If you forget to specify the message, TARS will remind you.
# You can specify  multiple formats for each social media.
# The first one that matches a tag on the page will be used (or "default").
reddit.scp = "[New SCP] SCP-{num}, {title} by {author}"
instagram.scp = """{message}
SCP-{num} "{title}" - by {author} (http://www.scp-wiki.net/{url})"""
default.default = "[New {tag}] {title} by {author}"
 
[modes]
# Pick a promotion mode for each social media.
#   recent - Every time a new article meets the posting criteria, TARS will
#            place it into a queue. The queue will slowly be posted, one by one, 
#            at a constant and sustainable rate. TARS will learn what exactly
#            this rate is. This means that all articles get equal time under
#            the spotlight.
#   instant - Every time a new article meets the posting criteria, it will
#             be posted right away.
#   random - A truly random article. Same as .search's --random.
#   recommend - TARS will analyse wiki pages and pick the one that it thinks
#               needs promotion the most. Same as .search's --recommend.
#   manual - TARS won't automatically promote anything, and you will have to use
#            .promote in IRC.
#   none - No promotion. Not even from .promote.
# Any social media that use the same mode will have the same articles be promoted.
# If you're not using recent/instant, make sure to remove the "New" from the format!
reddit.mode = "recent"
serioustumblr.mode = "recent"
sillytumblr.mode = "recent"
twitter.mode = "recent"
facebook.mode = "recent"
deviantart.mode = "recent"
instagram.mode = "recent"
default.mode = "manual"
 
[images]
# imagesource - Pick a method to get images for social media that requires it.
#   automatic - TARS will scrape an image from the article. If there are none,
#               it will use the default image.
#   manual - TARS will ask for an image in IRC. If it doesn't get one by the
#            timeout, it will use the default image.
# defaultimage - Specify a URL to use as the default image.
imagesource = "automatic"
defaultimage = 
facebook.image = true
twitter.image = true
serioustumblr.image = true
sillytumblr.image = true
default.image = false
 
[frequency]
#   often - How often should TARS post? This setting is only used for the
#           "random" and "recommend" modes.
#             Please use cron syntax: (https://en.wikipedia.org/wiki/cron)
#             ┌────────── minute (0 - 59)
#             │ ┌──────── hour (0 - 23)
#             │ │ ┌────── day of the month (1 - 31)
#             │ │ │ ┌──── month (1 - 12)
#             │ │ │ │ ┌── day of the week (0 - 7) (0 and 7 are Sunday)
#             │ │ │ │ │
#             * * * * *
#           Examples:
#             00 12 * * * - 12:00 GMT every day
#             30 18 * * 2 - 18:30 GMT every Tuesday
#             00 12 01 * * - 12:00 GMT on the 1st of every month
#             * * * 1 5 - Every minute if it's January and Friday
#             00 12 * * 1,3,5 - 12:00 GMT every Mon, Wed and Fri
#             */5 * * * * - Every 5 minutes
#             00 12 * * 1#3 - 12:00 GMT every 3rd Monday of the month
reddit.often = "00 12 * * *" # one post per day at 12:00 GMT
default.often = "* * * * *" # would usually mean "every minute" but TARS interprets
                            # as "never"
 
#      _   ___ _____ ___ ___ _    ___         
#     /_\ | _ \_   _|_ _/ __| |  | __|        
#    / _ \|   / | |  | | (__| |__| _|         
#   /_/_\_\_|_\ |_|_|___\___|____|___|_  _  _ 
#   / __| __| |  | __/ __|_   _|_ _/ _ \| \| |
#   \__ \ _|| |__| _| (__  | |  | | (_) | .` |
#   |___/___|____|___\___| |_| |___\___/|_|\_|
# PART 2 / 3
# Which articles should be promoted?
 
[selection]
# Place restrictions on the types of post that are promoted.
#   select - What articles should be promoted?
#            Uses the same syntax as TARS' .search (an empty string will match
#            all articles).
reddit.select = "-r 0..100 -c <365d -t +contest -scp"
default.select = ""
 
[filter-tags]
# Greylist: If the page has any of these tags, it will only be promoted if it
#   has another tag that is listed in the tag2text section
# Blacklist: If the page has any of these tags, it WILL NOT be promoted.
# You can also filter tags using the -t flag in the [selection] section.
greylist = [
  "admin",
]
blacklist = [
]
 
[filter-categories]
# Only pages from a category in the whitelist will be automatically promoted.
# If the page is from a category in the greylist, it will only be promoted if
#   it has a tag that's in the tags section.
# You can also filter categories using the -y flag in the [selection] section.
whitelist = [
  "_default",
]
greylist = [
  "component",
  "decomm",
]
 
[filter-authors]
# Put any users who've requested not to be promoted here.
# Names must exactly match Wikidot usernames.
# You can also filter authors using the -a flag in the [selection] section.
reddit = [
  "Someone",
]
twitter = [
  "SomeoneElse",
]
all = [
  "BannedUser",
]
 
[repromoting]
# If an article has already been promoted at some point, should it ever be
#   promoted again?
# TARS won't distinguish between social media - an article that has been
#   promoted on facebook won't be promoted on twitter. 
# Recommendation: set this to false if you're using the recommend mode and you
#   have only a short time between creating new promotions - unless your promotion
#   was particularly effective, you'll probably end up promoting the same article!
reddit.repromote = true
default.repromote = false
 
#    _____ _   ___                           
#   |_   _/_\ / __|                          
#     | |/ _ \ (_ |                          
#    _|_/_/ \_\___|_ ___  _    ___ _  _  ___ 
#   | || | /_\ | \| |   \| |  |_ _| \| |/ __|
#   | __ |/ _ \| .` | |) | |__ | || .` | (_ |
#   |_||_/_/ \_\_|\_|___/|____|___|_|\_|\___|
# PART 3 / 3
# Often you'll want to insert some text into the promotion based on what tags
#   are present on the article. This Part defines what text is associated with
#   which tags.
 
[regextags]
# New pages often go untagged for a while.
# Use this section to force the addition of a tag based on a page's URL.
# Each entry must be a valid regex.
# ALL matches will add a tag to the article, which will then be passed to [tags2text].
"^SCP-\d+-J$" = "joke"
"^SCP-\d+-EX$" = "explained"
"^SCP-\d+$" = "scp"
"-theme$" = "theme"
"-hub$" = "hub"
 
[tags2text]
# Converts tags to text, which will be used in the {tag} placeholder.
# There can only be 1 {tag} per promotion, which will be 1st one matched in this list.
# Therefore, these tags are in order of priority. Specific, important tags (like
#   contests) should go at the top. Non-specific, general tags (like "hub") should
#   go at the bottom.
# To match more than one tag at a time, specify multiple tags in a single "string"
#   (which is wrapped in quotes) separated by spaces.
# The parent page is included as a tag as "p_parent-page-url"
# The category is included as a tag as "c_category-name"
# All pages will have the tag "default"
_tale-hub = "Canon Hub"
"joke scp" = "Joke SCP"
joke = "Joke Article"
contest = "Contest"
jam-con2019 = "Jam Contest '19 Entry"
collab-con2019 = "Collab Contest '19 Entry"
5000 = "SCP-5000 Contest Entry"
project-crossover = "Crossover Fanfic"
pattern-screamer = "Pattern Screamer Article" # really?
"end-of-death tale" = "End of Death Story"
end-of-death = "End of Death Article"
site = "Site Dossier"
"collaboration scp" = "Collaborative SCP"
"collaboration tale" = "Collaborative Tale"
collaboration = "Collaborative Article"
"international scp" = "Translated SCP"
"international tale" = "Translated Tale"
international = "Translated Article"
"interactive scp" = "Interactive SCP"
"interactive tale" = "Interactive Tale"
interactive = "Interactive Article"
p_antimemetics-division-hub = "Antimemetics Division Article"
"meta scp" = "Meta SCP"
"antimemetic scp" = "Antimemetic SCP"
creepypasta = "Creepypasta"
_alexylva = "Alexylva Format"
_anderson = "Anderson Format"
_are-we-cool-yet = "AWCY? Format"
_black-queen = "Black Queen Format"
_broken-god = "Broken God Format"
_chaos-insurgency = "CI Format"
_chicago-spirit = "Spirit Format"
_factory = "Factory Format"
_fifthist = "Fifthist Format"
_global-occult-coalition = "GOC Format"
_gru-division-p = "GRU-P Format"
_herman-fuller = "Herman Fuller Format"
_horizon-initiative = "Horizon Initiative Format"
_ijamea = "IJAMEA Format"
_manna-charitable-foundation = "Manna Format"
_marshall-carter-and-dark = "MC&D Format"
_nobody = "Nobody Format"
_oneiroi = "Oneiroi Format"
_prometheus = "Prometheus Format"
_reclamation = "ORIA Format"
_serpents-hand = "Serpent's Hand Format"
_shark-punching-center = "SPC Format"
_unusual-incidents-unit = "UIU Format"
_wilsons-wildlife = "WWS Format"
001-proposal = "SCP-001 Proposal"
explained = "Explained SCP"
decommissioned = "Decommissioned SCP"
scp = "SCP"
poetry = "Poetry"
tale = "Tale"
goi-format = "GoI Format"
theme = "CSS Theme"
artwork = "Artwork Page"
author = "Author Page"
essay = "Essay"
guide = "Guide"
news = "Monthly News"
experiment = "Experiment Log"
exploration = "Exploration Log"
incident = "Incident Report"
interview = "Interview Log"
supplement = "Supplement"
hub = "Hub"
default = "Article"