(self, key, value)
| 464 | ConfigPlugin(self) |
| 465 | |
| 466 | def saveValue(self, key, value): |
| 467 | if not os.path.isfile(self.config_file): |
| 468 | content = "" |
| 469 | else: |
| 470 | content = open(self.config_file).read() |
| 471 | lines = content.splitlines() |
| 472 | |
| 473 | global_line_i = None |
| 474 | key_line_i = None |
| 475 | i = 0 |
| 476 | for line in lines: |
| 477 | if line.strip() == "[global]": |
| 478 | global_line_i = i |
| 479 | if line.startswith(key + " =") or line == key: |
| 480 | key_line_i = i |
| 481 | i += 1 |
| 482 | |
| 483 | if key_line_i and len(lines) > key_line_i + 1: |
| 484 | while True: # Delete previous multiline values |
| 485 | is_value_line = lines[key_line_i + 1].startswith(" ") or lines[key_line_i + 1].startswith("\t") |
| 486 | if not is_value_line: |
| 487 | break |
| 488 | del lines[key_line_i + 1] |
| 489 | |
| 490 | if value is None: # Delete line |
| 491 | if key_line_i: |
| 492 | del lines[key_line_i] |
| 493 | |
| 494 | else: # Add / update |
| 495 | if type(value) is list: |
| 496 | value_lines = [""] + [str(line).replace("\n", "").replace("\r", "") for line in value] |
| 497 | else: |
| 498 | value_lines = [str(value).replace("\n", "").replace("\r", "")] |
| 499 | new_line = "%s = %s" % (key, "\n ".join(value_lines)) |
| 500 | if key_line_i: # Already in the config, change the line |
| 501 | lines[key_line_i] = new_line |
| 502 | elif global_line_i is None: # No global section yet, append to end of file |
| 503 | lines.append("[global]") |
| 504 | lines.append(new_line) |
| 505 | else: # Has global section, append the line after it |
| 506 | lines.insert(global_line_i + 1, new_line) |
| 507 | |
| 508 | open(self.config_file, "w").write("\n".join(lines)) |
| 509 | |
| 510 | def getServerInfo(self): |
| 511 | from Plugin import PluginManager |
no test coverage detected