Mimír is a Jabber enabled news service. It collects news from various sources and notifies its users when new news items have been found or holds them for later reading, based on their presence.
Interaction from the user's point of view
A user has two interfaces into Mimír: a web site and the Jabber news bot. The bot monitors the user's presence and sends messages to the user when appropriate according to personal preferences. The website is where the user can configure his preferences, select channels to subscribe to, and read unread or bookmarked news items.
Among the preferences is a selection of the set of presence states for which
the user can be sent notifications. The default set contains the
chat Jabber presences. This means that
when a user is online, the bot will directly send notifications of newly
discovered news items for the channels the user is subscribed to. However, if
the user is away, the new item will be marked as being unread by the user. The
user can at all times view his unread items at the Mimír web site on his
personal news page.
See the User Manual for more information on the user interactions with clear screenshots.
Besides monitoring end users' presence and sending off notifications, the news bot also consumes incoming news. This news is provided via publish-subscribe over Jabber. Each news channel is represented by a publish-subscribe node to which the news bot is subscribed.
As soon as a news source has a new news item available, it will publish this item to its publish-subscribe node and the news bot will receive an immediate notification from the corresponding publish-subscribe service. The item will be stored in a database and the bot will consult user subscriptions and presences and send a notification or mark the item unread.
Non-pubsub news sources
At this moment, there are not many news sources that provide their news directly via publish-subscribe over Jabber. To accomodate this, an special feed aggregator has been created. It periodically polls RSS and Atom feeds to discover new items. Those items will then be published to a publish-subscribe node on behalf of the actual news source. This way the aggregator proxies news sources as if they were publish-subscribe enabled.
The actual components used in the current setup are shown in graphic below. Note that all components can be distributed across different Jabber servers.
The news bot is written in Python using the Twisted framework.
News items, user information and presence are stored in a PostgreSQL database.
The local publish-subscribe service that holds the nodes that are fed by the aggregator is called Idavoll and is again implemented using Twisted. Note that external news sources may host their own publish-subscribe services.
What is Mimír?
Mimír is one of the ancient Norse deities. He is the wisest god of the Æsir.
You can apply for this site with ralphm (JID: email@example.com).