diff --git a/test_vx_embeds.py b/test_vx_embeds.py index 56e0718..a28a63b 100644 --- a/test_vx_embeds.py +++ b/test_vx_embeds.py @@ -204,4 +204,20 @@ def test_embed_action(): resp = client.get(testTextTweet.replace("https://twitter.com",""),headers={"User-Agent":"Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com)"}) assert resp.status_code==200 assert "application/activity+json" in str(resp.data) - assert "%F0%9F%92%96" not in str(resp.data) # 💖 \ No newline at end of file + assert "%F0%9F%92%96" not in str(resp.data) # 💖 + +def test_embed_translated(): + resp = client.get(testTextTweet.replace("https://twitter.com","")+"/jp",headers={"User-Agent":"test"}) + assert resp.status_code==200 + assert "→" in resp.text + resp = client.get(testTextTweet.replace("https://twitter.com","")+"/ja",headers={"User-Agent":"test"}) + assert resp.status_code==200 + assert "→" in resp.text + +def test_embed_translated_subdomain(): + resp = client.get(testTextTweet.replace("https://twitter.com","https://jp.vxtwitter.com"),headers={"User-Agent":"test"}) + assert resp.status_code==200 + assert "→" in resp.text + resp = client.get(testTextTweet.replace("https://twitter.com","https://ja.vxtwitter.com"),headers={"User-Agent":"test"}) + assert resp.status_code==200 + assert "→" in resp.text \ No newline at end of file diff --git a/twitfix.py b/twitfix.py index c655f9a..1c004d2 100644 --- a/twitfix.py +++ b/twitfix.py @@ -322,13 +322,18 @@ def getUserData(twitter_url,includeFeed=False): @app.route('/') # Default endpoint used by everything def twitfix(sub_path): splitPath=sub_path.split("/") + if "|" in splitPath[-1]: # discord doesn't strip this when a link is spoilered + splitPath[-1] = splitPath[-1].replace("|","") + + subdomain = request.host.rsplit(".",2)[0] + global user_agent user_agent = request.headers.get('User-Agent', None) if user_agent is None: user_agent = "unknown" - isApiRequest=request.url.startswith("https://api.vx") or request.url.startswith("http://api.vx") - if not isApiRequest and (request.url.startswith("https://l.vx") or request.url.startswith("https://old.vx")) and "Discord" in user_agent: + isApiRequest=subdomain=="api" + if not isApiRequest and (subdomain=="l" or subdomain=="old") and "Discord" in user_agent: user_agent = user_agent.replace("Discord","LegacyEmbed") # TODO: Clean up; This is a hacky fix to make the new activity embed not trigger if sub_path in staticFiles: if 'path' not in staticFiles[sub_path] or staticFiles[sub_path]["path"] == None: @@ -378,6 +383,11 @@ def twitfix(sub_path): translationLang = translation.languageAliases[splitPath[translationIndex].upper()] else: translationLang = splitPath[translationIndex].lower() + elif subdomain.upper() in translation.mergedLangs: + if subdomain.upper() in translation.languageAliases: + translationLang = translation.languageAliases[subdomain.upper()] + else: + translationLang = subdomain.lower() if isApiRequest: if "include_txt" in request.args: @@ -407,7 +417,7 @@ def twitfix(sub_path): requestUrlWithoutQuery = request.url directEmbed=False - if requestUrlWithoutQuery.startswith("https://d.vx") or requestUrlWithoutQuery.endswith(".mp4") or requestUrlWithoutQuery.endswith(".png"): + if subdomain=="d" or requestUrlWithoutQuery.endswith(".mp4") or requestUrlWithoutQuery.endswith(".png"): directEmbed = True # remove the .mp4 from the end of the URL if requestUrlWithoutQuery.endswith(".mp4") or requestUrlWithoutQuery.endswith(".png"):