Skip to content

Commit 6706150

Browse files
authored
Merge pull request #10 from pphatdev/feat-counting-stars
Feat counting stars
2 parents 9632dab + 9b5fd47 commit 6706150

19 files changed

Lines changed: 1119 additions & 755 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ dist/
77
# Database
88
data/
99

10+
# FFmpeg working directory
11+
public/user/
12+
1013
# IDE
1114
.vscode/
1215
.idea/

docs/graph-params.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848
| Param | Type | Default | Description |
4949
|---|---|---|---|
50-
| `as` | `svg` \| `webp` \| `png` \| `gif` | `svg` | Output format. Raster formats are converted server-side via sharp. |
50+
| `as` | `svg` \| `webp` \| `png` | `svg` | Output format. Raster formats are converted server-side via sharp / FFmpeg. |
5151

5252
---
5353

@@ -56,8 +56,7 @@
5656
| Value | MIME type | Animated | Notes |
5757
|---|---|---|---|
5858
| `svg` | `image/svg+xml` | ✅ native | Default — inline `<animate>` elements, all filters preserved |
59-
| `gif` | `image/gif` | ✅ 20 frames | Per-frame opacity snapshots assembled with gifencoder |
60-
| `webp` | `image/webp` | ✅ 20 frames | GIF frames converted to animated WebP via sharp |
59+
| `webp` | `image/webp` | ✅ 20 frames | Per-frame PNG snapshots encoded into animated WebP via FFmpeg |
6160
| `png` | `image/png` | ❌ static | Single raster snapshot, lossless |
6261

6362
---

drizzle/0000_daily_trish_tilby.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
CREATE TABLE IF NOT EXISTS `badges` (
2+
`username` text PRIMARY KEY NOT NULL,
3+
`visitors` integer DEFAULT 0 NOT NULL,
4+
`repositories` integer,
5+
`organization` integer,
6+
`languages` integer,
7+
`followers` integer,
8+
`total_stars` integer,
9+
`total_contributors` integer,
10+
`total_commits` integer,
11+
`total_code_reviews` integer,
12+
`total_issues` integer,
13+
`total_pull_requests` integer,
14+
`total_joined_years` integer,
15+
`updated_at` integer
16+
);

drizzle/0000_supreme_bulldozer.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
CREATE TABLE IF NOT EXISTS `badges` (
2+
`username` text PRIMARY KEY NOT NULL,
3+
`visitors` integer DEFAULT 0 NOT NULL,
4+
`repositories` integer,
5+
`organization` integer,
6+
`languages` integer,
7+
`followers` integer,
8+
`total_stars` integer,
9+
`total_contributors` integer,
10+
`total_commits` integer,
11+
`total_code_reviews` integer,
12+
`total_issues` integer,
13+
`total_pull_requests` integer,
14+
`total_joined_years` integer,
15+
`updated_at` integer
16+
);

drizzle/0001_visitor_logs.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CREATE TABLE IF NOT EXISTS `visitor_logs` (
2+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
3+
`username` text NOT NULL,
4+
`ip_hash` text NOT NULL,
5+
`visit_date` text NOT NULL,
6+
`created_at` integer
7+
);
8+
--> statement-breakpoint
9+
CREATE UNIQUE INDEX IF NOT EXISTS `uq_visitor_log` ON `visitor_logs` (`username`,`ip_hash`,`visit_date`);

drizzle/meta/0000_snapshot.json

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
{
2+
"version": "6",
3+
"dialect": "sqlite",
4+
"id": "6959e226-bad1-4ec1-8cc8-60a3b61482a0",
5+
"prevId": "00000000-0000-0000-0000-000000000000",
6+
"tables": {
7+
"badges": {
8+
"name": "badges",
9+
"columns": {
10+
"username": {
11+
"name": "username",
12+
"type": "text",
13+
"primaryKey": true,
14+
"notNull": true,
15+
"autoincrement": false
16+
},
17+
"visitors": {
18+
"name": "visitors",
19+
"type": "integer",
20+
"primaryKey": false,
21+
"notNull": true,
22+
"autoincrement": false,
23+
"default": 0
24+
},
25+
"repositories": {
26+
"name": "repositories",
27+
"type": "integer",
28+
"primaryKey": false,
29+
"notNull": false,
30+
"autoincrement": false
31+
},
32+
"organization": {
33+
"name": "organization",
34+
"type": "integer",
35+
"primaryKey": false,
36+
"notNull": false,
37+
"autoincrement": false
38+
},
39+
"languages": {
40+
"name": "languages",
41+
"type": "integer",
42+
"primaryKey": false,
43+
"notNull": false,
44+
"autoincrement": false
45+
},
46+
"followers": {
47+
"name": "followers",
48+
"type": "integer",
49+
"primaryKey": false,
50+
"notNull": false,
51+
"autoincrement": false
52+
},
53+
"total_stars": {
54+
"name": "total_stars",
55+
"type": "integer",
56+
"primaryKey": false,
57+
"notNull": false,
58+
"autoincrement": false
59+
},
60+
"total_contributors": {
61+
"name": "total_contributors",
62+
"type": "integer",
63+
"primaryKey": false,
64+
"notNull": false,
65+
"autoincrement": false
66+
},
67+
"total_commits": {
68+
"name": "total_commits",
69+
"type": "integer",
70+
"primaryKey": false,
71+
"notNull": false,
72+
"autoincrement": false
73+
},
74+
"total_code_reviews": {
75+
"name": "total_code_reviews",
76+
"type": "integer",
77+
"primaryKey": false,
78+
"notNull": false,
79+
"autoincrement": false
80+
},
81+
"total_issues": {
82+
"name": "total_issues",
83+
"type": "integer",
84+
"primaryKey": false,
85+
"notNull": false,
86+
"autoincrement": false
87+
},
88+
"total_pull_requests": {
89+
"name": "total_pull_requests",
90+
"type": "integer",
91+
"primaryKey": false,
92+
"notNull": false,
93+
"autoincrement": false
94+
},
95+
"total_joined_years": {
96+
"name": "total_joined_years",
97+
"type": "integer",
98+
"primaryKey": false,
99+
"notNull": false,
100+
"autoincrement": false
101+
},
102+
"updated_at": {
103+
"name": "updated_at",
104+
"type": "integer",
105+
"primaryKey": false,
106+
"notNull": false,
107+
"autoincrement": false
108+
}
109+
},
110+
"indexes": {},
111+
"foreignKeys": {},
112+
"compositePrimaryKeys": {},
113+
"uniqueConstraints": {},
114+
"checkConstraints": {}
115+
}
116+
},
117+
"views": {},
118+
"enums": {},
119+
"_meta": {
120+
"schemas": {},
121+
"tables": {},
122+
"columns": {}
123+
},
124+
"internal": {
125+
"indexes": {}
126+
}
127+
}

drizzle/meta/_journal.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"version": "7",
3+
"dialect": "sqlite",
4+
"entries": [
5+
{
6+
"idx": 0,
7+
"version": "6",
8+
"when": 1771919072157,
9+
"tag": "0000_supreme_bulldozer",
10+
"breakpoints": true
11+
},
12+
{
13+
"idx": 1,
14+
"version": "6",
15+
"when": 1740369600000,
16+
"tag": "0001_visitor_logs",
17+
"breakpoints": true
18+
}
19+
]
20+
}

0 commit comments

Comments
 (0)