Files
windows-install/Python/NextcloudClientFix.py
2025-09-13 14:30:54 -04:00

72 lines
2.7 KiB
Python

import os
import configparser
# Replace $uid with the actual user ID
uid = os.getlogin()
config_file_path = f"C:\\Users\\{uid}\\AppData\\Roaming\\Nextcloud\\nextcloud.cfg"
# Ensure the configuration file exists
if not os.path.exists(config_file_path):
raise FileNotFoundError(f"Configuration file not found at: {config_file_path}")
# Read and update the configuration
config = configparser.ConfigParser(strict=False)
config.optionxform = str # Preserve case sensitivity for keys
# Read the file
config.read(config_file_path, encoding='utf-8')
# Ensure the [General] section exists
if 'General' not in config:
config['General'] = {}
# Fix the main sync issues
config['General']['maxChunkSize'] = '50000000'
# Add sync monitoring improvements
config['General']['pollInterval'] = '5000' # Check for changes every 5 seconds (default is 30000)
config['General']['forceSyncInterval'] = '3600' # Force full sync every hour
config['General']['enableEtag'] = 'true'
config['General']['useNewBigFolderSizeLimit'] = 'true'
config['General']['newBigFolderSizeLimit'] = '500' # MB threshold for asking about large folders
# Network timeout improvements
config['General']['timeout'] = '300' # 5 minute timeout
config['General']['chunkTimeout'] = '120' # 2 minute chunk timeout
# Update account-specific settings for better sync
account_section = '0' # Your account is account 0
if f'{account_section}\\pollInterval' not in config['Accounts']:
config['Accounts'][f'{account_section}\\pollInterval'] = '5000'
# Fix folder-specific sync issues
folder_key = f'{account_section}\\FoldersWithPlaceholders\\1'
# Ensure the folder isn't paused
if f'{folder_key}\\paused' in config['Accounts']:
config['Accounts'][f'{folder_key}\\paused'] = 'false'
# Add folder-specific sync settings
config['Accounts'][f'{folder_key}\\pollInterval'] = '5000'
config['Accounts'][f'{folder_key}\\syncHiddenFiles'] = 'true'
# Enable more detailed logging (temporary for debugging)
if 'Logging' not in config:
config['Logging'] = {}
config['Logging']['logLevel'] = '2' # 0=Info, 1=Warning, 2=Critical
config['Logging']['logExpire'] = '24' # Keep logs for 24 hours
config['Logging']['logFlush'] = 'true'
# Write the updated configuration back to the file
with open(config_file_path, 'w', encoding='utf-8') as configfile:
config.write(configfile, space_around_delimiters=False)
print(f"Updated Nextcloud configuration in {config_file_path}")
print("\nChanges made:")
print("✓ Reduced poll interval to 5 seconds (was 30 seconds)")
print("✓ Added force sync every hour")
print("✓ Enabled ETag support for better change detection")
print("✓ Added network timeout improvements")
print("✓ Enabled detailed logging for debugging")
print("✓ Ensured folder sync is not paused")