Add messages, doc and argument for Webhook API

This commit is contained in:
danfai 2022-03-08 20:20:56 +01:00
parent 5dab97b973
commit 9357eb9a53
14 changed files with 19 additions and 2 deletions

View File

@ -102,6 +102,10 @@ Enable server statistics using the SQLite database file.
.B \-\-tls [path] .B \-\-tls [path]
Enable TLS connections using the certificate files in path. Enable TLS connections using the certificate files in path.
.TP
.B \-\-webhook-port [port]
Enables the Webhook API over port port. This API enables adding entries to the playlist over HTTP.
.SH SEE ALSO .SH SEE ALSO
.BR syncplay (1). .BR syncplay (1).

View File

@ -50,8 +50,9 @@ def main():
args.tls args.tls
) )
site = server.Site(WebAPI(factory)) site = server.Site(WebAPI(factory))
endpoint = endpoints.TCP4ServerEndpoint(reactor, 8080) if args.webhook_port:
endpoint.listen(site) endpoint = endpoints.TCP4ServerEndpoint(reactor, int(args.webhook_port))
endpoint.listen(site)
endpoint6 = TCP6ServerEndpoint(reactor, int(args.port)) endpoint6 = TCP6ServerEndpoint(reactor, int(args.port))
endpoint6.listen(factory).addCallbacks(isListening6, failed6) endpoint6.listen(factory).addCallbacks(isListening6, failed6)
endpoint4 = TCP4ServerEndpoint(reactor, int(args.port)) endpoint4 = TCP4ServerEndpoint(reactor, int(args.port))

View File

