Finish translation implementation

This commit is contained in:
Dylan
2026-04-18 23:50:09 +01:00
parent 1a6f424e69
commit 7c7a6e6a59
6 changed files with 31 additions and 6 deletions
+2 -1
View File
@@ -70,4 +70,5 @@ jobs:
VXTWITTER_GIF_CONVERT_API: ${{ secrets.VXTWITTER_GIF_CONVERT_API }}
VXTWITTER_WORKAROUND_TOKENS: ${{ secrets.VXTWITTER_WORKAROUND_TOKENS }}
VXTWITTER_PROXIES: ${{ secrets.VXTWITTER_PROXIES }}
SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
DEEPL_API_KEY: ${{ secrets.DEEPL_API_KEY }}
+4 -2
View File
@@ -13,7 +13,8 @@ if ('RUNNING_SERVERLESS' in os.environ and os.environ['RUNNING_SERVERLESS'] == '
"url": os.getenv("VXTWITTER_URL","https://vxtwitter.com"),
"combination_method": os.getenv("VXTWITTER_COMBINATION_METHOD","local"), # can either be 'local' or a URL to a server handling requests in the same format
"gifConvertAPI":os.getenv("VXTWITTER_GIF_CONVERT_API",""),
"workaroundTokens":os.getenv("VXTWITTER_WORKAROUND_TOKENS",None)
"workaroundTokens":os.getenv("VXTWITTER_WORKAROUND_TOKENS",None),
"deeplKey":os.getenv("DEEPL_API_KEY",None),
}
}
else:
@@ -31,7 +32,8 @@ else:
"url": "https://vxtwitter.com",
"combination_method": "local", # can either be 'local' or a URL to a server handling requests in the same format
"gifConvertAPI":"",
"workaroundTokens":None
"workaroundTokens":None,
"deeplKey":None
}
}
+2 -1
View File
@@ -8,4 +8,5 @@ Werkzeug==2.3.7
numerize==0.12
oauthlib==3.2.2
PyRTF3==0.47.5
XClientTransaction==1.0.2
XClientTransaction==1.0.2
deepl==1.3.0
+1
View File
@@ -29,6 +29,7 @@ provider:
VXTWITTER_COMBINATION_METHOD: ${env:VXTWITTER_COMBINATION_METHOD, 'local'}
VXTWITTER_GIF_CONVERT_API: ${env:VXTWITTER_GIF_CONVERT_API, ''}
VXTWITTER_WORKAROUND_TOKENS: ${env:VXTWITTER_WORKAROUND_TOKENS, ''}
DEEPL_API_KEY: ${env:DEEPL_API_KEY, ''}
#VXTWITTER_PROXIES: ${env:VXTWITTER_PROXIES, ''}
package:
+21 -1
View File
@@ -1,7 +1,27 @@
import deepl
from configHandler import config
validLanguages = ['AF', 'AN', 'AR', 'AS', 'AY', 'AZ', 'BA', 'BE', 'BG', 'BN', 'BR', 'BS', 'CA', 'CS', 'CY', 'DA', 'DE', 'DE-DE', 'EL', 'EN', 'EO', 'ES', 'ES-419', 'ET', 'EU', 'FA', 'FI', 'FR', 'FR-FR', 'GA', 'GL', 'GN', 'GU', 'HA', 'HE', 'HI', 'HR', 'HT', 'HU', 'HY', 'ID', 'IG', 'IS', 'IT', 'JA', 'JV', 'KA', 'KK', 'KO', 'KY', 'LA', 'LB', 'LN', 'LT', 'LV', 'MG', 'MI', 'MK', 'ML', 'MN', 'MR', 'MS', 'MT', 'MY', 'NB', 'NE', 'NL', 'OC', 'OM', 'PA', 'PL', 'PS', 'PT-BR', 'PT-PT', 'QU', 'RO', 'RU', 'SA', 'SK', 'SL', 'SQ', 'SR', 'ST', 'SU', 'SV', 'SW', 'TA', 'TE', 'TG', 'TH', 'TK', 'TL', 'TN', 'TR', 'TS', 'TT', 'UK', 'UR', 'UZ', 'VI', 'WO', 'XH', 'YI', 'ZH', 'ZH-HANS', 'ZH-HANT', 'ZU']
languageAliases = {
#"EN":"EN-US",
"JP":"JA",
}
mergedLangs=(validLanguages+list(languageAliases.keys()))
mergedLangs=(validLanguages+list(languageAliases.keys()))
def getDeeplTranslation(text,target):
target = target.upper()
if target == "EN":
target = "EN-US"
try:
if 'deeplKey' not in config["config"] or config["config"]["deeplKey"] == None:
return None
deepl_client = deepl.Translator(config["config"]["deeplKey"])
result = deepl_client.translate_text(text, target_lang=target)
return {
"text":result.text,
"source_language":result.detected_source_lang,
"destination_language":target
}
except Exception as e:
return None
+1 -1
View File
@@ -290,7 +290,7 @@ def getTweetData(twitter_url,include_txt="false",include_rtf="false",tlLanguage=
if tweetData["translation"] is None and tlLanguage is not None and tlLanguage != tweetData["lang"]:
# translation probably failed on twitter's end
pass # TODO: implement DeepL api
tweetData["translation"] = translation.getDeeplTranslation(tweetData["text"],tlLanguage)
if tweetData["translation"] is not None and tlLanguage is None:
tweetData["translation"] = None # didn't ask for TL