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.
Metadata
Release files for yasku 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yasku-0.1.1.tar.gz | 3.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yasku-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.6 kB
Release files / yasku-0.1.1.tar.gz
| Download URL | yasku-0.1.1.tar.gz |
|---|---|
| Size | 3.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8eabd33fcf6831299e17d9195d88823ea041ece3fc318efff762ae7bea3bf287
|
|
BLAKE2b-256 checksum How to use checksums |
3bcc5cac24e6eb66d8f01802a0b2c6c9bd1820b9d50b7cd2b3470e09d2e2cbfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.11
|
Release files / yasku-0.1.1-py3-none-any.whl
| Download URL | yasku-0.1.1-py3-none-any.whl |
|---|---|
| Size | 3.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a3a7936b2c0b2835786dcc074a0afc5c1f5d7b74e3c78b338030523005e7102
|
|
BLAKE2b-256 checksum How to use checksums |
ab1ec4753774db0184342c7a4e4dd71f3f94bd69e5cef86f6bf3581c7208c36a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.11
|