MCPcopy Index your code
hub / github.com/HelloZeroNet/ZeroNet / actionConfigSet

Method actionConfigSet

src/Ui/UiWebsocket.py:1171–1230  ·  view source on GitHub ↗
(self, to, key, value)

Source from the content-addressed store, hash-verified

1169 @flag.admin
1170 @flag.no_multiuser
1171 def actionConfigSet(self, to, key, value):
1172 import main
1173 if key not in config.keys_api_change_allowed:
1174 self.response(to, {"error": "Forbidden: You cannot set this config key"})
1175 return
1176
1177 if key == "open_browser":
1178 if value not in ["default_browser", "False"]:
1179 self.response(to, {"error": "Forbidden: Invalid value"})
1180 return
1181
1182 # Remove empty lines from lists
1183 if type(value) is list:
1184 value = [line for line in value if line]
1185
1186 config.saveValue(key, value)
1187
1188 if key not in config.keys_restart_need:
1189 if value is None: # Default value
1190 setattr(config, key, config.parser.get_default(key))
1191 setattr(config.arguments, key, config.parser.get_default(key))
1192 else:
1193 setattr(config, key, value)
1194 setattr(config.arguments, key, value)
1195 else:
1196 config.need_restart = True
1197 config.pending_changes[key] = value
1198
1199 if key == "language":
1200 import Translate
1201 for translate in Translate.translates:
1202 translate.setLanguage(value)
1203 message = _["You have successfully changed the web interface's language!"] + "<br>"
1204 message += _["Due to the browser's caching, the full transformation could take some minute."]
1205 self.cmd("notification", ["done", message, 10000])
1206
1207 if key == "tor_use_bridges":
1208 if value is None:
1209 value = False
1210 else:
1211 value = True
1212 tor_manager = main.file_server.tor_manager
1213 tor_manager.request("SETCONF UseBridges=%i" % value)
1214
1215 if key == "trackers_file":
1216 config.loadTrackersFile()
1217
1218 if key == "log_level":
1219 logging.getLogger('').setLevel(logging.getLevelName(config.log_level))
1220
1221 if key == "ip_external":
1222 gevent.spawn(main.file_server.portCheck)
1223
1224 if key == "offline":
1225 if value:
1226 main.file_server.closeConnections()
1227 else:
1228 gevent.spawn(main.file_server.checkSites, check_files=False, force_port_check=True)

Callers

nothing calls this directly

Calls 7

responseMethod · 0.95
cmdMethod · 0.95
saveValueMethod · 0.80
setLanguageMethod · 0.80
loadTrackersFileMethod · 0.80
closeConnectionsMethod · 0.80
requestMethod · 0.45

Tested by

no test coverage detected