wc-django-device-recognizer


Namewc-django-device-recognizer JSON
Version 0.1.5 PyPI version JSON
download
home_pageNone
SummaryDjango device recognizing utility.
upload_time2024-07-11 14:26:52
maintainerNone
docs_urlNone
authorWebCase
requires_python>=3.6
licenseMIT 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"
}
        
Elapsed time: 0.37339s