Full server buffer merging implementation.
This commit is contained in:
parent
41c96fd332
commit
deea9d897e
2 changed files with 26 additions and 13 deletions
|
@ -22,9 +22,9 @@ from matrix.plugin_options import (
|
|||
ServerBufferType
|
||||
)
|
||||
|
||||
from matrix.globals import W, OPTIONS, CONFIG
|
||||
from matrix.globals import W, OPTIONS, CONFIG, SERVERS
|
||||
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
|
||||
|
||||
|
||||
|
@ -39,13 +39,19 @@ def matrix_config_change_cb(data, option):
|
|||
|
||||
if option_name == "redactions":
|
||||
OPTIONS.redaction_type = RedactType(W.config_integer(option))
|
||||
|
||||
elif option_name == "server_buffer":
|
||||
OPTIONS.look_server_buf = ServerBufferType(
|
||||
W.config_integer(option))
|
||||
for server in SERVERS.values():
|
||||
server_buffer_merge(server.server_buffer)
|
||||
|
||||
elif option_name == "max_initial_sync_events":
|
||||
OPTIONS.sync_limit = W.config_integer(option)
|
||||
|
||||
elif option_name == "max_backlog_sync_events":
|
||||
OPTIONS.backlog_limit = W.config_integer(option)
|
||||
|
||||
elif option_name == "fetch_backlog_on_pgup":
|
||||
OPTIONS.enable_backlog = W.config_boolean(option)
|
||||
|
||||
|
|
|
@ -18,13 +18,10 @@ from __future__ import unicode_literals
|
|||
|
||||
import time
|
||||
|
||||
import matrix.globals
|
||||
from matrix.globals import W, SERVERS, OPTIONS
|
||||
|
||||
from matrix.plugin_options import ServerBufferType
|
||||
|
||||
W = matrix.globals.W
|
||||
GLOBAL_OPTIONS = matrix.globals.OPTIONS
|
||||
|
||||
|
||||
def key_from_value(dictionary, value):
|
||||
# type: (Dict[str, Any], Any) -> str
|
||||
|
@ -32,7 +29,7 @@ def key_from_value(dictionary, value):
|
|||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
|
@ -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_channel", server.name)
|
||||
|
||||
# TODO merge without core
|
||||
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:
|
||||
pass
|
||||
server_buffer_merge(server.server_buffer)
|
||||
|
||||
|
||||
def server_buffer_merge(buffer):
|
||||
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:
|
||||
pass
|
||||
num = W.buffer_get_integer(W.buffer_search_main(), "number")
|
||||
W.buffer_unmerge(buffer, num + 1)
|
||||
|
||||
|
||||
def server_buffer_set_title(server):
|
||||
|
|
Loading…
Add table
Reference in a new issue