-
Notifications
You must be signed in to change notification settings - Fork 30
Settings Examples
IF YOU ARE NOT USING .JSONC
MAKE SURE YOU REMOVE ANY //
COMMENTS IN THIS DOCUMENTATION.
FOR JSON DO NOT LEAVE COMMAS ,
AFTER THE LAST ITEM IN A SECTION, IT WILL ERROR.
FOR HELP WITH JSON FORMATTING, SEE BELOW EXAMPLES.
Minimum requirements for the bot to function. Assumes default values for everything missing.
{
"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"
}
]
}
Intended for a genuine bot application you can just invite to your server or friends server to scrape media.
{
"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"
}
]
}
Intended for a user account (selfbot) you can stealthily use to scrape public servers without anyone knowing.
{
"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"
}
]
}
Having the bot listen to categories, servers, or users instead of (or alongside) channels.
{
"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" }],
"categories": [
{
"category": "SOURCE_DISCORD_CATEGORY_ID",
"destination": "files/example-folder"
}
],
"servers": [
{
"server": "SOURCE_DISCORD_SERVER_ID",
"destination": "files/example-folder-2"
}
],
"users": [
{
"user": "SOURCE_DISCORD_USER_ID",
"destination": "files/example-folder-3"
}
]
}
Assigning one configuration to multiple channels, categories, servers, and/or users.
{
"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": [
{
// Simply swap "channel" for "channels" and use an array of strings instead of one single string.
"channels": [ "SOURCE_DISCORD_CHAN_ID_1", "SOURCE_DISCORD_CHAN_ID_2", "SOURCE_DISCORD_CHAN_ID_3" ],
"destination": "files/example-folder"
}
],
"categories": [
{
// Simply swap "category" for "categories" and use an array of strings instead of one single string.
"categories": [ "SOURCE_DISCORD_CAT_ID_1", "SOURCE_DISCORD_CAT_ID_2", "SOURCE_DISCORD_CAT_ID_3" ],
"destination": "files/example-folder"
}
],
"servers": [
{
// Simply swap "server" for "servers" and use an array of strings instead of one single string.
"servers": [ "SOURCE_DISCORD_SERV_ID_1", "SOURCE_DISCORD_SERV_ID_2", "SOURCE_DISCORD_SERV_ID_3" ],
"destination": "files/example-folder"
}
],
"users": [
{
// Simply swap "user" for "users" and use an array of strings instead of one single string.
"users": [ "SOURCE_DISCORD_USER_ID_1", "SOURCE_DISCORD_USER_ID_2", "SOURCE_DISCORD_USER_ID_3" ],
"destination": "files/example-folder"
}
]
}
A modified version of my personal live instance for servers with friends using a genuine Discord bot application.
{
"_constants": {
"__token": "MY_DISCORD_TOKEN_HERE",
"__instagram_username": "MY_IG_BURNER_USERNAME_HERE",
"__instagram_password": "MY_IG_BURNER_PASSWORD_HERE",
"__twitter_username": "MY_TWITTER_BURNER_USERNAME_HERE",
"__twitter_password": "MY_TWITTER_BURNER_PASSWORD_HERE",
"__flickr_api_key": "MY_FLICKR_API_KEY_HERE",
//---
"__USER_ME": "MY_DISCORD_USER_ID_HERE",
//---
"__CHANNEL_P_DDG_ADMIN": "MY_PERSONAL_DDG_ADMIN_CHANNEL_ID",
//---
"__SERVER_OLD_SERVER": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_GEN": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_MEMES": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_VIDEOS": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_INTERESTING": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_NEWS": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_NSFW": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_GAME_SCREENSHOTS": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_PINS": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_PLANNING": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_UPLOADS": "111111111111111111111111",
"__CHANNEL_OLD_SERVER_ARCHIVE": "111111111111111111111111",
//---
"__SERVER_FRIENDS": "111111111111111111111111",
"__CHANNEL_FRIENDS_GEN": "111111111111111111111111",
"__CHANNEL_FRIENDS_MEMES": "111111111111111111111111",
"__CHANNEL_FRIENDS_TIKTOK": "111111111111111111111111",
"__CHANNEL_FRIENDS_VIDEOS": "111111111111111111111111",
"__CHANNEL_FRIENDS_INTERESTING": "111111111111111111111111",
"__CHANNEL_FRIENDS_NEWS": "111111111111111111111111",
"__CHANNEL_FRIENDS_NSFW": "111111111111111111111111",
"__CHANNEL_FRIENDS_PINS": "111111111111111111111111",
"__CHANNEL_FRIENDS_PLANNING": "111111111111111111111111",
"__CHANNEL_FRIENDS_UPLOADS": "111111111111111111111111",
//---
"__SERVER_OTHER_FRIENDS": "111111111111111111111111",
"__CHANNEL_OTHER_FRIENDS_GEN": "111111111111111111111111",
"__CHANNEL_OTHER_FRIENDS_MEMES": "111111111111111111111111",
"__CHANNEL_OTHER_FRIENDS_QUOTES": "111111111111111111111111",
"-------": "----------"
},
"credentials": {
"token": "__token",
"instagramUsername": "__instagram_username",
"instagramPassword": "__instagram_password",
"twitterUsername": "__twitter_username",
"twitterPassword": "__twitter_password",
"flickrApiKey": "__flickr_api_key"
},
"admins": [ "__USER_ME" ],
"adminChannels": [
{
"channel": "__CHANNEL_P_DDG_ADMIN",
"logStatus": true,
"logErrors": true
}
],
"overwriteTwitterPath": "/home/bots/shared/twitter_cookies.json",
"overwriteInstagramPath": "/home/bots/shared/instagram_cookies.json",
"githubUpdateChecking": false,
"exitOnBadConnection": false,
"debug": true,
"downloadRetryMax": 3,
"downloadTimeout": 30,
"commandPrefix": "ddg ",
"autoHistory": false,
"reactWhenDownloaded": true,
"reactWhenDownloadedHistory": true,
"channels": [
{
"channels": [
"__CHANNEL_OLD_SERVER_GEN",
"__CHANNEL_FRIENDS_GEN",
"__CHANNEL_OTHER_FRIENDS_GEN"
],
"destination": "/var/www/html/files/ddg/gen",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}",
"{{channelName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": false
},
{
"channels": [
"__CHANNEL_OLD_SERVER_MEMES",
"__CHANNEL_FRIENDS_MEMES"
],
"destination": "/var/www/html/files/ddg/memes",
"enabled": true,
"allowCommands": true,
"sendErrorMessages": true,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": true,
"subfolders": [
"{{serverName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": true
},
{
"channels": [
"__CHANNEL_OTHER_FRIENDS_MEMES"
],
"destination": "/var/www/html/files/ddg/memes",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": true
},
{
"channels": [
"__CHANNEL_OLD_SERVER_VIDEOS",
"__CHANNEL_FRIENDS_VIDEOS"
],
"destination": "/var/www/html/files/ddg/videos",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}",
"{{channelName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": true,
"saveOtherFiles": true
},
{
"channels": [
"__CHANNEL_OLD_SERVER_INTERESTING",
"__CHANNEL_FRIENDS_INTERESTING"
],
"destination": "/var/www/html/files/ddg/interesting",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}",
"{{channelName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": false
},
{
"channels": [
"__CHANNEL_OLD_SERVER_NEWS",
"__CHANNEL_FRIENDS_NEWS"
],
"destination": "/var/www/html/files/ddg/news",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}",
"{{channelName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": false
},
{
"channels": [ "__CHANNEL_OLD_SERVER_NSFW", "__CHANNEL_FRIENDS_NSFW" ],
"destination": "/var/www/html/files/ddg/nsfw",
"enabled": true,
"allowCommands": true,
"sendErrorMessages": true,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": true,
"subfolders": [
"{{serverName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": false,
"saveOtherFiles": false
},
{
"channels": [
"__CHANNEL_OLD_SERVER_PINS",
"__CHANNEL_OLD_SERVER_PLANNING",
"__CHANNEL_OLD_SERVER_UPLOADS",
"__CHANNEL_OLD_SERVER_ARCHIVE",
"__CHANNEL_FRIENDS_PINS",
"__CHANNEL_FRIENDS_PLANNING",
"__CHANNEL_FRIENDS_UPLOADS"
],
"destination": "/var/www/html/files/ddg/pins",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": true,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}",
"{{channelName}}"
],
"saveImages": true,
"saveVideos": true,
"saveAudioFiles": true,
"saveTextFiles": true,
"saveOtherFiles": true
}
]
}
A modified version of my personal live instance for scraping public servers using a Discord user account (selfbot).
{
"_constants": {
"__token": "MY_SELFBOT_TOKEN",
"__flickr_api_key": "MY_FLICKR_API_KEY",
//---
"__USER_ME": "MY_DISCORD_USER_ID",
//---
"__CHANNEL_P_DDG_UBADMIN": "MY_DISCORD_ADMIN_CHANNEL_FOR_COMMANDS",
//---
"__CHANNEL_MEMESERVER1_MEMES": "1111111111111111111",
//---
"__CHANNEL_MEMESERVER2_MEMES": "1111111111111111111",
"__CHANNEL_MEMESERVER2_NSFW_MEMES": "1111111111111111111",
//---
"__CHANNEL_MEMESERVER3_SHITPOSTING": "1111111111111111111",
//---
"__CHANNEL_MEMESERVER4_MEMES": "1111111111111111111",
"__CHANNEL_MEMESERVER4_NSFW_MEMES": "1111111111111111111",
//---
"-------": "----------"
},
"credentials": {
"token": "__token",
"flickrApiKey": "__flickr_api_key"
},
"admins": [ "__USER_ME" ],
"adminChannels": [
{
"channel": "__CHANNEL_P_DDG_UBADMIN"
}
],
"overwriteTwitterPath": "/home/bots/shared/twitter_cookies.json",
"overwriteInstagramPath": "/home/bots/shared/instagram_cookies.json",
"debug": true,
"allowSkipping": true,
"scanOwnMessages": false,
"autoHistory": true,
"githubUpdateChecking": false,
"presenceEnabled": false,
"exitOnBadConnection": false,
"presenceStatus": "invisible",
"channels": [
{
"channels": [
"__CHANNEL_MEMESERVER1_MEMES",
"__CHANNEL_MEMESERVER2_MEMES",
"__CHANNEL_MEMESERVER3_SHITPOSTING",
"__CHANNEL_MEMESERVER4_MEMES"
],
"destination": "/var/www/html/files/ddg/memes",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": false,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}"
],
},
{
"channels": [
"__CHANNEL_MEMESERVER2_NSFW_MEMES",
"__CHANNEL_MEMESERVER4_NSFW_MEMES"
],
"destination": "/var/www/html/files/ddg/nsfw",
"enabled": true,
"allowCommands": false,
"sendErrorMessages": false,
"scanEdits": true,
"presenceEnabled": false,
"reactWhenDownloaded": false,
"subfolders": [
"{{serverName}}"
],
}
]
}
credentials:
token: REPLACE_WITH_YOUR_TOKEN_OR_DELETE_LINE
email: REPLACE_WITH_YOUR_EMAIL_OR_DELETE_LINE
password: REPLACE_WITH_YOUR_PASSWORD_OR_DELETE_LINE
admins:
- "YOUR_DISCORD_USER_ID"
adminChannels:
- channel: "DISCORD_ID_FOR_CHANNEL_FOR_COMMANDS"
logProgram: false
logStatus: true
logErrors: true
unlockCommands: false
logOutput: log.txt
logIndent: true
processLimit: 32
debug: true
backupDatabaseOnStart: false
watchSettings: false
settingsOutput: true
messageOutput: true
messageOutputHistory: false
discordLogLevel: 0
discordTimeout: 180
downloadTimeout: 60
downloadRetryMax: 2
exitOnBadConnection: false
githubUpdateChecking: true
commandPrefix: 'ddg '
commandTagging: true
scanOwnMessages: false
allowGeneralCommands: true
historyManagerRate: 5
checkupRate: 30
connectionCheckRate: 5
presenceRefreshRate: 3
save: true
allowCommands: true
scanEdits: true
ignoreBots: true
sendErrorMessages: false
filenameDateFormat: 2006-01-02_15-04-05
filenameFormat: '{{date}} {{file}}'
reactWhenDownloaded: false
reactWhenDownloadedHistory: false
historyMaxJobs: 3
sendHistoryStatus: true
subfolders:
- "{{fileType}}"
saveImages: true
saveVideos: true
saveAudioFiles: true
saveTextFiles: false
saveOtherFiles: false
savePossibleDuplicates: false
filters:
blockedExtensions:
- .htm
- .html
- .php
- .exe
- .dll
- .bin
- .cmd
- .sh
- .py
- .jar
channels:
- channel: "TEST_CHANNEL_ID"
destination: ddg-test
See sidebar for sections, see Settings for full documentation and Settings Examples for demonstrations.