Рубрики
Без рубрики

Экспорт ваших закладок Twitter в файле Markown

Люди, используемые в закладки твитов с использованием такой функции в Twitter. Позже они представили закладки … Помечено с Twitter, Python, Markdown, Json.

Люди, используемые в закладки твитов с использованием такой функции в Twitter. Позже они представили функцию закладок, которая поможет вам сохранить твиты в частном порядке. И теперь вы сэкономили тысячи твитов, и вы не можете позволить себе их очистить.

Как насчет безопасно экспортировать эти закладки в файл. Вы можете использовать его, как вам нравится – может быть, в веб -приложении. Следует отметить, что Twitter Не Предоставьте API для доступа к закладкам. Итак, нам, возможно, придется сделать некоторые вещи вручную здесь.

Я собираюсь показать вам, как извлечь ссылки на закладку, а также в нескольких строках кода Python.

Шаг 1

Хранить полезную нагрузку в Twitter в файле JSON

Альтернатива этого шага использует Почтовый клиент Отказ Вы можете попробовать это сначала, вот ссылка в блог, который позволяет отправлять запрос И это функция загрузки позволяет загружать ответ в клике.

Если у вас нет установки, мы можем вернуться к копированию вставки отклика от нашего старого доброй браузера devtools.

  • Откройте Twitter Web и перейдите на страницу закладок
  • Открыть инструменты Dev и перейдите на вкладку Network
  • Очистите сетевые журналы и выберите XHR
  • Применить фильтр как “Bookmark”
  • Обновить страницу закладок Twitter

Вы увидите, что некоторые вызовы API сделаны как Bookmark.json как под изображением. Вызов API подлежит изменению.

Обновление: В настоящее время /Закладки используется. Twitter недавно начал использовать GraphQL, чтобы получить закладки.

Если у вас есть тонны закладок, вам может придеться прокрутить до конца, чтобы получить все запросы на пагинацию.

  • После достижения конца. Выберите каждый запрос и скопируйте вставку ответа, полученного на вкладке «Ответ», как показано на изображении выше.
  • Сохраните каждый объект ответа с .json расширение.

Шаг 2

Получение текста и ссылки в закладки твитов

  • Как только вы сохранили файлы JSON, поставьте их в папку.

Теперь нам просто нужно написать Python Script Это позволит нам ссылки на закладки и текст Tweet!

  • Чтение файлов JSON из папки
import json
import glob

# using glob to read all files in the folder
files = [file for file in glob.glob("JSONBookmarks/*")]     
for file_name in files:
    print(file_name)
    with open(file_name) as bk:
        data = json.load(bk)        # reads json data
    all_bookmarks.append(data)

Здесь Jsanbookmarks это имя папки. Глобус () берет путь папки, чтобы прочитать файлы. /* означает все файлы.

Полезная нагрузка в Твиттере явно не имеет ссылки на твиты закладок.

Он предоставляет два основных объекта нашего использования с помощью клавиш:

  1. твиты
  2. пользователи

Нам придется использовать эти данные в полезной нагрузке, чтобы построить URL -адрес твита.

# Function to construct bookmarked tweet url
def constructUrl(tweet_id, username):
    return "https://twitter.com/" + username + "/status/" + tweet_id

Я использовал Deeb_get Способ получения вложенных объектов.

# Method to get value of nested dictionary
def deep_get(dictionary, keys, default=None):
    return functools.reduce(lambda d, key: d.get(key, default) if isinstance(d, dict) else default, keys.split("."), dictionary)

Теперь окончательный код, который проходит через все твиты, чтобы получить данные и записи в Markdown.

Обновление: Эта логика подлежит изменению в соответствии с закладками в Twitter API!

# saving in markdown file, if no file exists  using '+' creates one
md_file = open("bookmarks.md", "w+")

# Run a loop through all_bookmarks
for data in all_bookmarks:
    instructions_list = deep_get(data, "data.bookmark_timeline.timeline.instructions")
    tweet_entries_list = deep_get(instructions_list[0], "entries")
    for tweet_entry in tweet_entries_list:
        result = deep_get(tweet_entry, "content.itemContent.tweet_results.result")
        username = deep_get(result, "core.user.legacy.screen_name")
        text = deep_get(result, "legacy.full_text")
        tweet_id = deep_get(result, "rest_id")
        if tweet_id == None or username == None or text == None:
            continue
        text = formatText(text)
        url = constructUrl(tweet_id, username)
        bookmarked_tweet = "\n- " + text + "\n" + "\t - " + url
        md_file.write(bookmarked_tweet)

Окончательный выход будет выглядеть так:

Я отформатировал его, как хотел, вы тоже можете сделать что-то еще. Вот весь код для вас, чтобы ссылаться на это суть . Гист будет обновлен новой логикой, если наблюдаются какие-либо изменения от API Twitter.

Оригинал: “https://dev.to/divyajyotiuk/exporting-your-twitter-bookmarks-in-markdown-file-19bj”