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.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.3.tar.gz (26.4 kB view hashes)

Uploaded Source

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