Name | wc-django-device-recognizer JSON |
Version |
0.1.5
JSON |
| download |
home_page | None |
Summary | Django device recognizing utility. |
upload_time | 2024-07-11 14:26:52 |
maintainer | None |
docs_url | None |
author | WebCase |
requires_python | >=3.6 |
license | MIT License |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# WebCase device recognizing utility
## Installation
```sh
pip install wc-django-device-recognizer
```
It depends on `django-user-agents`, so check out [it's documentation](https://pypi.org/project/django-user-agents/) about additional installation instructions.
In `settings.py`:
```python
INSTALLED_APPS += [
'wcd_device_recognizer',
]
```
## Usage
To get all possible information from request:
```python
from wcd_device_recognizer.services import request_resolver
interlocutor = request_resolver.resolve(request)
assert interlocutor.device.bitness == '64'
assert interlocutor.os.family == 'Linux'
assert interlocutor.os.arch == 'x86'
assert interlocutor.app.family == 'Chrome'
assert interlocutor.app.version == (101, 0, 0)
assert interlocutor.device.dpr == 1
```
And then you may save interlocutor's data to database:
```python
from wcd_device_recognizer.services import registry
# You may pass any amount of interlocutors to register here.
registry.register_interlocutors((interlocutor,))
```
## Coverage
To collect interlocutor's data package uses User-Agent info and standart HTTP headers:
- `Sec-CH-UA`
- `Sec-CH-UA-Arch`
- `Sec-CH-UA-Bitness`
- `Sec-CH-UA-Full-Version`
- `Sec-CH-UA-Full-Version-List`
- `Sec-CH-UA-Mobileser experience.`
- `Sec-CH-UA-Model`
- `Sec-CH-UA-Platform`
- `Sec-CH-UA-Platform-Version`
- `Content-DPR`
- `Device-Memory`
- `DPR`
- `Viewport-Width`
- `Width`
For details look here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers#user_agent_client_hints
Also any `Sec-CH-UA-{key-name}` will be saved.
To provide some unique device identifier use: **`Sec-CH-UA-ID`** header.
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.1.4]
### Fixed
- Headers: Sec-CH-UA, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Full-Version support.
## [0.1.2]
### Added
- IPv6 support.
## [0.1.1]
Initial version.
Raw data
{
"_id": null,
"home_page": null,
"name": "wc-django-device-recognizer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "WebCase",
"author_email": "info@webcase.studio",
"download_url": "https://files.pythonhosted.org/packages/9c/6a/11e107811d14e27681ed70813934e93b0240d02a587207432a7e886c58c5/wc-django-device-recognizer-0.1.5.tar.gz",
"platform": null,
"description": "# WebCase device recognizing utility\n\n## Installation\n\n```sh\npip install wc-django-device-recognizer\n```\n\nIt depends on `django-user-agents`, so check out [it's documentation](https://pypi.org/project/django-user-agents/) about additional installation instructions.\n\nIn `settings.py`:\n\n```python\nINSTALLED_APPS += [\n 'wcd_device_recognizer',\n]\n```\n\n## Usage\n\nTo get all possible information from request:\n\n```python\nfrom wcd_device_recognizer.services import request_resolver\n\ninterlocutor = request_resolver.resolve(request)\n\nassert interlocutor.device.bitness == '64'\nassert interlocutor.os.family == 'Linux'\nassert interlocutor.os.arch == 'x86'\nassert interlocutor.app.family == 'Chrome'\nassert interlocutor.app.version == (101, 0, 0)\nassert interlocutor.device.dpr == 1\n```\n\nAnd then you may save interlocutor's data to database:\n\n```python\nfrom wcd_device_recognizer.services import registry\n\n# You may pass any amount of interlocutors to register here.\nregistry.register_interlocutors((interlocutor,))\n```\n\n## Coverage\n\nTo collect interlocutor's data package uses User-Agent info and standart HTTP headers:\n\n- `Sec-CH-UA`\n- `Sec-CH-UA-Arch`\n- `Sec-CH-UA-Bitness`\n- `Sec-CH-UA-Full-Version`\n- `Sec-CH-UA-Full-Version-List`\n- `Sec-CH-UA-Mobileser experience.`\n- `Sec-CH-UA-Model`\n- `Sec-CH-UA-Platform`\n- `Sec-CH-UA-Platform-Version`\n- `Content-DPR`\n- `Device-Memory`\n- `DPR`\n- `Viewport-Width`\n- `Width`\n\nFor details look here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers#user_agent_client_hints\n\nAlso any `Sec-CH-UA-{key-name}` will be saved.\n\nTo provide some unique device identifier use: **`Sec-CH-UA-ID`** header.\n# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [0.1.4]\n### Fixed\n- Headers: Sec-CH-UA, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Full-Version support.\n\n## [0.1.2]\n### Added\n- IPv6 support.\n\n## [0.1.1]\nInitial version.\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Django device recognizing utility.",
"version": "0.1.5",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9c6a11e107811d14e27681ed70813934e93b0240d02a587207432a7e886c58c5",
"md5": "166a2901301d8640eb3bd424c8425f0c",
"sha256": "90dea7ffe1bae41b00ab42977548aa1d70d9d453ea1b330e082d4619e1d7bc55"
},
"downloads": -1,
"filename": "wc-django-device-recognizer-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "166a2901301d8640eb3bd424c8425f0c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 27134,
"upload_time": "2024-07-11T14:26:52",
"upload_time_iso_8601": "2024-07-11T14:26:52.335032Z",
"url": "https://files.pythonhosted.org/packages/9c/6a/11e107811d14e27681ed70813934e93b0240d02a587207432a7e886c58c5/wc-django-device-recognizer-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-11 14:26:52",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "wc-django-device-recognizer"
}