Skip to content

Changelog

New Features:

  • Testing: Standard stream encoding (eg. sys.stdout) is utf-8 now (this change should only affect Windows, it's default on all other platforms since the beginning)
  • Callbackproxies can now affect the global return value (if the callback has one)
  • Exceptions (in plugin callbacks) are now printed to verbose log
  • Added convenience function getConnectionVariable in ts3lib module
  • SSL support is now statically linked (on Unix systems)

Bugfixes:

  • Under specific circumstances a plugin with hotkeys could not be deactivated
  • Some lists coming from the C SDK were not correctly converted to a pythonlist
  • Emoticon settings from Iconpacks are now loaded with utf-8 encoding
  • ts3lib.getChannelIDFromChannelNames works now as expected
  • Iconpacks with duplicate entries are now loaded correctly
  • There was a typo in getClientVariable
  • Fixed some false documentation
Assets 7

@pathmann pathmann released this Sep 13, 2017 · 43 commits to master since this release

Changelog

New Features:

  • pytsonui.setupUi can now take a new keyword argument extraWidgets with python implemented widgets to be used in ui files
  • ts3widgets.Serverview is now constructable by setupUi (schid parameter is now a keyword argument)
  • added some convenience functions to query variables (getChannelVariable, getClientVariable, getClientSelfVariable, getServerVariable) which will choose (in most cases) the right ctype function
  • plugincommands have now sender integrity builtin pyTSon (see _plugincmd.py for limitations and additional documentation)

Bugfixes:

  • ts3widgets.ServerviewModel will now react to kicked clients accordingly
  • Fixed a possible crash in initHotkeys
  • Adopted the variable handling of the plugin sdk's function requestClientSetWhisperList
  • Fixed a crash if some initial imports on pyTSon's initiation failed
Assets 7

@pathmann pathmann released this May 19, 2017 · 81 commits to master since this release

Changelog:

New Features:

  • pytsonui.setupUi will now center obj to its parent (if it has one)

Bugfixes:

  • Fixed bundling of files (settings are accessible again)
  • Some small bugfixes
  • pythonqt_app: fixed string allocation of pathes
Assets 17

@pathmann pathmann released this May 12, 2017 · 95 commits to master since this release

EDIT: There was a bug in the bundle script which made the config ui inaccessible. If you already downloaded the release, pls redownload the one attached here.

Changelog:

New Features:

  • Added functions getVersion and getCurrentApiVersion to module pytson to query the current versions
  • Added callbackproxies to register classes to receive ts3 events outside ts3plugin objects
  • ts3plugin and PluginHost live now in different modules
  • Added ServerCache class to module ts3client to use the client's cached icons
  • Added CountryFlags class to module ts3client to use the client's flag icons
  • Added package ts3widgets
  • Added module serverview to ts3widgets to display a channel-client-tree with QWidgets
  • Added module filetransfer to ts3widgets to display a filebrowser and filetransfer dialogs with QWidgets
  • Added simple signal-slot implementation with module signalslot
  • Added module PythonQt.pytson
  • Added EventFilterObject to PythonQt.pytson to use Qt's eventfilter system
  • Events called from another thread than the mainthread are now called asynchronous (from the mainthread) in pyTSon (this should make pyTSon alot more stable)
  • Re-added onUserLoggingMessageEvent
  • Re-added onFileTransferStatusEvent
  • pytsonui is now a package
  • all python code is now conform to PEP8 (with small exceptions :) )
  • pyTSon is now translatable
  • Added a german translation
  • Added pytson.tr and pytson.Translatable as translate function resp. baseclass
  • plugin authors might use pylupdate.py to extract translatable strings from uifiles and python code
  • Users now may activate verbose logging
  • Users now may manage sitepackages in the include directory in the settings dialog
  • Added some rare constants from the original pluginsdk to ts3defines module
  • functions in pytsonui now accept a new parameter pluginicons (see the docs for more information)
  • pytsonui.setupUi can now load the original designed class of a Qt Designer file
  • pytsonui.retrieveAllWidgets will now load QButtonGroup and QAction as well
  • Created pythonqt_app to allow testing PythonQt uis. pythonqt_app is a standalone app emulating pyTSon's environment.
  • Repository URLs can now have redirects
  • Repository plugins can now be extracted from a subdirectory in a zipped file

