Skip to main content

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yasku-0.1.1.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yasku-0.1.1-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

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

Hashes for yasku-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8eabd33fcf6831299e17d9195d88823ea041ece3fc318efff762ae7bea3bf287
MD5 1b0992e36e66ba21a216a76d2ccdceb7
BLAKE2b-256 3bcc5cac24e6eb66d8f01802a0b2c6c9bd1820b9d50b7cd2b3470e09d2e2cbfd

See more details on using hashes here.

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

Hashes for yasku-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0a3a7936b2c0b2835786dcc074a0afc5c1f5d7b74e3c78b338030523005e7102
MD5 a705449fd9895f503c2a14d0c0826e48
BLAKE2b-256 ab1ec4753774db0184342c7a4e4dd71f3f94bd69e5cef86f6bf3581c7208c36a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page