-
Notifications
You must be signed in to change notification settings - Fork 30
Settings Examples
DRN edited this page Sep 4, 2023
·
17 revisions
FOR JSON DO NOT LEAVE COMMAS ,
AFTER THE LAST ITEM IN A SECTION, IT WILL ERROR.
FOR HELP WITH JSON FORMATTING, SEE BELOW EXAMPLES.
{
"credentials": {
"token": "YOUR_USER_OR_BOT_TOKEN", // user with 2FA or genuine Discord bot.
"email": "YOUR_USER_EMAIL_NO_2FA", // user without 2FA.
"password": "YOUR_USER_PASSWORD_NO_2FA", // user without 2FA.
"twitterEnabled": true, // Toggle Twitter / X authentication, enabled by default.
"twitterUsername": "", // Twitter / X Account, required to fetch tweet media.
"twitterPassword": "", // Twitter / X Account, required to fetch tweet media.
"twitterProxy": "", // OPTIONAL - Connect to Twitter / X via Proxy; Supports HTTP(s) and SOCKS5.
"instagramEnabled": true, // Toggle Instagram authentication, enabled by default.
"instagramUsername": "", // Instagram Account, captcha required at some point(s).
"instagramPassword": "", // Instagram Account, captcha required at some point(s).
"instagramProxy": "", // OPTIONAL - Connect to Instagram via Proxy; Supports HTTP(s) and SOCKS5.
"instagramProxyInsecure": false, // OPTIONAL - Define if proxy is insecure connection.
"instagramProxyForceHTTP2": false, // OPTIONAL - Define if proxy client should force HTTP2.
"flickrApiKey": ""
},
"admins": [
"YOUR_DISCORD_USER_ID",
"YOUR_FRIENDS_DISCORD_USER_ID",
"YOUR_OTHER_FRIENDS_DISCORD_USER_ID"
],
"adminChannels": [
{
"channel": "DISCORD_CHANNEL_ID_FOR_COMMANDS",
"logProgram": false, // output most program logging to channel (this is typically a lot)
"logStatus": true, // output program status updates to channel
"logErrors": true, // output download errors to channel
"unlockCommands": false // allow non-admins to use commands in this channel
}
],
"overwriteCachePath": "", // "cache" by default
"overwriteHistoryPath": "", // "cache/history" by default
"overwriteDuploPath": "", // "cache/.duplo" by default
"overwriteTwitterPath": "", // "cache/twitter.json" by default
"overwriteInstagramPath": "", // "cache/instagram.json" by default
"overwriteConstantsPath": "", // "cache/constants.json" by default
"overwriteDatabasePath": "", // "database" by default
"overwriteDatabaseBackupsPath": "", // "backups" by default
"logOutput": "", // optional filepath to log console output to, include extension.
"logIndent": true, // indentation between log timestamp/prefix and log content.
"processLimit": 32, // # of concurrent tasks allowed at once.
"debug": false, // detailed program info.
"backupDatabaseOnStart": false, // backup database folder to dated zip file in local "backups" folder.
"watchSettings": true, // update settings live if file is modified.
"settingsOutput": true, // display parsed settings on load.
"messageOutput": true, // display messages being processed in real time.
"messageOutputHistory": false, // display messages being processed while running history.
"discordLogLevel": 0, // discord API log leveling setting.
"discordTimeout": 180, // seconds to wait before giving up on a stale Discord connection.
"downloadTimeout": 60, // seconds to wait before giving up on a download.
"downloadRetryMax": 3, // times to retry a failed download.
"exitOnBadConnection": false, // kill the program when encountering a faulty Discord connection rather than retrying.
"githubUpdateChecking": true, // check for program updates on launch.
"commandPrefix": "ddg ", // prefix for discord commands.
"commandTagging": true, // tag when responding to commands (including history).
"scanOwnMessages": false, // checks messages of authenticated user, should be false if genuine bot, true if selfbot.
"allowGeneralCommands": true, // ping/help/info/etc.
"inflateDownloadCount": 0, // +/- displayed download tally.
"europeanNumbers": false, // 1.000.000,00 (disgusting) versus 1,000,000.00 (normal).
"historyManagerRate": 5, // seconds between reprocessing history queue.
"checkupRate": 30, // minutes to print checkup line in program.
"connectionCheckRate": 5, // minutes to check Discord connection for failure.
"presenceRefreshRate": 3, // minutes to refresh Discord presence, sometimes it randomly goes blank.
"save": true,
"allowCommands": true,
"scanEdits": true,
"ignoreBots": true,
"sendErrorMessages": false, // Send error replies in Discord.
"sendFileToChannel": "", // Forward detected media to channel.
"sendFileToChannels": [ "" ], // ^.
"sendFileDirectly": true, // Send direct file as attachment or embed in message.
"sendFileCaption": "", // Caption to accompany media.
"filenameDateFormat": "2006-01-02_15-04-05", // Format for {{date}}.
"filenameFormat": "{{date}} {{file}}", // Default would be "2020-01-02_03-04-05 original_filename.png"
"presenceEnabled": true, // Display Discord presence
"presenceStatus": "idle", // "online" or "idle" or "dnd" or "invisible".
"presenceType": 0, // 0 = Playing, 1 = Streaming, 2 = Listening, 3 = Watching.
"presenceLabel": "{{timeSavedShort}} - {{countShort}} files",
"presenceDetails": "{{timeSavedLong}}", // user accounts only - "3:04:05pm MST - January 2, 2006" by default.
"presenceDetails": "{{count}} files total", // user accounts only.
"reactWhenDownloaded": false, // react to messages downloaded from.
"reactWhenDownloadedEmoji": "", // specify emoji for reactions, random otherwise.
"reactWhenDownloadedHistory": false, // react to messages downloaded from in history jobs.
"overwriteDefaultReaction": "", // "✅" by default.
"historyTyping": true, // show user as typing when processing history.
"embedColor": "", // override embed color, role color by default.
"historyMaxJobs": 3, // # of history jobs allowed to run concurrently, constrained by processLimit above.
"autoHistory": false, // automatically run history on launch.
"autoHistoryBefore": "", // YYYY-MM-DD for date filtering.
"autoHistorySince": "", // YYYY-MM-DD for date filtering.
"sendAutoHistoryStatus": false, // send status message for auto history jobs.
"sendHistoryStatus": true, // send status message for history jobs.
"historyRequestCount": 100, // amount of messages to request per batch when processing history. 100 default, 100 max.
"historyRequestDelay": 0, // delay by seconds for history batch requests (each message batch)
"delayHandling": 0, // delay link handling by milliseconds for live messages
"delayHandlingHistory": 0, // delay link handling by milliseconds for history messages
"divideByYear": false,
"divideByMonth": false,
"divideByDay": false,
"divideByHour": false,
"divideByServer": false,
"divideByChannel": false,
"divideByUser": false,
"divideByType": true, // images/videos/audio/text/other.
"divideFoldersUseID": false, // use Discord IDs rather than user/server/channel names.
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": false,
"savePossibleDuplicates": false, // save if exact filename already exists.
"filters": {
// when "allowed" options are enabled, nothing is allowed unless it meets their criteria.
"blockedPhrases": [ "" ],
"allowedPhrases": [ "" ],
"blockedUsers": [ "" ], // by Discord ID.
"allowedUsers": [ "" ], // by Discord ID.
"blockedRoles": [ "" ], // by Discord ID.
"allowedRoles": [ "" ], // by Discord ID.
"blockedDomains": [ "" ],
"allowedDomains": [ "" ],
"blockedExtensions": [ ".htm", ".html", ".php", ".exe", ".dll", ".bin", ".cmd", ".sh", ".py", ".jar" ],
"allowedExtensions": [ "" ],
"blockedFilenames": [ "" ], // List of phrases to check for in original filename, pre-formatting.
"allowedFilenames": [ "" ],
"blockedReactions": [ "" ], // List of reactions to block or allow, by ID only.
"allowedReactions": [ "" ]
},
// duplicate image filtering
// caching of image data is stored via a database file; it will not read all pre-existing images.
"duplo": false,
// threshold for what the bot considers too similar of an image comparison score.
// * lower = more similar (lowest is around -109.7).
// * higher = less similar (does not really have a maximum, would require your own testing).
// if score is lower than your threshold, the image will be skipped.
"duploThreshold": 0,
"all": {
"destination": "FOLLOW_CHANNELS_BELOW_FOR_REST"
},
"allBlacklistUsers": [ "" ],
"allBlacklistServers": [ "" ],
"allBlacklistCategories": [ "" ],
"allBlacklistChannels": [ "" ],
"users": [
{
"user": "SOURCE_DISCORD_USER_ID",
"users": [ "SOURCE_DISCORD_USER_ID" ],
"destination": "FOLLOW_CHANNELS_BELOW_FOR_REST"
}
],
"servers": [
{
"server": "SOURCE_DISCORD_SERVER_ID",
"servers": [ "SOURCE_DISCORD_SERVER_ID" ],
"serverBlacklist": [ "DISCORD_CHANNELS_TO_BLOCK" ],
"destination": "FOLLOW_CHANNELS_BELOW_FOR_REST"
}
],
"categories": [
{
"category": "SOURCE_DISCORD_CATEGORY_ID",
"categories": [ "SOURCE_DISCORD_CATEGORY_ID" ],
"categoryBlacklist": [ "DISCORD_CHANNELS_TO_BLOCK" ],
"destination": "FOLLOW_CHANNELS_BELOW_FOR_REST"
}
],
"channels": [
{
"channel": "SOURCE_DISCORD_CHANNEL_ID",
"channels": [ "SOURCE_DISCORD_CHANNEL_ID" ],
"destination": "files/example-folder",
"enabled": true,
"save": true,
"allowCommands": true,
"scanEdits": true,
"ignoreBots": true,
"sendErrorMessages": false,
"sendFileToChannel": "",
"sendFileToChannels": [ "" ],
"sendFileDirectly": true,
"sendFileCaption": "",
"filenameDateFormat": "2006-01-02_15-04-05",
"filenameFormat": "{{date}} {{file}}",
"presenceEnabled": true,
"reactWhenDownloaded": false,
"reactWhenDownloadedEmoji": "",
"reactWhenDownloadedHistory": false,
"blacklistReactEmojis": [ "" ],
"historyTyping": true,
"embedColor": "",
"autoHistory": false,
"autoHistoryBefore": "",
"autoHistorySince": "",
"sendAutoHistoryStatus": false,
"sendHistoryStatus": true,
"delayHandling": 0,
"delayHandlingHistory": 0,
"divideByYear": false,
"divideByMonth": false,
"divideByDay": false,
"divideByHour": false,
"divideByServer": false,
"divideByChannel": false,
"divideByUser": false,
"divideByType": true,
"divideFoldersUseID": false,
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": false,
"savePossibleDuplicates": false,
"filters": {
"blockedPhrases": [ "" ],
"allowedPhrases": [ "" ],
"blockedUsers": [ "" ],
"allowedUsers": [ "" ],
"blockedRoles": [ "" ],
"allowedRoles": [ "" ],
"blockedExtensions": [ ".htm", ".html", ".php", ".exe", ".dll", ".bin", ".cmd", ".sh", ".py", ".jar" ],
"allowedExtensions": [ "" ],
"blockedDomains": [ "" ],
"allowedDomains": [ "" ]
},
"duplo": false,
"duploThreshold": 0,
"logLinks": {
"destination": "",
"destinationIsFolder": false,
"divideLogsByServer": true,
"divideLogsByChannel": true,
"divideLogsByUser": false,
"divideLogsByStatus": false,
"logDownloads": true,
"logFailures": true,
"filterDuplicates": false,
"prefix": "",
"suffix": "",
"userData": false
},
"logMessages": {
"destination": "",
"destinationIsFolder": false,
"divideLogsByServer": true,
"divideLogsByChannel": true,
"divideLogsByUser": false,
"filterDuplicates": false,
"prefix": "",
"suffix": "",
"userData": false
}
}
]
}
{
"credentials": {
"token": "YOUR_USER_OR_BOT_TOKEN",
"email": "YOUR_USER_EMAIL_NO_2FA",
"password": "YOUR_USER_PASSWORD_NO_2FA"
},
"admins": [ "YOUR_DISCORD_USER_ID" ],
"adminChannels": [{ "channel": "DISCORD_CHANNEL_ID_FOR_COMMANDS" }],
"channels": [
{
"channel": "SOURCE_DISCORD_CHANNEL_ID",
"destination": "files/example-folder"
}
]
}
{
"credentials": {
"token": "YOUR_USER_OR_BOT_TOKEN",
"email": "YOUR_USER_EMAIL_NO_2FA",
"password": "YOUR_USER_PASSWORD_NO_2FA"
},
"admins": [ "YOUR_DISCORD_USER_ID" ],
"adminChannels": [{ "channel": "DISCORD_CHANNEL_ID_FOR_COMMANDS" }],
"save": true,
"allowCommands": true,
"scanEdits": true,
"ignoreBots": false,
"sendErrorMessages": true,
"presenceEnabled": true,
"presenceStatus": "idle",
"presenceType": 0,
"presenceLabel": "{{timeSavedShort}} - {{countShort}} files",
"presenceDetails": "{{timeSavedLong}}",
"presenceDetails": "{{count}} files total",
"reactWhenDownloaded": true,
"reactWhenDownloadedHistory": true,
"historyTyping": true,
"channels": [
{
"channel": "SOURCE_DISCORD_CHANNEL_ID",
"destination": "files/example-folder"
}
]
}
{
"credentials": {
"token": "YOUR_USER_OR_BOT_TOKEN",
"email": "YOUR_USER_EMAIL_NO_2FA",
"password": "YOUR_USER_PASSWORD_NO_2FA"
},
"admins": [ "YOUR_DISCORD_USER_ID" ],
"adminChannels": [{ "channel": "DISCORD_CHANNEL_ID_FOR_COMMANDS" }],
"save": true,
"allowCommands": false, // they'll probably kick you otherwise.
"scanEdits": true,
"ignoreBots": false,
"sendErrorMessages": false, // they'll probably kick you otherwise.
"presenceEnabled": false, // they'll probably kick you otherwise.
"presenceStatus": "invisible", // or "dnd" or "idle"
"reactWhenDownloaded": false, // they'll probably kick you otherwise.
"reactWhenDownloadedHistory": false, // they'll probably kick you otherwise.
"historyTyping": false, // they'll probably kick you otherwise.
"channels": [
{
"channel": "SOURCE_DISCORD_CHANNEL_ID",
"destination": "files/example-folder"
}
]
}
See sidebar for sections, see Settings for full documentation and Settings Examples for demonstrations.