Closed NotQuiteApex closed 2 years ago
Added webhook tables for various commands. All the webhooks have identical structure (currently), with a toggle, displayed username, custom message (for pinging users), the url for the webhook, and a url for the avatar. Webhooks get activated when completing certain tasks for commands, such as individual video downloads or uploads, and also when a command is completed.
Moved channels out of the pull section, to dedicate a list of tables to it. Each table has a name (referred to by the program and printed for prettiness), an associated username, and info for thumbnail stuff, which is optional if thumbnail generation is not enabled. This is for #41.
New thumbnail feature (see #42), will generate a thumbnail for use with exports and uploads. Intended to be highly configurable, with plenty of options to make it look how you want. This will be off by default as it requires a new dependency, ImageMagick, to be in the PATH env variable like ffmpeg.
Moved webhooks to a dedicated table. The uppermost enable is a master toggle, and default values are under it. In each subsequent table is an individual toggle and override options, which all default to false or empty strings. Master toggle will always be off by default.
Here is the current formatting of the config, not including new features like thumbnail generation and webhooks:
{
"channels": [
{
"username": "percy_creates",
"save_vods": true,
"save_chat": true,
"save_clips": true
}
],
"pull": {
"save_chat": true,
"gql_client": "kimne78kx3ncx6brgo4mv6wki5h1ko"
},
"chat": {
"export_format": "YTT",
"message_display_time": 10,
"randomize_uncolored_names": true,
"ytt_align": "left", "ytt_anchor": 6,
"ytt_position_x": 0, "ytt_position_x": 100
},
"stage": {
"timezone": "-0400",
"description_macros": {
"captions": "Want to see stream chat? ► Enable closed captions w/ 'English - Chat'.",
"watch": "Watch streams live ► {links}",
"content": "Watch our content ► https://youtube.friendteam.biz",
"archive": "Watch past streams ► https://archive.friendteam.biz",
"discord": "Join the FTI Discord ► https://discord.friendteam.biz",
"vodbot": "Archived by VodBot ► https://vodbot.friendteam.biz",
"e": "on {date}.\n\n{captions}\n\n{watch}\n{content}\n{archive}\n{discord}\n\n{vodbot}"
}
},
"export": {
"ffmpeg_loglevel": "warning",
"chat_enable": true,
"video_enable": true
},
"upload": {
"client_path": "C:\\Users\\Apex\\.vodbot\\yt-client.json",
"session_path": "C:\\Users\\Apex\\.vodbot\\yt-session.json",
"chat_enable": true
},
"directories": {
"vods": "C:\\Users\\Apex\\.vodbot\\vods",
"clips": "C:\\Users\\Apex\\.vodbot\\clips",
"temp": "C:\\Users\\Apex\\.vodbot\\temp",
"stage": "C:\\Users\\Apex\\.vodbot\\stage"
}
}
For future versions, a reformatting of the config file is clearly necessary to cover all intended features. An example is below.
channels
- channel info for every user to be tracked by VodBot, has toggles for pull commands which are on by default, and a table for describing how to handle thumbnail generation for the user.thumbnail
- describes what resources can be used for generating a thumbnail, such as what background image and positioning of game logos.webhook
- options for sending webhooks to discord on certain action completions. this should be eventually extensible to other services as necessary.pull
- options for the pull command. save_chat is self explanatory. gql_client controls the client id for using Twitch's GraphQL interface, which should not be changed unless youd like to run the risk of a ban. api section allows for alternative methods of pulling info using the official api in place of GQL calls.stage
- identical to old section of the same nameexport
- handles all export operations for both export and upload command. loglevel is the same, hardware_accel is settings relating to external hardware encoding, and chat is for exporting chat log files.upload
- handles all operations relating to the upload command. paths are the same as for youtube, chat upload uploads exclusively in the youtube timed text format, with the format section allowing custom formatting and positioning.directories
- same as previous config, describes what directories exist.