Skip to content
This repository has been archived by the owner on Jun 25, 2022. It is now read-only.

pyTSon 1.1.0 for TS3 3.1 (apiVersion 21)

Compare
Choose a tag to compare
@pathmann pathmann released this 27 Jan 15:40
· 253 commits to master since this release

Caution: The directory structure changed, see the upgrade tips at the end!

Changelog:

  • the ts3 module got renamed to ts3lib (to not clash with packages on pypi)
  • users can now download plugins from online repositories within the app
  • plugin developers can maintain their own repository (recommended) or merge directly into the "pyTSon master" (more infos on repositories can be found here: https://github.com/pathmann/pyTSon_repository/blob/master/README.md)
  • new plugin method "menuCreated" which is called, if the menuItems were set up
  • you can now decide to load menus from disabled plugins on startup, so you don't have to restart pyTSon when activating a plugin with menus
  • added github octicons iconpack
  • added icons to pyTSon's menuitems
  • the documentation was heavily updated, check the pdf in the docs directory or https://pytson.4qt.de
  • plugins are no longer restricted to consist of only one file, instead every plugin should be a python package in pyTSon/scripts (if your plugin is one file: create a directory, move your script into it and rename it to init.py); repositories can contain zipfiles which will be extracted in the app on installation (if you don't use the pypi-dependency feature of the repository and you want to deliver dependencies in your package, use relative imports instead of adding your local include directory to sys.path)
  • pip is now used for dependency handling
  • added an interpreter (no interactive mode)
  • Plugin infrastructure overhauled:
    • the python standard library is now located in pyTSon/lib/python3.5
    • pyTSon/include can be seen as a local sitepack dir
    • plugins are now python packages in pyTSon/scripts (each plugin in a subdirectory)
    • interpreter python(.exe) added in pyTSon/ (won't run from other directory!)
  • added a simple api to query the TeamSpeak 3 client's settings database with ts3client.Config
  • added api to work with IconPacks with ts3client.IconPack
  • setupUi (and others) will now load icons from an iconpack if widgets contain a dynamic string property called 'pytsonicon' containing the variable to the icon in the iconpack, instead you can use a string like "octicons:filename.png" which sets filename.png from the bundled octicons pack as icon
  • config moved to subdirectory ~/.ts3client/pyTSon; if plugins use configfiles, they should also use this directory (you can use python.getConfigPath("myconfigname.conf"), which will join the pathes accordingly)
  • added convenience functions getConfigPath and getPluginPath (in module pytson) which work like os.path.join with the specific ts3 path prefixed before
  • users can now remove plugins within the ui of the app
  • if a new version (of the python standard library) is installed, the old one will be removed automatically
  • as a result of the above, it is not longer supported to have multiple releases installed (for multiple architectures)
  • the example scripts are no longer contained in the install package but can be pulled from the "pyTSon master" repository
  • pytsonui.getValues is dropped, plugin developers need to create their own dialog classes
  • it's no longer supported to run two architecture versions of pyTSon simultaneously (on Linux and Windows, if your plugins are installed to your home/appdata directory

And many other minor changes.

Upgrade tips (adapt the pathes depending on your platform):

  • backup everything in ~/.ts3client/plugins/pyTSon/scripts (except ts3plugin.py)
  • backup your config files, at last pyTSon's config in ~/.ts3client/pyTSon.conf
  • wipe everything in ~/.ts3client/plugins/pyTSon
  • install release 1.1.0
  • copy the config file(s) to ~/.ts3client/pyTSon (mkdir first or start the client once and close again)
  • create a directory for each of your scripts under ~/.ts3client/plugins/pyTSon/scripts, move each script in their subdirectory and rename them to init.py or do other pythonic package management