Skip to main content

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

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

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.txt in 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

  1. Go to your Discord server and create a webhook in the channel settings.
  2. Copy the webhook URL.
  3. Paste it into the discordWebhook field in your .yasku config file or enter it when running yasku_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.txt in 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)

  1. Open your crontab for editing:
    crontab -e
    
  2. 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 cron as above, or use the macOS launchd system for more advanced scheduling.
  • For most users, adding a cron job as shown above works fine.

Windows (Task Scheduler)

  1. Open Task Scheduler from the Start menu.
  2. Click Create Basic Task...
  3. Name your task (e.g., "YASKU Daily") and click Next.
  4. Choose Daily and set your preferred time.
  5. For the action, select Start a program.
  6. In Program/script, enter:
    powershell.exe
    
  7. In Add arguments, enter:
    -Command "yasku"
    
    Or, if you installed in a virtual environment, use the full path to yasku.exe or python -m yasku.
  8. 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)

Source distribution for yasku 0.1.1
File Size Uploaded
yasku-0.1.1.tar.gz 3.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yasku 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page