{ "info": { "author": "Xyoz Netsphere", "author_email": "nanoowl@xyooz.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "Projektarbeit\n=============\n\nSprache: python3.6\n\nEntwicklung eines TeamSpeak3 (TS3) Bots, welcher mit gleicher (bestehender) Konfiguration in mehreren Channeln eines TS3\nServers gleichzeit aktiv ist.\n\nApplikation\n-----------\n\nts3ekko\n~~~~~~~\n\n* nimmt Commands \u00fcber das Chat Interface war (shell-\u00e4hnlich)\n\n * bsp syntax: `!queue [-s|--source-type=] [-p|--position=] *`\n * bsp: `!queue -s youtube -p 1 youtube.com/watch?v=0xC0FFEE youtube.com/watch?v=0xdlqwidoiw`\n\n\nControl Commands\n''''''''''''''''\n\n.. list-table::\n :widths: 25 75\n :header-rows: 1\n\n * - Command\n - Info\n * - `!spawn`\n - Spawned neue Instanz des Bots im Channel, in dem der Invoker aktuell ist (\u00dcbermittlung via privater Nachricht\n an irgendeine andere Instanz auf dem Server)\n * - `!despawn`\n - Despawned die Instanz, zu der dieser Command gesendet wurde\n * - `!join`\n - Bewegt den Bot in den Channel des Invokers. [CHANGE: command hinzugef\u00fcgt]\n\n\n\nAudio Commands\n''''''''''''''\n\n.. list-table::\n :widths: 25 75\n :header-rows: 1\n\n * - Command\n - Info\n * - `!queue [-p|--position=] *`\n - F\u00fcgt neuen Track der instanz-gebundenen Queue zu. Als Quellen sind YouTube sowie lokal (filesystem) m\u00f6glich (`-s`) [CHANGE: `--source-type` entfernt, da mpv \u00fcber auto-detection verf\u00fcgt]\n\n * - `!skip []`\n - \u00dcberspringt Anzahl von Tracks in queue. Defaults zum n\u00e4chsten Track (skip aktuellen)\n * - `!media [queue]`\n - Zeigt Informationen \u00fcber aktuellen Track an. Wenn `queue` keyword angegeben ist, dann werden Informationen\n \u00fcber die Tracks in der Queue angezeigt\n * - `!mediaalias set *`\n - Erstellt einen Alias f\u00fcr eine beliebige Anzahl von URIs. Alias kann anstelle von URIs verwendet werden,\n daf\u00fcr $aliasname schreiben. Media Alias sind nicht an eine Bot Instanz gebunden.\n * - `!mediaalias get `\n - Zeigt Informationen (Inhalt, Ersteller) zum Alias an\n * - `!mediaalias delete `\n - L\u00f6scht den Alias\n * - `!mediaalias append *`\n - H\u00e4ngt Tracks an den Inhalt des Alias an\n * - `!pausemedia`\n - Pausiert aktuelle Wiedergabe\n * - `!resumemedia`\n - F\u00e4hrt mit Wiedergabe fort\n * - `!clearqueue`\n - Entfernt alle Tracks aus der Queue\n * - `!volume reset`\n - Setzt Volume der Bot Instanz auf den Standardwert zur\u00fcck\n * - `!volume `\n - Setzt Volume der Bot Instant auf den gew\u00fcnschten Prozentwert\n\nText Helper Commands\n''''''''''''''''''''\n\nHierbei handelt es sich um eine Art Text-Alias/Command System. Nutzer k\u00f6nnen einen beliebigen Text (z.B. Links oder\nErkl\u00e4rungen) an einen Alias h\u00e4ngen. Dieser Alias kann dann als Bot-Command verwendet werden. Sollte eine Nachricht\ndem Alias gleichen, dann wird der Bot den damit verbunden Text in den selben Kommunikationschannel schreiben.\nSo m\u00fcssen Links oder Erkl\u00e4rungen nicht immer neu kopiert und in den Chat geschrieben werden,\nder Alias reicht (gesehen von der Benutzerseite).\n\n.. list-table::\n :widths: 25 75\n :header-rows: 1\n\n * - Command\n - Info\n * - `!textalias set [-p|--permanent] `\n - Erstellt einen Bot-Instanz gebundenen (ungebunden/permanent durch `-p`) Alias\n * - `!textalias get [-p|--permanent] `\n - Liest den Inhalt eines Bot-Instanz gebundenen (ungebunden/permanent durch `-p`) Alias\n (ggf. mit Zusatzinformationen bzgl. Ersteller) aus\n * - `!textalias delete [-p|--permanent] `\n - L\u00f6scht einen Bot-Instanz gebundenen (ungebunden/permanent durch `-p`) Alias\n * - `!textalias list-temporary`\n - Listet alle Alias auf, die an die aktuelle Bot-Instanz gebunden sind\n * - `!textalias list-permanent`\n - Listet alle Alias auf, die nicht an die aktuelle Bot-Instanz gebunden sind (ungebunden/permanent)\n * - `!~ `\n - Kurzform f\u00fcr `!textalias set`, nur Bot-Instanz gebundene Alias\n * - `!~`\n - Aufruf des Alias\n\nPermissions\n'''''''''''\n\nEs soll m\u00f6glich sein, Befehle nur bestimmten Personen oder Personengruppen zug\u00e4nglich zu machen.\nAls Identifikationsmerkmal werden daf\u00fcr die TS3 Eigenschaften des Command Invokers benutzt (Server Gruppen,\nChannel Gruppen, Identit\u00e4t, etc).\n\nEin *m\u00f6gliches* Command Interface f\u00fcr Permissions k\u00f6nnte wie folgt aussehen. Diese Commands wurden mit dem Hintergrund\nzusammengestellt, dass es eine feste Menge von Permissions gibt, welche jegliche zu regulierenden Commands abdeckt.\nJede Permission ist eindeutig \u00fcber einen alphanumerischen Namen (inklusive Unterstriche, Punkte) identifizierbar\n(folgt '' genannt). Punkte in Namen von Permissions werden zur hierarchischen Strukturierung verwendet\n(Bsp: audio.mediaalias.append).\n\n.. list-table::\n :widths: 25 75\n :header-rows: 1\n\n * - Command\n - Info\n * - `!permission add [-i|--identity | -s|--servergroup | -c|--channelgroup] `\n - F\u00fcgt eine Identit\u00e4t, Server- oder Channel Gruppe zur Liste der erlaubten Entit\u00e4ten f\u00fcr diese Permission hinzu\n * - `!permission delete [-i|--identity | -s|--servergroup | -c|--channelgroup] `\n - Entfernt eine Identit\u00e4t, Server- oder Channel Gruppe von der Liste der erlaubten Entit\u00e4ten f\u00fcr diese Permission\n * - `!permission get `\n - Zeige alle assozierten Entit\u00e4ten der Permission\n * - `!permission list [-r] `\n - Zeige Namen aller direkten Permissions in diesem Pfad (Punkt-Separierung), `-r` f\u00fcr rekursive Darstellung\n * - `!permission info `\n - Zeige Informationen zur Permission (z.B. Benutzung, verwandte Permissions, Doku)\n\nOb dieses Command Interface in diesem Umfang oder dieser Art implementiert wird, ist jedoch noch fraglich.\n\n\nts3ekkomanage\n~~~~~~~~~~~~~\n\n* kontrolliert die verschiedenen docker container f\u00fcr die einzelnen channel\n* spawn von neuen containern f\u00fcr angeforderte channel (`!spawn`)\n* de-spawn von containern f\u00fcr channel, in denen der bot nicht mehr erw\u00fcnscht ist (`!despawn`)\n\n\n\nDeployment\n----------\n\n* Vagrant Linux VM (libvirt), provisioniert mit ansible\n\nDocker Images\n-------------\n\nTS3 Client + ts3ekko\n~~~~~~~~~~~~~~~~~~~~\n\nDieses Image representiert eine Instanz des Bots. Pro Instanz des Bots wird ein Container dieses Images existieren.\n\nts3ekkomanage\n~~~~~~~~~~~~~\n\nImage f\u00fcr die Managementinstanz des Bots. Nur ein Container dieses Images wird pro TeamSpeak3 Server ben\u00f6tigt.\n\nVermutlich verwendete, bedeutende Bibliotheken\n----------------------------------------------\n\n* ts3query/ts3 f\u00fcr teilweise Interaktion (non-audio/non-settings) mit dem TS3 Client \u00fcber das ClientQuery interface\n* docker-py f\u00fcr die Interaktion von ts3ekkomanage mit dem Docker Daemon\n* youtube-dl/vlc (o.\u00c4.) f\u00fcr das streamen der Medien zu den lokalen Audiodevices\n\n|\n|\n|\n|\n|\n\n*README-de.rst*", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/networkjanitor/ts3ekkoclient", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ts3ekkoclient", "package_url": "https://pypi.org/project/ts3ekkoclient/", "platform": "", "project_url": "https://pypi.org/project/ts3ekkoclient/", "project_urls": { "Homepage": "https://gitlab.com/networkjanitor/ts3ekkoclient" }, "release_url": "https://pypi.org/project/ts3ekkoclient/0.0.11/", "requires_dist": null, "requires_python": "", "summary": "ts3ekkoclient", "version": "0.0.11" }, "last_serial": 3653254, "releases": { "0.0.11": [ { "comment_text": "", "digests": { "md5": "9d569251518e75b68366efd7eb929e7a", "sha256": "cf8eeac00e1bd52b29dd8dbf92cfb6831655dcececf34e3b083dfc07834b53f8" }, "downloads": -1, "filename": "ts3ekkoclient-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "9d569251518e75b68366efd7eb929e7a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 38857, "upload_time": "2018-03-09T04:42:30", "url": "https://files.pythonhosted.org/packages/9f/ce/7bb24caf7160d9e5c0eb6ab9b9c297cd1f129ccb6e9258c539d2a6331d54/ts3ekkoclient-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d787d46cd1646dc04db2882c5f27728", "sha256": "e27006ef9c45cf9ca2d5a4c08e9a1669a41004a8465f3e91e3f57ea85a19e1ed" }, "downloads": -1, "filename": "ts3ekkoclient-0.0.11.tar.gz", "has_sig": false, "md5_digest": "9d787d46cd1646dc04db2882c5f27728", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33638, "upload_time": "2018-03-09T04:42:28", "url": "https://files.pythonhosted.org/packages/8e/bf/726c1d852186db7dee9623ae80a97ea9db5f90b78f58fb0bfc9fd764bfee/ts3ekkoclient-0.0.11.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "2bd26c8289008467ed0d9587eb5c68ba", "sha256": "4ba989e948f885539b98ece06b44a86e699f8e6b1df28a38a80a4ca4d751ec50" }, "downloads": -1, "filename": "ts3ekkoclient-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2bd26c8289008467ed0d9587eb5c68ba", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 35531, "upload_time": "2018-01-13T06:37:16", "url": "https://files.pythonhosted.org/packages/0e/19/34168efcef0c0ea81d85198f16e4deae8bfe250376d604e13667f692bf94/ts3ekkoclient-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48c9ec9416bae397db2cb69c915f22a0", "sha256": "39840300f7c33d11d03b9c5230b2efd834005898046c90250e94af7a48a03982" }, "downloads": -1, "filename": "ts3ekkoclient-0.0.8.tar.gz", "has_sig": false, "md5_digest": "48c9ec9416bae397db2cb69c915f22a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28810, "upload_time": "2018-01-13T06:37:14", "url": "https://files.pythonhosted.org/packages/a3/b1/87b98be76e37c6877b9307c1f05a31bae2f67ddef51846f9620cf3f00a2a/ts3ekkoclient-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9d569251518e75b68366efd7eb929e7a", "sha256": "cf8eeac00e1bd52b29dd8dbf92cfb6831655dcececf34e3b083dfc07834b53f8" }, "downloads": -1, "filename": "ts3ekkoclient-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "9d569251518e75b68366efd7eb929e7a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 38857, "upload_time": "2018-03-09T04:42:30", "url": "https://files.pythonhosted.org/packages/9f/ce/7bb24caf7160d9e5c0eb6ab9b9c297cd1f129ccb6e9258c539d2a6331d54/ts3ekkoclient-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d787d46cd1646dc04db2882c5f27728", "sha256": "e27006ef9c45cf9ca2d5a4c08e9a1669a41004a8465f3e91e3f57ea85a19e1ed" }, "downloads": -1, "filename": "ts3ekkoclient-0.0.11.tar.gz", "has_sig": false, "md5_digest": "9d787d46cd1646dc04db2882c5f27728", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33638, "upload_time": "2018-03-09T04:42:28", "url": "https://files.pythonhosted.org/packages/8e/bf/726c1d852186db7dee9623ae80a97ea9db5f90b78f58fb0bfc9fd764bfee/ts3ekkoclient-0.0.11.tar.gz" } ] }