Skip to content

Free Games on Steam & Epic

image image

Telegram bot to help you find cool free games on Steam and Epic Games. Basically this bot will find cool free games that is free to be kept on Steam or Epic Games. The bot then will send the game URL into a telegram channel.

❔ How it Works

flowchart LR
    subgraph Cleaner 
        J
    end

    subgraph Worker
        direction LR
       A --> B
       C --> D
       B --> F
       D --> F
       F --> G
       E --> G
       G --> H
       G --> I
    end

   A(FreeGamesOnSteam)
   B(Filter)
   C(FreeGameFindings)
   D(Filter)
   E[(Supabase)]
   F{{Combine}}
   G{{Reddit - Supabase}}
   H(Send to Telegram)
   I(Save to Supabase)
   J[[Cleanup]]
  1. FreeGamesOnSteam ➡️ Pull top reddit post from FreeGamesOnSteam then applied filter criteria:

    • Reddit post votes above 200
    • Post not older than 7 days
    • link_flair_text is not Ended
  2. FreeGameFindings ➡️ Pull top reddit post from FreeGameFindings then applied filter criteria:

  3. Reddit post votes above 300
  4. Post not older than 7 days
  5. link_flair_text is not Mod Post
  6. link_flair_text is not Regional Issues
  7. link_flair_text is not Expired

  8. Combine ➡️ Combine both list of Reddit Posts

  9. Supabase ➡️ Get All Post from Supabase Db

  10. Reddit - Supabase ➡️ Keep Reddit posts that is not in Supabase

  11. Send to Telegram ➡️ Send Post(s) to Telegram Channel as a Bot

  12. Save to Supabase ➡️ Save Post(s) to Supabase Db

note: Post in the db will be cleanup(old Post) daily to reduce db size

Worker run everyday at 11.00 AM
Cleaner run everday at 11.30 AM

🛠️ Setup

Environment Variables

Name Desc
TELEGRAM_BOT Telegram bot API Token
TELEGRAM_CHANNEL_FREE_GAMES Channel ID
SUPABASE_URL Supabase URL
SUPABASE_KEY Supabase Key

Supabase Table Definition

create table
  public.Games (
    url text not null,
    title text null,
    sent boolean null default true,
    found_at date null default now(),
    dummy boolean not null default false,
    constraint Games_pkey primary key (url)
  ) tablespace pg_default;