Writer Watcher is a tool I created to solve the inconvenience of manually tracking when my favorite writers post new articles. It extracts blog links from your Gmail email (draft), monitors these blogs using RSS feeds, and sends you email notifications whenever new content is published.
- Feed Monitoring: Tracks feeds for new articles from your favorite writers.
- Email Notifications: Sends an email notification with details of the new articles.
- Automatic Blog Management: Fetches new blogs from Gmail and updates the list of monitored blogs.
- Python 3+
- Gmail account with OAuth 2.0 credentials
- RSS feed links of your favorite writers
- Gmail email ID
- Gmail email containing new blog links. example:
-
Clone the repository:
git clone https://github.com/TolulopeJoel/writer-watcher.git cd writer-watcher
-
Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Set up environment variables:
- Create a
.env
file in the root directory of the project. - Add the following environment variables:
EMAIL_DRAFT_ID=your_email_id_containg_links EMAIL_TO=your_email@example.com EMAIL_FROM=seeus@seahorse.com
- Create a
-
Add Gmail API credentials:
- Obtain OAuth 2.0 client credentials from the Google Cloud Console.
- Save the
credentials.json
file in the root directory of the project.
-
Create an initial
blogs.json
file:[]
-
Access via web:
To run the application and access it through a web browser, use the following command:
python main.py
-
Access on terminal:
To run the application and interact with it directly in the terminal, use the following command:
python blog.py
-
Via web browser:
After running
python main.py
, open your web browser and go to the following URL:http://localhost:5000/new
-
Via terminal:
After running
python blog.py
, you can see the list of articles directly in the terminal.
In both cases, the application will list new articles and send an email notification.
- Sort posts by published date
- Direct RSS Feed Links: Allow users to directly add RSS feed links in the email draft for accurate
data fetching, especially for blogs that do not follow the standard/feed
path. - Separate 'new' writers posts from the main email body. When you add a new blog link to your draft,
the application can't tell which posts from that blog you've read, so it sends all posts from the
newly added blog. Separate these so you can easily distinguish newly added blog links from
updates on blogs you already read.
This project is licensed under the MIT License.