Fix global config handling.

This commit is contained in:
poljar (Damir Jelić) 2018-02-05 12:38:45 +01:00
parent deea9d897e
commit e02a731809
4 changed files with 31 additions and 28 deletions

18
main.py
View file

@ -97,7 +97,9 @@ from matrix.config import (
matrix_config_reload_cb matrix_config_reload_cb
) )
from matrix.globals import W, OPTIONS, CONFIG, SERVERS import matrix.globals
from matrix.globals import W, OPTIONS, SERVERS
WEECHAT_SCRIPT_NAME = "matrix" # type: str WEECHAT_SCRIPT_NAME = "matrix" # type: str
@ -438,7 +440,7 @@ def room_close_cb(data, buffer):
@utf8_decode @utf8_decode
def matrix_unload_cb(): def matrix_unload_cb():
matrix_config_free(CONFIG) matrix_config_free(matrix.globals.CONFIG)
return W.WEECHAT_RC_OK return W.WEECHAT_RC_OK
@ -458,14 +460,20 @@ if __name__ == "__main__":
''): ''):
# TODO if this fails we should abort and unload the script. # TODO if this fails we should abort and unload the script.
CONFIG = matrix_config_init()
matrix_config_read(CONFIG) matrix.globals.CONFIG = W.config_new(
"matrix",
"matrix_config_reload_cb",
""
)
matrix_config_init(matrix.globals.CONFIG)
matrix_config_read(matrix.globals.CONFIG)
hook_commands() hook_commands()
init_bar_items() init_bar_items()
init_completion() init_completion()
if not SERVERS: if not SERVERS:
create_default_server(CONFIG) create_default_server(matrix.globals.CONFIG)
autoconnect(SERVERS) autoconnect(SERVERS)

View file

