gTTS-token-1.1.1/0000755000000000000000000000000013066025143012147 5ustar rootrootgTTS-token-1.1.1/gtts_token/0000755000000000000000000000000013066025143014330 5ustar rootrootgTTS-token-1.1.1/gtts_token/__init__.py0000666000000000000000000000000012653166046016444 0ustar rootrootgTTS-token-1.1.1/gtts_token/gtts_token.py0000666000000000000000000000506312725076772017112 0ustar rootroot# -*- coding: utf-8 -*- import calendar import math import time import requests import re class Token: """ Token (Google Translate Token) Generate the current token key and allows generation of tokens (tk) with it Python version of `token-script.js` itself from translate.google.com """ SALT_1 = "+-a^+6" SALT_2 = "+-3^+b+-f" def __init__(self): self.token_key = None def calculate_token(self, text, seed=None): """ Calculate the request token (`tk`) of a string :param text: str The text to calculate a token for :param seed: str The seed to use. By default this is the number of hours since epoch """ if seed is None: seed = self._get_token_key() [first_seed, second_seed] = seed.split(".") try: d = bytearray(text.encode('UTF-8')) except UnicodeDecodeError: # This will probably only occur when d is actually a str containing UTF-8 chars, which means we don't need # to encode. d = bytearray(text) a = int(first_seed) for value in d: a += value a = self._work_token(a, self.SALT_1) a = self._work_token(a, self.SALT_2) a ^= int(second_seed) if 0 > a: a = (a & 2147483647) + 2147483648 a %= 1E6 a = int(a) return str(a) + "." + str(a ^ int(first_seed)) def _get_token_key(self): if self.token_key is not None: return self.token_key timestamp = calendar.timegm(time.gmtime()) hours = int(math.floor(timestamp / 3600)) response = requests.get("https://translate.google.com/") line = response.text.split('\n')[-1] tkk_expr = re.search(".*?(TKK=.*?;)W.*?", line).group(1) a = re.search("a\\\\x3d(-?\d+);", tkk_expr).group(1) b = re.search("b\\\\x3d(-?\d+);", tkk_expr).group(1) result = str(hours) + "." + str(int(a) + int(b)) self.token_key = result return result """ Functions used by the token calculation algorithm """ def _rshift(self, val, n): return val >> n if val >= 0 else (val + 0x100000000) >> n def _work_token(self, a, seed): for i in range(0, len(seed) - 2, 3): char = seed[i + 2] d = ord(char[0]) - 87 if char >= "a" else int(char) d = self._rshift(a, d) if seed[i + 1] == "+" else a << d a = a + d & 4294967295 if seed[i] == "+" else a ^ d return a gTTS-token-1.1.1/gtts_token/version.py0000666000000000000000000000002712725077644016410 0ustar rootroot__version__ = '1.1.1' gTTS-token-1.1.1/setup.py0000666000000000000000000000224112725073000013660 0ustar rootroottry: from setuptools import setup except ImportError: from distutils.core import setup exec(open('gtts_token/version.py').read()) setup( name='gTTS-token', version=__version__, author='Boudewijn van Groos', author_email='boudewijn@vangroos.nl', url='https://github.com/boudewijn26/gTTS-token', packages=['gtts_token'], license='MIT', description='Calculates a token to run the Google Translate text to speech', long_description=open('README.md').read(), install_requires=[ "requests" ], classifiers=[ 'Environment :: Console', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: MacOS :: MacOS X', 'Operating System :: Unix', 'Operating System :: POSIX', 'Operating System :: POSIX :: Linux', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Topic :: Software Development :: Libraries', 'Topic :: Multimedia :: Sound/Audio :: Speech' ], ) gTTS-token-1.1.1/PKG-INFO0000666000000000000000000000271412725077672013273 0ustar rootrootMetadata-Version: 1.1 Name: gTTS-token Version: 1.1.1 Summary: Calculates a token to run the Google Translate text to speech Home-page: https://github.com/boudewijn26/gTTS-token Author: Boudewijn van Groos Author-email: boudewijn@vangroos.nl License: MIT Description: gTTS-token ==== **gTTS-token** (Google Text to Speech token): A python implementation of the token validation of Google Translate [![Build Status](https://travis-ci.org/Boudewijn26/gTTS-token.svg?branch=master)](https://travis-ci.org/Boudewijn26/gTTS-token) Install ------- pip install gTTS-token Description ------- Google Translate requires a tk param when making a request to its translate API. This project provides an implementation for that algorithm in Python. Platform: UNKNOWN Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: Unix Classifier: Operating System :: POSIX Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: Multimedia :: Sound/Audio :: Speech gTTS-token-1.1.1/setup.cfg0000666000000000000000000000010012725077672014002 0ustar rootroot[egg_info] tag_svn_revision = 0 tag_build = tag_date = 0 gTTS-token-1.1.1/README.md0000666000000000000000000000075412653167256013455 0ustar rootrootgTTS-token ==== **gTTS-token** (Google Text to Speech token): A python implementation of the token validation of Google Translate [![Build Status](https://travis-ci.org/Boudewijn26/gTTS-token.svg?branch=master)](https://travis-ci.org/Boudewijn26/gTTS-token) Install ------- pip install gTTS-token Description ------- Google Translate requires a tk param when making a request to its translate API. This project provides an implementation for that algorithm in Python.gTTS-token-1.1.1/MANIFEST.in0000666000000000000000000000005012647160770013716 0ustar rootrootinclude README.md include CHANGES.txt gTTS-token-1.1.1/gTTS_token.egg-info/0000755000000000000000000000000013066025143015662 5ustar rootrootgTTS-token-1.1.1/gTTS_token.egg-info/requires.txt0000666000000000000000000000001012725077672020274 0ustar rootrootrequestsgTTS-token-1.1.1/gTTS_token.egg-info/PKG-INFO0000666000000000000000000000271412725077672017006 0ustar rootrootMetadata-Version: 1.1 Name: gTTS-token Version: 1.1.1 Summary: Calculates a token to run the Google Translate text to speech Home-page: https://github.com/boudewijn26/gTTS-token Author: Boudewijn van Groos Author-email: boudewijn@vangroos.nl License: MIT Description: gTTS-token ==== **gTTS-token** (Google Text to Speech token): A python implementation of the token validation of Google Translate [![Build Status](https://travis-ci.org/Boudewijn26/gTTS-token.svg?branch=master)](https://travis-ci.org/Boudewijn26/gTTS-token) Install ------- pip install gTTS-token Description ------- Google Translate requires a tk param when making a request to its translate API. This project provides an implementation for that algorithm in Python. Platform: UNKNOWN Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: Unix Classifier: Operating System :: POSIX Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: Multimedia :: Sound/Audio :: Speech gTTS-token-1.1.1/gTTS_token.egg-info/dependency_links.txt0000666000000000000000000000000112725077672021753 0ustar rootroot gTTS-token-1.1.1/gTTS_token.egg-info/SOURCES.txt0000666000000000000000000000041512725077672017571 0ustar rootrootMANIFEST.in README.md setup.py gTTS_token.egg-info/PKG-INFO gTTS_token.egg-info/SOURCES.txt gTTS_token.egg-info/dependency_links.txt gTTS_token.egg-info/requires.txt gTTS_token.egg-info/top_level.txt gtts_token/__init__.py gtts_token/gtts_token.py gtts_token/version.pygTTS-token-1.1.1/gTTS_token.egg-info/top_level.txt0000666000000000000000000000001312725077672020431 0ustar rootrootgtts_token