Files
rfd-notify/README.md
2023-02-21 08:35:32 -05:00

2.7 KiB

rfd-notify

This tool looks for matches on RedFlagDeals.com forums and supports apprise push notifications.

This was originally written before alerts existed. With rfd-notify, alerts never expire and support regular expressions.

Prerequisites

Usage

To run the code directly, clone this repo and run the following:

poetry install
poetry run python rfd_notify/cli.py -c examples/config.yml

Environment Variables

The following environment variables are required:

VARIABLE DESCRIPTION
APPRISE_URL See notifications.

Example Configuration

Pass a list of expressions to be used for discovering deals:

# config.yml
expressions:
  - pizza
  - starbucks
  - price error

Github Action

An action can be setup to scan for deals, send a notification and store previously found deals in the repo.

It also requires the corresponding encrypted secrets setup.

# .github/workflows/rfd-notify.yml

on:
  schedule:
    - cron: "*5 * * * *"
jobs:
  rfd_notify:
    runs-on: ubuntu-latest
    name: rfd-notify
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Run rfd-notify
        uses: davegallant/rfd-notify@main
        env:
          APPRISE_URL: ${{ secrets.APPRISE_URL }}

      - name: Commit files
        run: |
          git config --local user.email "action@github.com"
          git config --local user.name "RFD Notify"
          git add previous_matches
          git commit -m "Add matches" -a || true

      - name: Push changes
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: ${{ github.ref }}

Drone CI

The following works on Drone CI:

# .drone.yml
---
kind: pipeline
type: docker
name: default

steps:
  - name: run rfd-notify
    image: ghcr.io/davegallant/rfd-notify:1
    environment:
      APPRISE_URL:
        from_secret: apprise_url

  - name: commit db changes
    image: appleboy/drone-git-push:0.2.1
    settings:
      branch: main
      remote_name: origin
      force: false
      commit: true