Bugfixes:

  • Unicode strings are now handled correctly in infoData
  • infoData is now only called on plugins, if the method exists
  • if infoData returns None, it is ignored now
  • menuitems are now sorted by their plugins names
  • functions of the ts3lib module returning a tuple containing the errorcode and some value, now return None as value on error
  • Fixed the internal conversion of bookmarklists, so ts3lib.getBookmarkList should work now
  • Emoticons of non-zipped Iconpacks in ts3client.IconPack are now loaded correctly
  • pytsonui.retrieveAllWidgets now ignores the subwidgets of combined widgets (like QSpinBox)
  • the scripting console does not use wordwrapping anymore, which should fix some odd behaviour
  • python caches are not bundled anymore
  • Fixed a bug where installation of plugins without dependencies from a repository was not possible
  • Fixed some bugs in PythonQt around QAbstractItemModel
  • Various updates to the documentation
  • Various small bugfixes
Assets 12

@pathmann pathmann released this Jan 27, 2017 · 237 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
Assets 7

@pathmann pathmann released this Dec 21, 2016 · 330 commits to master since this release

Changelog:

  • removed onUserLoggingMessageEvent, onFileTransferStatusEvent (they are called from another thread, so this will help stabilizing pyTSon)
  • requestAutoload is now required for all plugins to be loaded
  • added a ts3help module which inculdes a help(obj) function, which displays help information on obj, especially if obj is a ts3 function
  • you can now check in your ts3 client, if there is a newer release on my github release page
  • pytsonui.setupUi can now handle all childwidgets (instead of passing a list of tuples), check the docstring for more information
  • pytsonui functions are now in pyTSon's documentation
  • reworked configdialog (switched to a grid layout)
  • added an ipcplugin to communicate with other applications
  • ScriptingConsole:
    • tabcompletion works now with other splitting characters than just spaces
    • you can now specify a startup script
    • the buttons in settingsdialog should now be colorized correctly

And many other minor changes.

Assets 7

@pathmann pathmann released this Nov 1, 2016 · 387 commits to master since this release

Changelog:

  • added some example plugins (see the scripts directory)
  • empty infoData will be ignored from now on, you should set infoTitle to None, if your script does not show any infoData
  • all python plugin code is now wrapped in try-except-blocks (exceptions in clientlog)
  • added pytsonui.getValues as convenience function to add simple configdialogs (recommended way is still to create dialogclasses)
  • hotkeys and menuitems are now reloaded, if the python plugin or all python plugins are reloaded
  • plugins are now reloaded, even if they offer a menuitem and/or hotkey
  • quintptr is now registered as metatype (eg. for use with internalIDs in QAbstractItemModels)
  • QAbstractItemModel/QModelIndex can now contain QObject-based objects as internalPointer (classic Qt type is void*)
  • bundle contains docs as pdf now

EDIT: Reuploaded windows releases, just fixed escaping in package.ini

Assets 7

@pathmann pathmann released this Sep 19, 2016 · 406 commits to master since this release

Changelog:

  • Removed callbacks ts3plugin_onCustom3dRolloffCalculationWaveEvent and ts3plugin_onCustom3dRolloffCalculationClientEvent (as long as pyTSon can't handle callbacks from other threads than the main one)
  • Configuration window now raises, if already exist and clicked again in menu
Assets 7

@pathmann pathmann released this Aug 25, 2016 · 412 commits to master since this release

Changelog:

  • Added a mac build
  • Updated to api version 21 (Client Version 3.1 beta)
  • Updated to Qt 5.6.1 (but only Core, Gui, Widgets, Network, Sql and UITools modules are wrapped, more to come later)
  • On Linux and Mac, the python lib is loaded from the plugin directory (on Windows, you still have to move the lib to the client install root)
  • include/Lib has now a architecture suffix on Linux and Windows (this is necessary, if you have both client architectures installed)
  • Fixed pos1/home key button in scripting console
  • Fixed a false indentation on tabcomplete in scripting console
  • Added function ts3.getPluginID (there are no real use-cases for this, because the plugin id is not needed to call api functions from python, it's always added by default in the C backend)
Assets 7

@pathmann pathmann released this Aug 8, 2016 · 434 commits to master since this release

Changelog:

  • python is now linked shared
  • using python 3.5.2
  • infoData will now work as intended
  • the settingsbutton will now be enabled/disabled accordingly
  • after reloading, all previously running plugins are started again
  • plugins are sorted by name in configdialog
  • menus and hotkeys are working now
  • fixed a crash, when configdialog and/or shell are opened while reloading pyTSon
  • and some other minor fixes

ATTENTION:

You need to delete the directory <TeamSpeak 3 client install dir>/plugins/pyTSon/include/Lib

Assets 6
You can’t perform that action at this time.