home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / TeamSpeak / TeamSpeak3-Client-win32-3.0.0.exe / plugins / clientquery_plugin / examples / connectbookmark.py < prev    next >
Text File  |  2011-06-21  |  2KB  |  79 lines

  1. #
  2. # TeamSpeak 3 ClientQuery example
  3. # Copyright (c) 2010 TeamSpeak Systems GmbH
  4. #
  5. # Demonstration how to read the TeamSpeak 3 client bookmark file and connect to the first bookmark UID
  6. #
  7.  
  8. import ts3paths, os, subprocess
  9.  
  10. #
  11. # Get list of bookmarks from bookmarks.ini in TeamSpeak 3 client config folder
  12. #    
  13. def getTS3Bookmarks():
  14.     # Get paths to bookmarks.ini
  15.     configPath = ts3paths.getTS3ClientConfigPath()
  16.     bookmarksIni = configPath + r'\bookmarks.ini'
  17.     if not os.path.exists(bookmarksIni):
  18.         print 'TeamSpeak 3 client bookmarks file not found'
  19.         return
  20.     # Read bookmarks.ini
  21.     f = open(bookmarksIni, 'r')
  22.     s = f.read()
  23.     f.close()
  24.     lines = s.split('\n')
  25.     # Read bookmark names and uuids
  26.     names = {}
  27.     uuids = {}
  28.     for l in lines:
  29.         try:
  30.             n = int(l.split('\\')[0])
  31.         except ValueError:
  32.             continue
  33.         if l.startswith('%d\Name' % n):
  34.             names[n] = l.split('=')[1]
  35.         elif l.startswith('%d\Uuid' % n):
  36.             uuids[n] = l.split('=')[1]
  37.     # Merge names and uuids. Reason for two-step process is that it's not guaranteed that <n>\Name comes before <n>\Uuid in bookmarks.ini
  38.     bookmarks = {}
  39.     for n in names:
  40.         bookmarks[n] = (names[n], uuids[n])
  41.     return bookmarks
  42.  
  43. #
  44. # Start TeamSpeak 3 client if found and connect to the specified bookmark uuid.
  45. #
  46. def startTS3Client(uuid):
  47.     binaryPath = ts3paths.getTS3ClientBinaryPath()
  48.     # TEST STUFF
  49.     binaryPath = 'M:/projects/ts3/teamspeakLagos/client.exe'
  50.     # /TEST STUFF
  51.     if not binaryPath:
  52.         print 'TS3 Client binary not found'
  53.         return
  54.     cmd = '""%s" "connectbookmark=%s""' % (binaryPath, uuid)  # Windows wants each path and parameter quoted and the whole command double-quoted
  55.     print cmd
  56.     subprocess.Popen(cmd, shell=True)
  57.     
  58. def main():
  59.     bookmarks = getTS3Bookmarks()
  60.     for n in bookmarks:
  61.         print '%d\t%s' % (n, bookmarks[n][0])
  62.     print
  63.     s = raw_input('Select bookmark number to connect to: ')
  64.     try:
  65.         n = int(s)
  66.     except ValueError:
  67.         print 'Not a number'
  68.         return
  69.     try:
  70.         uuid = bookmarks[n][1]
  71.     except KeyError:
  72.         print 'Unknown bookmark number:', n
  73.         return
  74.     print 'Connecting to bookmark uuid: %s' % uuid
  75.     startTS3Client(uuid)
  76.     
  77. if __name__ == '__main__':
  78.     main()
  79.