* Correct the path calculation for 'skip_dir' evaluations to correctly cater for Shared Folders and the 'root' object
* Add debug logging if 'newItemPath' and requires calculation again before use
* Add './' sync_list rule check as this does not align to the documentation and these rules will not get matched correctly. The user needs to take corrective action.
* Add code to support using 'display_processing_time' for functional performance
* Cleanup use of getFunctionName() so this is only called once and re-used
* Add back file transfer metrics which was available in v2.4.x (regression)
* Calculate file transfer metrics in a consistent manner for all uploads and downloads
* Add a check to ensure that OneDrive Personal Drive ID and Remote Drive ID values are 16 characters, padded by leading zeros if the provided JSON data has dropped these leading zeros
* If OneDrive Personal Account, validate all use of 'onedriveJSONItem["parentReference"]["driveId"].str' within application to ensure consistency in use and application
* Ensure that when using --single-directory that if the destination is a Shared Folder, the database records are created in a consistent manner
* Remove 'sea8cc6beffdb43d7976fbc7da445c639' due to 'non-alpha-in-dictionary' code scan result
* Implement Feature Request #2824 to support the moving of Shared Folder Links to other folders
* Be consistent in log output for Personal Accounts, despite personal accounts not supporting relocatable Shared Folder links
* Update /delta generation message to include the driveId
* Code / Technical change was merged into https://github.com/abraunegg/onedrive/pull/3051 and committed to 'master' via 5a20154726
* Specifically add a check for the 'sea8cc6beffdb43d7976fbc7da445c639' string in the Microsoft OneDrive Personal Account Root ID response that denotes that the account cannot access Microsoft OneDrive at this point in time.
* Make sure the error gets flagged in the GUI so the user is aware of the problem
* When --disable-download-validation is used, we still need to set the file timestamp correctly to avoid integrity checking issues
* Implement setFileTimestamp() as a common function so that when setting a file timestamp this is done in a consistent manner
* Update debug logging to be more agnostic to support either file or directory use
* Use same function for files and directories to ensure consistency
* Update function to detail what is being set, when it is set, and when it is successful
* Support adding SharePoint Libraries as Shared Folder Links
* Remove section of code that is no longer used
* Be consistent in log output for Personal Accounts, despite personal accounts not supporting relocatable Shared Folder links
* Update /delta generation message to include the driveId
* Ensure 'skip_dir' rules are correctly applied to remote shared folder links
* Update inotify logging output for deletion events to include the path that is being attempted to be deleted, to allow for easier event analysis of what is going on
* Fix path got deleted in handling of move & close_write event when using 'vim'. Refer to https://github.com/abraunegg/onedrive/issues/2586 and 2afbc17c12 (diff-6e533f0067)
* Fix issue that when using 'sync_list' if a file is moved to a newly created online folder, whilst the folder is created database wise, ensure this folder exists on local disk to support included files from 'sync_list' entries
* Fix regression from v2.4.x in handling uploading new and modified content to OneDrive Business and SharePoint to not create new versions of files post upload which adds to user quota
* Ad configuration option 'create_new_file_version' to create new versions if that is the desire
* Update isValidUTF8 function to use 'validate' rather than individual character checking. The isValidUTF8 is only used to check a UTC timestamp in isValidUTCDateTime
* Enhance isValidUTF8 to check for empty strings, length constraints of UTC timestamps
* Add further logging in the event UTC validation fails
* Update allow.txt - add FFFD
* Fix issue when downloading a file, and this fails due to an API error (400, 401, 5xx) - if the file existed in the database, the file will be deleted locally due to the download failure. Ensure that post this failure, we delete the relevant database record as per other download failures to avoid cascading an online deletion that should not occur.
* Check for no --sync | --monitor earlier to fail fast here to avoid setting up all the other components, database, initialising the API as this is all pointless if we just fail out later
* Add quota status messages for nearing | critical | exceeded based on OneDrive Account API response
* Fix space calculations due to using ulong variable type to ensure that if calculation is negative, value is negative
* Fix that Business Shared Items shortcuts are skipped as being incorrectly detected as Microsoft OneNote Notebook items
* Update allowed spelling for 'onetoc' file extension
* When using --display-config ensure that when a sync_list file is being used, that this actually is a valid file with applicable contents to display
* If 'sync_list' line is empty, skip this first before performing any other check
* The OneDriveGUI creates an empty sync_list file. If this file exists, and we loaded zero valid lines from it, flag that sync_list is not configured and not being used.
* On some systems OpenSSL version cannot be parsed. When this cannot be parsed, do not force exit, allow the client to continue operations. If the OpenSSL version string is not empty, display the unparsable string when using --verbose for future debugging if required.
* Allow no-sync operations to complete online account checks so that the client does not exit prematurely when account details cannot be sourced if we are performing a no-sync operation such as --get-sharepoint-drive-id
This then allows errors such as the issue in #2941 to be displayed to assist in tracking down why the client is not working for these no-sync operation queries
* Ensure that if bypass_data_preservation is set to true, local file backups are not created when replacing local files.
* Refactor use of safeBackup passing in bypassDataPreservation to determine if the backup should be taken to ensure consistency in messaging