From 87d9498d9eb367c81ea47d75b481dcb9315442e8 Mon Sep 17 00:00:00 2001 From: Etoh Date: Sun, 21 Jan 2018 13:01:05 +0000 Subject: [PATCH 1/2] Add polish characters and fix non-US bindings outside of direct input mode (#172) --- resources/syncplayintf.lua | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/resources/syncplayintf.lua b/resources/syncplayintf.lua index db20e90..3de79f4 100644 --- a/resources/syncplayintf.lua +++ b/resources/syncplayintf.lua @@ -60,6 +60,25 @@ local line = '' local cursor = 1 local key_hints_enabled = false +non_us_chars = { + 'ą','ć','ę','ł','ń','ś','ź','ż','Ą','Ć','Ę','Ł','Ń','Ś','Ź','Ż', + 'à','è','ì','ò','ù','À','È','Ì','Ò','Ù', + 'á', 'é', 'í', 'ó', 'ú', 'ý', 'Á', 'É', 'Í', 'Ó', 'Ú', 'Ý', + 'â', 'ê', 'î', 'ô', 'û', 'Â', 'Ê', 'Î', 'Ô', 'Û', + 'ã', 'ñ', 'õ', 'Ã', 'Ñ', 'Õ', + 'ä', 'ë', 'ï', 'ö', 'ü', 'ÿ', 'Ä', 'Ë', 'Ï', 'Ö', 'Ü', 'Ÿ', + 'å', 'Å','æ','Æ','œ','Œ','ç','Ç','ð','Ð','ø','Ø','¿','¡','ß', + '¤','†','×','÷','‡','±','—','–','¶','§','ˆ','˜','«','»','¦','‰','©','®','™', + 'ž','Ž', + 'ª','Þ','þ','ƒ','µ','°','º','•','„','“','…','¬','¥','£','€','¢','¹','²','³','½','¼','¾', + '·','Ĉ','ĉ','Ĝ','ĝ','Ĥ','ĥ','Ĵ','ĵ','Ŝ','ŝ','Ŭ','ŭ', + 'Б','б','В','в','Г','г','Д','д','Е','е','Ё','ё','Ж','ж','З','з', + 'И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п', + 'Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ч','ч', + 'Ш','ш','Щ','щ','Ъ','ъ','Ы','ы','Ь','ь','Э','э','Ю','ю','Я','я', + '≥','≠' +} + function format_scrolling(xpos, ypos, text) local chat_message = "\n"..chat_format .. "{\\pos("..xpos..","..ypos..")\\q2}"..text.."\\N\\n" return string.format(chat_message) @@ -891,6 +910,7 @@ function add_specialalphabindings(charinput) local alphabindingarray = charinput for i, alphabinding in ipairs(alphabindingarray) do alpharowbindings[#alpharowbindings + 1] = {alphabinding, function() handle_char_input(alphabinding) end } + bindings[#bindings + 1] = {alphabinding, function() handle_char_input(alphabinding) end} end end @@ -912,22 +932,7 @@ add_alpharowbinding('~','~') add_alpharowbinding('\'','\'') add_alpharowbinding('@','@') -add_specialalphabindings({'à','è','ì','ò','ù','À','È','Ì','Ò','Ù'}) -add_specialalphabindings({'á', 'é', 'í', 'ó', 'ú', 'ý', 'Á', 'É', 'Í', 'Ó', 'Ú', 'Ý'}) -add_specialalphabindings({'â', 'ê', 'î', 'ô', 'û', 'Â', 'Ê', 'Î', 'Ô', 'Û'}) -add_specialalphabindings({'ã', 'ñ', 'õ', 'Ã', 'Ñ', 'Õ'}) -add_specialalphabindings({'ä', 'ë', 'ï', 'ö', 'ü', 'ÿ', 'Ä', 'Ë', 'Ï', 'Ö', 'Ü', 'Ÿ'}) -add_specialalphabindings({'å', 'Å','æ','Æ','œ','Œ','ç','Ç','ð','Ð','ø','Ø','¿','¡','ß'}) -add_specialalphabindings({'¤','†','×','÷','‡','±','—','–','¶','§','ˆ','˜','«','»','¦','‰','©','®','™'}) -add_specialalphabindings({'ž','Ž'}) -add_specialalphabindings({'ª','Þ','þ','ƒ','µ','°','º','•','„','“','…','¬','¥','£','€','¢','¹','²','³','½','¼','¾'}) -add_specialalphabindings({'·','Ĉ','ĉ','Ĝ','ĝ','Ĥ','ĥ','Ĵ','ĵ','Ŝ','ŝ','Ŭ','ŭ'}) -add_specialalphabindings({'Б','б','В','в','Г','г','Д','д','Е','е','Ё','ё','Ж','ж','З','з'}) -add_specialalphabindings({'И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п'}) -add_specialalphabindings({'Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Ц','ц','Ч','ч'}) -add_specialalphabindings({'Ш','ш','Щ','щ','Ъ','ъ','Ы','ы','Ь','ь','Э','э','Ю','ю','Я','я'}) -add_specialalphabindings({'≥','≠'}) - +add_specialalphabindings(non_us_chars) add_repl_bindings(bindings) -- Add a script-message to show the REPL and fill it with the provided text From 406e9a4af50f30f2291b2887ec52988a3f89bee5 Mon Sep 17 00:00:00 2001 From: Etoh Date: Sun, 21 Jan 2018 13:25:07 +0000 Subject: [PATCH 2/2] Add --max-chat-message-length server option to allow custom chat message limits --- syncplay/__init__.py | 2 +- syncplay/messages_de.py | 1 + syncplay/messages_en.py | 1 + syncplay/messages_ru.py | 1 + syncplay/server.py | 6 ++++-- syncplayServer.py | 2 +- 6 files changed, 9 insertions(+), 4 deletions(-) diff --git a/syncplay/__init__.py b/syncplay/__init__.py index d487e0f..e039478 100644 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,4 +1,4 @@ version = '1.5.2' milestone = 'Yoitsu' -release_number = '55' +release_number = '56' projectURL = 'http://syncplay.pl/' diff --git a/syncplay/messages_de.py b/syncplay/messages_de.py index 5f729b9..768118b 100644 --- a/syncplay/messages_de.py +++ b/syncplay/messages_de.py @@ -431,6 +431,7 @@ de = { "server-disable-ready-argument" : u"Bereitschaftsfeature deaktivieren", "server-motd-argument": u"Pfad zur Datei, von der die Nachricht des Tages geladen wird", "server-chat-argument" : "Should chat be disabled?", # TODO: Translate + "server-chat-maxchars-argument": u"Maximum number of characters in a chat message (default is {})", # TODO: Translate "server-messed-up-motd-unescaped-placeholders": u"Die Nachricht des Tages hat unmaskierte Platzhalter. Alle $-Zeichen sollten verdoppelt werden ($$).", "server-messed-up-motd-too-long": u"Die Nachricht des Tages ist zu lang - Maximal {} Zeichen, aktuell {}.", diff --git a/syncplay/messages_en.py b/syncplay/messages_en.py index f1926b4..e0f7925 100644 --- a/syncplay/messages_en.py +++ b/syncplay/messages_en.py @@ -435,6 +435,7 @@ en = { "server-disable-ready-argument" : u"disable readiness feature", "server-motd-argument": "path to file from which motd will be fetched", "server-chat-argument" : "Should chat be disabled?", + "server-chat-maxchars-argument" : u"Maximum number of characters in a chat message (default is {})", # Default number of characters "server-messed-up-motd-unescaped-placeholders": "Message of the Day has unescaped placeholders. All $ signs should be doubled ($$).", "server-messed-up-motd-too-long": u"Message of the Day is too long - maximum of {} chars, {} given.", diff --git a/syncplay/messages_ru.py b/syncplay/messages_ru.py index 0311f3c..9bed670 100644 --- a/syncplay/messages_ru.py +++ b/syncplay/messages_ru.py @@ -437,6 +437,7 @@ ru = { "server-disable-ready-argument" : u"отключить статусы готов/не готов", "server-motd-argument" : u"путь к файлу, из которого будет извлекаться MOTD-сообщение", "server-chat-argument" : "Should chat be disabled?", # TODO: Translate + "server-chat-maxchars-argument": u"Maximum number of characters in a chat message (default is {})", # TODO: Translate "server-messed-up-motd-unescaped-placeholders" : u"MOTD-сообщение содержит неэкранированные спец.символы. Все знаки $ должны быть продублированы ($$).", "server-messed-up-motd-too-long" : u"MOTD-сообщение слишком длинное: максимальная длина - {} символ(ов), текущая длина - {} символ(ов).", diff --git a/syncplay/server.py b/syncplay/server.py index 4eb5ee8..96904ee 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -14,7 +14,7 @@ import argparse from syncplay.utils import RoomPasswordProvider, NotControlledRoom, RandomStringGenerator, meetsMinVersion, playlistIsValid, truncateText class SyncFactory(Factory): - def __init__(self, password='', motdFilePath=None, isolateRooms=False, salt=None, disableReady=False,disableChat=False): + def __init__(self, password='', motdFilePath=None, isolateRooms=False, salt=None, disableReady=False,disableChat=False, maxChatMessageLength=constants.MAX_CHAT_MESSAGE_LENGTH): self.isolateRooms = isolateRooms print getMessage("welcome-server-notification").format(syncplay.version) if password: @@ -27,6 +27,7 @@ class SyncFactory(Factory): self._motdFilePath = motdFilePath self.disableReady = disableReady self.disableChat = disableChat + self.maxChatMessageLength = maxChatMessageLength if not isolateRooms: self._roomManager = RoomManager() else: @@ -48,7 +49,7 @@ class SyncFactory(Factory): features["readiness"] = not self.disableReady features["managedRooms"] = True features["chat"] = not self.disableChat - features["maxChatMessageLength"] = constants.MAX_CHAT_MESSAGE_LENGTH + features["maxChatMessageLength"] = self.maxChatMessageLength features["maxUsernameLength"] = constants.MAX_USERNAME_LENGTH features["maxRoomNameLength"] = constants.MAX_ROOM_NAME_LENGTH features["maxFilenameLength"] = constants.MAX_FILENAME_LENGTH @@ -547,3 +548,4 @@ class ConfigurationGetter(object): self._argparser.add_argument('--disable-chat', action='store_true', help=getMessage("server-chat-argument")) self._argparser.add_argument('--salt', metavar='salt', type=str, nargs='?', help=getMessage("server-salt-argument")) self._argparser.add_argument('--motd-file', metavar='file', type=str, nargs='?', help=getMessage("server-motd-argument")) + self._argparser.add_argument('--max-chat-message-length', metavar='maxChatMessageLength', type=int, nargs='?',help=getMessage("server-chat-maxchars-argument").format(constants.MAX_CHAT_MESSAGE_LENGTH)) diff --git a/syncplayServer.py b/syncplayServer.py index 347b171..f1cac7e 100755 --- a/syncplayServer.py +++ b/syncplayServer.py @@ -19,5 +19,5 @@ from syncplay.server import SyncFactory, ConfigurationGetter if __name__ == '__main__': argsGetter = ConfigurationGetter() args = argsGetter.getConfiguration() - reactor.listenTCP(int(args.port), SyncFactory(args.password, args.motd_file, args.isolate_rooms, args.salt, args.disable_ready,args.disable_chat)) + reactor.listenTCP(int(args.port), SyncFactory(args.password, args.motd_file, args.isolate_rooms, args.salt, args.disable_ready,args.disable_chat, args.max_chat_message_length)) reactor.run()