Yet Another Science Keppy Upy - Keep up to date with science fields via PubMed and Discord.
Project description
YASKU: Yet Another Science Keppy Upy
YASKU is a Python tool to help you keep up to date with the latest publications in your favorite science fields. It searches PubMed for new articles on your chosen topics and can send notifications to a Discord channel using webhooks.
Features
- Searches PubMed for new articles on your topics
- Sends article summaries to Discord via webhook (as rich embeds)
- Keeps a local cache and log of found articles
- Easy configuration with a YAML file in your home directory or via interactive CLI
Installation
Option 1: Install via pip (recommended for CLI use)
pip install git+https://github.com/<your-username>/YASKU.git
Or, if you have cloned the repo locally:
cd YASKU
pip install .
Option 2: Development mode (editable install)
git clone <this-repo-url>
cd YASKU
pip install -e .
Configuration
Quick Setup (Recommended)
Run the interactive configuration tool:
yasku_config
You will be prompted for your Discord webhook URL and topics of interest (add topics one by one, press Enter on an empty line to finish). This will create or update your .yasku config file in your home directory.
Manual Setup
YASKU uses a YAML config file named .yasku in your home directory. The first run will create a default one if it doesn't exist.
Example .yasku file:
defaultFolder: .yasku_cache
max_search: 10
topics:
- RNAseq
- CRISPR
- Cancer
username: Yasku
discordWebhook: "REPLACE WITH YOUR DISCORD WEBHOOK"
- defaultFolder: Where to store cache and logs (relative to your home directory)
- max_search: Number of articles to fetch per topic
- topics: List of topics to track
- username: Name to display in Discord
- discordWebhook: Your Discord webhook URL (see below)
Note: You must set a valid Discord webhook URL to receive notifications in Discord.
Usage
After installation and configuration, run:
yasku
- The script will search PubMed for each topic in your config.
- New articles will be logged in
log.txtin your cache folder. - Article details will be sent to your Discord channel as embeds (if webhook is set).
You can also run the legacy script directly:
python YASKU.py
Setting up a Discord Webhook
- Go to your Discord server and create a webhook in the channel settings.
- Copy the webhook URL.
- Paste it into the
discordWebhookfield in your.yaskuconfig file or enter it when runningyasku_config.
Logs and Cache
- All found articles are cached in a pickle file in your cache folder.
- All new PMIDs and errors are logged in
log.txtin the same folder.
License
MIT License
About
YASKU stands for "Yet Another Science Keppy Upy". It is designed to help scientists and enthusiasts stay up to date with the latest research in their fields.
Scheduling YASKU to Run Automatically (Daily)
You can schedule YASKU to run every day using your operating system's built-in scheduler.
Linux (cron)
- Open your crontab for editing:
crontab -e - Add a line to run YASKU every day at 8:00 AM (adjust path and time as needed):
0 8 * * * /usr/bin/env yasku
Or, if you installed with a virtual environment:0 8 * * * /path/to/venv/bin/yasku
macOS (launchd or cron)
- You can use
cronas above, or use the macOSlaunchdsystem for more advanced scheduling. - For most users, adding a cron job as shown above works fine.
Windows (Task Scheduler)
- Open Task Scheduler from the Start menu.
- Click Create Basic Task...
- Name your task (e.g., "YASKU Daily") and click Next.
- Choose Daily and set your preferred time.
- For the action, select Start a program.
- In Program/script, enter:
powershell.exe - In Add arguments, enter:
Or, if you installed in a virtual environment, use the full path to-Command "yasku"yasku.exeorpython -m yasku. - Finish the wizard.
Tip: You can test your scheduled task by right-clicking it in Task Scheduler and choosing Run.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yasku-0.1.1.tar.gz.
File metadata
- Download URL: yasku-0.1.1.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eabd33fcf6831299e17d9195d88823ea041ece3fc318efff762ae7bea3bf287
|
|
| MD5 |
1b0992e36e66ba21a216a76d2ccdceb7
|
|
| BLAKE2b-256 |
3bcc5cac24e6eb66d8f01802a0b2c6c9bd1820b9d50b7cd2b3470e09d2e2cbfd
|
File details
Details for the file yasku-0.1.1-py3-none-any.whl.
File metadata
- Download URL: yasku-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3a7936b2c0b2835786dcc074a0afc5c1f5d7b74e3c78b338030523005e7102
|
|
| MD5 |
a705449fd9895f503c2a14d0c0826e48
|
|
| BLAKE2b-256 |
ab1ec4753774db0184342c7a4e4dd71f3f94bd69e5cef86f6bf3581c7208c36a
|