leherv / RealEase

Makes tracking new releases easier by notifying users via Discord.

Home Page:https://realease.viktorleher.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RealEase

CI Deploy_DEV Deploy_PROD

Test_Results_success Test_Results_failed Combined_Coverage

Branch_Coverage Line_Coverage Method_Coverage

GitHub issues

Get started

Mutual server with bot

Add the bot to one of your servers if you are not already in a server with it. You can do this via the invite url here: Invitation Link You can also do this via the offical website.

Manage subscriptions

Either use the offical website(recommended) to manage your subscriptions or just directly chat with the bot by using his built in commands (for all available commands type "re!h"). To use the official website you have to log in by using your Discord-Account (you will be redirected to Discord). You can then:

  • Subscribe to and unsubscribe from different media
  • Search media by name
  • Sort media by subscription status or name
  • Add new media
  • Add new Scrape Targets

Add new media

By hitting the Add Media Button you will be prompted to choose one of the supported websites as well as provide a relative url path to the specific media you want to add. This media can then be found and subscribed to by all other users.

Add new Scrape Target

For an already existing media it is possible to add additional Scrape Targets. You will again be prompted to choose a supported website as well as a relative link to the desired media on that website. All ScrapeTargets configured for a media will be checked for new releases. The one adding the new release first will be used for the notification.

How to contribute

General

Note: all commands are executed from the project root

Values for the environment variables mentioned in the docker-compose files have to be supplied. This can be done via .env file, replacing the ${} with values directly or by setting environment values on the machine.

Local Development

Run the app locally

dotnet run

and only start the database via docker

docker-compose -f ./build/docker-compose.DOCKER.yml up real_ease_db --build --abort-on-container-exit --force-recreate --remove-orphans

Do not forget that to set up playwright locally if you do not use docker. The simplest way is uncommenting the following line in PlaywrightScraper.cs:

Program.Main(new[] {"install"});

this is not necessary when using Docker, as the image already contains Playwright.

Run all tests

dotnet test

Run integration tests only

dotnet test --filter=Category=Integration

Run only unit tests

dotnet test --filter=Category!=Integration

Running everything in docker is also possible

docker-compose -f ./build/docker-compose.DOCKER.yml up --build --abort-on-container-exit --force-recreate --remove-orphans

Before each PR, check if everything works with docker

docker-compose -f ./build/docker-compose.CI.yml up --build --abort-on-container-exit --force-recreate --remove-orphans

PROD

docker-compose -f ./build/docker-compose.yml up --build --abort-on-container-exit --force-recreate --remove-orphans

Troubleshooting

Build specific stage from the Dockerfile in /build

docker build -t real_ease -f .\build\Dockerfile --target [targetName] .

Then use

docker run -t -d real_ease

to start the container and keep it running so e.g. portainer can be used to look inside.


TODOs

About

Makes tracking new releases easier by notifying users via Discord.

https://realease.viktorleher.com


Languages

Language:C# 89.4%Language:HTML 9.1%Language:CSS 0.6%Language:Shell 0.4%Language:Dockerfile 0.3%Language:JavaScript 0.1%