snooppr/shotstars

GitHub: snooppr/shotstars

一款用于监控任意公开 GitHub 仓库 Star 变化趋势并检测虚假刷星行为的跨平台数据分析与可视化工具。

Stars: 106 | Forks: 5

# 💫 𝕊𝕙𝕠𝕥𝕤𝕥𝕒𝕣𝕤 软件口号:*“toda la ira del vudú”*。 Shotstars 允许您从远处监控任何公开的 repository。 例如,普通网民能否说出一个有趣的 Github repository 在一个月内增加或减少了多少星?*(IT 托管平台不提供关于星数减少的信息,即使是其自己项目的所有者也无法得知)*。Shotstars 不仅负责计算和可视化这些数据,还能处理更多、更多的内容。除了统计信息外,该工具还能识别带有**𝔽𝕒𝕜𝕖 𝕊𝕥𝕒𝕣𝕤** 的 repository。 **声称的功能:** - [X] Shotstars 将帮助寻找并曝光“皇帝的新装”及其追随者 *(事实:某些 repository 的星数是注水的)。* - [X] Shotstars 计算参数:激进营销、预计增长、Fake stars、人气巅峰及其日期。 - [X] Shotstars 将计算上个月的进展或倒退 *(中位数 - 百分比变化趋势,以及平均值 - 实际计算的倍数)。* - [X] Shotstars 将计算星数最多和最少的月份名称 *(mode / anti-mode)*,并按四分位数显示整个星数历史,同时也会进行按年度的类似计算。 - [X] Shotstars 将输出没有增加星数的最长连续时间段。 - [X] Shotstars 扫描 repository 在选定时间段内增加和移除的星数及统计数据。 - [X] Shotstars 报告 repository 的真实创建日期 *(事实:开发者可以声明/伪造/更改其项目 commits 的日期,但 Shotstars 不会被他们欺骗,该实用程序将显示真实的数字)*。 - [X] Shotstars 将显示任何公开 repository 的约估计大小。 - [X] Shotstars 还将提供 repository 的简短描述。 - [X] Shotstars 将报告 repository 的底层编程语言(PL),并作为 HTML 报告中的背景。 - [X] Shotstars 提供扫描历史,可选择以前注册的项目以便快速检查。 - [X] Shotstars 生成 CLI/HTML 报告 *(统计信息、时间段、重复的用户活动、url 和 json)*。 - [X] Shotstars 创建图形和直方图 [支持夜间模式](https://github.com/snooppr/shotstars/issues/11) *(按日期、月份、年份、小时、星期几划分的所有星数历史,以及星数的累积集合)*。 - [X] Shotstars 可以模拟结果,这是已记录在案的黑客手段:旨在(为了确信)在没有星数波动的停滞/稳定 repository 上测试该实用程序运行情况的功能。 - [X] Shotstars 会找出在 Github 项目中重叠的用户,包括那些隐藏/私密个人资料的用户。 - [X] Shotstars 会精确到分钟地计算并显示 Github 重新扫描限制解除的时间 *(如果未使用 token)*。 - [X] Shotstars 是为人而生的,开箱即用,支持 OS:Windows7+、GNU/Linux、Android *(用户[不需要](https://github.com/snooppr/shotstars/releases):技术技能;在 Github 上注册/授权,甚至不需要安装 Python)*。 - [X] Shotstars 以火箭般的速度且免费处理任务 *(跨平台开源软件,欢迎捐赠)*。 ## ⌨️ 原生安装 ![Static Badge](https://img.shields.io/badge/latest%20v4.13-430094?link=https%3A%2F%2Fraw.githubusercontent.com%2Fsnooppr%2Fshotstars%2Frefs%2Fheads%2Fmain%2Fchangelog) ``` $ pip install shotstars $ shotstars_cli ``` **为 OS GNU/Linux & Windows & Termux 提供了现成的 "Shotstars" 构建版本(无需 Python)** [下载⬇️Shotstars](https://github.com/snooppr/shotstars/releases "download a ready-made assembly for Windows; GNU/Linux or Termux") ## 💾 扫描历史 在 Shotstars 中可以使用扫描历史记录,现在您不需要每次都输入或复制/粘贴 URL, 只需输入关键字 `his/history` 来代替 repository 的 url,然后通过数字选择之前扫描过的 repository。 ## 🌀 借助 Shotstars,用户还可以检测出 Fake stars 推测为 Fake stars 的示例 *(该 repository 此前曾被查处过盗版行为)*。从尖峰图表中可以看出,该 repository 在两周内增加了 +5K 个 Fake stars *(几年后,这个 repository 再次囤积了 Fake stars)。* Shotstars 还提供了折线图:星数的累积集合。 两个 repository 的对比,星数的累积集合。上面的截图是正常的星数变动,下面的截图是 Fake stars 的刷量推广。 对于任何 repository,Shotstars 都会提供所有添加了星的用户的 json 格式数据(按日期划分),这意味着分析图表上的异常高峰变得更加容易。 关于 Fake stars 刷量推广的研究 [RU](https://habr.com/ru/articles/723648/) / [RU_2](https://www.opennet.ru/opennews/art.shtml?num=62515) **|** [EN](https://dagster.io/blog/fake-stars) / [EN_2](https://arxiv.org/html/2412.13459v1) ## ⚙️ Shotstars 支持结果模拟 请注意,HTML 报告是在重新扫描 repository 时生成的。如果用户需要强制生成特定的 HTML 报告,只需启用星数模拟即可。👇 这是一个已记录在案的软件技巧(或称为辅助功能),旨在测试脚本在没有星数波动的停滞/稳定 repository 上的运行情况。 为了模拟这个过程,用户必须先扫描一次新的 repository, 将其添加到数据库中;随机删除并添加任意行到文件中 (OS GNU/Linux 和 Termux): `/home/{user}/.ShotStars/results/{repo}/new.txt` (OS Windows): `C:\Users\{User}\AppData\Local\ShotStars\results\{repo}\new.txt`; 然后再次运行对同一 repository 的扫描。 ## ⛔️ Github 限制 Github 存在扫描限制【从一个 IP 地址每小时 **6K 星**】。 在 Shotstars 中使用 Github token [限制将被解除](https://github.com/snooppr/shotstars/issues/3),您可以扫描高达【每小时 **500K 星**】的 repository。 获取 token *(**免费**)* 的步骤: 1. 在 Github 上注册一个账号(如果您还没有的话); 2. 打开您的个人资料 -> settings -> developer settings -> personal acces tokens -> generate new token; 3. 将生成的 token(字符串)插入到字段中以代替 'None' GNU/Linux & Android/Termux:: `/home/{user}/.ShotStars/results/config.ini` OS Windows:: `C:\Users\{User}\AppData\Local\ShotStars\results\config.ini`。 Github token 归用户所有,并在本地存储,不会传输或下载到任何地方。 您可以解析自己或第三方的 repository(默认情况下,不需要注册/授权/token)。 ## 🇷🇺 太长不看 (TL;DR) Shotstars 允许您从旁监控任何公开的 repository。 例如,网民能否说出:某个有趣的 Github repository 在一个月内增加了或减少了多少颗星?*(IT 托管平台不提供关于星数减少的信息,即使是其自己项目的所有者也无法得知)*。Shotstars 会负责计算和可视化这一切,甚至更多。除了统计之外,该工具还可以检测出带有**刷量星数**的 repository。 **声称的功能:** - [X] Shotstars 将帮助寻找并曝光“皇帝的新装”及其追随者 *(事实:某些 repository 的星数是刷出来的)*。 - [X] Shotstars 计算参数:激进营销、预计增长、Fake stars、人气巅峰及其日期。 - [X] Shotstars 将计算上个月的进展或倒退 *(中位数 - 百分比变化趋势,以及平均值 - 实际计算的倍数)*。 - [X] Shotstars 将计算星数最多和最少的月份名称 *(mode / anti-mode)*,并按四分位数对整个星数历史进行着色,同时也会进行按年度的类似计算。 - [X] Shotstars 将输出没有增加星数的最长连续时间段 *(黑条时期)*。 - [X] Shotstars 检查 repository 在选定时间段内增加和减少星数的情况及相关统计数据。 - [X] Shotstars 报告 repository 的真实创建日期 *(事实:开发者可以声明/伪造/更改其项目和 commits 的创建日期,但 Shotstars 不会被他们欺骗,该实用程序将显示真实的数字)*。 - [X] Shotstars 将显示任何公开 repository 的约估计大小。 - [X] Shotstars 还将提供 repository 的简短描述。 - [X] Shotstars 将报告 repository 的主要编程语言(PL),作为 HTML 报告中的背景。 - [X] Shotstars 提供扫描历史记录,并可选择之前已记录的项目,以便快速检查。 - [X] Shotstars 生成 CLI/HTML 报告 *(统计信息、时间段、重复的用户活动、url 和 json)*。 - [X] Shotstars 创建图形和直方图,支持[夜间模式](https://github.com/snooppr/shotstars/issues/11) *(按日期/时间的所有星数历史:按月、按年、按小时、按星期几,以及星数的累积集合)*。 - [X] Shotstars 可以模拟结果,这是已记录在案的黑客手段:旨在(为了确信)在没有星数波动的停滞/稳定 repository 上测试该实用程序运行情况的功能。 - [X] Shotstars 会找出在 Github 项目中重叠的用户,包括那些隐藏/私密个人资料的用户。 - [X] Shotstars 会精确到分钟地计算并显示 Github 重新扫描限制解除的时间 *(如果未使用 token)*。 - [X] Shotstars 是为人而生的,开箱即用,支持 OS:Windows7+、GNU/Linux、Android *(用户[不需要](https://github.com/snooppr/shotstars/releases):掌握技术技能;在 Github 上注册/授权,甚至不需要安装 Python)*。 - [X] Shotstars 以火箭般的速度且免费处理任务 *(开源、跨平台,欢迎捐赠)*。 Github 存在扫描限制【从一个 IP 地址每小时 **6K 星**】。 在 Shotstars 中使用 Github token [限制将被解除](https://github.com/snooppr/shotstars/issues/3),您可以扫描高达【每小时 **500K 星**】的 repository。 获取 token *(**免费**)* 的步骤: 1. 在 Github 上注册一个账号(如果您还没有的话); 2. 打开个人资料 -> settings -> developer settings -> personal acces tokens -> generate new token; 3. 将生成的 token(字符串)插入到文件中的字段以代替 'None' OS GNU/Linux & Android/Termux:: `/home/{user}/.ShotStars/results/config.ini` OS Windows:: `C:\Users\{User}\AppData\Local\ShotStars\results\config.ini`。 Github token 归用户所有,在本地存储,不会传输或下载到任何地方。 您可以解析自己或第三方的 repository *(默认情况下,不需要注册/授权/token)*。 在 Shotstars 中可以使用扫描历史记录,现在您不需要每次都输入或复制/粘贴 url, 只需输入关键字 `his/history` 代替 repository 的 url,然后通过数字选择之前扫描过的 repository。 请注意,HTML 报告是在重新扫描 repository 时生成的。如果用户需要强制生成特定的 HTML 报告,只需启用星数[模拟](https://github.com/snooppr/shotstars#%EF%B8%8F-shotstars-supports-simulation-of-results)。 ## 🔻 截图画廊 *1. 适用于 Windows 7 的 Shotstars。* *2. Shotstars HTML 报告。* *3. 适用于 Android/Termux 的 Shotstars。* *4. Shotstars 限制 Github/API(如果您不使用免费 token)。* *5. Shotstars 扫描历史。* *6. Shotstars 发现隐藏的开发者活动。* Shotstars 非常强大,它能看到一切。Github 显示该 repository 一个月没有任何 commits,但其实存在一些微妙的活动,比如更新了 PR 等。(顺便说一句,重写 commits 和篡改日期也很容易被察觉)。 *7. Shotstars 找出在 Github 项目中重叠的用户,包括那些隐藏/私密个人资料的用户。* *8. Shotstars 生成 repository 星数历史(包括新增和消失的星数)的 HTML-CLI 时间线。*

