diff --git a/src/localization/languages/en.json b/src/localization/languages/en.json index 233e9bbe..cb7dba07 100644 --- a/src/localization/languages/en.json +++ b/src/localization/languages/en.json @@ -155,6 +155,8 @@ "DonateImageDescription": "cat sleeping on a laptop keyboard and typing letters repeatedly", "SettingsTwitterGif": "convert gifs to .gif", "SettingsTwitterGifDescription": "converting looping videos to .gif reduces quality and majorly increases file size. if you want best efficiency, keep this setting off.", - "UpdateTwitterGif": "twitter gifs and pinterest" + "UpdateTwitterGif": "twitter gifs and pinterest", + "ErrorTweetProtected": "this tweet is from a private account, so i can't see it. try another one!", + "ErrorTweetNSFW": "this tweet contains sensitive content, so i can't see it. try another one!" } } diff --git a/src/localization/languages/ru.json b/src/localization/languages/ru.json index 61a58ea2..7af3413b 100644 --- a/src/localization/languages/ru.json +++ b/src/localization/languages/ru.json @@ -116,7 +116,7 @@ "SettingsVimeoPrefer": "тип загрузок с vimeo", "SettingsVimeoPreferDescription": "progressive: прямая ссылка на файл с сервера vimeo. максимальное качество: 1080p.\ndash: кобальт совмещает видео и аудио в один файл. максимальное качество: 4k.\n\nвыбирай \"progressive\", если тебе нужна наилучшая совместимость с плеерами/редакторами/соцсетями. если \"progressive\" файл недоступен, кобальт скачает \"dash\".", "ShareURL": "поделиться", - "ErrorTweetUnavailable": "не смог найти что-либо об этом твите. возможно его видимость была ограничена. попробуй другой!", + "ErrorTweetUnavailable": "не смог найти что-либо об этом твите. возможно его видимость ограничена. попробуй другой!", "ErrorTwitterRIP": "твиттер ограничил доступ к любому контенту на сайте для пользователей без аккаунтов. я нашёл лазейку, чтобы доставать обычные твиты, а для spaces, к сожалению, нет. я ищу возможные варианты выхода из ситуации.", "PopupCloseDone": "готово", "Accessibility": "общедоступность", @@ -157,6 +157,8 @@ "DonateImageDescription": "кошка спит на клавиатуре ноутбука и многократно печатает буквы", "SettingsTwitterGif": "конвертировать гифки в .gif", "SettingsTwitterGifDescription": "конвертирование зацикленного видео в .gif снижает качество и значительно увеличивает размер файла. если важна максимальная эффективность, то не используй эту функцию.", - "UpdateTwitterGif": "гифки с твиттера и одноклассники" + "UpdateTwitterGif": "гифки с твиттера и одноклассники", + "ErrorTweetProtected": "этот твит из закрытого аккаунта, поэтому я не могу его увидеть. попробуй другой!", + "ErrorTweetNSFW": "этот твит содержит деликатный контент, поэтому я не могу его увидеть. попробуй другой!" } } diff --git a/src/modules/processing/services/twitter.js b/src/modules/processing/services/twitter.js index 97371035..7e01fab4 100644 --- a/src/modules/processing/services/twitter.js +++ b/src/modules/processing/services/twitter.js @@ -86,7 +86,18 @@ export default async function({ id, index, toGif }) { tweet = await tweet.json(); // {"data":{"tweetResult":{"result":{"__typename":"TweetUnavailable","reason":"Protected"}}}} - if (tweet?.data?.tweetResult?.result?.__typename !== "Tweet") { + const tweetTypename = tweet?.data?.tweetResult?.result?.__typename; + + if (tweetTypename === "TweetUnavailable") { + const reason = tweet?.data?.tweetResult?.result?.reason; + switch(reason) { + case "Protected": + return { error: 'ErrorTweetProtected' } + case "NsfwLoggedOut": + return { error: 'ErrorTweetNSFW' } + } + } + if (tweetTypename !== "Tweet") { return { error: 'ErrorTweetUnavailable' } }