Skip to main content

Django device recognizing utility.

Project description

WebCase device recognizing utility

Installation

pip install wc-django-device-recognizer

It depends on django-user-agents, so check out it's documentation about additional installation instructions.

In settings.py:

INSTALLED_APPS += [
  'wcd_device_recognizer',
]

Usage

To get all possible information from request:

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:

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, and this project adheres to Semantic Versioning.

[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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wc-django-device-recognizer-0.1.5.tar.gz (27.1 kB view details)

Uploaded Source

File details

Details for the file wc-django-device-recognizer-0.1.5.tar.gz.

File metadata

File hashes

Hashes for wc-django-device-recognizer-0.1.5.tar.gz
Algorithm Hash digest
SHA256 90dea7ffe1bae41b00ab42977548aa1d70d9d453ea1b330e082d4619e1d7bc55
MD5 166a2901301d8640eb3bd424c8425f0c
BLAKE2b-256 9c6a11e107811d14e27681ed70813934e93b0240d02a587207432a7e886c58c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page