Comparison of two repositories based on stellar history. It is clear that the peak of popularity of the first repository has long passed, the development has gone into decline (forks). The second repository is a legend and is steadily gaining popularity.

Starry hour. Repository from location RU. It is clear that its audience is European, in the morning hours, at night, much fewer stars come.

Starry day of week. From the graph it is clear that stars come intensively at the beginning and end of the working week for this repository. Oh, and outside the US, people start their workweek according to international norms — on Monday, not Sunday.

*9. 清除缓存。* ## 💡 部分指标解释 + **"Date-update (including hidden update)"** — 该指标显示两件事:首先如果开发者推送了 commit,然后从服务器上彻底擦除并/或覆盖它们,Shotstars 会知道并告诉您;其次,例如在没有 push 的情况下取消/添加了 pull request 等,该指标也会更新。 + **"Peak-stars-in-date"** — 该指标显示获得最多星数的具体日期(精确到天)。 + **"The-trend-of-adding-stars (forecasting)"** — 该指标基于 repository 的历史数据和算法,显示每天预计增加的星数。 + **"Most-of-stars-d.w. / Smallest-of-stars-d.w."** — 该指标显示 repository 整个历史中星期几的计算结果(按星数计算最有利可图的星期几以及星数最少的星期几,mod/anti-mod)。 + **"Most-of-stars-month / Smallest-of-stars-month"** — 该指标显示 repository 整个历史中两个月份的计算结果(按星数计算最有利可图的月份以及星数最少的月份,mode / anti-mode)。 + **"Distribution-of-stars-by-month"** — 计算 repository 整个历史中按月统计的星数(可能包含罕见现象:私密星数,即所有星数总和 ≠ 'GitHub-rating'),按四分位数对星数范围进行着色(绿色:x > Q3);(黄色:Q1 <= x <= Q3);(红色:x < Q1)。字号也会从 Q3 到 Q1 递减。分组并不总是按“3/6/3”排列,例如,"Shotstars" repository 的分组就是按“3/4/5”排列的。该特征仅在 repository 的年龄至少为一个月时才计算。 + **"Distribution-of-stars-by-year"** — 与指标 '"Distribution-of-stars-by-month"' 相同,但计算依据不是月份而是年份,并且该指标不显示私密星数。该特征仅在 repository 的年龄至少为一年时才计算。 + **"Longest-period-without-add-stars"** — 该指标显示未向 repository 提交任何星数的最长时间跨度,即连续每天都是 0 颗星(黑条时期)。 + **"Median-percentage-change"** — 该指标反映了星数的平均趋势(即不考虑星数的剧烈波动,如 Fake stars 或媒体宣传导致的人气急升/暴跌),以百分比形式计算最后一个月与倒数第二个月的比例。正数很容易解释,负数则不然。最简单的例子:用户在一月初扫描了一个 repository(11 月,该 repository 获得了 +30 颗星;而在 12 月获得了 +60 颗星),该指标将显示 "100%";如果情况反过来(11 月,该 repository 获得了 +60 颗星;而在 12 月获得了 +30 颗星),该指标将显示 "-50%"(而不是 "-1~~00%"~~)。该特征仅在 repository 的年龄至少为两个月时才计算。 + **"Average-change-in-fact"** — 与 "Median-percentage-change" 指标不同,它反映的不是平均趋势,而是实际情况,即算术平均值,并考虑了同一时期内星数的所有波动和下降(最后一个月与倒数第二个月的比例),但它不是按百分比计算,而是按倍数和单位(星)计算。例子:11 月份 repository 增加了 +30 颗星,12 月份增加了 +60 颗星,那么该指标将显示 - "2 倍(30 颗星)",反之,如果 11 月增加 +60 颗星,而 12 月增加 +30 颗星,则指标显示 - "-2 倍(-30 颗星)"。该特征仅在 repository 的年龄至少为两个月时才计算。 + **"Aggressive-marketing"** — 该指标接受以下值:"—"; "Low"; "Medium"; "High"; "Hard"; "Hard+"。"—" 表示 repository 持续稳定获得或不获得星数,没有突增,通常这类 repository 不关心自身的人气,很少/几乎不在媒体上被提及。"Low"; "Medium"; "High" — 这些 repository 被媒体多次提及,星数变化不均匀,它们每天可能吸引数百颗星,repository 的人气很高。"Hard" — 频繁而疯狂、不均衡的星数变动,即非自然状态、刷 Fake stars。"Hard+" — 通常这是大量、多次刷 Fake stars 的行为,即不止一次。该特征仅在 repository 的年龄至少为两个月时才计算。 + **"Fake-stars"** — 该指标接受以下值:"Yes"; "Yes, multiple attempts to promote fake stars"; "—"(是;“是,多次尝试刷取 Fake stars”;“—”)。在第一种情况下,这可能是一次性但大规模刷 Fake stars,或者是经常少量刷星。在第二种情况下,这是明显且多次刷 Fake stars 的行为。"—" 意味着 Shotstars 未检测到 Fake stars。该特征仅在 repository 的年龄至少为两个月时才计算。 + **"New stars"** — 从倒数第二次扫描到最后一次扫描期间,repository 新增的星数。该特征基于 repository 扫描频率计算。图表反映的是实际解析结果,即 repository 整个历史中获得的星数。 + **"Gone stars"** — 该指标显示以下用户:从 repository 移除了自己的星数;或者从 Github 平台删除了自己的账户;或者将其个人资料切换为“私密”模式——这样的个人资料和被删除的资料一样,通过链接可能会导致 "404",即 Github(并非总是)完全隐藏用户的所有活动及其个人页面,但此类账户可以进行几乎从未在任何地方(账户所有者除外)显示的活动(例如,仅显示 reactions)。此指标并非针对 repository 的整个历史进行计算,而是从第一次扫描的日期开始计算。这是从倒数第二次扫描到最后一次扫描期间,repository 消失的星数。该特征基于 repository 扫描频率计算。 + **"Cross-users"** — 该指标仅显示在扫描过的 repository 中、且相对于特定扫描过的 repository 重叠的交集用户。 ## 🪺 彩蛋 许多优秀的软件都有彩蛋。Shotstars 也不例外,试着寻找与项目本身相关的东西,您会得到……
标签:Homebrew安装, SOC Prime, 代码示例, 多模态安全, 开发工具, 数据分析, 文档结构分析, 虚假Star检测, 逆向工具