Skip to content

A simple and customizable way to display code, anime, and music stats on your GitHub profile README.

License

Notifications You must be signed in to change notification settings

LucasHenriqueDiniz/WeebProfile

Repository files navigation

WeebProfile 🦀

A simple and customizable way to display code, anime, and music stats on your GitHub profile README.

📝 Contents

📦 Available plugins

🖼️ Supported sections

Right now we support 31 sections with 2 styles each

github

Default Style

Section Default Image Showcase
profile
repositories
favorite_languages
favorite_license
activity
calendar
code_habits

Terminal Style

Section Terminal Image Showcase
profile
repositories
favorite_languages
favorite_license
activity
calendar
code_habits
lastfm

Default Style

Section Default Image Showcase
recent_tracks
statistics
top_artists_grid
top_artists_list
top_artists_default
top_albums_list
top_albums_grid
top_albums_default
top_tracks_list
top_tracks_grid
top_tracks_default

Terminal Style

Section Terminal Image Showcase
recent_tracks
statistics
top_artists_grid
top_artists_list
top_artists_default
top_albums_list
top_albums_grid
top_albums_default
top_tracks_list
top_tracks_grid
top_tracks_default
myanimelist

Default Style

Section Default Image Showcase
statistics
anime_bar
manga_bar
statistics_simple
anime_simple_favorites
manga_simple_favorites
people_simple_favorites
character_simple_favorites
anime_favorites
manga_favorites
people_favorites
character_favorites
last_activity

Terminal Style

Section Terminal Image Showcase
statistics
anime_bar
manga_bar
statistics_simple
anime_simple_favorites
manga_simple_favorites
people_simple_favorites
character_simple_favorites
anime_favorites
manga_favorites
people_favorites
character_favorites
last_activity

⚙️ Getting Started

Setting up your WeebProfile is easy and can be done in a few steps:

1. Create a new GitHub Gist and copy the ID

  • Go to your GitHub profile and create a new public Gist
  • Copy the Gist ID from the URL (e.g. https://gist.github.com/username/gist_id)

Gist ID example

2. If you haven't already, create a readme repository

  • Create a new repository with your username as the repository name (e.g. github.com/username/username)
  • Create a new file called README.md
  • Commit the changes, now in your profile, you should see the repository like this: Repository example

3. Create a new GitHub Token

💡 A GitHub personal token is required since this action will fetch data that cannot be accessed through repository-scoped tokens (like ${{ secrets.GITHUB_TOKEN }} or ${{ github.token }}) such as users, pull requests, commits, activity, etc.

Only the gist scope is required for now as it's the only method to save the SVG without being local.

Additional scopes may be required depending on which features will be used. Each plugin documentation enumerates which scopes are required to make it work.

As a general rule, the following scopes may be required:

  • public_repo for some plugins
  • repo for all private repositories related metrics

💡 When a plugin has not enough scopes to operate and error message will be displayed in the action console

4. Add the Gist ID and GitHub Token to your repository secrets

5. Create a new GitHub Action

  • Go to the .github/workflows folder in your repository (if it doesn't exist, create it)
  • Create a new file called weeb_profile.yml and paste the following code:
name: WeebProfile
on:
# 🦀 Schedule
schedule: [{ cron: "0 0 * * *" }] # Everyday at 00:00 UTC
# 💡 The following line lets you run workflow manually from the action tab!
workflow_dispatch:
# 🚀 Push event
jobs:
  weeb_profile:
    runs-on: ubuntu-latest
    steps:
      - name: 🦀 LastFM & Github 🦀
        uses: LucasHenriqueDiniz/WeebProfile@main
        with:
          FILENAME: LastFM.svg
          GIST_ID: ${{ secrets.GIST_ID }}
          GH_TOKEN: ${{ secrets.WEEB_GH_TOKEN }}
          STORAGE_METHOD: gist
          STYLE: default
          SIZE: half

          PLUGIN_LASTFM: true
          PLUGIN_LASTFM_HIDE_HEADER: true
          PLUGIN_LASTFM_USERNAME: Amayacrab
          PLUGIN_LASTFM_SECTIONS: recent_tracks, top_artists_grid, top_albums_grid

          PLUGIN_GITHUB: true
          PLUGIN_GITHUB_HIDE_HEADER: true
          PLUGIN_GITHUB_USERNAME: LucasHenriqueDiniz
          PLUGIN_GITHUB_SECTIONS: favorite_languages

      - name: 🦀 MyAnimeList 🦀
        uses: LucasHenriqueDiniz/WeebProfile@main
        with:
          FILENAME: MyAnimeList.svg
          GIST_ID: ${{ secrets.GIST_ID }}
          GH_TOKEN: ${{ secrets.WEEB_GH_TOKEN }}
          STORAGE_METHOD: gist
          SIZE: half
          STYLE: default

          PLUGIN_MAL: true
          PLUGIN_MAL_HIDE_HEADER: true
          PLUGIN_MAL_USERNAME: Amayacrab
          PLUGIN_MAL_SECTIONS: statistics_simple, character_simple_favorites, anime_favorites

Repository workflow

  • Commit the changes
  • Go to the Actions tab in your repository, you should see the workflow running

💡 Now in the Actions tab of your repository, you should see the workflow running and generating the SVGs.

💡 The SVGs will be saved in the Gist you created in step 1

💡 You can run it manually by clicking on the Run workflow button

6. Add the SVGs to your profile

  • Go to your GitHub profile and click on the Edit profile button
  • In the About section, paste the following code:
![LastFM](https://gist.githubusercontent.com/username/gist_id/raw/LastFM.svg)
![MyAnimeList](https://gist.githubusercontent.com/username/gist_id/raw/MyAnimeList.svg)

💡 Don't forget to replace username and gist_id with your GitHub username and Gist ID

💡 If you used other filename in the action replace in the link ex: LastFM.svg or MyAnimeList.svg

  • Replace username and gist_id with your GitHub username and Gist ID
  • Save the changes

7. Done!

💡 Now in your profile, you should see the SVGs like this

Example: Profile example

🛠️ Configuration

The weeb_profile.yml file is where you can configure the plugins and the SVGs that will be generated. Each plugin has its own configuration, and you can enable or disable them by setting the PLUGIN_ENABLED to true or false. You can see the available configurations for each plugin in the Available plugins section.

🌐 Global configurations

Key Default Description
FILENAME MyProfile.svg The name of the SVG file that will be generated
DEV false If the action is running in dev mode (will not fetch data from API)
GIST_ID '' The Gist ID where the SVG will be saved
GH_TOKEN '' The GitHub Token used to save the SVG
SIZE half The size of the SVG (half or full)
STYLE default The style of the SVG (default or terminal)
STORAGE_METHOD gist The storage method of the SVG (gist, local or repository)
CUSTOM_CSS '' The custom CSS that will be applied to the SVG
PLUGINS_ORDER 'github, lastfm, mal' The order of the plugins that will be generated

🤝 Contributing

If you are interested in contributing, the following resources may interest you:

Use 💬 discussions for feedback, new features suggestions, bugs reports or to request help for installation.

📜 License

Apache License 2.0
Copyright (c) 2024-@{currentYear}