Skip to content

JorenS15/newsbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📰 AI Newsbot

An automated RSS-based news filtering system that collects articles, analyzes them, and only forwards the most relevant content.


🚀 What it does

This project fetches is an AI-powered information filtering pipeline with multi-user routing and real-time notification system. Only important articles are sent to the user as a notification via Home Assistant App.


🎯 Motivation

I wanted to reduce information overload and automatically filter news that matters to me instead of manually browsing multiple sources.


🧠 How it works

  1. RSS feeds are parsed using feedparser
  2. New articles are extracted and deduplicated
  3. Articles are scored based on relevance logic / AI model
  4. High-score articles are forwarded to external systems (e.g. Home Assistant)

⚙️ Tech Stack

  • Python 3
  • feedparser
  • requests
  • RSS feeds
  • Home Assistant integration (optional)

🔧 Setup

1. Clone repository

git clone https://github.com/JorenS15/newsbot.git
cd newsbot

2. Create virtual environment

python3 -m venv venv
source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Run project

python3 app/main.py

🔐 Configuration

Some parts of the system require external services (e.g. APIs, Home Assistant, or LLM endpoints).

These are intentionally removed from this repository for security reasons.

Add your own configuration inside the code or environment variables.


🏗 Architecture

RSS feeds → Parser → Deduplication → Scoring (LLM) → Filtering → Notifications (Home Assistant)


📤 Example output

Title: AI breaks new benchmark
Score USER1: 8/10
Score USER2: 3/10
Reason USER1: matches AI and tech interest
Reason USER2: is not interested in AI
Relevant for: USER1


⚠️ Notes

This project runs in production on a home server (Raspberry Pi setup). This repository is a cleaned and anonymized version for demonstration purposes.

There will be in every Python file comments with an explanation of what you need to do to make it work for you.

Some things in the code will be in Dutch. That is because I made it in Dutch before I uploaded it to github. I didn't want to change those names because it will probably break. So sorry if that makes anything harder to understand about the code.

The volleybal scores part will probably not work with any other livescore website because the variables are hard-coded for that specific site. So change those for your livescore site.


📌 Status

Project is stable and currently running in production on a home server. Future improvements may include better scoring models and expanded integrations.


News Article

News Article

Volleybal Scores Notification

Volleybal Scores

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages