Source code for indieweb_utils.posts.in_reply_to

from typing import List

import mf2py


[docs]def get_reply_urls(url: str, html: str = None) -> List[str]: """ Retrieve a list of all of the URLs to which a given post is responding using a u-in-reply-to microformat. :refs: https://indieweb.org/in-reply-to#How_to_consume_in-reply-to :param url: The URL to get replies to. :type url: str :param html: The HTML of the page whose replies you want to retrieve. :type html: str :return: A list of all of the URLs to which the given post responds. :rtype: list Example: .. code-block:: python import indieweb_utils reply_urls = indieweb_utils.get_reply_urls("https://aaronparecki.com/2022/10/10/17/") print(reply_urls) # ["https://twitter.com/amandaljudkins/status/1579680989135384576?s=12"] """ if html: parsed_document = mf2py.parse(doc=html) else: parsed_document = mf2py.parse(url=url) in_reply_to_urls = [] for item in parsed_document["items"]: if item["type"][0] != "h-entry": continue if item["properties"].get("in-reply-to") is None: continue for reply_item in item["properties"]["in-reply-to"]: url_list = reply_item["properties"].get("url") if url_list is None: continue in_reply_to_urls.extend(url_list) # only return unique urls return list(set(in_reply_to_urls))