import re APP='/media/orange/RocketChat/nextcloud1/nextcloud_data/custom_apps/htmlviewer' p=APP+'/lib/AppInfo/Application.php' c=open(p).read() if 'RegisterDirectEditorListener' not in c: c=c.replace( 'use OCP\\Security\\CSP\\AddContentSecurityPolicyEvent;', 'use OCP\\Security\\CSP\\AddContentSecurityPolicyEvent;\nuse OCA\\HtmlViewer\\Listener\\RegisterDirectEditorListener;\nuse OCP\\DirectEditing\\RegisterDirectEditorEvent;' ) c=c.replace( " $context->registerEventListener(AddContentSecurityPolicyEvent::class, CSPListener::class);", " $context->registerEventListener(AddContentSecurityPolicyEvent::class, CSPListener::class);\n $context->registerEventListener(RegisterDirectEditorEvent::class, RegisterDirectEditorListener::class);" ) open(p,'w').write(c) print('Application.php patched:', 'RegisterDirectEditorEvent' in open(p).read()) p=APP+'/appinfo/routes.php' c=open(p).read() if 'Direct#content' not in c: c=c.replace( "['name' => 'settings#disableWarning', 'url' => '/settings/warning', 'verb' => 'GET'],", "['name' => 'settings#disableWarning', 'url' => '/settings/warning', 'verb' => 'GET'],\n\t\t['name' => 'Direct#content', 'url' => '/direct/{fileId}', 'verb' => 'GET']," ) open(p,'w').write(c) print('routes.php patched:', 'Direct#content' in open(p).read())