@ -21,6 +21,7 @@ import re
import time import time
import matrix.globals import matrix.globals
from matrix.globals import W, OPTIONS, SERVERS
from matrix.utf import utf8_decode from matrix.utf import utf8_decode
from matrix.api import MatrixMessage, MessageType from matrix.api import MatrixMessage, MessageType
@ -29,11 +30,6 @@ from matrix.plugin_options import DebugType
from matrix.server import MatrixServer from matrix.server import MatrixServer
W = matrix.globals.W
GLOBAL_OPTIONS = matrix.globals.OPTIONS
SERVERS = matrix.globals.SERVERS
CONFIG = matrix.globals.CONFIG
def hook_commands(): def hook_commands():
W.hook_command( W.hook_command(
# Command name and short description # Command name and short description
@ -98,7 +94,7 @@ def hook_commands():
W.hook_command_run('/part', 'matrix_command_part_cb', '') W.hook_command_run('/part', 'matrix_command_part_cb', '')
W.hook_command_run('/invite', 'matrix_command_invite_cb', '') W.hook_command_run('/invite', 'matrix_command_invite_cb', '')
if GLOBAL_OPTIONS.enable_backlog: if OPTIONS.enable_backlog:
hook_page_up() hook_page_up()
@ -109,7 +105,7 @@ def matrix_fetch_old_messages(server, room_id):
if not prev_batch: if not prev_batch:
return return
message = MatrixMessage(server, GLOBAL_OPTIONS, MessageType.ROOM_MSG, message = MatrixMessage(server, OPTIONS, MessageType.ROOM_MSG,
room_id=room_id, extra_id=prev_batch) room_id=room_id, extra_id=prev_batch)
server.send_or_queue(message) server.send_or_queue(message)
@ -127,7 +123,7 @@ def check_server_existence(server_name, servers):
def hook_page_up(): def hook_page_up():
GLOBAL_OPTIONS.page_up_hook = W.hook_command_run( OPTIONS.page_up_hook = W.hook_command_run(
'/window page_up', '/window page_up',
'matrix_command_pgup_cb', 'matrix_command_pgup_cb',
'' ''
@ -186,7 +182,7 @@ def matrix_command_join_cb(data, buffer, command):
_, room_id = split_args _, room_id = split_args
message = MatrixMessage( message = MatrixMessage(
server, server,
GLOBAL_OPTIONS, OPTIONS,
MessageType.JOIN, MessageType.JOIN,
room_id=room_id room_id=room_id
) )
@ -227,7 +223,7 @@ def matrix_command_part_cb(data, buffer, command):
for room_id in rooms: for room_id in rooms:
message = MatrixMessage( message = MatrixMessage(
server, server,
GLOBAL_OPTIONS, OPTIONS,
MessageType.PART, MessageType.PART,
room_id=room_id room_id=room_id
) )
@ -264,7 +260,7 @@ def matrix_command_invite_cb(data, buffer, command):
message = MatrixMessage( message = MatrixMessage(
server, server,
GLOBAL_OPTIONS, OPTIONS,
MessageType.INVITE, MessageType.INVITE,
room_id=room_id, room_id=room_id,
data=body data=body
@ -354,7 +350,7 @@ def matrix_redact_command_cb(data, buffer, args):
message = MatrixMessage( message = MatrixMessage(
server, server,
GLOBAL_OPTIONS, OPTIONS,
MessageType.REDACT, MessageType.REDACT,
data=body, data=body,
room_id=room_id, room_id=room_id,
@ -383,20 +379,20 @@ def matrix_command_debug(args):
return return
def toggle_debug(debug_type): def toggle_debug(debug_type):
if debug_type in GLOBAL_OPTIONS.debug: if debug_type in OPTIONS.debug:
message = ("{prefix}matrix: Disabling matrix {t} " message = ("{prefix}matrix: Disabling matrix {t} "
"debugging.").format( "debugging.").format(
prefix=W.prefix("error"), prefix=W.prefix("error"),
t=debug_type) t=debug_type)
W.prnt("", message) W.prnt("", message)
GLOBAL_OPTIONS.debug.remove(debug_type) OPTIONS.debug.remove(debug_type)
else: else:
message = ("{prefix}matrix: Enabling matrix {t} " message = ("{prefix}matrix: Enabling matrix {t} "
"debugging.").format( "debugging.").format(
prefix=W.prefix("error"), prefix=W.prefix("error"),
t=debug_type) t=debug_type)
W.prnt("", message) W.prnt("", message)
GLOBAL_OPTIONS.debug.append(debug_type) OPTIONS.debug.append(debug_type)
for command in args: for command in args:
if command == "network": if command == "network":
@ -684,7 +680,7 @@ def matrix_server_command_add(args):
W.prnt("", message) W.prnt("", message)
return return
server = MatrixServer(args[0], W, CONFIG) server = MatrixServer(server_name, matrix.globals.CONFIG)
SERVERS[server.name] = server SERVERS[server.name] = server
if len(args) >= 2: if len(args) >= 2:
@ -922,7 +918,7 @@ def matrix_command_topic_cb(data, buffer, command):
message = MatrixMessage( message = MatrixMessage(
server, server,
GLOBAL_OPTIONS, OPTIONS,
MessageType.STATE, MessageType.STATE,
data=body, data=body,
room_id=room_id, room_id=room_id,

View file

@ -22,7 +22,8 @@ from matrix.plugin_options import (
ServerBufferType ServerBufferType
) )
from matrix.globals import W, OPTIONS, CONFIG, SERVERS import matrix.globals
from matrix.globals import W, OPTIONS, SERVERS
from matrix.utf import utf8_decode from matrix.utf import utf8_decode
from matrix.utils import key_from_value, server_buffer_merge from matrix.utils import key_from_value, server_buffer_merge
from matrix.commands import hook_page_up from matrix.commands import hook_page_up
@ -57,7 +58,7 @@ def matrix_config_change_cb(data, option):
if OPTIONS.enable_backlog: if OPTIONS.enable_backlog:
if not OPTIONS.page_up_hook: if not OPTIONS.page_up_hook:
hook_page_up(CONFIG) hook_page_up(matrix.globals.CONFIG)
else: else:
if OPTIONS.page_up_hook: if OPTIONS.page_up_hook:
W.unhook(OPTIONS.page_up_hook) W.unhook(OPTIONS.page_up_hook)
@ -66,9 +67,7 @@ def matrix_config_change_cb(data, option):
return 1 return 1
def matrix_config_init(): def matrix_config_init(config_file):
config_file = W.config_new("matrix", "matrix_config_reload_cb", "")
look_options = [ look_options = [
Option( Option(
"redactions", "integer", "redactions", "integer",

View file

@ -477,7 +477,7 @@ def matrix_timer_cb(server_name, remaining_calls):
def create_default_server(config_file): def create_default_server(config_file):
server = MatrixServer('matrix.org', W, config_file) server = MatrixServer('matrix.org', config_file)
SERVERS[server.name] = server SERVERS[server.name] = server
W.config_option_set(server.options["address"], "matrix.org", 1) W.config_option_set(server.options["address"], "matrix.org", 1)