🐙 Share your Github stats for 2020 on Twitter

Overview

Year on Github 🐙

Heroku App Status

Share your Github stats for 2020 on Twitter.

This project contains a small web app that let's you share stats about your Github activity from last year. It's like Spotify's "year in review" but for Github. The app is built with Streamlit, queries Github's API via ghapi, and let's you share the generated stats directly on Twitter.



🎉 Try it out: gh2020.jrieke.com 🎉



For updates follow me on Twitter and if you like this project, please consider sponsoring ☺️




Note: The steps below are only required if you want to work on the app. If you just want to use it, go here.

Installation

git clone https://github.com/jrieke/my-year-on-github.git
cd my-year-on-github
pip install -r requirements.txt

Known issues

  • Doesn't work with Python 3.8 and 3.9! Both versions throw an error related to ghapi/multiprocessing that I couldn't resolve yet (RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase and subsequently an EOFError). Please use Python 3.7 for now.

  • ghapi has (as of 26 December 2020) a small bug in the paged method (see here), which may cause problems, therefore the commands above will install it from my fork (you can also install it manually from there with pip install -U git+https://github.com/jrieke/ghapi).

Running locally

streamlit run app/main.py

Make sure to run always from the my-year-on-github dir (not from the app dir), otherwise the app will not be able to find the css file.

Deploying to Heroku

First, install heroku and login. To create a new deployment, run inside my-year-on-github:

heroku create
git push heroku main
heroku open

To update the deployed app, commit your changes and run:

git push heroku main

TODO

PRs are welcome! Please open an issue before you start working to coordinate.

  • New stars for repos >40k stars are not properly calculated because the Github API only returns the first 40k stars. Improve this by using the current stargazers_count to calculate/estimate the number of new stars.
  • Maybe: Use stargazers_count in query_repo so it's not required to read the last page of stargazers. This requires to disable hashing for stargazers_count in streamlit's cache function.
  • Right now, new stars for 2021 are also counted. Fix this.
Owner
Johannes Rieke
Machine learning engineer. Computational Neuroscience @ TU Berlin
Johannes Rieke
Asynchronous Python Wrapper for the Ufile API

Ufile.io Asynchronous Python Wrapper for the Ufile API (Unofficial).

Gautam Kumar 16 Aug 31, 2022
The aim is to contain multiple models for materials discovery under a common interface

Aviary The aviary contains: - roost, - wren, cgcnn. The aim is to contain multiple models for materials discovery under a common interface Environment

Rhys Goodall 20 Jan 06, 2023
This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive.

MIRROR HUNTER This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive. Repo la

anime republic 130 May 28, 2022
AWS SDK for Python

Boto3 - The AWS SDK for Python Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for Python, which allows Python developers to wri

the boto project 7.8k Jan 08, 2023
A fully responsive interface to manage all your favorite software on your HTPC.

Python 3 port of Hellowlol's HTPC Manager fork We made this an organization repository to be more independent from single developers. If you want to j

26 Jan 04, 2023
A pypi package that helps in generating discord bots.

A pypi package that helps in generating discord bots.

PineCode Corp 3 Nov 17, 2021
An inline real-time media searching robot without any database.

MediaBuddy A Telegram Inline media searching robot without any database. About mediaBuddy is an inline media searching robot. If you have so many movi

Renjith Mangal 28 Oct 21, 2022
Twitter-redesign - Twitter Redesign With Django

Twitter Redesign A project that tests Django and React knowledge through a twitt

Mark Jumba 1 Jun 01, 2022
A Discord bot for osu!

This is the mostly-complete repo for the owo Discord osu! bot which you can invite here. As you look through this repo, please keep in mind that all o

Stevy 43 Dec 28, 2022
Public repo of the bot

wiki-reddit-bot Public repo of u/wikipedia_answer_bot Tools Language: Python Libraries: praw (Reddit API) mediawikiapi (Wikipedia API) tenacity How it

TheBugYouCantFix 51 Dec 03, 2022
Mass Instagram Checker

Mass Instagram Checker

X - MrG3P5 5 Nov 09, 2022
A group management bot written in python3 using the python-telegram-bot library.

Chika Fujiwara A modular telegram Python bot running on python3 with an sqlalchemy database. Originally a Marie fork, Chika was created for personal u

Wahyusaputra 3 Feb 12, 2022
Throttle and debounce add-on for Pyrogram

pyrothrottle Throttle and debounce add-on for Pyrogram Quickstart implementation on decorators from pyrogram import Client, filters from pyrogram.type

7 Oct 01, 2022
Um simples bot público para todos usarem no discord!

Discord Bot - Código Público Características: Linguagem de Programação: Python Quantidade de comandos: 17 Comandos: Prefixo do bot: O prefixo desse bo

Kevin 3 Dec 31, 2021
:snake: Python SDK to query Scaleway APIs.

Scaleway SDK Python SDK to query Scaleway's APIs. Stable release: Development: Installation The package is available on pip. To install it in a virtua

Scaleway 114 Dec 11, 2022
Clippin n grafting Backend

Clipping' n Grafting Presenting you, 🎉 Clippin' n Grafting 🎉 , your very own ecommerce website displaying all your artsy-craftsy stuff. Not only the

Google-Developer-Student-Club-ISquareIT (GDSC I²IT) 2 Oct 22, 2021
OSINT tool to get information from a Github and Gitlab profile and find user's email addresses leaked on commits.

gitrecon OSINT tool to get information from a Github or Gitlab profile and find user's email addresses leaked on commits. 📚 How does this work? GitHu

GOΠZO 211 Dec 17, 2022
A replacement for Reddit /r/copypasta CummyBot2000 with extra measures to avoid it being banned.

CummyBot1984 A replacement for Reddit /r/copypasta's CummyBot2000 with extra measures to respect Reddit's API rules. Features Copies and replies to ev

2 Feb 21, 2022
A Code that can make your Discord Account 24/7 on Voice Channels!

Voicecord Make your Discord Account Online 24/7 on Voice Channels! A Code written in Python that helps you to keep your account 24/7 on Voice Channels

Phantom 229 Jan 07, 2023
This library is for simplified work with the sms-man.com API

SMSMAN Public API Python This is a lightweight library that works as a connector to Sms-Man public API Installation pip install smsman Documentation h

13 Nov 19, 2022