NOTICE: All information contained herein is, and remains
the property of TechnoCore Automate.
Updated : 2026-03-16
ObjServiceRss fetches RSS/Atom feeds, parses items (title, link,
description, publication date, enclosure images), and stores them
in data_rssitem. Multiple channels are configured in def_rss
and can be updated in bulk.
requests.get() with User-Agent headerxml.dom.minidomdef_rsssettings:
image_size: 150
user_agent: "AxionRSS/2.0"
Channel configuration — one row per subscribed feed.
| Column | Type | Description |
|---|---|---|
| Channel | VARCHAR(255) PK | Channel title |
| Url | VARCHAR(512) | Feed URL |
| Description | TEXT | Channel description |
| Package | VARCHAR(255) | Axion package |
| Module | VARCHAR(255) | ObjServiceRss |
Stored feed items — one row per article.
| Column | Type | Description |
|---|---|---|
| Channel | VARCHAR(255) | Parent channel title |
| Title | VARCHAR(255) | Article title |
| Link | VARCHAR(512) | Article URL |
| Description | TEXT | Cleaned HTML content |
| Guid | VARCHAR(255) PK | RSS item GUID |
| PubDate | DATETIME | Publication date |
| RssLink | VARCHAR(512) PK | Source feed URL |
| CreateDate | DATETIME | When stored in DB |
| LocalGuid | VARCHAR(64) | Axion UUID (get_uuid("RSS")) |
| Package | VARCHAR(255) | Axion package |
| Module | VARCHAR(255) | ObjServiceRss |
Primary key: (Guid, RssLink) — same article from different
feeds is stored separately.
Fetch and parse a single RSS feed. Returns the number of new
items inserted. Skips items already in the database.
Fetch all channels configured in def_rss. Returns total new
items across all channels.
Read stored items for a channel name (prefix match). Max 100.
| Method | Description |
|---|---|
_get_element_text(item, name) |
Extract text from XML element |
_parse_pubdate(pubdate_str) |
Parse RSS date (tries 5 formats) |
_clean_html(html) |
Strip wrappers, resize images, clean attrs |
_download_enclosure(item, guid) |
Download image/jpeg or image/png attachments |
_item_exists(rss_link, guid) |
Check for duplicates |
| Command | Context Keys | Result Key |
|---|---|---|
feed |
url |
_rss_result |
update |
— | _rss_result |
read |
channel, limit |
_rss_result, _rss_items |
# Fetch a specific feed
python ObjServiceRss.py feed "https://feeds.bbci.co.uk/news/rss.xml"
# Update all configured channels
python ObjServiceRss.py update
# Read stored items
python ObjServiceRss.py read "BBC" --limit 10
# List configured channels
python ObjServiceRss.py channels
Enclosure images are downloaded to:
{local_folder}/local.documents/rss/{local_guid}.jpeg
Only image/jpeg and image/png enclosures are downloaded.
Existing images are not re-downloaded.
Feed: BBC News Africa
URL: https://feeds.bbci.co.uk/news/world/africa/rss.xml
Items: 31 new items inserted
Sample:
[2026-03-16 14:09:58] Russia agrees to stop using Kenyan recruits...
[2026-03-16 12:36:51] Whistleblower murder suspect is former elite...
[2026-03-16 00:05:40] 'We will go wherever they hide': Rooting out IS...
from ObjServiceRss import ObjServiceApi
svc = ObjServiceApi()
# Add a feed
count = svc.parse_feed(
"https://feeds.bbci.co.uk/news/rss.xml"
)
print(f"Inserted {count} items")
# Read stored items
items = svc.read_items("BBC", limit=10)
for item in items:
print(f" {item['Title']}")
# Update all channels
svc.update_all()
Updated : 2026-03-16
cythonize -3 -a -i ObjServiceRss.py
Compiling /home/axion/projects/axion/factory.service/package.core/ObjServiceRss.py because it changed..[1/1] Cythonizing /home/axion/projects/axion/factory.service/package.core/ObjServiceRss.py
Updated : 2026-03-16