Skip to content

Releases: 3urobeat/steam-comment-service-bot

Version 2.16.1

19 Feb 17:02
958e078
Compare
Choose a tag to compare

Fixes:

  • Fixed loading sharedfile being broken caused by bot using a newer cheerio version than node-steamcommunity does #271
  • Fixed !comment calculating incorrect amount of bots needed when maxRequestAmount < accsAvailable and asking user to add an empty list of accounts #272

Version 2.16.0

17 Feb 19:03
b1b500c
Compare
Choose a tag to compare

Changes of note (TL;DR):

  • Added new commands: !manage, !plugins, !stats

  • Added support for specifying a proxyFormat in advancedconfig.json

  • Added support for detecting and unlocking family view

  • Added official Docker support

  • Added a new manage module to Controller

  • Reworked !joingroup & !addfriend to take amount as first parameter #249

  • Reworked comment amount calculation when not all accounts are available

  • Fixed a few bugs, reworked a few systems and improved user experience

  • BREAKING: Changed CommandHandler's runCommand return value to a detailed object ({ success: boolean, reason: string, message: string }), to provide more information why running the requested command failed

    • Due to this change, runCommand() will not send the owneronly error message anymore. The caller is responsible to forward the provided error message to the user, if desired.
  • BREAKING: Removed _ from name of all dataImport functions as they should not be private. If your plugin used one of them, you have to update your calls!

If you are using a customlang.json, make sure to read the language string changes at the end and update your file.
If you've made a plugin, check the 'Creating Plugins' wiki page and add the botVersion parameter to your package.json.

 
 

Additions:

  • Added new commands: !manage, !plugins, !stats
  • Added support for specifying a proxyFormat in advancedconfig.json
    • Please check the adding_proxies wiki page to read how to use this new setting
    • The default setting (empty) retains the same behavior/format as previously
  • Added support for detecting and unlocking family view
    • Family View Codes are cached in tokens.db to auto-unlock on restart/relogin
    • Added skipFamilyViewUnlock setting to advancedconfig.json
  • Added feature to suggest user the most similar command to their input when no matching command was found
  • Added a new manage module to Controller
    • It contains functions to manage the bot during runtime and can be implemented by plugins/commands (like the built-in !manage command does).
    • Added !manage command which implements the new manage module (and a little more) for e.g. the Steam Chat #228
      • See the commands documentation for more info
    • As of now, the manage module contains the functions: addAccount(), removeAccount(), filterAccounts() (comes with a list of pre-made filters), relogAccount(), respreadProxies()
  • Added plugins update check job which runs every 24 hours
  • Added respread proxies job which runs every 4 days
  • Added support for auto reloading plugins (if necessary) to _checkPluginUpdates()
  • Added proxy change detection to login() which re-creates a Bot instance to properly apply the proxy change
  • Added !plugins command which lists all currently active plugins, including some metadata
    • Added centralized helper functions for getting all installed or active plugins
  • Added support for subscribing to workshop items with !follow command #244
    • Added a steamcommunity sharedfile workshop subscribing library patch
  • Added a dataUpdate event to Controller & PluginSystem which is fired on dataImport & dataExport
  • Added support for special syntax *:cookie in logininfo to auto queue all cached accounts and add support to dataExport function to handle it #259
  • Added counters for every request type to count amount of comments/votes/favs/follows made during runtime
  • Added a statistics.db database to count all requests made in total
  • Added !stats command which shows amount of requests made during current uptime and in total (reading from statistics.db)
  • Added scripts to auto-generate dev docs from JsDocs. A shorthander command was added to package.json to easily rebuild dev docs
  • Added a Dockerfile, published a docker image and added instructions to the setup guide
  • Added a beta versions wiki page to explain branch switching

 

