Skip to content

Commit 9de1fd0

Browse files
feat: add dominant colour from user pfp to user embed
only works if your github username is not @object-Object
1 parent 206a0a6 commit 9de1fd0

File tree

3 files changed

+64
-2
lines changed

3 files changed

+64
-2
lines changed

bot/src/ghutils/cogs/app_commands/github.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from githubkit.exception import GitHubException, RequestFailed
1717
from githubkit.rest import Issue, IssuePropPullRequest, PullRequest, SimpleUser
1818
from more_itertools import consecutive_groups, ilen
19+
from Pylette import extract_colors
1920
from yarl import URL
2021

2122
from ghutils.common.__version__ import VERSION
@@ -188,10 +189,21 @@ async def user(
188189
)
189190
num_stars: int = result["user"]["starredRepositories"]["totalCount"]
190191

192+
# Pylette ints are actually int64s, thanks NumPy
193+
user_rgb = [
194+
int(val)
195+
for val in extract_colors(
196+
user.avatar_url, palette_size=1, sort_mode="frequency"
197+
)
198+
.colors[0]
199+
.rgb
200+
]
201+
191202
embed = (
192203
Embed(
193204
description=user.bio,
194205
url=user.html_url,
206+
color=Color.from_rgb(*user_rgb),
195207
)
196208
.set_thumbnail(url=user.avatar_url)
197209
.add_field(name="Repositories", value=user.public_repos, inline=True)

requirements-dev.lock

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,13 @@ cattrs==23.2.3
5151
certifi==2024.6.2
5252
# via httpcore
5353
# via httpx
54+
# via requests
5455
cffi==1.17.0 ; platform_python_implementation != 'PyPy'
5556
# via cryptography
5657
cfgv==3.4.0
5758
# via pre-commit
59+
charset-normalizer==3.4.1
60+
# via requests
5861
click==8.1.7
5962
# via typer
6063
# via uvicorn
@@ -110,11 +113,14 @@ idna==3.7
110113
# via anyio
111114
# via email-validator
112115
# via httpx
116+
# via requests
113117
# via yarl
114118
importlib-resources==6.4.5
115119
# via jsii
116120
jinja2==3.1.4
117121
# via fastapi
122+
joblib==1.4.2
123+
# via scikit-learn
118124
jsii==1.103.1
119125
# via aws-cdk-asset-awscli-v1
120126
# via aws-cdk-asset-kubectl-v20
@@ -136,12 +142,18 @@ multidict==6.0.5
136142
# via yarl
137143
nodeenv==1.9.1
138144
# via pre-commit
145+
numpy==1.26.4
146+
# via pylette
147+
# via scikit-learn
148+
# via scipy
139149
object-ci @ git+https://github.com/object-Object/ci@6c2cba42668b4c632a1368adb5034e733cb6cc0a
140150
# via ghutils-infrastructure
141151
orjson==3.10.5
142152
# via fastapi
143153
pfzy==0.3.4
144154
# via ghutils-bot
155+
pillow==10.4.0
156+
# via pylette
145157
platformdirs==4.2.2
146158
# via virtualenv
147159
pre-commit==3.7.1
@@ -172,6 +184,8 @@ pygments==2.18.0
172184
# via rich
173185
pyjwt==2.9.0
174186
# via githubkit
187+
pylette==4.0.0
188+
# via ghutils-bot
175189
python-dateutil==2.9.0.post0
176190
# via jsii
177191
python-dotenv==1.0.1
@@ -185,9 +199,15 @@ pyyaml==6.0.2
185199
# via ghutils-bot
186200
# via pre-commit
187201
# via uvicorn
202+
requests==2.32.3
203+
# via pylette
188204
rich==13.7.1
189205
# via typer
190206
ruff==0.4.10
207+
scikit-learn==1.6.1
208+
# via pylette
209+
scipy==1.15.1
210+
# via scikit-learn
191211
shellingham==1.5.4
192212
# via typer
193213
six==1.16.0
@@ -201,6 +221,8 @@ sqlmodel==0.0.19
201221
# via ghutils-bot
202222
starlette==0.37.2
203223
# via fastapi
224+
threadpoolctl==3.5.0
225+
# via scikit-learn
204226
typeguard==2.13.3
205227
# via aws-cdk-asset-awscli-v1
206228
# via aws-cdk-asset-kubectl-v20
@@ -210,8 +232,9 @@ typeguard==2.13.3
210232
# via aws-cdk-lib
211233
# via constructs
212234
# via jsii
213-
typer==0.12.3
235+
typer==0.12.5
214236
# via fastapi-cli
237+
# via pylette
215238
typing-extensions==4.12.2
216239
# via fastapi
217240
# via fluent-runtime
@@ -225,6 +248,8 @@ typing-extensions==4.12.2
225248
# via typer
226249
ujson==5.10.0
227250
# via fastapi
251+
urllib3==2.3.0
252+
# via requests
228253
uvicorn==0.30.1
229254
# via fastapi
230255
uvloop==0.20.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'

requirements.lock

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,11 @@ cattrs==23.2.3
5151
certifi==2024.6.2
5252
# via httpcore
5353
# via httpx
54+
# via requests
5455
cffi==1.17.0 ; platform_python_implementation != 'PyPy'
5556
# via cryptography
57+
charset-normalizer==3.4.1
58+
# via requests
5659
click==8.1.7
5760
# via typer
5861
# via uvicorn
@@ -102,11 +105,14 @@ idna==3.7
102105
# via anyio
103106
# via email-validator
104107
# via httpx
108+
# via requests
105109
# via yarl
106110
importlib-resources==6.4.5
107111
# via jsii
108112
jinja2==3.1.4
109113
# via fastapi
114+
joblib==1.4.2
115+
# via scikit-learn
110116
jsii==1.103.1
111117
# via aws-cdk-asset-awscli-v1
112118
# via aws-cdk-asset-kubectl-v20
@@ -126,12 +132,18 @@ more-itertools==10.5.0
126132
multidict==6.0.5
127133
# via aiohttp
128134
# via yarl
135+
numpy==1.26.4
136+
# via pylette
137+
# via scikit-learn
138+
# via scipy
129139
object-ci @ git+https://github.com/object-Object/ci@6c2cba42668b4c632a1368adb5034e733cb6cc0a
130140
# via ghutils-infrastructure
131141
orjson==3.10.5
132142
# via fastapi
133143
pfzy==0.3.4
134144
# via ghutils-bot
145+
pillow==10.4.0
146+
# via pylette
135147
psycopg2-binary==2.9.9
136148
# via ghutils-bot
137149
publication==0.0.3
@@ -159,6 +171,8 @@ pygments==2.18.0
159171
# via rich
160172
pyjwt==2.9.0
161173
# via githubkit
174+
pylette==4.0.0
175+
# via ghutils-bot
162176
python-dateutil==2.9.0.post0
163177
# via jsii
164178
python-dotenv==1.0.1
@@ -171,8 +185,14 @@ pytz==2024.2
171185
pyyaml==6.0.2
172186
# via ghutils-bot
173187
# via uvicorn
188+
requests==2.32.3
189+
# via pylette
174190
rich==13.7.1
175191
# via typer
192+
scikit-learn==1.6.1
193+
# via pylette
194+
scipy==1.15.1
195+
# via scikit-learn
176196
shellingham==1.5.4
177197
# via typer
178198
six==1.16.0
@@ -186,6 +206,8 @@ sqlmodel==0.0.19
186206
# via ghutils-bot
187207
starlette==0.37.2
188208
# via fastapi
209+
threadpoolctl==3.5.0
210+
# via scikit-learn
189211
typeguard==2.13.3
190212
# via aws-cdk-asset-awscli-v1
191213
# via aws-cdk-asset-kubectl-v20
@@ -195,8 +217,9 @@ typeguard==2.13.3
195217
# via aws-cdk-lib
196218
# via constructs
197219
# via jsii
198-
typer==0.12.3
220+
typer==0.12.5
199221
# via fastapi-cli
222+
# via pylette
200223
typing-extensions==4.12.2
201224
# via fastapi
202225
# via fluent-runtime
@@ -210,6 +233,8 @@ typing-extensions==4.12.2
210233
# via typer
211234
ujson==5.10.0
212235
# via fastapi
236+
urllib3==2.3.0
237+
# via requests
213238
uvicorn==0.30.1
214239
# via fastapi
215240
uvloop==0.20.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'

0 commit comments

Comments
 (0)