Full server buffer merging implementation.

This commit is contained in:
poljar (Damir Jelić) 2018-02-04 12:58:45 +01:00
parent 41c96fd332
commit deea9d897e
2 changed files with 26 additions and 13 deletions

View file

@ -22,9 +22,9 @@ from matrix.plugin_options import (
ServerBufferType ServerBufferType
) )
from matrix.globals import W, OPTIONS, CONFIG from matrix.globals import W, OPTIONS, CONFIG, SERVERS
from matrix.utf import utf8_decode from matrix.utf import utf8_decode
from matrix.utils import key_from_value from matrix.utils import key_from_value, server_buffer_merge
from matrix.commands import hook_page_up from matrix.commands import hook_page_up
@ -39,13 +39,19 @@ def matrix_config_change_cb(data, option):
if option_name == "redactions": if option_name == "redactions":
OPTIONS.redaction_type = RedactType(W.config_integer(option)) OPTIONS.redaction_type = RedactType(W.config_integer(option))
elif option_name == "server_buffer": elif option_name == "server_buffer":
OPTIONS.look_server_buf = ServerBufferType( OPTIONS.look_server_buf = ServerBufferType(
W.config_integer(option)) W.config_integer(option))
for server in SERVERS.values():
server_buffer_merge(server.server_buffer)
elif option_name == "max_initial_sync_events": elif option_name == "max_initial_sync_events":
OPTIONS.sync_limit = W.config_integer(option) OPTIONS.sync_limit = W.config_integer(option)
elif option_name == "max_backlog_sync_events": elif option_name == "max_backlog_sync_events":
OPTIONS.backlog_limit = W.config_integer(option) OPTIONS.backlog_limit = W.config_integer(option)
elif option_name == "fetch_backlog_on_pgup": elif option_name == "fetch_backlog_on_pgup":
OPTIONS.enable_backlog = W.config_boolean(option) OPTIONS.enable_backlog = W.config_boolean(option)

View file

@ -18,13 +18,10 @@ from __future__ import unicode_literals
import time import time
import matrix.globals from matrix.globals import W, SERVERS, OPTIONS
from matrix.plugin_options import ServerBufferType from matrix.plugin_options import ServerBufferType
W = matrix.globals.W
GLOBAL_OPTIONS = matrix.globals.OPTIONS
def key_from_value(dictionary, value): def key_from_value(dictionary, value):
# type: (Dict[str, Any], Any) -> str # type: (Dict[str, Any], Any) -> str
@ -32,7 +29,7 @@ def key_from_value(dictionary, value):
def prnt_debug(debug_type, server, message): def prnt_debug(debug_type, server, message):
if debug_type in GLOBAL_OPTIONS.debug: if debug_type in OPTIONS.debug:
W.prnt(server.server_buffer, message) W.prnt(server.server_buffer, message)
@ -77,13 +74,23 @@ def create_server_buffer(server):
W.buffer_set(server.server_buffer, "localvar_set_server", server.name) W.buffer_set(server.server_buffer, "localvar_set_server", server.name)
W.buffer_set(server.server_buffer, "localvar_set_channel", server.name) W.buffer_set(server.server_buffer, "localvar_set_channel", server.name)
# TODO merge without core server_buffer_merge(server.server_buffer)
if GLOBAL_OPTIONS.look_server_buf == ServerBufferType.MERGE_CORE:
W.buffer_merge(server.server_buffer, W.buffer_search_main())
elif GLOBAL_OPTIONS.look_server_buf == ServerBufferType.MERGE: def server_buffer_merge(buffer):
pass if OPTIONS.look_server_buf == ServerBufferType.MERGE_CORE:
num = W.buffer_get_integer(W.buffer_search_main(), "number")
W.buffer_unmerge(buffer, num + 1)
W.buffer_merge(buffer, W.buffer_search_main())
elif OPTIONS.look_server_buf == ServerBufferType.MERGE:
if SERVERS:
first = list(SERVERS.values())[0].server_buffer
num = W.buffer_get_integer(W.buffer_search_main(), "number")
W.buffer_unmerge(buffer, num + 1)
W.buffer_merge(buffer, first)
else: else:
pass num = W.buffer_get_integer(W.buffer_search_main(), "number")
W.buffer_unmerge(buffer, num + 1)
def server_buffer_set_title(server): def server_buffer_set_title(server):