Reworks:

  • BREAKING: Changed CommandHandler's runCommand return value to a detailed object ({ success: boolean, reason: string, message: string }), to provide more information why running the requested command failed
    • Due to this change, runCommand() will not send the owneronly error message anymore. The caller is responsible to forward the provided error message to the user, if desired.
  • Reworked !joingroup to take amount as first parameter #249
  • Reworked !addfriend to take amount as first parameter #249
  • Reworked comment amount calculation when not all accounts are available
    • Previously the bot would only allow you to request n comments, where n does not exceed the amount of available accounts, instead of repeatedly using an account when the settings allow. The bot now calculates the amount of account re-uses beforehand and factors them in when validating a request where not all accounts are currently available.
      Example: 4 accounts configured, user can request max 20 comments. Only 2 accounts currently available, user is still able to request 10 comments.
  • Reworked loadPlugins.js to provide functions to un-/re-/load single plugins
  • Reworked dataImport to contain dedicated functions for every file to allow reloading of a single specific file during runtime
    • Functions in dataImport now overwrite their corresponding DataManager properties directly, the caller doesn't have to do that using the return value anymore
  • Extract proxy ip in dataImport and include it in every proxies entry to use it in log messages without leaking credentials
  • Reworked every log message referencing proxy index to use ip instead to improve user experience when needing to find a broken proxy in proxies.txt for example
    • Added mention of proxy in final login error message to ease proxy related troubleshooting
  • Moved unloading all plugins from reload to a dedicated function to support unloading a plugin without instantly loading it again
  • DataManager's dataExport function for logininfo now uses DataManager logininfo prop instead of reconstructing it from bots collection
    • Note: If the bot order is being changed by e.g. a plugin, logininfo MUST be updated and logininfo exported to persist that change.
  • Reworked curator detection & curator clanid resolving to properly handle /publisher & /developer urls #266
  • Biiig refactor to fix ALL jsdoc & tsd-jsdoc errors
    • Marked all _ prefixed functions with private to hide it from exported types
    • BREAKING: Removed _ from name of all dataImport functions as they should not be private. If your plugin used one of them, you have to update your calls!
  • Reworked existing dev docs structure to support new dev docs auto-generate script

 

Fixes:

  • Fixed incorrect debug log msg function prefix
  • Fixed "Waiting for bot(s)..." debug login message spamming output file
  • Fixed bot not replying with correct request amount when insufficient accounts are friends but acceptFriendRequests is disabled
  • Fixed broken type reference for DataManager JsDoc in controller.js
  • Fixed JsDoc Bot reference being unresolved in Controller functions by improving how the reference is loaded
    • Removed now unnecessary re-import in _preLogin() for previously unresolved Bot & Updater
  • Fixed incorrect & stupid filtration for getting bots for fav/follow/vote requests
  • Fixed proxies dataExport writing [object object] to file
  • Fixed skipped accounts not being included in DataManager's logininfo dataExport function
  • Fixed login softlock handler causing a hell of a lot exceptions when taking action
  • Fixed !eval logininfo censor regex replacing entire eval result when cookie login was used
    • By not providing a password in accounts.txt the password property in the logininfo entry of those accounts is set to an empty string. Using an empty String in a Regex results in every char being matched, leading to a gigantic wall of the replacement text.
  • Fixed deleting proxies.txt causing error cascade
  • Fixed bot not auto-reducing comment amount on missing friends & acceptFriendRequests false when 'all' was requested
  • Fixed getSteamSharedFile() failing to detect vote status of greenlight items #256
  • Fixed incorrect directory name in dev docs

 

