├── .github
└── workflows
│ └── main.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── github_stats.svg
├── old-anim-time.txt
├── package-lock.json
├── package.json
├── src
├── github.js
├── theme.js
├── themes.json
└── utils.js
├── template.svg
├── themes
├── atom.svg
├── default.svg
├── dracula.svg
├── github.svg
├── googledark.svg
├── googlelight.svg
├── hacker.svg
├── monokai.svg
├── powershell.svg
└── ubuntu.svg
└── updater.js
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow to help you get started with Actions
2 |
3 | name: Update Github Stats
4 |
5 | # Controls when the workflow will run
6 | on:
7 | # Triggers the workflow on push or pull request events but only for the main branch
8 | schedule:
9 | - cron: "47 2 * * *"
10 |
11 | # Allows you to run this workflow manually from the Actions tab
12 | workflow_dispatch:
13 |
14 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
15 | jobs:
16 | # This workflow contains a single job called "build"
17 | build:
18 | # The type of runner that the job will run on
19 | runs-on: ubuntu-latest
20 |
21 | strategy:
22 | matrix:
23 | node-version: [14.x]
24 |
25 | # Steps represent a sequence of tasks that will be executed as part of the job
26 | steps:
27 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
28 | - uses: actions/checkout@v2
29 | - name: Use Node.js ${{ matrix.node-version }}
30 | uses: actions/setup-node@v2
31 | with:
32 | node-version: ${{ matrix.node-version }}
33 | cache: 'npm'
34 |
35 | # Install requirements
36 | - name: Install requirements
37 | run: |
38 | npm install
39 |
40 | - name: Github Configurations
41 | run: |
42 | git config --global user.name "Github Actions"
43 | git config --global user.email "action@github.com"
44 | git pull
45 |
46 | - name: Update Template
47 | run: |
48 | node updater.js ${{ github.repository_owner }} atom
49 | env:
50 | GHT: ${{ secrets.GHT }}
51 |
52 | # Commiting
53 | - name: commiting changed svg template
54 | run: |
55 | git add .
56 | git commit -m "Github Stats updated 🎉" || echo
57 | git push
58 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | backups
2 | __pycache__
3 | .vscode
4 | node_modules
5 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, religion, or sexual identity
10 | and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the
26 | overall community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or
31 | advances of any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email
35 | address, without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | .
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series
86 | of actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or
93 | permanent ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within
113 | the community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.0, available at
119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120 |
121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct
122 | enforcement ladder](https://github.com/mozilla/diversity).
123 |
124 | [homepage]: https://www.contributor-covenant.org
125 |
126 | For answers to common questions about this code of conduct, see the FAQ at
127 | https://www.contributor-covenant.org/faq. Translations are available at
128 | https://www.contributor-covenant.org/translations.
129 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 YOGESHWARAN R
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
GitHub Stats Terminal Style
2 | Dynamically Generate GitHub Stats as like Terminal Interface
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | ## Usage
15 |
16 | 1. Create a New Repository using this Template or click [here](https://github.com/yogeshwaran01/github-stats-terminal-style/generate) to create.
17 | 2. Create the personal Acess token. Checkout this [link](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create personal access token.
18 | 3. Add a New Repository secret to your repo. Name of the secret is must be `GHT` and valve is your personal access token. Checkout this [link](https://docs.github.com/en/actions/reference/encrypted-secrets) to add new repositiry secret.
19 |
20 | The File `github_stats.svg` is svg image of your github stats. you can copy the link of the image and use it any where. By default it update daily at `2:47 UTC` you can also can this by change the cron in `/.github/workflows/main.yml` by using [Cron Generator](https://crontab.guru/).
21 |
22 | ## Themes
23 |
24 | Now only Nine themes are only available. By default, ubuntu theme. you can change the theme by change the command in file `/.github/workflows/main.yml`.
25 |
26 | ```bash
27 | node updater.js ${{ github.repository_owner }}
28 | ```
29 |
30 | For random theme, need not to mention any arguments
31 |
32 | | **Theme Sample** | **Theme Name** | **Theme Sample** | **ThemeName** |
33 | | :-------------------------------------------------------------------: | :------------: | :------------------------------:| :-------------: |
34 | | | ubuntu | | hacker |
35 | | | atom | | googledark |
36 | | | default | | googlelight |
37 | | | dracula | | monokai |
38 | | | github | | powershell |
39 |
40 | ## Contributions
41 |
42 | Contributions, issue and pull requests are welcome
43 |
44 | ## Credits
45 |
46 | Svg Generated from [termtosvg](https://github.com/nbedos/termtosvg)
47 |
--------------------------------------------------------------------------------
/github_stats.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
74 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | DrakeAxelrod
107 | :
108 | ~
109 | $
110 |
111 |
112 |
113 | DrakeAxelrod
114 | :
115 | ~
116 | $ w
117 |
118 |
119 |
120 | DrakeAxelrod
121 | :
122 | ~
123 | $ wh
124 |
125 |
126 |
127 | DrakeAxelrod
128 | :
129 | ~
130 | $ who
131 |
132 |
133 |
134 | DrakeAxelrod
135 | :
136 | ~
137 | $ whoa
138 |
139 |
140 |
141 | DrakeAxelrod
142 | :
143 | ~
144 | $ whoam
145 |
146 |
147 |
148 | DrakeAxelrod
149 | :
150 | ~
151 | $ whoami
152 |
153 |
154 |
155 | DrakeAxelrod
156 | :
157 | ~
158 | $ whoami
159 |
160 |
161 |
162 |
163 |
164 | Drake Axelrod
165 |
166 |
167 | DrakeAxelrod
168 | :
169 | ~
170 | $ g
171 |
172 |
173 |
174 | DrakeAxelrod
175 | :
176 | ~
177 | $ gi
178 |
179 |
180 |
181 | DrakeAxelrod
182 | :
183 | ~
184 | $ git
185 |
186 |
187 |
188 | DrakeAxelrod
189 | :
190 | ~
191 | $ git
192 |
193 |
194 |
195 | DrakeAxelrod
196 | :
197 | ~
198 | $ git s
199 |
200 |
201 |
202 | DrakeAxelrod
203 | :
204 | ~
205 | $ git st
206 |
207 |
208 |
209 | DrakeAxelrod
210 | :
211 | ~
212 | $ git sta
213 |
214 |
215 |
216 | DrakeAxelrod
217 | :
218 | ~
219 | $ git stat
220 |
221 |
222 |
223 | DrakeAxelrod
224 | :
225 | ~
226 | $ git statu
227 |
228 |
229 |
230 | DrakeAxelrod
231 | :
232 | ~
233 | $ git status
234 |
235 |
236 |
237 | DrakeAxelrod
238 | :
239 | ~
240 | $ git status
241 |
242 |
243 | GitHub Status
244 |
245 |
246 | ╔═══════════════╤════════════╗
247 |
248 |
249 | ║
250 | Title
251 | │
252 | Count
253 | ║
254 |
255 |
256 | ╟───────────────┼────────────╢
257 |
258 |
259 | ║
260 | Stars
261 | │
262 | 1170
263 | ║
264 |
265 |
266 | ║
267 | Forks
268 | │
269 | 20
270 | ║
271 |
272 |
273 | ║
274 | Commits
275 | │
276 | 2042
277 | ║
278 |
279 |
280 | ║
281 | Followers
282 | │
283 | 44
284 | ║
285 |
286 |
287 | ║
288 | Pull Requests
289 | │
290 | 85
291 | ║
292 |
293 |
294 | ║
295 | Issues
296 | │
297 | 30
298 | ║
299 |
300 |
301 | ║
302 | Repository
303 | │
304 | 43
305 | ║
306 |
307 |
308 | ║
309 | Gists
310 | │
311 | 5
312 | ║
313 |
314 |
315 | ╚═══════════════╧════════════╝
316 |
317 |
318 | DrakeAxelrod
319 | :
320 | ~
321 | $ u
322 |
323 |
324 |
325 | DrakeAxelrod
326 | :
327 | ~
328 | $ up
329 |
330 |
331 |
332 | DrakeAxelrod
333 | :
334 | ~
335 | $ upt
336 |
337 |
338 |
339 | DrakeAxelrod
340 | :
341 | ~
342 | $ upti
343 |
344 |
345 |
346 | DrakeAxelrod
347 | :
348 | ~
349 | $ uptim
350 |
351 |
352 |
353 | DrakeAxelrod
354 | :
355 | ~
356 | $ uptime
357 |
358 |
359 |
360 | DrakeAxelrod
361 | :
362 | ~
363 | $ uptime
364 |
365 |
366 | 1608
367 |
368 |
369 | DrakeAxelrod
370 | :
371 | ~
372 | $ e
373 |
374 |
375 |
376 | DrakeAxelrod
377 | :
378 | ~
379 | $ ex
380 |
381 |
382 |
383 | DrakeAxelrod
384 | :
385 | ~
386 | $ exi
387 |
388 |
389 |
390 | DrakeAxelrod
391 | :
392 | ~
393 | $ exit
394 |
395 |
396 |
397 | DrakeAxelrod
398 | :
399 | ~
400 | $ exit
401 |
402 |
403 | exit
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
559 |
560 |
561 |
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 |
580 |
581 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
589 |
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 |
604 |
605 |
606 |
607 |
608 |
609 |
610 |
611 |
612 |
613 |
614 |
615 |
616 |
617 |
618 |
619 |
620 |
621 |
622 |
623 |
624 |
625 |
626 |
627 |
628 |
629 |
630 |
631 |
632 |
633 |
634 |
635 |
636 |
637 |
638 |
639 |
640 |
641 |
642 |
643 |
644 |
645 |
646 |
647 |
648 |
649 |
650 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 |
666 |
667 |
668 |
669 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
683 |
684 |
685 |
686 |
687 |
688 |
689 |
690 |
691 |
692 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 |
701 |
702 |
703 |
704 |
705 |
706 |
707 |
708 |
709 |
710 |
711 |
712 |
713 |
714 |
715 |
716 |
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 |
725 |
726 |
727 |
728 |
729 |
730 |
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 |
739 |
740 |
741 |
742 |
743 |
744 |
745 |
746 |
747 |
748 |
749 |
750 |
751 |
752 |
753 |
754 |
755 |
756 |
757 |
758 |
759 |
760 |
761 |
762 |
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 |
792 |
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 |
813 |
814 |
815 |
816 |
817 |
818 |
819 |
820 |
821 |
822 |
823 |
824 |
825 |
826 |
827 |
828 |
829 |
830 |
831 |
832 |
833 |
834 |
835 |
836 |
837 |
838 |
839 |
840 |
841 |
842 |
843 |
844 |
845 |
846 |
847 |
848 |
849 |
850 |
851 |
852 |
853 |
854 |
855 |
856 |
857 |
858 |
859 |
860 |
861 |
862 |
863 |
864 |
865 |
866 |
867 |
868 |
869 |
870 |
871 |
872 |
873 |
874 |
875 |
876 |
877 |
878 |
879 |
880 |
881 |
882 |
--------------------------------------------------------------------------------
/old-anim-time.txt:
--------------------------------------------------------------------------------
1 | animation-duration: 14558ms;
2 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "github-stats-terminal-style",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@octokit/auth-token": {
8 | "version": "2.4.5",
9 | "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz",
10 | "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==",
11 | "requires": {
12 | "@octokit/types": "^6.0.3"
13 | }
14 | },
15 | "@octokit/core": {
16 | "version": "3.5.1",
17 | "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz",
18 | "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==",
19 | "requires": {
20 | "@octokit/auth-token": "^2.4.4",
21 | "@octokit/graphql": "^4.5.8",
22 | "@octokit/request": "^5.6.0",
23 | "@octokit/request-error": "^2.0.5",
24 | "@octokit/types": "^6.0.3",
25 | "before-after-hook": "^2.2.0",
26 | "universal-user-agent": "^6.0.0"
27 | }
28 | },
29 | "@octokit/endpoint": {
30 | "version": "6.0.12",
31 | "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz",
32 | "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==",
33 | "requires": {
34 | "@octokit/types": "^6.0.3",
35 | "is-plain-object": "^5.0.0",
36 | "universal-user-agent": "^6.0.0"
37 | }
38 | },
39 | "@octokit/graphql": {
40 | "version": "4.8.0",
41 | "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz",
42 | "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==",
43 | "requires": {
44 | "@octokit/request": "^5.6.0",
45 | "@octokit/types": "^6.0.3",
46 | "universal-user-agent": "^6.0.0"
47 | }
48 | },
49 | "@octokit/openapi-types": {
50 | "version": "10.0.0",
51 | "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.0.0.tgz",
52 | "integrity": "sha512-k1iO2zKuEjjRS1EJb4FwSLk+iF6EGp+ZV0OMRViQoWhQ1fZTk9hg1xccZII5uyYoiqcbC73MRBmT45y1vp2PPg=="
53 | },
54 | "@octokit/plugin-paginate-rest": {
55 | "version": "2.16.0",
56 | "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.0.tgz",
57 | "integrity": "sha512-8YYzALPMvEZ35kgy5pdYvQ22Roz+BIuEaedO575GwE2vb/ACDqQn0xQrTJR4tnZCJn7pi8+AWPVjrFDaERIyXQ==",
58 | "requires": {
59 | "@octokit/types": "^6.26.0"
60 | }
61 | },
62 | "@octokit/plugin-request-log": {
63 | "version": "1.0.4",
64 | "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
65 | "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA=="
66 | },
67 | "@octokit/plugin-rest-endpoint-methods": {
68 | "version": "5.9.0",
69 | "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.9.0.tgz",
70 | "integrity": "sha512-Rz67pg+rEJq2Qn/qfHsMiBoP7GL5NDn8Gg0ezGznZ745Ixn1gPusZYZqCXNhICYrIZaVXmusNP0iwPdphJneqQ==",
71 | "requires": {
72 | "@octokit/types": "^6.26.0",
73 | "deprecation": "^2.3.1"
74 | }
75 | },
76 | "@octokit/request": {
77 | "version": "5.6.1",
78 | "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz",
79 | "integrity": "sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ==",
80 | "requires": {
81 | "@octokit/endpoint": "^6.0.1",
82 | "@octokit/request-error": "^2.1.0",
83 | "@octokit/types": "^6.16.1",
84 | "is-plain-object": "^5.0.0",
85 | "node-fetch": "^2.6.1",
86 | "universal-user-agent": "^6.0.0"
87 | }
88 | },
89 | "@octokit/request-error": {
90 | "version": "2.1.0",
91 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz",
92 | "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==",
93 | "requires": {
94 | "@octokit/types": "^6.0.3",
95 | "deprecation": "^2.0.0",
96 | "once": "^1.4.0"
97 | }
98 | },
99 | "@octokit/rest": {
100 | "version": "18.10.0",
101 | "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.10.0.tgz",
102 | "integrity": "sha512-esHR5OKy38bccL/sajHqZudZCvmv4yjovMJzyXlphaUo7xykmtOdILGJ3aAm0mFHmMLmPFmDMJXf39cAjNJsrw==",
103 | "requires": {
104 | "@octokit/core": "^3.5.1",
105 | "@octokit/plugin-paginate-rest": "^2.16.0",
106 | "@octokit/plugin-request-log": "^1.0.4",
107 | "@octokit/plugin-rest-endpoint-methods": "^5.9.0"
108 | }
109 | },
110 | "@octokit/types": {
111 | "version": "6.26.0",
112 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.26.0.tgz",
113 | "integrity": "sha512-RDxZBAFMtqs1ZPnbUu1e7ohPNfoNhTiep4fErY7tZs995BeHu369Vsh5woMIaFbllRWEZBfvTCS4hvDnMPiHrA==",
114 | "requires": {
115 | "@octokit/openapi-types": "^10.0.0"
116 | }
117 | },
118 | "a-sync-waterfall": {
119 | "version": "1.0.1",
120 | "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
121 | "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA=="
122 | },
123 | "asap": {
124 | "version": "2.0.6",
125 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
126 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
127 | },
128 | "before-after-hook": {
129 | "version": "2.2.2",
130 | "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz",
131 | "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ=="
132 | },
133 | "commander": {
134 | "version": "5.1.0",
135 | "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
136 | "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
137 | },
138 | "deprecation": {
139 | "version": "2.3.1",
140 | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
141 | "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
142 | },
143 | "is-plain-object": {
144 | "version": "5.0.0",
145 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
146 | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
147 | },
148 | "node-fetch": {
149 | "version": "2.6.7",
150 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
151 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
152 | "requires": {
153 | "whatwg-url": "^5.0.0"
154 | }
155 | },
156 | "nunjucks": {
157 | "version": "3.2.3",
158 | "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz",
159 | "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==",
160 | "requires": {
161 | "a-sync-waterfall": "^1.0.0",
162 | "asap": "^2.0.3",
163 | "commander": "^5.1.0"
164 | }
165 | },
166 | "once": {
167 | "version": "1.4.0",
168 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
169 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
170 | "requires": {
171 | "wrappy": "1"
172 | }
173 | },
174 | "tr46": {
175 | "version": "0.0.3",
176 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
177 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
178 | },
179 | "universal-user-agent": {
180 | "version": "6.0.0",
181 | "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
182 | "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
183 | },
184 | "webidl-conversions": {
185 | "version": "3.0.1",
186 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
187 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
188 | },
189 | "whatwg-url": {
190 | "version": "5.0.0",
191 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
192 | "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
193 | "requires": {
194 | "tr46": "~0.0.3",
195 | "webidl-conversions": "^3.0.0"
196 | }
197 | },
198 | "wrappy": {
199 | "version": "1.0.2",
200 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
201 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
202 | }
203 | }
204 | }
205 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "github-stats-terminal-style",
3 | "version": "1.0.0",
4 | "description": "Generate Github Stats as like Terminal Interface with typing effects dynamically for your profile Readme",
5 | "repository": {
6 | "type": "git",
7 | "url": "git+https://github.com/yogeshwaran01/github-stats-terminal-style.git"
8 | },
9 | "keywords": [
10 | "github",
11 | "github-stats",
12 | "node",
13 | "terminal",
14 | "github-stats-card"
15 | ],
16 | "author": "yogeshwaran01",
17 | "license": "MIT",
18 | "bugs": {
19 | "url": "https://github.com/yogeshwaran01/github-stats-terminal-style/issues"
20 | },
21 | "homepage": "https://github.com/yogeshwaran01/github-stats-terminal-style#readme",
22 | "dependencies": {
23 | "@octokit/rest": "^18.10.0",
24 | "nunjucks": "^3.2.3"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/github.js:
--------------------------------------------------------------------------------
1 | const { Octokit } = require("@octokit/rest");
2 |
3 | const { utils, align_username, align } = require("./utils")
4 |
5 | const token = process.env.GHT
6 |
7 | const octokit = new Octokit({
8 | auth: token,
9 | log: {
10 | debug: () => { },
11 | info: () => { },
12 | warn: console.warn,
13 | error: console.error,
14 | },
15 | });
16 |
17 |
18 | function dateDiffInDays(date) {
19 |
20 | const _MS_PER_DAY = 1000 * 60 * 60 * 24;
21 | const utc1 = Date.now();
22 | Date.now()
23 | const b = new Date(date)
24 | const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());
25 |
26 | return Math.floor((utc1 - utc2) / _MS_PER_DAY);
27 | }
28 |
29 | class GithubUser {
30 | constructor(username) {
31 | this.userName = username;
32 | }
33 |
34 | async getCommits() {
35 | let res = await octokit.search.commits({
36 | q: `author:${this.userName}`
37 | })
38 | return res.data.total_count
39 | }
40 |
41 | async getIssueAndPr(type) {
42 | let res = await octokit.search.issuesAndPullRequests({
43 | q: `type:${type} author:${this.userName}`
44 | })
45 |
46 | return res.data.total_count
47 | }
48 |
49 | async fetchContent() {
50 | this.userContent = await octokit.request("GET /users/{username}", {
51 | username: this.userName,
52 | });
53 | this.repoContent = await octokit.paginate("GET /users/{owner}/repos", {
54 | owner: this.userName,
55 | });
56 | this.name = this.userContent.data.name;
57 | this.repo = align(this.userContent.data.public_repos);
58 | this.gists = align(this.userContent.data.public_gists);
59 | this.followers = align(this.userContent.data.followers);
60 | this.createdAt = dateDiffInDays(this.userContent.data.created_at);
61 | this.starsCount = 0;
62 | this.forkCount = 0;
63 | this.repoContent.forEach(repo => {
64 | this.starsCount += repo.stargazers_count
65 | this.forkCount += repo.forks;
66 | });
67 | this.commitsCount = await this.getCommits()
68 | this.issueCount = await this.getIssueAndPr('issue')
69 | this.prCount = await this.getIssueAndPr('pr')
70 | this.stars = align(this.starsCount);
71 | this.forks = align(this.forkCount);
72 | this.commits = align(this.commitsCount);
73 | this.issues = align(this.issueCount);
74 | this.pr = align(this.prCount);
75 | this.uptime = this.createdAt;
76 | this.username = align_username(this.userName);
77 | }
78 | }
79 |
80 |
81 | module.exports = { GithubUser }
82 |
--------------------------------------------------------------------------------
/src/theme.js:
--------------------------------------------------------------------------------
1 | const THEMES = require("./themes.json")
2 |
3 | const themes = Object.keys(THEMES);
4 |
5 | let getTheme = (theme) => {
6 | theme = theme.toLowerCase()
7 | if (themes.includes(theme)) {
8 | return THEMES[theme]
9 | } else {
10 | return THEMES[themes[Math.floor(Math.random() * themes.length)]]
11 | }
12 | }
13 |
14 | module.exports = { getTheme }
15 |
--------------------------------------------------------------------------------
/src/themes.json:
--------------------------------------------------------------------------------
1 | {
2 | "ubuntu": {
3 | "name": "ubuntu",
4 | "back": "#300a24",
5 | "fore": "#ffffff",
6 | "green": "#ffffff",
7 | "purple": "#ffffff",
8 | "orange": "#ffffff",
9 | "cyan": "#ffffff",
10 | "username": "#5cbe09"
11 | },
12 | "default": {
13 | "name": "default",
14 | "back": "#272822",
15 | "fore": "#f8f8f2",
16 | "green": "#a6e22e",
17 | "purple": "#ae81ff",
18 | "orange": "#cc6633",
19 | "cyan": "#8be9fd",
20 | "username": "#f70202"
21 | },
22 | "dracula": {
23 | "name": "dracula",
24 | "back": "#282A36",
25 | "fore": "#F8F8F2",
26 | "green": "#50fa7b",
27 | "purple": "#bd93f9",
28 | "orange": "#ffb86c",
29 | "cyan": "#8be9fd",
30 | "username": "#E356A7"
31 | },
32 | "monokai": {
33 | "name": "monokai",
34 | "back": "#2e2e2e",
35 | "fore": "#d6d6d6",
36 | "green": "#b4d273",
37 | "purple": "#9e86c8",
38 | "orange": "#e87d3e",
39 | "cyan": "#8be9fd",
40 | "username": "#f92672"
41 | },
42 | "atom": {
43 | "name": "atom",
44 | "back": "#161719",
45 | "fore": "#c5c8c6",
46 | "green": "#94fa36",
47 | "purple": "#b9b6fc",
48 | "orange": "#f5ffa8",
49 | "cyan": "#85befd",
50 | "username": "#fd5ff1"
51 | },
52 | "github": {
53 | "name": "github",
54 | "back": "#f4f4f4",
55 | "fore": "#3e3e3e",
56 | "green": "#87d5a2",
57 | "purple": "#e94691",
58 | "orange": "#2e6cba",
59 | "cyan": "#666666",
60 | "username": "#de0000"
61 | },
62 | "googledark": {
63 | "name": "googledark",
64 | "back": "#202124",
65 | "fore": "#E8EAED",
66 | "green": "#34A853",
67 | "purple": "#A142F4",
68 | "orange": "#FBBC05",
69 | "cyan": "#EA4335",
70 | "username": "#4285F4"
71 | },
72 | "googlelight": {
73 | "name": "googlelight",
74 | "back": "#FFFFFF",
75 | "fore": "#5F6368",
76 | "green": "#34A853",
77 | "purple": "#A142F4",
78 | "orange": "#EA4335",
79 | "cyan": "#24C1E0",
80 | "username": "#4285F4"
81 | },
82 | "powershell": {
83 | "name": "powershell",
84 | "back": "#052454",
85 | "fore": "#F6F6F7",
86 | "green": "#1CFE3C",
87 | "purple": "#D33682",
88 | "orange": "#FEFE45",
89 | "cyan": "#EF2929",
90 | "username": "#F6F6F7"
91 | },
92 | "hacker": {
93 | "name": "hacker",
94 | "back": "#000000",
95 | "fore": "#00FF00",
96 | "green": "#00FF00",
97 | "purple": "#00FF00",
98 | "orange": "#00FF00",
99 | "cyan": "#00FF00",
100 | "username": "#00FF00"
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/src/utils.js:
--------------------------------------------------------------------------------
1 | let align = (number) => {
2 |
3 | let str = number.toString()
4 | return " " + str + (" ".repeat(11 - str.length))
5 | }
6 |
7 | let align_username = (username) => {
8 |
9 | var len = username.length
10 |
11 | if (len <= 5) {
12 | return username + "@github.com"
13 | } else if (len <= 7) {
14 | return username + "@github"
15 | } else if (len <= 10) {
16 | return username + "@git"
17 | } else if (len > 16) {
18 | return username.slice(0, 17)
19 | } else {
20 | return username
21 | }
22 |
23 | }
24 |
25 |
26 | module.exports = { align, align_username }
27 |
--------------------------------------------------------------------------------
/themes/atom.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
74 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | yogeshwaran01
107 | :
108 | ~
109 | $
110 |
111 |
112 |
113 | yogeshwaran01
114 | :
115 | ~
116 | $ w
117 |
118 |
119 |
120 | yogeshwaran01
121 | :
122 | ~
123 | $ wh
124 |
125 |
126 |
127 | yogeshwaran01
128 | :
129 | ~
130 | $ who
131 |
132 |
133 |
134 | yogeshwaran01
135 | :
136 | ~
137 | $ whoa
138 |
139 |
140 |
141 | yogeshwaran01
142 | :
143 | ~
144 | $ whoam
145 |
146 |
147 |
148 | yogeshwaran01
149 | :
150 | ~
151 | $ whoami
152 |
153 |
154 |
155 | yogeshwaran01
156 | :
157 | ~
158 | $ whoami
159 |
160 |
161 |
162 |
163 |
164 | YOGESHWARAN R
165 |
166 |
167 | yogeshwaran01
168 | :
169 | ~
170 | $ g
171 |
172 |
173 |
174 | yogeshwaran01
175 | :
176 | ~
177 | $ gi
178 |
179 |
180 |
181 | yogeshwaran01
182 | :
183 | ~
184 | $ git
185 |
186 |
187 |
188 | yogeshwaran01
189 | :
190 | ~
191 | $ git
192 |
193 |
194 |
195 | yogeshwaran01
196 | :
197 | ~
198 | $ git s
199 |
200 |
201 |
202 | yogeshwaran01
203 | :
204 | ~
205 | $ git st
206 |
207 |
208 |
209 | yogeshwaran01
210 | :
211 | ~
212 | $ git sta
213 |
214 |
215 |
216 | yogeshwaran01
217 | :
218 | ~
219 | $ git stat
220 |
221 |
222 |
223 | yogeshwaran01
224 | :
225 | ~
226 | $ git statu
227 |
228 |
229 |
230 | yogeshwaran01
231 | :
232 | ~
233 | $ git status
234 |
235 |
236 |
237 | yogeshwaran01
238 | :
239 | ~
240 | $ git status
241 |
242 |
243 | GitHub Status
244 |
245 |
246 | ╔═══════════════╤════════════╗
247 |
248 |
249 | ║
250 | Title
251 | │
252 | Count
253 | ║
254 |
255 |
256 | ╟───────────────┼────────────╢
257 |
258 |
259 | ║
260 | Stars
261 | │
262 | 101
263 | ║
264 |
265 |
266 | ║
267 | Forks
268 | │
269 | 19
270 | ║
271 |
272 |
273 | ║
274 | Commits
275 | │
276 | 719
277 | ║
278 |
279 |
280 | ║
281 | Followers
282 | │
283 | 13
284 | ║
285 |
286 |
287 | ║
288 | Pull Requests
289 | │
290 | 42
291 | ║
292 |
293 |
294 | ║
295 | Issues
296 | │
297 | 0
298 | ║
299 |
300 |
301 | ║
302 | Repository
303 | │
304 | 21
305 | ║
306 |
307 |
308 | ║
309 | Gists
310 | │
311 | 5
312 | ║
313 |
314 |
315 | ╚═══════════════╧════════════╝
316 |
317 |
318 | yogeshwaran01
319 | :
320 | ~
321 | $ u
322 |
323 |
324 |
325 | yogeshwaran01
326 | :
327 | ~
328 | $ up
329 |
330 |
331 |
332 | yogeshwaran01
333 | :
334 | ~
335 | $ upt
336 |
337 |
338 |
339 | yogeshwaran01
340 | :
341 | ~
342 | $ upti
343 |
344 |
345 |
346 | yogeshwaran01
347 | :
348 | ~
349 | $ uptim
350 |
351 |
352 |
353 | yogeshwaran01
354 | :
355 | ~
356 | $ uptime
357 |
358 |
359 |
360 | yogeshwaran01
361 | :
362 | ~
363 | $ uptime
364 |
365 |
366 | 397
367 |
368 |
369 | yogeshwaran01
370 | :
371 | ~
372 | $ e
373 |
374 |
375 |
376 | yogeshwaran01
377 | :
378 | ~
379 | $ ex
380 |
381 |
382 |
383 | yogeshwaran01
384 | :
385 | ~
386 | $ exi
387 |
388 |
389 |
390 | yogeshwaran01
391 | :
392 | ~
393 | $ exit
394 |
395 |
396 |
397 | yogeshwaran01
398 | :
399 | ~
400 | $ exit
401 |
402 |
403 | exit
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
559 |
560 |
561 |
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 |
580 |
581 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
589 |
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 |
604 |
605 |
606 |
607 |
608 |
609 |
610 |
611 |
612 |
613 |
614 |
615 |
616 |
617 |
618 |
619 |
620 |
621 |
622 |
623 |
624 |
625 |
626 |
627 |
628 |
629 |
630 |
631 |
632 |
633 |
634 |
635 |
636 |
637 |
638 |
639 |
640 |
641 |
642 |
643 |
644 |
645 |
646 |
647 |
648 |
649 |
650 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 |
666 |
667 |
668 |
669 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
683 |
684 |
685 |
686 |
687 |
688 |
689 |
690 |
691 |
692 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 |
701 |
702 |
703 |
704 |
705 |
706 |
707 |
708 |
709 |
710 |
711 |
712 |
713 |
714 |
715 |
716 |
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 |
725 |
726 |
727 |
728 |
729 |
730 |
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 |
739 |
740 |
741 |
742 |
743 |
744 |
745 |
746 |
747 |
748 |
749 |
750 |
751 |
752 |
753 |
754 |
755 |
756 |
757 |
758 |
759 |
760 |
761 |
762 |
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 |
792 |
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 |
813 |
814 |
815 |
816 |
817 |
818 |
819 |
820 |
821 |
822 |
823 |
824 |
825 |
826 |
827 |
828 |
829 |
830 |
831 |
832 |
833 |
834 |
835 |
836 |
837 |
838 |
839 |
840 |
841 |
842 |
843 |
844 |
845 |
846 |
847 |
848 |
849 |
850 |
851 |
852 |
853 |
854 |
855 |
856 |
857 |
858 |
859 |
860 |
861 |
862 |
863 |
864 |
865 |
866 |
867 |
868 |
869 |
870 |
871 |
872 |
873 |
874 |
875 |
876 |
877 |
878 |
879 |
880 |
881 |
--------------------------------------------------------------------------------
/themes/default.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
74 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | yogeshwaran01
107 | :
108 | ~
109 | $
110 |
111 |
112 |
113 | yogeshwaran01
114 | :
115 | ~
116 | $ w
117 |
118 |
119 |
120 | yogeshwaran01
121 | :
122 | ~
123 | $ wh
124 |
125 |
126 |
127 | yogeshwaran01
128 | :
129 | ~
130 | $ who
131 |
132 |
133 |
134 | yogeshwaran01
135 | :
136 | ~
137 | $ whoa
138 |
139 |
140 |
141 | yogeshwaran01
142 | :
143 | ~
144 | $ whoam
145 |
146 |
147 |
148 | yogeshwaran01
149 | :
150 | ~
151 | $ whoami
152 |
153 |
154 |
155 | yogeshwaran01
156 | :
157 | ~
158 | $ whoami
159 |
160 |
161 |
162 |
163 |
164 | YOGESHWARAN R
165 |
166 |
167 | yogeshwaran01
168 | :
169 | ~
170 | $ g
171 |
172 |
173 |
174 | yogeshwaran01
175 | :
176 | ~
177 | $ gi
178 |
179 |
180 |
181 | yogeshwaran01
182 | :
183 | ~
184 | $ git
185 |
186 |
187 |
188 | yogeshwaran01
189 | :
190 | ~
191 | $ git
192 |
193 |
194 |
195 | yogeshwaran01
196 | :
197 | ~
198 | $ git s
199 |
200 |
201 |
202 | yogeshwaran01
203 | :
204 | ~
205 | $ git st
206 |
207 |
208 |
209 | yogeshwaran01
210 | :
211 | ~
212 | $ git sta
213 |
214 |
215 |
216 | yogeshwaran01
217 | :
218 | ~
219 | $ git stat
220 |
221 |
222 |
223 | yogeshwaran01
224 | :
225 | ~
226 | $ git statu
227 |
228 |
229 |
230 | yogeshwaran01
231 | :
232 | ~
233 | $ git status
234 |
235 |
236 |
237 | yogeshwaran01
238 | :
239 | ~
240 | $ git status
241 |
242 |
243 | GitHub Status
244 |
245 |
246 | ╔═══════════════╤════════════╗
247 |
248 |
249 | ║
250 | Title
251 | │
252 | Count
253 | ║
254 |
255 |
256 | ╟───────────────┼────────────╢
257 |
258 |
259 | ║
260 | Stars
261 | │
262 | 101
263 | ║
264 |
265 |
266 | ║
267 | Forks
268 | │
269 | 19
270 | ║
271 |
272 |
273 | ║
274 | Commits
275 | │
276 | 719
277 | ║
278 |
279 |
280 | ║
281 | Followers
282 | │
283 | 13
284 | ║
285 |
286 |
287 | ║
288 | Pull Requests
289 | │
290 | 42
291 | ║
292 |
293 |
294 | ║
295 | Issues
296 | │
297 | 0
298 | ║
299 |
300 |
301 | ║
302 | Repository
303 | │
304 | 21
305 | ║
306 |
307 |
308 | ║
309 | Gists
310 | │
311 | 5
312 | ║
313 |
314 |
315 | ╚═══════════════╧════════════╝
316 |
317 |
318 | yogeshwaran01
319 | :
320 | ~
321 | $ u
322 |
323 |
324 |
325 | yogeshwaran01
326 | :
327 | ~
328 | $ up
329 |
330 |
331 |
332 | yogeshwaran01
333 | :
334 | ~
335 | $ upt
336 |
337 |
338 |
339 | yogeshwaran01
340 | :
341 | ~
342 | $ upti
343 |
344 |
345 |
346 | yogeshwaran01
347 | :
348 | ~
349 | $ uptim
350 |
351 |
352 |
353 | yogeshwaran01
354 | :
355 | ~
356 | $ uptime
357 |
358 |
359 |
360 | yogeshwaran01
361 | :
362 | ~
363 | $ uptime
364 |
365 |
366 | 397
367 |
368 |
369 | yogeshwaran01
370 | :
371 | ~
372 | $ e
373 |
374 |
375 |
376 | yogeshwaran01
377 | :
378 | ~
379 | $ ex
380 |
381 |
382 |
383 | yogeshwaran01
384 | :
385 | ~
386 | $ exi
387 |
388 |
389 |
390 | yogeshwaran01
391 | :
392 | ~
393 | $ exit
394 |
395 |
396 |
397 | yogeshwaran01
398 | :
399 | ~
400 | $ exit
401 |
402 |
403 | exit
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
559 |
560 |
561 |
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 |
580 |
581 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
589 |
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 |
604 |
605 |
606 |
607 |
608 |
609 |
610 |
611 |
612 |
613 |
614 |
615 |
616 |
617 |
618 |
619 |
620 |
621 |
622 |
623 |
624 |
625 |
626 |
627 |
628 |
629 |
630 |
631 |
632 |
633 |
634 |
635 |
636 |
637 |
638 |
639 |
640 |
641 |
642 |
643 |
644 |
645 |
646 |
647 |
648 |
649 |
650 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 |
666 |
667 |
668 |
669 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
683 |
684 |
685 |
686 |
687 |
688 |
689 |
690 |
691 |
692 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 |
701 |
702 |
703 |
704 |
705 |
706 |
707 |
708 |
709 |
710 |
711 |
712 |
713 |
714 |
715 |
716 |
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 |
725 |
726 |
727 |
728 |
729 |
730 |
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 |
739 |
740 |
741 |
742 |
743 |
744 |
745 |
746 |
747 |
748 |
749 |
750 |
751 |
752 |
753 |
754 |
755 |
756 |
757 |
758 |
759 |
760 |
761 |
762 |
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 |
792 |
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 |
813 |
814 |
815 |
816 |
817 |
818 |
819 |
820 |
821 |
822 |
823 |
824 |
825 |
826 |
827 |
828 |
829 |
830 |
831 |
832 |
833 |
834 |
835 |
836 |
837 |
838 |
839 |
840 |
841 |
842 |
843 |
844 |
845 |
846 |
847 |
848 |
849 |
850 |
851 |
852 |
853 |
854 |
855 |
856 |
857 |
858 |
859 |
860 |
861 |
862 |
863 |
864 |
865 |
866 |
867 |
868 |
869 |
870 |
871 |
872 |
873 |
874 |
875 |
876 |
877 |
878 |
879 |
880 |
881 |
--------------------------------------------------------------------------------
/themes/dracula.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
74 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | yogeshwaran01
107 | :
108 | ~
109 | $
110 |
111 |
112 |
113 | yogeshwaran01
114 | :
115 | ~
116 | $ w
117 |
118 |
119 |
120 | yogeshwaran01
121 | :
122 | ~
123 | $ wh
124 |
125 |
126 |
127 | yogeshwaran01
128 | :
129 | ~
130 | $ who
131 |
132 |
133 |
134 | yogeshwaran01
135 | :
136 | ~
137 | $ whoa
138 |
139 |
140 |
141 | yogeshwaran01
142 | :
143 | ~
144 | $ whoam
145 |
146 |
147 |
148 | yogeshwaran01
149 | :
150 | ~
151 | $ whoami
152 |
153 |
154 |
155 | yogeshwaran01
156 | :
157 | ~
158 | $ whoami
159 |
160 |
161 |
162 |
163 |
164 | YOGESHWARAN R
165 |
166 |
167 | yogeshwaran01
168 | :
169 | ~
170 | $ g
171 |
172 |
173 |
174 | yogeshwaran01
175 | :
176 | ~
177 | $ gi
178 |
179 |
180 |
181 | yogeshwaran01
182 | :
183 | ~
184 | $ git
185 |
186 |
187 |
188 | yogeshwaran01
189 | :
190 | ~
191 | $ git
192 |
193 |
194 |
195 | yogeshwaran01
196 | :
197 | ~
198 | $ git s
199 |
200 |
201 |
202 | yogeshwaran01
203 | :
204 | ~
205 | $ git st
206 |
207 |
208 |
209 | yogeshwaran01
210 | :
211 | ~
212 | $ git sta
213 |
214 |
215 |
216 | yogeshwaran01
217 | :
218 | ~
219 | $ git stat
220 |
221 |
222 |
223 | yogeshwaran01
224 | :
225 | ~
226 | $ git statu
227 |
228 |
229 |
230 | yogeshwaran01
231 | :
232 | ~
233 | $ git status
234 |
235 |
236 |
237 | yogeshwaran01
238 | :
239 | ~
240 | $ git status
241 |
242 |
243 | GitHub Status
244 |
245 |
246 | ╔═══════════════╤════════════╗
247 |
248 |
249 | ║
250 | Title
251 | │
252 | Count
253 | ║
254 |
255 |
256 | ╟───────────────┼────────────╢
257 |
258 |
259 | ║
260 | Stars
261 | │
262 | 101
263 | ║
264 |
265 |
266 | ║
267 | Forks
268 | │
269 | 19
270 | ║
271 |
272 |
273 | ║
274 | Commits
275 | │
276 | 719
277 | ║
278 |
279 |
280 | ║
281 | Followers
282 | │
283 | 13
284 | ║
285 |
286 |
287 | ║
288 | Pull Requests
289 | │
290 | 42
291 | ║
292 |
293 |
294 | ║
295 | Issues
296 | │
297 | 0
298 | ║
299 |
300 |
301 | ║
302 | Repository
303 | │
304 | 21
305 | ║
306 |
307 |
308 | ║
309 | Gists
310 | │
311 | 5
312 | ║
313 |
314 |
315 | ╚═══════════════╧════════════╝
316 |
317 |
318 | yogeshwaran01
319 | :
320 | ~
321 | $ u
322 |
323 |
324 |
325 | yogeshwaran01
326 | :
327 | ~
328 | $ up
329 |
330 |
331 |
332 | yogeshwaran01
333 | :
334 | ~
335 | $ upt
336 |
337 |
338 |
339 | yogeshwaran01
340 | :
341 | ~
342 | $ upti
343 |
344 |
345 |
346 | yogeshwaran01
347 | :
348 | ~
349 | $ uptim
350 |
351 |
352 |
353 | yogeshwaran01
354 | :
355 | ~
356 | $ uptime
357 |
358 |
359 |
360 | yogeshwaran01
361 | :
362 | ~
363 | $ uptime
364 |
365 |
366 | 397
367 |
368 |
369 | yogeshwaran01
370 | :
371 | ~
372 | $ e
373 |
374 |
375 |
376 | yogeshwaran01
377 | :
378 | ~
379 | $ ex
380 |
381 |
382 |
383 | yogeshwaran01
384 | :
385 | ~
386 | $ exi
387 |
388 |
389 |
390 | yogeshwaran01
391 | :
392 | ~
393 | $ exit
394 |
395 |
396 |
397 | yogeshwaran01
398 | :
399 | ~
400 | $ exit
401 |
402 |
403 | exit
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
559 |
560 |
561 |
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 |
580 |
581 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
589 |
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 |
604 |
605 |
606 |
607 |
608 |
609 |
610 |
611 |
612 |
613 |
614 |
615 |
616 |
617 |
618 |
619 |
620 |
621 |
622 |
623 |
624 |
625 |
626 |
627 |
628 |
629 |
630 |
631 |
632 |
633 |
634 |
635 |
636 |
637 |
638 |
639 |
640 |
641 |
642 |
643 |
644 |
645 |
646 |
647 |
648 |
649 |
650 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 |
666 |
667 |
668 |
669 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
683 |
684 |
685 |
686 |
687 |
688 |
689 |
690 |
691 |
692 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 |
701 |
702 |
703 |
704 |
705 |
706 |
707 |
708 |
709 |
710 |
711 |
712 |
713 |
714 |
715 |
716 |
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 |
725 |
726 |
727 |
728 |
729 |
730 |
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 |
739 |
740 |
741 |
742 |
743 |
744 |
745 |
746 |
747 |
748 |
749 |
750 |
751 |
752 |
753 |
754 |
755 |
756 |
757 |
758 |
759 |
760 |
761 |
762 |
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 |
792 |
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 |
813 |
814 |
815 |
816 |
817 |
818 |
819 |
820 |
821 |
822 |
823 |
824 |
825 |
826 |
827 |
828 |
829 |
830 |
831 |
832 |
833 |
834 |
835 |
836 |
837 |
838 |
839 |
840 |
841 |
842 |
843 |
844 |
845 |
846 |
847 |
848 |
849 |
850 |
851 |
852 |
853 |
854 |
855 |
856 |
857 |
858 |
859 |
860 |
861 |
862 |
863 |
864 |
865 |
866 |
867 |
868 |
869 |
870 |
871 |
872 |
873 |
874 |
875 |
876 |
877 |
878 |
879 |
880 |
881 |
--------------------------------------------------------------------------------
/updater.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 |
3 | const nunjucks = require('nunjucks')
4 | const { GithubUser } = require('./src/github')
5 | const themes = require("./src/theme")
6 |
7 | nunjucks.configure({ autoescape: true })
8 |
9 | let templateString = fs.readFileSync("template.svg", 'utf-8')
10 |
11 | let username = process.argv[2]
12 | let req_theme = process.argv[3] || "random"
13 |
14 | let user = new GithubUser(username);
15 | user.fetchContent()
16 | .then(() => {
17 | let outString = nunjucks.renderString(templateString, {
18 | data: user,
19 | theme: themes.getTheme(req_theme)
20 | })
21 |
22 | fs.writeFileSync("./github_stats.svg", outString)
23 | })
24 |
--------------------------------------------------------------------------------