Sign inSign up

lupohan44/games_hub

By lupohan44

•Updated over 2 years ago

GamesHub provides a framework to develop plugins to scrap games from different websites

Image
Security
Web servers
Content management system
4

10K+

lupohan44/games_hub repository overview

⁠GamesHub

logo

project GitHub license GitHub stars docker Build Status

This project is inspired by SteamDB-FreeGames⁠

Telegram discussion group: https://t.me/GamesHubDiscussion⁠

⁠Star History

Stargazers over time

⁠Features

Provide a framework to develop plugins to scrap games from different websites and send notifications to other plugins

⁠Official Plugins (Maintained by project)

:white_check_mark: Gather Steam free games from SteamDB⁠. (Not recommended)

:white_check_mark: Gather free games from Keylol⁠. (recommended)

:white_check_mark: Use Apprise⁠ to send free games information. (Telegram demo channel)⁠

:white_check_mark: Use ASF⁠ to redeem games

⁠Requirements

⁠Usage

⁠Direct run
  1. Clone repository
    git clone https://github.com/lupohan44/GamesHub.git
    
  2. Go into GamesHub directory
    cd GamesHub
    
  3. Install requirements
    pip3 install -r requirements.txt
    playwright install webkit chromium firefox || python3 -m playwright install webkit chromium firefox
    # Depends on the browser(s) you want to use
    
    or install minimum requirements
    pip install -r requirements-no_plugin.txt
    
    and install requirements for each plugin you want to enable
  4. Copy config.example.json5⁠ to config.json5, change settings in it according to the comment.
  5. Run
    python3 app.py
    
    Each enabled official plugin should create a folder in {WORKING_DIR}/plugins/{PLUGIN_PACKAGE_NAME} to store runtime files and configs
  6. Change plugins' config files from step 5
  7. Rerun step 5
⁠Docker (For Linux only)
  1. Create a folder for record and config, let's say folder name is /var/GamesHub

    Please note that this folder name must be absolute path.

    export GAMES_HUB_FOLDER_NAME=/var/GamesHub
    mkdir -p "$GAMES_HUB_FOLDER_NAME"
    
  2. Download config.example.json5⁠ and rename to config.json5 into the folder created in step 1, change settings in it according to the comment.

    wget -c "https://raw.githubusercontent.com/lupohan44/GamesHub/main/config.example.json5" -O "$STEAM_DB_FOLDER_NAME/config.json5" || curl -o "$STEAM_DB_FOLDER_NAME/config.json5" "https://raw.githubusercontent.com/lupohan44/GamesHub/main/config.example.json5"
    
  3. Run with docker

    docker pull lupohan44/games_hub:latest && docker run -v $GAMES_HUB_FOLDER_NAME:/home/wd --rm lupohan44/games_hub:latest
    

    All changes by script inside docker will be permanently save to this folder.
    Each enabled official plugin should create a folder in {WORKING_DIR}/plugins/{PLUGIN_PACKAGE_NAME} to store runtime files and configs

  4. Change plugins' config files from step 3

  5. Rerun step 3

⁠Plugins structure example

/var/GamesHub (working directory)
├── config.json5
└── plugins
    ├── gameshub.official.notification.apprise
    │   └── config.json5
    ├── gameshub.official.scrapper.steamdb
    │   └── config.json5
    ├── gameshub.official.scrapper.keylol
    │   ├── config.json5
    │   └── cookies.txt
    └── gameshub.official.redeemer.asf
        └── config.json5

⁠Known issue

  1. Playwright does not support CentOS. (issue⁠)
    • Use docker

⁠Develop plugins

  1. Think a package name for your plugin, format should be like gameshub.unofficial.{plugin_purpose}.{plugin_description}[.{your_name}]
  2. Copy one of the official plugin in plugins⁠ folder and rename it to your package name
  3. Follow the official plugin's structure and modify it to your needs

⁠Changelog⁠

⁠Special Thanks

  • The logo is designed by 限免喜加一 WechatQrCode

⁠Support me

  1. ko-fi
  2. Star this repository
  3. Contribute to this project by pull request

Each of them is appreciated. Thank you.

Tag summary

Content type

Image

Digest

sha256:2ca558cfe…

Size

785.1 MB

Last updated

over 2 years ago

docker pull lupohan44/games_hub