Changes:

  • Improved logging when checking online status of proxies in checkProxies.js
  • Moved plugin un-/reloading to loadPlugins.js
  • Moved plugin update checking from _loadPlugins() to dedicated _checkPluginUpdates() function
  • Moved unsupported node.js version check on startup up a little to protect DataManager
  • The bot will no longer send the addaccounts message in !comment response when acceptFriendRequests setting in advancedconfig is false
  • The bot will now refuse to load plugins already loaded/present in pluginList
  • The bot will no longer mention a shared_secret in InvalidPassword login error log message if account has none provided to reduce potential confusion
  • Refer to 'index' as 'interaction' in session cmds responses to be more user friendly
  • Set logger options which are depending on advancedconfig being loaded a bit earlier to support DEBUG messages in dataImport
  • The !eval error log message will now show a stacktrace
  • The !info command now accumulates all request type counters when showing amount of requests made during uptime
  • Mentioned that setup time estimate assumes some accounts have already been created in docs setup_guide
  • Mentioned dev docs more & better in README & contributing page
  • Mentioned InsufficientPrivilege error in errors_doc #253
  • Updated steam-comment-bot-template, steam-comment-bot-webserver, steam-comment-bot-discord-plugin and steam-comment-bot-rest (#11) to v2.16
  • Updated wiki pages (adding_proxies, advancedconfig_doc, commands_doc, setup_guide) to accomodate changes made in this update
  • Updated dependencies
  • Minor other changes

<det...

Read more

Version 2.15.4

13 Oct 11:25
57a0338
Compare
Choose a tag to compare

Additions:

  • Log error stack (if available) when creating session fails
  • Unified all request (comment, vote, ...) iteration skip handlers into one
  • Unified all request (comment, vote, ...) error handlers into one
    • This also brings features like aborting request on IP cooldown on all proxies to non comment request types
  • The !failed command now mentions the type of request in its response
  • Added progress log message in dataProcessing to accurately reflect if bot is hanging on converting owner and group vanities to IDs

Fixes:

  • Fixed continuously running "Finished logging in..." animation
  • Fixed "Detected inactivity [...]" message not displaying non-populated accounts
  • Fixed "Detected inactivity [...]" message printing multiple times per minute
  • Fixed login softlock checker not handling inactivity when account is online but not populated
  • Fixed "[...] waiting for user object [...] to populate" message spamming output file
  • Fixed group issues in dataProcessing & log issues in ready when config prop is missing
  • Fixed handleMissingGameLicenses causing webSession to loop when config prop is missing
  • Fixed supplying steam-session login data without username/password, leading to cryptic error for users
    • The session handler now clarifies which account is missing a password
  • Fixed controller interpreting Promise from Updater wrong, leading to a short lived double startup behavior after an update

Changes:

  • Renamed commentsIpCooldownPenalty advancedconfig setting to requestsIpCooldownPenalty
    • This cooldown now applies to all request types, this rename reflects that change
    • Added compatibility feature to transfer customized setting
  • The !failed command now refers to index as interaction to use more intuitive terms
  • Revised a bunch of log messages to improve user experience
    • Failing to load a language file does not log a confusing error stack anymore before it gets replaced by dataIntegrity
  • Softlock Handler log messages now include a timestamp
  • Refactored a few parts of the codebase
  • Moved expiring tokens job register call to ready event and run it instantly
  • Replaced deprecated --production flag in npm commands with --omit=dev
  • Updated dependencies
  • Minor other changes

Version 2.15.3

13 Aug 19:00
199aa8a
Compare
Choose a tag to compare

Additions:

  • Added a few new default quotes
  • Added note about escaping newline in quotes to setup guide
  • Added commentsIpCooldownPenalty setting to advancedconfig #250
  • Added VsCodium project file to remote repository to store command for starting debug session
  • Rest-API Plugin: Added support for subscribing to PluginSystem events. See the Pull Request DerDeathraven/steam-comment-bot-rest-api#10 for more info.

Fixes:

  • Fixed IP cooldown error penalty in comment requests stacking when using proxies #250
  • Fixed all proxies failed detection in comment processes triggering too soon, leading to aborted request with functioning proxies still left
  • Fixed Unhandled Rejection error when logging proxy used to login when proxy provided in proxies.txt did not include 'http://' #248
  • Fixed SteamCommunity requests failing when using proxies not preceded by 'http://' #248
  • Fixed proxy switcher logging suppressed messages during startup
  • Fixed proxy error on initial login causing a softlock
  • Fixed friend commands not prefixing success messages with /me
  • Fixed intentionally escaped newline characters in quotes getting 'activated'
  • Docs: Fixed broken link in setup guide
  • Docs: Fixed broken link in accounts.txt comment
  • Docs: Fixed missing reference to unload function in plugin documentation
  • Discord Plugin: Fixed registerCommands failing when a command does not provide any args and added a check to avoid an Unhandled Rejection when using an outdated node.js version

Changes:

  • Drastically reduced complexity of getting bot accountName by making it a top-layer property
  • Refactored unfriendCheck handler
  • Docs: Reworked adding proxies page
  • Removed docs directory from file checksum check
  • Updated dependencies
  • Minor other changes

Version 2.15.2

09 May 14:03
df92d84
Compare
Choose a tag to compare

Additions:

  • Added traditional chinese translation @Tira-tw in #242
  • Added !add alias to !addfriend command
  • Added steamGuardQrCode event to enable plugins to resolve Steam Guard QR-Code requests
  • Added more login related log messages to default log level
  • Added more login related debug log messages to improve ability to debug login process resolving issues
  • Added (experimental) force-resolve feature to login process when inactivity is detected
  • Added setting 'enableRelogOnLogOnSessionReplaced' to advancedconfig.json to control whether the bot should relog accounts that have lost their connection with the error 'LogOnSessionReplaced'. Default value is true. To retain the same behavior as previously, where the bot would skip those accounts, set the value to false.

Fixes:

  • Fixed login starting faster than plugin load, making it unable for them to handle steamGuardCode events
  • Fixed proxy switcher not switching to proxy 0
  • Fixed default quotes file containing a political entry
  • (Potentially) finally fixed 'Already logged on, cannot log on again' errors when relogging for good
  • Fixed potential login softlock when account switches proxy while a login process is active, with that account queued in it
  • Fixed wrong syntax of variable in language string 'addfriendcmdsuccess'
  • Fixed 'userunfriend' & 'userforceunfriend' language strings being flipped internally

Changes:

  • The bot will now always emit the ready event on the second login rerun even if POSTPONED accounts still exist
  • Refactored some code to use the proper log prefix more consistently instead of sometimes switching to bot index
  • Refactored some code to surround userIDs more consistently with quotation marks
  • Refactored some code to simplify the unfriendall command
  • Improved contributing page
  • Improved issue templates
  • Migrated eslint config for eslint v9 and added & enforced two more rules
  • Updated hostname check
  • Updated dependencies
  • Minor other changes

Version 2.15.1

08 Mar 18:52
a8a04eb
Compare
Choose a tag to compare

Fixes:

  • Fixed login process being softlocked after an account attempted to switch from their faulty proxy
  • Fixed failed vote & fav requests throwing an error when trying to log the error

Changes:

  • Reduced amount of log messages logged during login, disconnect and relog
  • Reduced amount of log messages logged during the general startup
  • Reduced chances of startup ascii art showing an easter egg ascii art
  • Updated dependencies
  • Minor other changes

Version 2.15.0

03 Mar 13:45
be41d68
Compare
Choose a tag to compare

Changes of note (TL;DR):

  • Added new commands: !funnyvote, !jobs
  • Added support for commenting and voting on reviews and for commenting on eventcomments discussions
  • Drastically decreased startup time for larger instances with many proxies by applying logindelay per proxy instead of per account
  • Added QR-Code login
  • Added a JobManager to group routinely executed functions in one place and allowing the registration and unregistration of jobs during runtime
  • Added automatic plugin update on boot and botVersion parameter to check and warn of version mismatch

If you are using a customlang.json, make sure to read the language string changes at the end and update your file.
If you've made a plugin, check the 'Creating Plugins' wiki page and add the botVersion parameter to your package.json.

 
 

Additions:

  • Added new commands: !funnyvote, !jobs
  • Added support for commenting and voting on reviews! Suggestion in #207
    • Updated !comment command to accept reviews
    • Updated !upvote & !downvote commands to accept reviews
    • Added !funnyVote command for reviews
    • Added review detection support to handleSteamIdResolving helper
    • Added a library patch to load my changes until my PR to the SteamCommunity library gets accepted
  • Added support for commenting on eventcomments discussions! Suggestion in #219
  • Added a JobManager system
    • The JobManager groups routinely executed functions in one place and allows the registration and unregistration of jobs during runtime
    • Added !jobs command to see registered jobs directly from the Steam Chat (or any other Plugin which implements the CommandSystem)
  • Added Chinese & Portuguese translation @isyuricunha in #232, Chinese updated by Scaperace
  • Added automatic Plugin update on boot system
  • Added botVersion parameter in package.json requirement to plugins
    • Added a version mismatch check with warning message when plugin is loaded
    • Added a blockPluginLoadOnMismatchedBotVersion setting to advancedconfig.json to manually block loading of plugins with mismatched botVersion parameters
  • Added support for logging in with a Steam Mobile App QR-Code
  • Added support for setting online status for main account and child accounts in advancedconfig.json
  • Added disableSendingRequests setting to advancedconfig.json
  • Added !requests alias to !sessions and !myrequests alias to !mysessions
  • Added EIdTypes enum to handleSteamIdResolving to document supported results
  • Added a !lang cmd reference, including how many languages are currently supported, to useradded message
  • Added duplicateQuotesDetector.js script to detect duplicate strings in quotes.txt file
  • Added login cooldown/block detection to SessionHandler
  • Added a stargazers over time chart to README.md

 

Reworks:

  • Logindelay is now applied per proxy instead of per account to greatly improve login speed for larger instances
    • Accounts are divided into a fastQueue & slowQueue, depending on if they require user interaction (e.g. Steam Guard code input)
    • Added POSTPONED bot EStatus to signal that account in fastQueue needs to be transferred to slowQueue
    • Updated associated estimated login time calculation
    • Improved logging of login progress and online status events
    • Added more login guards to potentially prevent unwanted login requests
  • Languages are now loaded dynamically on startup, instead of being hardcoded
  • Reworked voting commands to compress !upvote and !downvote into one function
  • Converted existing individual intervals to JobManager jobs
  • Improved information logged by npminteraction handler for first time users
  • Improved translating chapter on contribution wiki page
  • Improved errors_doc wiki page as it was pretty outdated
  • Improved Setup Guide wiki page styling with markdown highlights
  • Improved various JsDocs

 

Fixes:

  • Fixed new refreshToken not getting stored because event was not being handled
  • Fixed plugins not being able to be installed without updating fileStructure.json by ignoring package.json in script
  • Fixed player_name retrieval fail throwing error when user isn't cached when receiving or sending chat messages, e.g. immediately after accepting a friend request
  • Fixed lang import failing when folder or only english.json is missing
  • Fixed certain class props not being included in types.d.ts because a JsDoc was missing or incorrect
  • Fixed useradded message being able to fail when sending too quickly after accepting friend request by delaying it by 2.5 seconds
  • Fixed !update response messages being able to fail because accounts were logged off too fast by delaying initiateUpdate() call by 2.5 seconds
  • Fixed incorrect command name !vote in help message by changing it to !upvote
  • Fixed line number in dataImport quotes check warning message being wrongly offset by 1
  • Fixed wrong/missing variable syntax in language strings associated to !update command
  • Fixed wrong/missing variable syntax in commentretrying language string
  • Fixed multiple "Already attempting to log on, cannot log on again" errors caused during login/relog, introduced by recent steam-user update
  • Fixed low friendlist space warning showing bot[object Object]
  • Fixed duplicate login requests being able to happen when login error handler and login timeout handler took action at the same time
  • Fixed CommandHandler's runCommand() throwing error when resInfo parameter was undefined
  • De-duped strings in quotes.txt file

 

Changes:

  • All request types will now enforce maxRequest settings set in config.json. Previously only the comment command would enforce it.
  • Improved up-/downvote ratingHistory database operations
  • Improved missing accounts error message in vote and curatorFollow requests by returning specific nounlimited message
  • Primary Group will now only be set if not already done. This does not reduce amount of requests (unless Steam weights requests differently and a editProfile request is heavier than a profile fetch) made but rather reduces log-noise
  • Generalized requesttoohigh & commentnounlimitedaccs language strings to be used for all request types
  • The dataIntegrity check is now getting executed slightly earlier on startup
  • Updated steam-comment-bot-template, steam-comment-bot-webserver, steam-comment-bot-discord-plugin and steam-comment-bot-rest (#7, #8) to v2.15
    • Plugin steam-comment-bot-webserver is now shipped as a NPM registry package instead of as a locally packed one
  • Updated russian translation by @sashascurtu in #235
  • Disabled now unused 32 bit int limit requestDelay * maxRequests startup check
  • Updated wiki pages (config_doc, advancedconfig_doc, commands_doc, creating_plugins, steam_limitations, setup_guide) to accomodate changes made in this update
  • Updated dependencies
  • Minor other changes
Click me to see updated language strings
  • These language keys have been added:
    • genericnounlimitedaccs
    • voteunsupportedtype
    • requesttoohigh
    • invalidreviewid
    • errloadingreview
    • jobscmdregistered
    • jobscmdnoneregistered
  • These language keys have been removed:
    • commentrequesttoohigh
    • commentnounlimitedaccs
  • These language key's values have changed:
    • commentcmdusageowner
    • commentcmdusageowner2
    • commentinvalidid
    • commentunsupportedtype
    • commentretrying
    • useradded
    • updatecmdforce
    • updatecmdcheck
    • helpvote
    • helpfavorite
    • abortcmdnoprocess
    • failedcmdnothingfound

This list was generated using my langStringsChangeDetector.js script.

Version 2.14.1

28 Dec 23:11
26caa70
Compare
Choose a tag to compare

Additions:

  • Added logging of username in friendMessage event
  • Added logging of friend relationship status in friendMessage and steamChatInteraction handlers
  • Added official discord plugin to default package set
  • Added a few emojis to the README.md to visually break up the wall of text
  • Added a deprecation warning to logininfo.json import; please use accounts.txt

Fixes:

  • Fixed data integrity check failing when using an absolute path #217 by forcing working dir to __dirname in start.js
  • Fixed two dependency errors on initial start caused by outdated node.js version
  • Fixed downloadUpdate() deleting ratingHistory & userSetting database contents (whoops, sorry!)
  • Fixed plugin config not being updated when plugin data directory of previously installed plugin has been deleted
  • Fixed TypeError and missing license detected when null was provided in config.json childaccplayinggames
  • Fixed comments not allowed on friendsonly profiles
    • Profile visibility is now handled better in general
  • Fixed dataImport not resolving language correctly on restore

Changes:

  • Bumped minimum supported node.js version to v16.0.0!
    • This fixes the two aforementioned dependency issues on initial start
  • Improved how logininfo object is accessed during login and clarified index -> accountName association in wiki
  • Failed follow request now inserts user into ratingHistory.db anyway because enum 2 is also used for a duplicate request
  • Simplified inserting user into lastcomment.db database on friend request accept
  • Improved language string failedcmdnothingfound to include all request types; russian translation update by @sashascurtu
  • Ignored package-lock.json in dataIntegrity check system
  • Removed a few unnecessary last iteration checks when nothing async was happening
  • Made aggregatePluginConfig() private
  • Updated every file header to ISO date and update copyright date
  • Wiki: Improved unfriendtime config key explanation
  • Updated dependencies
  • Minor other changes

Version 2.14.0

21 Oct 15:17
b4072cf
Compare
Choose a tag to compare

Changes of note (TL;DR):

  • Added support for commenting in discussions using !comment
  • Added support for following & unfollowing users/workshops/curators using !follow & !unfollow
  • Added support for setting specific games for specific accounts
  • Added a language system which currently supports english & russian. Each user can set their lang using !lang
    • Reworked customlang.json structure to work with the new language system. Please read the updated customlang wiki page!
  • Added a relogging handler which also attempts to switch out broken proxies - you no longer need to manually intervene to get accounts back online!
    • The bot now longer stops itself when the main account looses connection
  • Renamed config.json keys commentdelay, commentcooldown, maxComments & maxOwnerComments to requestDelay, requestCooldown, maxRequests, maxOwnerRequests to apply to all request types
  • Renamed advancedconfig.json key relogTimeout to loginRetryTimeout
  • Fixed a lot of bugs

If you are using a customlang.json, make sure to read the language string changes at the end and update your file.

 
 

Additions:

  • Added new commands: !follow, !unfollow
  • Added support for commenting in discussions by updating !comment! Suggestion in #128
  • Added support for following & unfollowing users/workshops and curators by adding two new commands as mentioned above! Suggestion in #163 & #207
    • This feature was added to the SteamCommunity library in my PR #320
  • Added a language system
    • Added a !lang command to see all supported languages and to update your chosen one
    • Added a userSettings database to save language settings for every user who adds the bot
    • Added a defaultLanguage setting to config.json
    • Added a getLang() function to the DataManager to get a language string
      • Supports replacing language string variables for you
      • Automatically fetches the correct language for the user when a userID is provided
    • Added russian translation @Blueberryy #186, updated by @sashascurtu #212
    • Added an unsupported language check to DataManager's dataCheck
  • Added automatic renewal of refreshTokens that expire soon
    • Enabled automatic renewal in steam-user options
    • Added a attemptTokenRenew() function to the sessionHandler and call it from the handleExpiringTokens.js helper (this was done before steam-user added support, it now acts as a backup)
  • Added a relogging system to attempt to recover failed logins after 15 minutes
    • Supports switching out broken proxies - you no longer need to manually intervene to get accounts back online!
    • Added a Controller getBotsPerProxy() function to enable finding least used proxies
    • Added the advancedconfig relogTimeout setting to customize the 15 minutes default setting
    • Added proxy support to the Controller checkConnection() helper and added a splitProxyString() helper to Controller.misc
    • Added DataManager checkProxy() and checkAllProxies() helper functions to update isOnline for every proxy
    • Added a Bot switchProxy() function to relog a bot account with a different proxy without needing a restart
  • Added a (stripped down for now) developer wiki
  • Added a dataIntegrity check to the DataManager to automatically recover corrupted source files by checking their checksum
    • The bot can now recover itself from only the initial start.js file. Impressive, right?
  • Added support for setting specific games for specific accounts. Suggestion in #193
  • Added a scripts directory
    • Added the langStringsChangeDetector script to generate the lang keys updated list for each changelog
    • Added the generateFileStructure script to update /src/data/fileStructure.json
    • Added the checkTranslationKeys script to find missing or misnamed lang keys in translations
  • Added a contributing wiki page
  • Added 351 more quotes to default quotes.txt file @8c #210
  • Added compatibility feature for update from 2.13 to 2.14

 

Reworks:

  • Reworked customlang.json structure to work with the new language system. Please read the updated customlang wiki page!
  • Reworked how variables are set in language strings to easily distinguish them from normal text. They now follow this syntax: ${variableName}
  • Reworked how proxies are loaded and stored in the DataManager to store connection status information
    • They are now stored in an array of objects instead of a string array and contain the properties proxy, proxyIndex, isOnline & lastOnlineCheck
  • Reworked how the logininfo is stored in the DataManager to fix an invalid account order when a username consisting of only numbers was provided
    • The accounts are now stored in an array of objects instead of an object with the username as key
  • Reworked bot accounts password protection in !eval
  • Reworked advancedconfig.json by adding dummy values that act as separators to group certain settings together
  • Reworked Updater's customUpdateRules() to carry removed config & advancedconfig values through an update
    • The corresponding compatiblity feature must handle the processing & removal of these values
  • Replaced all writeFile() calls with DataManager write helper calls
  • Replaced every lang usage with data.getLang()
  • Improved !settings command array & object conversion
  • Improved log for first time user when installing dependencies
  • Improved creating plugins, accounts setup and config setup guide
  • The controller.restart() function now automatically sets default params if undefined to simplify usage
  • DataManager's dataCheck now returns a string containing information when a config value has been reset to default
    • The !settings command now handles this setting change rejection by informing the user
  • Generalized a few lang strings to make translation easier

 

Fixes:

  • Fixed parent process not setting process title when restarting after automatic dependency installation
  • Fixed checkAndGetFile() failing if npminteraction.js helper is missing
  • Fixed npminteraction helper failing if package.json is missing
  • Fixed dataManager failing if helpers are missing
  • Fixed dataCheck failing if DataManager helpers were not replaced quick enough
  • Fixed compability feature check failing if folder is missing
  • Fixed handleErrors.js failing if npminteraction.js is helper is missing
  • Fixed dataIntegrity() resolving too fast when restart is needed
  • Fixed weird infinite loop crash in syncLoop() when calling next() too fast
  • Fixed missing game licenses check not working when cache.json is empty
  • Fixed dataCheck not resetting change of setting which triggered a promise rejection
  • Fixed up-/downvote error detection in sharedfiles libraryPatch for !vote & !downvote commands
  • Fixed sharedfile comment error detection in sharedfiles libraryPatch
  • Fixed compatibility check not finding anything due to typo
  • Fixed undefined playing status in ready message when config.playingGames = []
  • Fixed the connection check in the Controller not being awaited properly on startup
  • Fixed handleMissingGameLicenses only filtering the main account
  • Fixed getBots() not supporting OFFLINE filter
  • Fixed invalid account order when a username consisting only numbers was provided by changing how the logininfo is stored (see above)

 

Changes:

  • Removed library patch for re-enabling primaryGroup profile setting #287 & #307 as the PR was merged
  • Removed machineName from logOnOptions. The bot will no longer identify itself when logging into an account
  • The bot now longer stops itself when the main account looses connection as the relogging helper takes over
  • The bot now only runs botsgroup and missing game licenses checks on the intial login of a bot account, no longer also on relogs
  • Create accounts.txt file in dataImport if it is missing
  • Miscellaneous log improvements (e.g. less newlines, less messages without dates)
  • Renamed config.json keys commentdelay, commentcooldown, maxComments & maxOwnerComments to requestDelay, requestCooldown, maxRequests, maxOwnerRequests to apply to all request types
  • Renamed advancedconfig.json key relogTimeout to loginRetryTimeout. relogTimeout is now used in handleRelog.
  • Renamed defaultlang.json in src/data/lang/ to english.json
  • Updated dataCheck to support the new language system
  • Updated !help command response to include voting, favorizing and following request types
  • Updated wiki pages related to new or changed features
  • Updated dependencies
  • Minor other changes
A lot of language strings have changed because the variable syntax has been improved. This list is long, to see it click me
  • These language keys have been added:
    • langname
    • commentunsupportedtype
    • genericnoaccounts
    • genericrequestless
    • genericnotenoughavailableaccs
    • followprocessstarted
    • followsuccess
    • helpcommentowner
    • helpcommentuser
    • helpvote
    • helpfavorite
    • helpfollow
    • langcmdsupported
    • langcmdnotsupported
    • langcmdsuccess
    • settingscmdcouldnotconvert
    • settingscmdvaluere...
Read more

Version 2.13.6

26 Jul 16:59
326c14a
Compare
Choose a tag to compare

Additions:

  • The !info command now logs amount of loaded plugins instead of maxComments & commentdelay settings
  • Added support for reloading data from the disk using the !reload command

Fixes:

  • Fixed error on loading sharedfiles when breadcrumbs are incomplete
  • Fixed bot waiting for user object of skipped accounts which aren't last to be populated
  • Fixed soft-lock with infinite error spam caused by user object populated check if lastBot is undefined
  • Fixed possibility of a duplicate handleExpiringTokens interval when DataManager's _importFromDisk() function is called multiple times

Changes:

  • Reworked how commands accept and use message sender IDs to greatly improve plugin support:
    • Removed the steamID64 parameter and replaced it with resInfo.userID
    • Commands do not (and must not) expect a userID property to be provided anymore
    • Commands will now handle an unavailable default behavior when command is called from outside the Steam Chat using resInfo.fromSteamChat (e.g. !comment 5 commenting on the requester's profile)
    • Added resInfo.ownerIDs to enable privilege checking when using command from outside the Steam Chat
    • Added resInfo typedef to commandHandler
  • Wiki: Added runCommand() example and added note about userID & ownerIDs parameters
  • Increased next login attempt delay on login timeout to hopefully prevent further "Already logged on" errors
  • Improved sharedfile type detection
  • Improved !info & !help whitespace regex to only match spaces at the line start
  • Attempted to align secondary values in !info command response to improve readability
  • The !settings command will now show the currently loaded config instead of reading it from the disk
  • Updated all command names to always have the primary one at first position
  • Updated all old wiki links
  • Updated dependencies
  • Minor other changes