@ -483,6 +483,7 @@ de = {
"server-maxusernamelength-argument": "Maximale Zeichenzahl in einem Benutzernamen (Standard ist {})", "server-maxusernamelength-argument": "Maximale Zeichenzahl in einem Benutzernamen (Standard ist {})",
"server-stats-db-file-argument": "Aktiviere Server-Statistiken mithilfe der bereitgestellten SQLite-db-Datei", "server-stats-db-file-argument": "Aktiviere Server-Statistiken mithilfe der bereitgestellten SQLite-db-Datei",
"server-startTLS-argument": "Erlaube TLS-Verbindungen mit den Zertifikatdateien im Angegebenen Pfad", "server-startTLS-argument": "Erlaube TLS-Verbindungen mit den Zertifikatdateien im Angegebenen Pfad",
"server-webhook-port-argument": 'Server Webhook TCP-port',
"server-messed-up-motd-unescaped-placeholders": "Die Nachricht des Tages hat unmaskierte Platzhalter. Alle $-Zeichen sollten verdoppelt werden ($$).", "server-messed-up-motd-unescaped-placeholders": "Die Nachricht des Tages hat unmaskierte Platzhalter. Alle $-Zeichen sollten verdoppelt werden ($$).",
"server-messed-up-motd-too-long": "Die Nachricht des Tages ist zu lang - Maximal {} Zeichen, aktuell {}.", "server-messed-up-motd-too-long": "Die Nachricht des Tages ist zu lang - Maximal {} Zeichen, aktuell {}.",

View File

@ -484,6 +484,7 @@ en = {
"server-maxusernamelength-argument": "Maximum number of characters in a username (default is {})", "server-maxusernamelength-argument": "Maximum number of characters in a username (default is {})",
"server-stats-db-file-argument": "Enable server stats using the SQLite db file provided", "server-stats-db-file-argument": "Enable server stats using the SQLite db file provided",
"server-startTLS-argument": "Enable TLS connections using the certificate files in the path provided", "server-startTLS-argument": "Enable TLS connections using the certificate files in the path provided",
"server-webhook-port-argument": 'server Webhook TCP port',
"server-messed-up-motd-unescaped-placeholders": "Message of the Day has unescaped placeholders. All $ signs should be doubled ($$).", "server-messed-up-motd-unescaped-placeholders": "Message of the Day has unescaped placeholders. All $ signs should be doubled ($$).",
"server-messed-up-motd-too-long": "Message of the Day is too long - maximum of {} chars, {} given.", "server-messed-up-motd-too-long": "Message of the Day is too long - maximum of {} chars, {} given.",

View File

@ -483,6 +483,7 @@ es = {
"server-maxusernamelength-argument": "Número máximo de caracteres para el nombre de usuario (el valor predeterminado es {})", "server-maxusernamelength-argument": "Número máximo de caracteres para el nombre de usuario (el valor predeterminado es {})",
"server-stats-db-file-argument": "Habilitar estadísticas del servidor utilizando el archivo db SQLite proporcionado", "server-stats-db-file-argument": "Habilitar estadísticas del servidor utilizando el archivo db SQLite proporcionado",
"server-startTLS-argument": "Habilitar conexiones TLS usando los archivos de certificado en la ruta provista", "server-startTLS-argument": "Habilitar conexiones TLS usando los archivos de certificado en la ruta provista",
"server-webhook-port-argument": 'server Webhook TCP port', #TODO translate
"server-messed-up-motd-unescaped-placeholders": "El mensaje del dia contiene marcadores de posición sin escapar. Todos los signos $ deberían ser dobles ($$).", "server-messed-up-motd-unescaped-placeholders": "El mensaje del dia contiene marcadores de posición sin escapar. Todos los signos $ deberían ser dobles ($$).",
"server-messed-up-motd-too-long": "El mensaje del día es muy largo - máximo de {} caracteres, se recibieron {}.", "server-messed-up-motd-too-long": "El mensaje del día es muy largo - máximo de {} caracteres, se recibieron {}.",

View File

@ -483,6 +483,7 @@ fr = {
"server-maxusernamelength-argument": "Nombre maximum de caractères dans un nom d'utilisateur (la valeur par défaut est {})", "server-maxusernamelength-argument": "Nombre maximum de caractères dans un nom d'utilisateur (la valeur par défaut est {})",
"server-stats-db-file-argument": "Activer les statistiques du serveur à l'aide du fichier db SQLite fourni", "server-stats-db-file-argument": "Activer les statistiques du serveur à l'aide du fichier db SQLite fourni",
"server-startTLS-argument": "Activer les connexions TLS à l'aide des fichiers de certificat dans le chemin fourni", "server-startTLS-argument": "Activer les connexions TLS à l'aide des fichiers de certificat dans le chemin fourni",
"server-webhook-port-argument": 'server Webhook TCP port', # TODO translate
"server-messed-up-motd-unescaped-placeholders": "Le message du jour a des espaces réservés non échappés. Tous les signes $ doivent être doublés ($$).", "server-messed-up-motd-unescaped-placeholders": "Le message du jour a des espaces réservés non échappés. Tous les signes $ doivent être doublés ($$).",
"server-messed-up-motd-too-long": "Le message du jour est trop long: {}caractères maximum, {} donnés.", "server-messed-up-motd-too-long": "Le message du jour est trop long: {}caractères maximum, {} donnés.",

View File

@ -483,6 +483,7 @@ it = {
"server-maxusernamelength-argument": "Numero massimo di caratteri in un nome utente (default è {})", "server-maxusernamelength-argument": "Numero massimo di caratteri in un nome utente (default è {})",
"server-stats-db-file-argument": "Abilita la raccolta dei dati statistici nel file SQLite indicato", "server-stats-db-file-argument": "Abilita la raccolta dei dati statistici nel file SQLite indicato",
"server-startTLS-argument": "Abilita il protocollo TLS usando i certificati contenuti nel percorso indicato", "server-startTLS-argument": "Abilita il protocollo TLS usando i certificati contenuti nel percorso indicato",
"server-webhook-port-argument": 'server Webhook TCP port', # TODO translate
"server-messed-up-motd-unescaped-placeholders": "Il messaggio del giorno ha dei caratteri non 'escaped'. Tutti i simboli $ devono essere doppi ($$).", "server-messed-up-motd-unescaped-placeholders": "Il messaggio del giorno ha dei caratteri non 'escaped'. Tutti i simboli $ devono essere doppi ($$).",
"server-messed-up-motd-too-long": "Il messaggio del giorno è troppo lungo - numero massimo di caratteri è {}, {} trovati.", "server-messed-up-motd-too-long": "Il messaggio del giorno è troppo lungo - numero massimo di caratteri è {}, {} trovati.",

View File

@ -484,6 +484,7 @@ pt_BR = {
"server-maxusernamelength-argument": "Número máximos de caracteres num nome de usuário (o padrão é {})", "server-maxusernamelength-argument": "Número máximos de caracteres num nome de usuário (o padrão é {})",
"server-stats-db-file-argument": "Habilita estatísticas de servidor usando o arquivo db SQLite fornecido", "server-stats-db-file-argument": "Habilita estatísticas de servidor usando o arquivo db SQLite fornecido",
"server-startTLS-argument": "Habilita conexões TLS usando os arquivos de certificado no caminho fornecido", "server-startTLS-argument": "Habilita conexões TLS usando os arquivos de certificado no caminho fornecido",
"server-webhook-port-argument": 'server Webhook TCP port', # TODO translate
"server-messed-up-motd-unescaped-placeholders": "A Mensagem do Dia possui placeholders não escapados. Todos os sinais de $ devem ser dobrados (como em $$).", "server-messed-up-motd-unescaped-placeholders": "A Mensagem do Dia possui placeholders não escapados. Todos os sinais de $ devem ser dobrados (como em $$).",
"server-messed-up-motd-too-long": "A Mensagem do Dia é muito longa - máximo de {} caracteres, {} foram dados.", "server-messed-up-motd-too-long": "A Mensagem do Dia é muito longa - máximo de {} caracteres, {} foram dados.",

View File

@ -483,6 +483,7 @@ pt_PT = {
"server-maxusernamelength-argument": "Número máximos de caracteres num nome de utilizador (o padrão é {})", "server-maxusernamelength-argument": "Número máximos de caracteres num nome de utilizador (o padrão é {})",
"server-stats-db-file-argument": "Habilita estatísticas de servidor usando o arquivo db SQLite fornecido", "server-stats-db-file-argument": "Habilita estatísticas de servidor usando o arquivo db SQLite fornecido",
"server-startTLS-argument": "Habilita conexões TLS usando os arquivos de certificado no caminho fornecido", "server-startTLS-argument": "Habilita conexões TLS usando os arquivos de certificado no caminho fornecido",
"server-webhook-port-argument": 'server Webhook TCP port', # TODO translate
"server-messed-up-motd-unescaped-placeholders": "A Mensagem do Dia possui placeholders não escapados. Todos os sinais de $ devem ser dobrados (como em $$).", "server-messed-up-motd-unescaped-placeholders": "A Mensagem do Dia possui placeholders não escapados. Todos os sinais de $ devem ser dobrados (como em $$).",
"server-messed-up-motd-too-long": "A Mensagem do Dia é muito longa - máximo de {} caracteres, {} foram dados.", "server-messed-up-motd-too-long": "A Mensagem do Dia é muito longa - máximo de {} caracteres, {} foram dados.",

View File

@ -480,6 +480,7 @@ ru = {
"server-maxusernamelength-argument": "Максимальное число символов в именах пользователей (по умолчанию {})", "server-maxusernamelength-argument": "Максимальное число символов в именах пользователей (по умолчанию {})",
"server-stats-db-file-argument": "Включить статистику сервера в указанном файле SQLite", "server-stats-db-file-argument": "Включить статистику сервера в указанном файле SQLite",
"server-startTLS-argument": "Включить TLS-соединения используя файлы сертификатов в указанном пути", "server-startTLS-argument": "Включить TLS-соединения используя файлы сертификатов в указанном пути",
"server-webhook-port-argument": 'server Webhook TCP port', # TODO translate
"server-messed-up-motd-unescaped-placeholders": "MOTD-сообщение содержит неэкранированные спецсимволы. Все знаки $ должны быть продублированы ($$).", "server-messed-up-motd-unescaped-placeholders": "MOTD-сообщение содержит неэкранированные спецсимволы. Все знаки $ должны быть продублированы ($$).",
"server-messed-up-motd-too-long": "MOTD-сообщение слишком длинное: максимальная длина - {} символ(ов), текущая длина - {} символ(ов).", "server-messed-up-motd-too-long": "MOTD-сообщение слишком длинное: максимальная длина - {} символ(ов), текущая длина - {} символ(ов).",

View File

@ -484,6 +484,7 @@ tr = {
"server-maxusernamelength-argument": "Bir kullanıcı adındaki maksimum karakter sayısı (varsayılan {})", "server-maxusernamelength-argument": "Bir kullanıcı adındaki maksimum karakter sayısı (varsayılan {})",
"server-stats-db-file-argument": "SQLite db dosyasını kullanarak sunucu istatistiklerini etkinleştirin", "server-stats-db-file-argument": "SQLite db dosyasını kullanarak sunucu istatistiklerini etkinleştirin",
"server-startTLS-argument": "Dosya yolundaki sertifika dosyalarını kullanarak TLS bağlantılarını etkinleştirin", "server-startTLS-argument": "Dosya yolundaki sertifika dosyalarını kullanarak TLS bağlantılarını etkinleştirin",
"server-webhook-port-argument": 'server Webhook TCP port', # TODO translate
"server-messed-up-motd-unescaped-placeholders": "Günün Mesajında çıkış karaktersiz yer tutucular var. Tüm $ işaretleri iki katına çıkarılmalıdır ($$).", "server-messed-up-motd-unescaped-placeholders": "Günün Mesajında çıkış karaktersiz yer tutucular var. Tüm $ işaretleri iki katına çıkarılmalıdır ($$).",
"server-messed-up-motd-too-long": "Günün Mesajı çok uzun - maksimum {} karakter olmalı, {} verildi.", "server-messed-up-motd-too-long": "Günün Mesajı çok uzun - maksimum {} karakter olmalı, {} verildi.",

View File

@ -484,6 +484,7 @@ zh_CN = {
"server-maxusernamelength-argument": "用户名中的最大字符数(默认为{})。", "server-maxusernamelength-argument": "用户名中的最大字符数(默认为{})。",
"server-stats-db-file-argument": "使用提供的SQLite db文件启用服务器统计功能", "server-stats-db-file-argument": "使用提供的SQLite db文件启用服务器统计功能",
"server-startTLS-argument": "使用提供的路径中的证书文件启用TLS连接", "server-startTLS-argument": "使用提供的路径中的证书文件启用TLS连接",
"server-webhook-port-argument": 'server Webhook TCP port', # TODO translate
"server-messed-up-motd-unescaped-placeholders": "每日信息中有未转义的占位符。所有 $ 字符应当重复两遍 ($$).", "server-messed-up-motd-unescaped-placeholders": "每日信息中有未转义的占位符。所有 $ 字符应当重复两遍 ($$).",
"server-messed-up-motd-too-long": "每日信息过长 - 最大{}个chars, 给出的长度{}", "server-messed-up-motd-too-long": "每日信息过长 - 最大{}个chars, 给出的长度{}",

View File

@ -892,3 +892,4 @@ class ConfigurationGetter(object):
self._argparser.add_argument('--max-username-length', metavar='maxUsernameLength', type=int, nargs='?', help=getMessage("server-maxusernamelength-argument").format(constants.MAX_USERNAME_LENGTH)) self._argparser.add_argument('--max-username-length', metavar='maxUsernameLength', type=int, nargs='?', help=getMessage("server-maxusernamelength-argument").format(constants.MAX_USERNAME_LENGTH))
self._argparser.add_argument('--stats-db-file', metavar='file', type=str, nargs='?', help=getMessage("server-stats-db-file-argument")) self._argparser.add_argument('--stats-db-file', metavar='file', type=str, nargs='?', help=getMessage("server-stats-db-file-argument"))
self._argparser.add_argument('--tls', metavar='path', type=str, nargs='?', help=getMessage("server-startTLS-argument")) self._argparser.add_argument('--tls', metavar='path', type=str, nargs='?', help=getMessage("server-startTLS-argument"))
self._argparser.add_argument('--webhook-port', metavar='webhook_port', type=str, nargs='?', help=getMessage("server-webhook-port-argument"))

View File

@ -10,6 +10,7 @@ class WebAPI(resource.Resource):
self._factory = factory self._factory = factory
def render_GET(self, request): def render_GET(self, request):
# return a simple form for browsers
return (b"<!DOCTYPE html><html><head><meta charset='utf-8'>" return (b"<!DOCTYPE html><html><head><meta charset='utf-8'>"
b"<title></title></head><body>" b"<title></title></head><body>"
b"<form method='POST'><input name='room'><input name='url'></form>") b"<form method='POST'><input name='room'><input name='url'></form>")