Fix global config handling.
This commit is contained in:
parent
deea9d897e
commit
e02a731809
4 changed files with 31 additions and 28 deletions
18
main.py
18
main.py
|
@ -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)
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue