1 Star 2 Fork 1

Gitee 极速下载 / GitHubPoster

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/yihong0618/GitHubPoster
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README-EN.md

GitHubPoster

Make everything a GitHub svg poster and skyline!

svg in README emamples

Circular

Skyline

image

Support

Download

git clone https://github.com/yihong0618/GitHubPoster.git

pip install

pip3 install -U 'github_poster[all]'

Install(Python3.6+)

pip3 install -r requirements.txt

Use

The generated svg is in OUT_FOLDER, named with type (for now)

Different types are used as specified below:

  • --year 2021: You can specify a year (default) or a year range --year 2012-2021
  • --special-number1 10 -- special_number2 20: By default, the number of different colors is automatically generated (special colors), you can also specify the color
  • --special-color1 pink --special-color2 '#33C6A4': You can also specify the color
  • --with-animation: You can add animation (add GOGOGO animation)
  • --animation-time 14: you can control the animation time (default is 10s), use with --with-animation
  • --with-skyline: You can save skyline stl file (default skyline year is to_year),
  • --skyline-with-name: set to print user name on model, use with --with-skyline
  • --is-circular: With this command, the svg will be circular and with animation
  • --without-type-name: Support for hiding the name of the build type in the title
  • ---stand-with-ukraine

Other parameters can be found with python3 -m github_poster <type> --help

GPX

Make your GPX GitHub poster

mv gpx files to GPX_FOLDER then run the code

python3 -m github_poster gpx --gpx_dir ~/blog/GPX_OUT/ --year 2013-2021
or pip
github_poster github_poster gpx --gpx_dir ~/blog/GPX_OUT/ --year 2013-2021

Strava

Make your Strava GitHub poster
  1. Sign in/Sign up Strava account

  2. Open after successful Signin Strava Developers -> Create & Manage Your App

  3. Create My API Application: Enter the following information


My API Application Created successfully:


  1. Use the link below to request all permissions: Replace ${your_id} in the link with My API Application Client ID
https://www.strava.com/oauth/authorize?client_id=${your_id}&response_type=code&redirect_uri=http://localhost/exchange_token&approval_prompt=force&scope=read_all,profile:read_all,activity:read_all,profile:write,activity:write

get_all_permissions

  1. Get the code value in the link

example:

http://localhost/exchange_token?state=&code=1dab37edd9970971fb502c9efdd087f4f3471e6e&scope=read,activity:write,activity:read_all,profile:write,profile:read_all,read_all

code value:

1dab37edd9970971fb502c9efdd087f4f3471e6

get_code

  1. Use Client_idClient_secretCode get refresch_token: Execute in Terminal/iTerm
curl -X POST https://www.strava.com/oauth/token \
-F client_id=${Your Client ID} \
-F client_secret=${Your Client Secret} \
-F code=${Your Code} \
-F grant_type=authorization_code

example:

curl -X POST https://www.strava.com/oauth/token \
-F client_id=12345 \
-F client_secret=b21******d0bfb377998ed1ac3b0 \
-F code=d09******b58abface48003 \
-F grant_type=authorization_code

get_refresch_token

python3 -m github_poster --strava_client_id  ${client_id} --strava_client_secret ${client_secret} --strava_refresh_token ${refresh_token} --year 2012-2021
or pip
github_poster --strava_client_id  ${client_id} --strava_client_secret ${client_secret} --strava_refresh_token ${refresh_token} --year 2012-2021

NS

Make your Nintendo Switch GitHub poster

From APP(Nintendo Switch Parent Controls) using mitmproxy to get the session_token and devide _id

python3 -m github_poster ns --ns_session_token ${session_token} --ns_device_id ${device_id} --year 2020-2021
or pip
github_poster ns --ns_session_token ${session_token} --ns_device_id ${device_id} --year 2020-2021

Duolingo

Make your Duolingo GitHub poster

Find your duolingo id, F12 from XHR image

python3 -m github_poster duolingo --duolingo_user_name ${user_id} --year 2015-2021
or
github_poster duolingo --duolingo_user_name ${user_id} --year 2015-2021

Issue

Make your Issue GitHub poster

Like my issue issue

	python3 -m github_poster issue --issue_number ${issue_number} --repo_name ${repo_name} --token ${github_token}
or
github_poster issue --issue_number ${issue_number} --repo_name ${repo_name} --token ${github_token}

LeetCode

Make your LeetCode GitHub poster

Find your LeetCode Cookie

python3 -m github_poster leetcode --leetcode_cookie ${leetcode_cookie} --year 2019-2021
or
github_poster leetcode --leetcode_cookie ${leetcode_cookie} --year 2019-2021

Twitter

Make your Twitter GitHub poster

Find your Twitter user_id (in the url)

python3 -m github_poster twitter --twitter_user_name ${user_name} --year 2018-2021 --track-color '#1C9CEA'
or
github_poster twitter --twitter_user_name ${twitter_user_name} --year 2018-2021 --track-color '#1C9CEA'

The method above uses twint to scrape tweets directly from Twitter.

Alternatively, download your Twitter Archive and use contrib/convert_twitter_archive_to_json_data_source.py to convert it to JSON data source and feed it to Json loader. This method is useful if one or more of the following applies to you:

  • You have lots of tweets.
  • You have been using Twitter for many years.
  • Your connection to Twitter is not reliable enough.
  • You have a protected Twitter account.

Youtube

Make your YouTube GitHub poster

Use Google History Takeout to download YouTube history data,choose json format,mv watch-history.json to IN-FOLDER then run the code

python3 -m github_poster youtube --year 2015-2021
or
github_poster youtube --year 2015-2021

Bilibili

Make your Bilibili GitHub poster

Find your Bilibili (XHR) cookie

python3 -m github_poster bilibili --cookie "${bilibili-cookie}"
or
github_poster bilibili --cookie "${bilibili-cookie}"

GitHub

Make your GitHub GitHub poster

Get your GitHub Name (in the url)

python3 -m github_poster github --github_user_name "${github_user_name}" --with-skyline
or
github_poster github --github_user_name "${github_user_name}" --with-skyline

GitLab

Make your GitLab GitLab poster

Get your GitLab Name (in the url)

python3 -m github_poster gitlab --gitlab_user_name "${gitlab_user_name}"
or
github_poster gitlab --gialab_user_name "${gitlab_user_name}"

For self-managed GitLab, specify the base url of your instance. You should use _gitlab_session from Cookies if sign in required. s

python3 -m github_poster gitlab --gitlab_user_name "${gitlab_user_name}" --base_url "https://your-gitlab.com" --session "${gitlab_session}"
or
github_poster gitlab --gitlab_user_name "${gitlab_user_name}" --base_url "https://your-gitlab.com" --session "${gitlab_session}"

Kindle

Make your Kindle GitHub poster

Find your Amazon Cookie

python3 -m github_poster kindle --kindle_cookie ${kindle_cookie} --cn --year 2018-2021
or
github_poster kindle --kindle_cookie ${kindle_cookie} --cn --year 2018-2021

WakaTime

Make your WakaTime poster

Find your own WakaTime API Key at: WakaTime API Key

python -m github_poster wakatime --wakatime_key="your_wakatime_api_key" --year 2019-2021
or
github_poster wakatime --wakatime_key="your_wakatime_api_key" --year 2019-2021

Dota2

Make your Dota2 poster

Find your dota2_id, eg:Dendi's ID 70388657 Check your dota2_id(steamid32): https://steamid.xyz/. Check your game data: https://api.opendota.com/api/players/{dota2_id}/matches. more info: https://docs.opendota.com/#section/Introduction"

python -m github_poster dota2 --dota2_id="your dota2 id" --year 2017-2018
or
github_poster dota2 --dota2_id="your dota2 id" --year 2017-2018

Nike

Make your Nike poster>

获取 Nike 的 refresh_token

  1. 登录 Nike 官网
  2. In Developer -> Application-> Storage -> https:unite.nike.com 中找到 refresh_token
python3 -m github_poster nike --nike_refresh_token="your nike_refresh_token" --year 2012-2021
or
github_poster nike --nike_refresh_token="your nike_refresh_token" --year 2012-2021

Notion

Make your Notion poster

Get Notion Internal Integration Token(notion_token), see here for more details.

  1. Sign in Notion developers site
  2. Click 'New integration' to create a new token
  3. You can see Internal Integration Token below Secrets after submit

Get Notion Database ID(database_id), see here for more details.

  1. Open the database as a full page in Notion
  2. Use the Share menu to Copy link, and you'll get a URL looks like https://www.notion.so/{workspace_name}/{database_id}?v={view_id}
  3. The part that corresponds to {database_id} is the ID of your Notion Database

Note:The database need a property which type is Date, the value of it will be used to generate the poster. The name of the date property shoould be set as option prop_name's value,default value is Datetime

python3 -m github_poster notion --notion_token="your notion_token" --database_id="your database_id" --prop_name="your prop_name"
or
github_poster notion --notion_token="your notion_token" --database_id="your database_id" --prop_name="your prop_name"

Garmin

Make your Garmin poster

需要填写 Garmin 的账号和密码

python3 -m github_poster garmin --garmin_user_name ${user_name} --garmin_password ${pass_word} --year 2016-2021 --special-color1 blue --special-color2 pink --me yihong0618 --cn
or
github_poster garmin --garmin_user_name ${user_name} --garmin_password ${pass_word} --year 2016-2021 --special-color1 blue --special-color2 pink --me yihong0618 --cn

Forest

Make your Forest GitHub poster

Need to add your Forest email and password

python3 -m github_poster forest --forest_email ${user_name} --forest_password ${pass_word} --year 2016-2021 --special-color1 blue --me yihong0618
or
github_poster forest --forest_email ${user_name} --forest_password ${pass_word} --year 2016-2021 --special-color1 blue --me yihong0618

Json

Make your Json(source data) types poster

make sure your json file format is like data.json in examples

python3 -m github_poster json --json_file "your json data file" --year 2019-2021 --me PythonHunter
or
github_poster json --json_file "your json data file" --year 2019-2021 --me PythonHunter

Multiple

Make your Multiple types poster

support multiple types

python3 -m github_poster multiple  --types "github, twitter, strava" --twitter_user_name "twitter user name" --github_user_name "github user name" --strava_client_id  "your strava client id"  --strava_client_secret "your strava client secret"  --strava_refresh_token "your strava refresh token"  --year 2020-2021
or
github_poster multiple  --types "github, twitter, strava" --twitter_user_name "twitter user name" --github_user_name "github user name" --strava_client_id  "your strava client id"  --strava_client_secret "your strava client secret"  --strava_refresh_token "your strava refresh token"  --year 2020-2021

Summary

Make your Summary types poster

support summary types

python3 -m github_poster summary  --types "github, twitter, strava" --twitter_user_name "twitter user name" --github_user_name "github user name" --strava_client_id  "your strava client id"  --strava_client_secret "your strava client secret"  --strava_refresh_token "your strava refresh token"  --year 2021
or
github_poster summary  --types "github, twitter, strava" --twitter_user_name "twitter user name" --github_user_name "github user name" --strava_client_id  "your strava client id"  --strava_client_secret "your strava client secret"  --strava_refresh_token "your strava refresh token"  --year 2021

Jike

Make your Jike(source data) types poster

need to find your Jike cookie from Jike (XHR) and jike_user_id, jike_user_id can be find in your personal page link eg. in the link https://web.okjike.com/u/82D23B32-CF36-4C59-AD6F-D05E3552CBF3, 82D23B32-CF36-4C59-AD6F-D05E3552CBF3 is the user_id

ps. only get the data for the last year

python3 -m github_poster jike --jike_cookie "your jike cookie" --jike_user_id 'your jike user id' --year 2021 --me "your name" --with-animation --animation-time 14 --count_type 'like'
or
github_poster jike --jike_cookie "your jike cookie" --jike_user_id "your jike user id" --year 2021 --me "your name" --with-animation --animation-time 14 --count_type 'like'

Option argument count_type, you can specify statistics type:

  • record: post num (default)
  • like: post be liked num
  • share: post be share num
  • comment: post be comment num
  • repost: post be repost num

Contribution

Before submitting PR:

  • Format Python code with black (black .)
  • Format Python code with isort (isort --profile black **/**/*.py)

TODO

  • twitter
  • GitLab
  • GitHub
  • LeetCode
  • GitHub from issues
  • YouTube
  • Bilibili
  • GitHub Actions
  • Change all default color
  • Skyline
  • Dota2
  • pypi
  • test
  • English README
  • Loader doc
  • Refactor some code

GitHub Actions

  1. fork or clone this repo
  2. Change the secrets
  3. Change the type in yml file

image image

Special thanks

Support

Thanks is enough.

Repository Comments ( 0 )

Sign in to post a comment

About

GitHubPoster 可生成 GitHub 贡献图风格的 SVG 格式图表以及 "Skyline" 3D 模型 expand collapse
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Python
1
https://gitee.com/mirrors/GitHubPoster.git
git@gitee.com:mirrors/GitHubPoster.git
mirrors
GitHubPoster
GitHubPoster
main

Search