<!DOCTYPE html> <html class="no-js" lang="en"> <head> <title>Bridge API - RSS-Bridge</title> <meta name="description" content="The RSS feed for websites missing it"> <meta name="author" content="RSS-Bridge Contributors"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <link rel="icon" href="../themes/daux/img/favicon-blue.png" type="image/x-icon"> <!-- Mobile --> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- JS --> <script> window.base_url = "../"; document.documentElement.classList.remove('no-js'); </script> <!-- Font --> <!-- CSS --> <link href='../themes/daux/css/theme-blue.min.css' rel='stylesheet' type='text/css'> <link href='../daux_libraries/search.css' rel='stylesheet' type='text/css'> </head> <body class=""> <div class="Columns content"> <aside class="Columns__left Collapsible"> <button type="button" class="Button Collapsible__trigger" aria-controls="sidebar_content" aria-expanded="false" aria-label="Toggle navigation"> <span class="Collapsible__trigger__bar"></span> <span class="Collapsible__trigger__bar"></span> <span class="Collapsible__trigger__bar"></span> </button> <a class="Brand" href="../index.html">RSS-Bridge</a> <form role='search' action="/" method="get" class="Search" id="search_form"> <label for="search_input"> <span class='u-visuallyHidden'>Search</span> </label> <input type="search" id="search_input" class="Search__field" placeholder="Search..." aria-label="Search..." autocomplete="on" results=25 autosave=text_search > <label> <input type="submit" class='u-visuallyHidden' /> <span class='u-visuallyHidden'>Search...</span> <svg class="Search__icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451 451"> <path d="M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z"/> </svg> </label> </form> <div class="Collapsible__content" id="sidebar_content"> <!-- Navigation --> <ul class='Nav'><li class='Nav__item has-children'><a href="../General/Project_goals.html" class="Nav__item__link"><i class="Nav__arrow"> </i>General</a><ul class='Nav'><li class='Nav__item '><a href="../General/Project_goals.html">Project-goals</a></li><li class='Nav__item '><a href="../General/Contribute.html">Contribute</a></li><li class='Nav__item '><a href="../General/Requirements.html">Requirements</a></li><li class='Nav__item '><a href="../General/Screenshots.html">Screenshots</a></li><li class='Nav__item '><a href="../General/FAQ.html">FAQ</a></li><li class='Nav__item '><a href="../General/Public_Hosts.html">Public Hosts</a></li></ul></li><li class='Nav__item '><a href="../CLI/index.html" class="Nav__item__link"><i class="Nav__arrow"> </i>CLI</a><ul class='Nav'></ul></li><li class='Nav__item has-children'><a href="../For_Hosts/index.html" class="Nav__item__link"><i class="Nav__arrow"> </i>For Hosts</a><ul class='Nav'><li class='Nav__item '><a href="../For_Hosts/Installation.html">Installation</a></li><li class='Nav__item '><a href="../For_Hosts/Updating.html">Updating</a></li><li class='Nav__item '><a href="../For_Hosts/Docker_Installation.html">Docker Installation</a></li><li class='Nav__item '><a href="../For_Hosts/Heroku_Installation.html">Heroku Installation</a></li><li class='Nav__item '><a href="../For_Hosts/Whitelisting.html">Whitelisting</a></li><li class='Nav__item '><a href="../For_Hosts/Authentication.html">Authentication</a></li><li class='Nav__item '><a href="../For_Hosts/Customizations.html">Customizations</a></li><li class='Nav__item '><a href="../For_Hosts/Custom_Configuration.html">Custom Configuration</a></li></ul></li><li class='Nav__item has-children'><a href="../For_Developers/index.html" class="Nav__item__link"><i class="Nav__arrow"> </i>For Developers</a><ul class='Nav'><li class='Nav__item '><a href="../For_Developers/Coding_style_policy.html">Coding style policy</a></li><li class='Nav__item '><a href="../For_Developers/Pull_Request_policy.html">Pull Request policy</a></li><li class='Nav__item '><a href="../For_Developers/Folder_structure.html">Folder structure</a></li><li class='Nav__item '><a href="../For_Developers/Actions.html">Actions</a></li><li class='Nav__item '><a href="../For_Developers/Debug_mode.html">Debug mode</a></li><li class='Nav__item '><a href="../For_Developers/Github_Codespaces_Tutorial.html">Github Codespaces Tutorial</a></li><li class='Nav__item '><a href="../For_Developers/Development_Environment_Setup.html">Development Environment Setup</a></li></ul></li><li class='Nav__item Nav__item--open has-children'><a href="../Bridge_API/index.html" class="Nav__item__link"><i class="Nav__arrow"> </i>Bridge API</a><ul class='Nav'><li class='Nav__item '><a href="../Bridge_API/How_to_create_a_new_bridge.html">How to create a new bridge</a></li><li class='Nav__item '><a href="../Bridge_API/BridgeAbstract.html">BridgeAbstract</a></li><li class='Nav__item '><a href="../Bridge_API/FeedExpander.html">FeedExpander</a></li><li class='Nav__item '><a href="../Bridge_API/XPathAbstract.html">XPathAbstract</a></li></ul></li><li class='Nav__item '><a href="../Helper_functions/index.html" class="Nav__item__link"><i class="Nav__arrow"> </i>Helper functions</a><ul class='Nav'></ul></li><li class='Nav__item has-children'><a href="../Cache_API/index.html" class="Nav__item__link"><i class="Nav__arrow"> </i>Cache API</a><ul class='Nav'><li class='Nav__item '><a href="../Cache_API/How_to_create_a_new_cache.html">How to create a new cache</a></li><li class='Nav__item '><a href="../Cache_API/CacheInterface.html">CacheInterface</a></li></ul></li><li class='Nav__item '><a href="../Technical_recommendations/index.html" class="Nav__item__link"><i class="Nav__arrow"> </i>Technical recommendations</a><ul class='Nav'></ul></li><li class='Nav__item has-children'><a href="../Bridge_Specific/ActivityPub_(Mastodon).html" class="Nav__item__link"><i class="Nav__arrow"> </i>Bridge Specific</a><ul class='Nav'><li class='Nav__item '><a href="../Bridge_Specific/ActivityPub_(Mastodon).html">ActivityPub (Mastodon)</a></li><li class='Nav__item '><a href="../Bridge_Specific/FacebookBridge.html">FacebookBridge</a></li><li class='Nav__item '><a href="../Bridge_Specific/FurAffinityBridge.html">FurAffinityBridge</a></li><li class='Nav__item '><a href="../Bridge_Specific/Furaffinityuser.html">Furaffinityuser</a></li><li class='Nav__item '><a href="../Bridge_Specific/Instagram.html">Instagram</a></li><li class='Nav__item '><a href="../Bridge_Specific/PixivBridge.html">PixivBridge</a></li><li class='Nav__item '><a href="../Bridge_Specific/TwitterV2.html">TwitterV2</a></li></ul></li></ul> <div class="Links"> <hr/> <a href="https://github.com/RSS-Bridge/rss-bridge" target="_blank" rel="noopener noreferrer">GitHub Repository</a> <br /> <a href="https://github.com/RSS-Bridge/rss-bridge/issues" target="_blank" rel="noopener noreferrer">Help/Support/Bugs</a> <br /> <a href="https://github.com/RSS-Bridge/rss-bridge/pkgs/container/rss-bridge" target="_blank" rel="noopener noreferrer">Docker Images</a> <br /> </div> <div class="CodeToggler"> <hr/> <label class="Checkbox">Show Code Blocks <input type="checkbox" class="CodeToggler__button--main" checked="checked"/> <div class="Checkbox__indicator"></div> </label> </div> <div class="DarkModeToggler"> <hr/> <label class="Checkbox">Dark Mode <input type="checkbox" class="ColorMode__button" /> <div class="Checkbox__indicator"></div> </label> </div> <div class="PoweredBy"> <hr/> Powered by Daux.io </div> </div> </aside> <div class="Columns__right"> <div class="Columns__right__content"> <div class="doc_content"> <article class="Page"> <div class="Page__header"> <h1><a href="../Bridge_API/index.html">Bridge API</a></h1> <span class="ModifiedDate"> September 30, 2023 at 6:07 AM </span> <span class="EditOn"> <a href="https://github.com/RSS-Bridge/rss-bridge/tree/master/docs/05_Bridge_API/index.md" target="_blank"> Edit on GitHub </a> </span> </div> <div class="s-content"> <p>A <em>Bridge</em> is a class that allows <strong>RSS-Bridge</strong> to create an RSS-feed from a website. A <em>Bridge</em> represents one element on the <a href="../General/Screenshots.html">Welcome screen</a> and covers one or more sites to return feeds for. It is developed in a PHP file located in the <code>bridges/</code> folder (see <a href="../For_Developers/Folder_structure.html">Folder structure</a>) and extends one of the base classes of <strong>RSS-Bridge</strong>:</p> <table> <thead> <tr> <th>Base class</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="BridgeAbstract.html"><code>BridgeAbstract</code></a></td> <td>This class is intended for standard <em>Bridges</em> that need to filter HTML pages for content.</td> </tr> <tr> <td><a href="FeedExpander.html"><code>FeedExpander</code></a></td> <td>This class is an extension of <code>HttpCachingBridgeAbstract</code>, designed to load existing feeds into <strong>RSS-Bridge</strong></td> </tr> <tr> <td><a href="XPathAbstract.html"><code>XPathAbstract</code></a></td> <td>This class is meant as an alternative base class for bridge implementations. It offers preliminary functionality for generating feeds based on <em>XPath expressions</em>.</td> </tr> </tbody> </table> <p>For more information about how to create a new <em>Bridge</em>, read <a href="How_to_create_a_new_bridge.html">How to create a new Bridge?</a></p> </div> <nav> <ul class="Pager"> <li class=Pager--prev><a href="../For_Developers/Development_Environment_Setup.html">Previous</a></li> <li class=Pager--next><a href="../Bridge_API/How_to_create_a_new_bridge.html">Next</a></li> </ul> </nav> </article> </div> </div> </div> </div> <!-- JS --> <script src="../themes/daux/js/daux.min.js"></script> <script> window.searchLanguage = ""; window.searchTranslation = {"Search_one_result":"1 result","Search_results":"!count results","Search_no_results":"Nothing found","Search_common_words_ignored":"Common words are largely ignored","Search_too_short":"Search too short","Search_one_character_or_more":"Should be one character or more","Search_should_be_x_or_more":"Should be !min characters or more","Link_previous":"Previous","Link_next":"Next"}; </script> <!-- Search --> <script type="text/javascript" src="../daux_libraries/search.min.js"></script> <script> window.search({'base_url': '../'}) </script> </body> </html>