Skip to content

Commit

Permalink
Initial Release v1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Vinyzu committed Dec 7, 2023
1 parent c86cbaf commit 3b0a37a
Show file tree
Hide file tree
Showing 21 changed files with 1,350 additions and 6 deletions.
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
max-line-length = 200
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve
title: '[BUG] '
labels: bug, help wanted
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**Code Sample**
If applicable, add a code sample to replicate the bug.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement, question
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Question
about: Ask a question about Botright
title: '[Question] '
labels: question, help wanted, documentation
assignees: ''

---

**Describe your quesiton**
A clear and concise question.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
26 changes: 26 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Chrome-Fingerprints Tests

on:
- push
- pull_request

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ['py38', 'py39', 'py310', 'py311']

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox tox-gh-actions
- name: Test with tox
run: tox
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,4 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.idea/
6 changes: 3 additions & 3 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
10.000 self-collected Chrome Fingerprints.
Copyright (C) 2023 Vinyzu

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand All @@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

<program> Copyright (C) <year> <name of author>
Chrome-Fingerprints Copyright (C) 2023 Vinyzu
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
Expand Down
49 changes: 47 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,47 @@
# chrome-fingerprints
A Collection of 10.000 self-collected Chrome Fingerprints. Wrapped in a easy-to-use API, available as a Dataset or from the web.
# Chrome-Fingerprints v1.0

#### Chrome-Fingeprints is a dataset of 10k collected Windows Chrome Fingerprints.
#### Usable with an easy-to-use API, available as a compressed (lzma) or full-size Json (view Releases)
#### It uses just two external packages: `OrJson` for faster Json serialization and `DaCite` for dataclass management.


## Install it from PyPI

```bash
pip install chrome-fingerprints
```

---

## Usage

```py
from chrome_fingerprints import FingerprintGenerator, ChromeFingerprint

fp_gen = FingerprintGenerator()

fingerprint: ChromeFingerprint = fp_gen.get_fingerprint()
```
---

## Copyright and License
© [Vinyzu](https://github.com/Vinyzu/)

[GNU GPL](https://choosealicense.com/licenses/gpl-3.0/)

(Commercial Usage is allowed, but source, license and copyright has to made available. Botright does not provide and Liability or Warranty)

---

## Thanks to

[Kaliiiiiiiiii](https://github.com/kaliiiiiiiiii/) (For shared knowledge of Browser automation)

---

![Version](https://img.shields.io/badge/Chrome_Fingerprints-v1.0-blue)
![License](https://img.shields.io/badge/License-GNU%20GPL-green)
![Python](https://img.shields.io/badge/Python-v3.x-lightgrey)

[![my-discord](https://img.shields.io/badge/My_Discord-000?style=for-the-badge&logo=google-chat&logoColor=blue)](https://discordapp.com/users/935224495126487150)
[![buy-me-a-coffee](https://img.shields.io/badge/Buy_Me_A_Coffee-000?style=for-the-badge&logo=ko-fi&logoColor=brown)](https://ko-fi.com/vinyzu)
6 changes: 6 additions & 0 deletions chrome_fingerprints/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from .fingerprints import FingerprintGenerator
from .fingerprint_typing import ChromeFingerprint

VERSION = 1.0

__all__ = ['FingerprintGenerator', 'ChromeFingerprint', 'VERSION']
143 changes: 143 additions & 0 deletions chrome_fingerprints/fingerprint_typing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
from dataclasses import dataclass
from typing import Dict, List, Any, Optional


@dataclass
class NavigatorPlatform:
name: str
version: str
architecture: str
model: str
bitness: str
wow64: bool


@dataclass(unsafe_hash=True)
class Navigator:
user_agent: str
app_version: str
app_codename: str
app_name: str
product: str
product_sub: str
vendor: str
vendor_sub: str
pdf_viewer_enabled: bool
full_version: str
full_version_list: List[Dict[str, str]]
brands: List[Dict[str, str]]
platform: NavigatorPlatform


@dataclass
class Screen:
avail_height: int
avail_width: int
width: int
height: int
color_depth: int
pixel_depth: int
avail_left: int
avail_top: int
device_pixel_ratio: float


@dataclass
class Plugin:
name: str
file_name: str
description: str
ref: int
mimes: List[int]


@dataclass
class SpeechSynth:
voice_uri: str
name: str
lang: str
local_service: bool
default: bool


@dataclass(unsafe_hash=True)
class WebGL:
vendor: str
renderer: str
unmasked_vendor: str
unmasked_renderer: str
shading_language: str
shading_language2: Optional[str]
version: str
version2: Optional[str]
max_anisotropy: str
extensions: List[str]
extensions2: List[str]
properties: Dict[str, str | int | float | bool | dict | list] # type: ignore


@dataclass
class WebGPUPerformanceInfo:
vendor: str
architecture: str
device: str
description: str


# @dataclass(unsafe_hash=True)
# class WebGPUPerformance:
# is_fallback_adapter: bool
# features: List[str] # Optional[List[str]]
# info: WebGPUPerformanceInfo # Optional[WebGPUPerformanceInfo]
# limits: Dict[str, str] # Optional[Dict[str, str]]


# @dataclass(unsafe_hash=True)
# class WebGPU:
# enabled: bool
# fallback: Optional[bool]
# preferred_canvas_format: str # Optional[str]
#
# high_performance: WebGPUPerformance
# low_performance: WebGPUPerformance


@dataclass(unsafe_hash=True)
class WebRTCPeerType:
codecs: Any
extensions: Any


@dataclass(unsafe_hash=True)
class WebRTCPeer:
video: WebRTCPeerType
audio: WebRTCPeerType


@dataclass(unsafe_hash=True)
class WebRTC:
receiver: WebRTCPeer
sender: WebRTCPeer


@dataclass(unsafe_hash=True)
class ChromeFingerprint:
hardware_concurrency: int
device_memory: float
do_not_track: bool
hls_enabled: bool

navigator: Navigator
screen: Screen
plugins: List[Plugin]
speech: List[SpeechSynth]
webgl: WebGL
# webgpu: WebGPU
webrtc: WebRTC

fonts: List[str | int]
codecs: List[str]
headers: List[str]
keyboard: Dict[str, str]
css: Dict[str, str | int]
audio: Dict[str, Optional[str | int | float]]
Binary file added chrome_fingerprints/fingerprints.json.xz
Binary file not shown.
Loading

0 comments on commit 3b0a37a

Please sign in to comment.