XenRSS [General Addons]

MojoRisin

Member
Joined
Jul 17, 2025
Messages
486
Credits
$438,053
A new product by MojoRisin is available: XenRSS v1.0.1 - Transform any RSS feed into full-article content with automatic scraping, image optimization, and smart filtering for XenForo's built-in RSS importer.


XenRSS v1.0.1

Description​

XenRSS - Full Article RSS Feed Processor​


Stop settling for truncated RSS summaries. XenRSS transforms partial RSS feeds into complete, richly-formatted content ready for XenForo's built-in RSS importer.

How It Works​


XenRSS acts as a middleware between external RSS feeds and XenForo. Point XenForo's RSS feeder at your XenRSS endpoint instead of the original feed, and XenRSS will:

  1. Fetch the original RSS feed
  2. Visit each article URL and scrape the full content
  3. Apply your filtering rules to clean the content
  4. Download and optimize images as local attachments
  5. Output a new RSS feed with complete articles

Key Features​


Full Article Scraping
Configure CSS selectors to extract exactly the content you want. Target article bodies, exclude sidebars, ads, and navigation - you're in full control.

Smart Content Filtering
  • Strip unwanted HTML tags (scripts, iframes, ads)
  • Remove elements by class name or ID
  • Remove specific attributes (onclick, data-*, etc.)
  • Strip or preserve links selectively
  • Clean empty tags and excessive line breaks
  • Support for wildcard patterns (e.g., ad-container-*)

Advanced Selectors
  • before:selector - Remove everything before an element
  • after:selector - Remove everything after an element
  • Supports class names, IDs, and tag selectors
  • Auto-detection for common selector formats

Image Optimization
  • Downloads article images as XenForo attachments
  • Automatic WebP conversion (when enabled in ACP)
  • Extracts images from RSS media tags and og:image
  • Typical 40-70% file size reduction

Embed-Friendly Link Handling
When stripping links, XenRSS preserves URLs from embeddable platforms:
  • Twitter/X, YouTube, Vimeo
  • TikTok, Instagram, Facebook
  • Twitch, Spotify, SoundCloud
These are converted to plain URLs that XenForo automatically embeds.

Duplicate Prevention
Built-in GUID caching ensures articles are only processed once. Clear the cache anytime to reprocess a feed.

Preview & Testing
  • Preview Article - Test your selectors on a sample article before going live
  • Test Feed - View the processed RSS output
  • Preview mode skips attachment creation and caching

Anti-Bot Measures​


XenRSS includes several techniques to improve compatibility with protected sites:
  • Rotating user agents (Chrome, Firefox, Safari, Edge)
  • Full browser header simulation including Client Hints
  • HTTP/2 support
  • TLS fingerprint optimization
  • Automatic cookie handling
  • Referer header management

Note: Sites using JavaScript-based protection (Cloudflare challenges, etc.) cannot be scraped with server-side PHP. This is a fundamental limi

Extended Product Information​




Read more about this product...
 
Really love this add-on! Makes it extremely easy to provide proper feeds from whatever site.

Just a thing I came across (error 503) - might be different for others:

When those importers try to fetch that URL, they make an HTTP request to your own
server using User-Agent: XenForo/2.x. Your server's WAF (firewall/protection layer) sees this non-browser User-Agent,
treats it as a bot, and blocks it with a 503 Service Unavailable — returning an HTML challenge page instead of the RSS
feed.

The URL works fine in a browser because browsers pass the WAF challenge. But server-to-server requests from PHP don't.

The Fix

Instead of making XenForo/NewsPublisher send an HTTP request to themselves (which gets blocked), we intercept the
request before it happens and process the feed directly in PHP.

XenForo has a "class extension" system that lets add-ons override core behavior. We added a class extension that
hook into the feed readers:

1. XF\Service\Feed\Reader — XenForo's built-in feed reader

Both extensions do the same thing: when setFeed() is called, they check if the URL contains /xenrss/. If it does,
instead of making an HTTP request, they:

1. Extract the feed key from the URL
2. Look up the XenRSS feed directly in the database
3. Call the FeedProcessor internally (same PHP process, no network)
4. Pass the resulting RSS to Laminas Feed Parser

No HTTP request = no WAF = no 503.

We also set bypassCache(true) because XenRSS had its own GUID deduplication that would return empty feeds after the
first fetch. That's unnecessary since XenForo already track which entries they've imported via
their own FeedLog tables.
 
Where did this write up come from out of curiosity?

I chalked the 503 error up to extensive bot blocking.

Thanks for the tip.
 
Where did this write up come from out of curiosity?

I chalked the 503 error up to extensive bot blocking.

Thanks for the tip.
I edited the add-on myself and logged progress which I let ai (claude) summarize to that. Don't worry, I keep add-ons private without sharing with AI/others.
 

We also set bypassCache(true) because XenRSS had its own GUID deduplication that would return empty feeds after the
first fetch. That's unnecessary since XenForo already track which entries they've imported via
their own FeedLog tables.”

I need to review this because i recall a reason for this but it escapes me currently
 
ok..the problem was viewing the feed in the admin (Preview button) wrote to the GUID cache, which marked items as processed. XenForo's importer would then see empty feeds.
 
Back
Top