# 💫 Shotstars
A unique and over fab tool to track stars on Github.
> [!IMPORTANT]
>Github does not provide users with statistics on disappearing stars in the repository. "Shotstars" is trying to resolve this issue and provide such information to the user.
<img src="https://raw.githubusercontent.com/snooppr/shotstars/main/images/CLI.png" />
The purpose of the “Shotstars” tool is to find accounts from which they once gave stars to repositories,
but then they were removed and provide such an analysis in a human-readable form (it doesn’t matter,
you can scan both your own and other people’s projects), as a result, try to do what it doesn’t do Github by default.
The secondary function of the software is to monitor the thrown stars also at a selected period of time.
---
## ⌨️ Native Installation
[![Downloads](https://static.pepy.tech/badge/shotstars)](https://www.pepy.tech/projects/shotstars?versions=1.1&versions=0.5&versions=0.2)
```
$ pip install shotstars
$ shotstars_cli
```
**Ready-made "Shotstars" builds are provided for OS GNU/Linux & Windows & Termux (Python is not required)**
⬇️[Download Shotstars](https://github.com/snooppr/shotstars/releases "download a ready-made assembly for Windows; GNU/Linux or Termux")
---
## ⚙️ Shotstars supports simulation of results
A documented software hack - or side function designed to test the script on dead/stable repositories without star movement.
To simulate the process, the user must scan the new repository once,
adding it to the database; randomly delete and add any lines to a file
(OS GNU/Linux and Termux):
`/home/{user}/ShotStars/results/{repo}/new.txt`
(OS Windows):
`C:\Users\{User}\AppData\Local\ShotStars\result\{repo}\new.txt`;
run a second scan of the same repository.
---
## ⛔️ Github restrictions
There are restrictions from Github 【**6K stars/hour** from one IP address】, repositories with more than 6K stars do not physically make sense to scan.
In Shotstars with Github token you can [bypass the restrictions](https://github.com/snooppr/shotstars/issues/3) and scan repositories up to **500K stars/hour**.
Steps:
1) register for an account on Github (if you don’t already have one);
2) open your profile -> settings -> developer settings -> personal acces tokens -> generate new token;
3) insert the resulting token (string) into in the field instead of 'None'
GNU/Linux & Android/Termux::
`/home/{user}/ShotStars/results/config.ini`
OS Windows::
`C:\Users\{User}\AppData\Local\ShotStars\result\config.ini`.
The Github token belongs to the user, is stored locally and is not transferred or downloaded anywhere.
You can parse both your own and third-party repositories (by default, registration/authorization/token are not required).
---
## 💾 Scan history
In Shotstars the scan history is available, now you no longer need to enter or copy/paste the URL each time,
specify the keyword `his/history` instead of the repository url and select the previously scanned repository by number.
---
## 🇷🇺 TL;DR
Github не предоставляет пользователям статистику по исчезающим звездам в репозитории.
"Shotstars" пытается решить этот вопрос и предоставить такую информацию пользователю.
Утилита также отслеживает прибавление звезд, аккумулирует результаты/статистику и мониторит дублирующую активность username's.
Существуют ограничения со стороны Github 【**6K звезд/час** с одного IP адреса】, репозитории с более 6К звезд не имеет физического смысла сканировать.
В Shotstars с Github-токеном [ограничения можно обойти](https://github.com/snooppr/shotstars/issues/3) и сканировать репозитории до **500K звезд/час**.
Шаги:
1) зарегистрируйте аккаунт на Github (если у вас его еще нет);
2) откройте профиль -> settings -> developer settings -> personal acces tokens -> generate new token;
3) полученный токен (строку) вставьте в поле заместо 'None' в файл
OS GNU/Linux & Android/Termux::
`/home/{user}/ShotStars/results/config.ini`
OS Windows::
`C:\Users\{User}\AppData\Local\ShotStars\result\config.ini`.
Github-токен принадлежит пользователю, хранится локально и никуда не передается и не скачивается.
Парсить можно, как свои, так и сторонние репозитории *(по умолчанию регистрация/авторизация/токен не требуются)*.
В Shotstars доступна история сканирований, не нужно теперь каждый раз вводить или копи/пастить url,
укажите вместо url репозитория ключевое слово `his/history` и выберите цифрой ранее сканируемый репозиторий.
<details>
<summary>Shotstars это скрипт или ПО?</summary>
Существует ли чёткая грань между скриптом и программой? С таким опросом обратился разработчик к IT-сообществу Хабр.
<img src="https://habrastorage.org/webt/vj/rq/kp/vjrqkptejw8lvhbi1oj8ibkqcn4.jpeg" />
</details>
---
## 🔻 Screenshot gallery
*1. Shotstars for Windows 7*
<img src="https://raw.githubusercontent.com/snooppr/shotstars/main/images/shotstars%20Win.png" />
*2 Shotstars HTML-report*
<img src="https://raw.githubusercontent.com/snooppr/shotstars/main/images/html-report.png" />
*3 Shotstars for Android/Termux*
<img src="https://raw.githubusercontent.com/snooppr/shotstars/main/images/Termux.png" />
*4 Shotstars Limit Github/API*
<img src="https://raw.githubusercontent.com/snooppr/shotstars/main/images/Limit.png" />
*5 Shotstars Scan History*
<img src="https://raw.githubusercontent.com/snooppr/shotstars/main/images/scan_history.png" />
Raw data
{
"_id": null,
"home_page": null,
"name": "shotstars",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "termux, parsing, github, parser, stars, OSINT, scraping, secrets, scanner",
"author": null,
"author_email": "Snooppr <snoopproject@protonmail.com>",
"download_url": "https://files.pythonhosted.org/packages/d1/c3/d3c62b5551ffa43e3c4d9036c690c292f2fe66e88f7c9dfea4dad843a282/shotstars-1.1.tar.gz",
"platform": null,
"description": "# \ud83d\udcab Shotstars\nA unique and over fab tool to track stars on Github. \n\n> [!IMPORTANT] \n>Github does not provide users with statistics on disappearing stars in the repository. \"Shotstars\" is trying to resolve this issue and provide such information to the user. \n\n<img src=\"https://raw.githubusercontent.com/snooppr/shotstars/main/images/CLI.png\" />\n\nThe purpose of the \u201cShotstars\u201d tool is to find accounts from which they once gave stars to repositories, \nbut then they were removed and provide such an analysis in a human-readable form (it doesn\u2019t matter, \nyou can scan both your own and other people\u2019s projects), as a result, try to do what it doesn\u2019t do Github by default. \nThe secondary function of the software is to monitor the thrown stars also at a selected period of time. \n\n ---\n\n## \u2328\ufe0f Native Installation \n[![Downloads](https://static.pepy.tech/badge/shotstars)](https://www.pepy.tech/projects/shotstars?versions=1.1&versions=0.5&versions=0.2) \n\n```\n$ pip install shotstars\n$ shotstars_cli\n```\n\n**Ready-made \"Shotstars\" builds are provided for OS GNU/Linux & Windows & Termux (Python is not required)** \n\u2b07\ufe0f[Download Shotstars](https://github.com/snooppr/shotstars/releases \"download a ready-made assembly for Windows; GNU/Linux or Termux\") \n\n ---\n\n## \u2699\ufe0f Shotstars supports simulation of results \nA documented software hack - or side function designed to test the script on dead/stable repositories without star movement. \nTo simulate the process, the user must scan the new repository once, \nadding it to the database; randomly delete and add any lines to a file \n(OS GNU/Linux and Termux): \n`/home/{user}/ShotStars/results/{repo}/new.txt` \n(OS Windows): \n`C:\\Users\\{User}\\AppData\\Local\\ShotStars\\result\\{repo}\\new.txt`; \nrun a second scan of the same repository. \n\n ---\n\n## \u26d4\ufe0f Github restrictions \nThere are restrictions from Github \u3010**6K stars/hour** from one IP address\u3011, repositories with more than 6K stars do not physically make sense to scan. \nIn Shotstars with Github token you can [bypass the restrictions](https://github.com/snooppr/shotstars/issues/3) and scan repositories up to **500K stars/hour**. \nSteps: \n1) register for an account on Github (if you don\u2019t already have one); \n2) open your profile -> settings -> developer settings -> personal acces tokens -> generate new token; \n3) insert the resulting token (string) into in the field instead of 'None' \nGNU/Linux & Android/Termux:: \n`/home/{user}/ShotStars/results/config.ini` \nOS Windows:: \n`C:\\Users\\{User}\\AppData\\Local\\ShotStars\\result\\config.ini`. \n\nThe Github token belongs to the user, is stored locally and is not transferred or downloaded anywhere. \nYou can parse both your own and third-party repositories (by default, registration/authorization/token are not required). \n\n ---\n\n## \ud83d\udcbe Scan history \nIn Shotstars the scan history is available, now you no longer need to enter or copy/paste the URL each time,\nspecify the keyword `his/history` instead of the repository url and select the previously scanned repository by number.\n\n ---\n\n## \ud83c\uddf7\ud83c\uddfa TL;DR \nGithub \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0449\u0438\u043c \u0437\u0432\u0435\u0437\u0434\u0430\u043c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.\n\"Shotstars\" \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e.\n\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0437\u0434, \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b/\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c username's.\n\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b Github \u3010**6K \u0437\u0432\u0435\u0437\u0434/\u0447\u0430\u0441** \u0441 \u043e\u0434\u043d\u043e\u0433\u043e IP \u0430\u0434\u0440\u0435\u0441\u0430\u3011, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0441 \u0431\u043e\u043b\u0435\u0435 6\u041a \u0437\u0432\u0435\u0437\u0434 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \n\u0412 Shotstars \u0441 Github-\u0442\u043e\u043a\u0435\u043d\u043e\u043c [\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438](https://github.com/snooppr/shotstars/issues/3) \u0438 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0434\u043e **500K \u0437\u0432\u0435\u0437\u0434/\u0447\u0430\u0441**. \n\u0428\u0430\u0433\u0438: \n1) \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0439\u0442\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043d\u0430 Github (\u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0433\u043e \u0435\u0449\u0435 \u043d\u0435\u0442); \n2) \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044c -> settings -> developer settings -> personal acces tokens -> generate new token; \n3) \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d (\u0441\u0442\u0440\u043e\u043a\u0443) \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432 \u043f\u043e\u043b\u0435 \u0437\u0430\u043c\u0435\u0441\u0442\u043e 'None' \u0432 \u0444\u0430\u0439\u043b \nOS GNU/Linux & Android/Termux:: \n`/home/{user}/ShotStars/results/config.ini` \nOS Windows:: \n`C:\\Users\\{User}\\AppData\\Local\\ShotStars\\result\\config.ini`. \n\nGithub-\u0442\u043e\u043a\u0435\u043d \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0438 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \n\u041f\u0430\u0440\u0441\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e, \u043a\u0430\u043a \u0441\u0432\u043e\u0438, \u0442\u0430\u043a \u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 *(\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f/\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f/\u0442\u043e\u043a\u0435\u043d \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f)*. \n\n\u0412 Shotstars \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439, \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u043b\u0438 \u043a\u043e\u043f\u0438/\u043f\u0430\u0441\u0442\u0438\u0442\u044c url,\n\u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u043e url \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e `his/history` \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0446\u0438\u0444\u0440\u043e\u0439 \u0440\u0430\u043d\u0435\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439. \n\n<details>\n<summary>Shotstars \u044d\u0442\u043e \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u043b\u0438 \u041f\u041e?</summary>\n\n\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0447\u0451\u0442\u043a\u0430\u044f \u0433\u0440\u0430\u043d\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439? \u0421 \u0442\u0430\u043a\u0438\u043c \u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043a IT-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443 \u0425\u0430\u0431\u0440. \n\n<img src=\"https://habrastorage.org/webt/vj/rq/kp/vjrqkptejw8lvhbi1oj8ibkqcn4.jpeg\" /> \n\n</details>\n\n ---\n\n## \ud83d\udd3b Screenshot gallery \n\n*1. Shotstars for Windows 7* \n<img src=\"https://raw.githubusercontent.com/snooppr/shotstars/main/images/shotstars%20Win.png\" /> \n\n\n*2 Shotstars HTML-report* \n<img src=\"https://raw.githubusercontent.com/snooppr/shotstars/main/images/html-report.png\" /> \n\n\n*3 Shotstars for Android/Termux* \n<img src=\"https://raw.githubusercontent.com/snooppr/shotstars/main/images/Termux.png\" /> \n\n\n*4 Shotstars Limit Github/API* \n<img src=\"https://raw.githubusercontent.com/snooppr/shotstars/main/images/Limit.png\" /> \n\n\n*5 Shotstars Scan History*\n<img src=\"https://raw.githubusercontent.com/snooppr/shotstars/main/images/scan_history.png\" /> \n",
"bugtrack_url": null,
"license": null,
"summary": "A tool to track waning stars on Github",
"version": "1.1",
"project_urls": {
"Donate": "https://yoomoney.ru/to/4100111364257544",
"Homepage": "https://github.com/snooppr/shotstars"
},
"split_keywords": [
"termux",
" parsing",
" github",
" parser",
" stars",
" osint",
" scraping",
" secrets",
" scanner"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7998859e0d2cc028241a886cde387f52c9ee1e8f8e258f7751510e1bf375be1a",
"md5": "8597c3e099365ed355c4c0bf65846d03",
"sha256": "e12a0467b495b548c3aba01d9908726d720daa86a915ae080dd6bf3928540c4e"
},
"downloads": -1,
"filename": "shotstars-1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8597c3e099365ed355c4c0bf65846d03",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 253596,
"upload_time": "2024-09-10T18:24:03",
"upload_time_iso_8601": "2024-09-10T18:24:03.350942Z",
"url": "https://files.pythonhosted.org/packages/79/98/859e0d2cc028241a886cde387f52c9ee1e8f8e258f7751510e1bf375be1a/shotstars-1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d1c3d3c62b5551ffa43e3c4d9036c690c292f2fe66e88f7c9dfea4dad843a282",
"md5": "ff9e0df8c36424dbaaf3d85d2a771846",
"sha256": "c9b755f4694d2f416f77f83db61c7a995c1146c337f2b23fe8373fd80e7801b5"
},
"downloads": -1,
"filename": "shotstars-1.1.tar.gz",
"has_sig": false,
"md5_digest": "ff9e0df8c36424dbaaf3d85d2a771846",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 257163,
"upload_time": "2024-09-10T18:24:11",
"upload_time_iso_8601": "2024-09-10T18:24:11.142658Z",
"url": "https://files.pythonhosted.org/packages/d1/c3/d3c62b5551ffa43e3c4d9036c690c292f2fe66e88f7c9dfea4dad843a282/shotstars-1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-10 18:24:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "snooppr",
"github_project": "shotstars",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "requests",
"specs": [
[
">=",
"2.31.0"
]
]
},
{
"name": "rich",
"specs": [
[
"<=",
"13.7.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
">=",
"1.26.18"
]
]
}
],
"lcname": "shotstars"
}