Skip to main content

REST-api bases over unity asset server for some routines.

Project description

https://badge.fury.io/py/django-unity-asset-server-http-client.svg

LICENSE

MIT

Requirements

  • python 2.7

  • django 1.6+

  • djangorestframework 2.4.3+

  • django-filter 0.8

Quick start

  1. Add “duashttp” to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = (
        ...
        'duashttp',
    )

2. Add unity asset server router in your INSTALLED_APPS settings and configure access to unity asset server access.

DATABASE_ROUTERS = ['duashttp.router.UnityAssetServerRouter', ]
DATABASES = {
   'default': {
     'ENGINE': 'django.db.backends.sqlite3',
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
   },
   'unity_asset_server': {
      'ENGINE': 'django.db.backends.postgresql_psycopg2',
      'NAME': 'game_project_database_name',
      'USER': 'admin',
      'PASSWORD': 'admin_password',
      'HOST': '192.168.0.1',  # There UNITY asset server is placed on
      'PORT': '10733'  # standard unity asset server port number
    }
}

3. Manage your settings.py with django restframe work settings to get optimal config:

REST_FRAMEWORK = {
 'PAGINATE_BY': 10,
 'PAGINATE_BY_PARAM': 'page_size',
 # Maximum limit allowed when using `?page_size=xxx`.
 'MAX_PAGINATE_BY': 100,
 'DEFAULT_AUTHENTICATION_CLASSES': (
     'rest_framework.authentication.BasicAuthentication',
     'rest_framework.authentication.SessionAuthentication',
 ),
 'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',)
}
  1. Apply your custom view sets or use existent and include them in “urls.py”:

# -*- views.py -*-
from duashttp.views.api import AssetVersionViewSetBase

from rest_framework.decorators import list_route
from rest_framework.response import Response

from django.db.models import Q


class AssetVersionViewSet(AssetVersionViewSetBase):
    """ AssetVersion view set """
    @list_route()
    def configs(self, request):
        """get xml configs with their last revision"""
        qset = (
            Q(name__icontains='.xml') &
            ~Q(name__icontains='(DEL_') &
            ~Q(name__icontains='~$')
        )
        xml_docs = self.queryset.filter(qset).order_by(
            'name', '-revision').distinct('name')
        docs = self.filter_queryset(xml_docs)
        page = self.paginate_queryset(docs)
        serializer = self.get_pagination_serializer(page)
        return Response(serializer.data)
# -*- urls.py -*-
from django.conf.urls import patterns, include, url
from views import *
from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'asset_versions', AssetVersionViewSet)


urlpatterns = patterns('',
    # Examples:
    url(r'^api/', include(router.urls)),
    url(r'^api/', include(router.urls, namespace='api')),
)
  1. Start the development server and visit http://127.0.0.1:8000/api/ to see available api calls.

Models

You can fetch data from unity asset server (based on posgres 8.3) using this:

>>> from duashttp.models import AssetVersion
>>> versions = AssetVersion.objects.filter(name__icontains='Actions.xml')
>>> versions
... [<AssetVersion: Actions.xml [46]>, <AssetVersion: Actions.xml [45]>,
... <AssetVersion: Actions.xml [44]>, <AssetVersion: Actions.xml [43]>,
... <AssetVersion: Actions.xml [42]>, <AssetVersion: Actions.xml [41]>,
... <AssetVersion: Actions.xml [40]>, <AssetVersion: Actions.xml [39]>,
... <AssetVersion: Actions.xml [38]>, <AssetVersion: Actions.xml [37]>,
... <AssetVersion: Actions.xml [36]>, <AssetVersion: Actions.xml [35]>,
... <AssetVersion: Actions.xml [34]>, '...(remaining elements truncated)...']
>>> version = versions.get(revision=45)
>>> print(version.get_blob_data())
... <?xml version="1.0" encoding="utf-8"?>
... <DocumentElement>
...     <Data_Table>
...         <id>1</id>
...         <num>1</num>
...         <prefab_name />
...         <small_prefab_name>SmallAction_gems_3_dollar</small_prefab_name>
...         <icon_sprite>lucky_gem</icon_sprite>
...         <is_small_action>1</is_small_action>
...         <is_big_action />
...         <is_top_panel_action />
...         <move_to_window />
...         <affected_id />
...         <appear_date>27/10/2014 08:00</appear_date>
...         <start_date>27/10/2014 08:00</start_date>
...         <end_date>31/10/2014 08:00</end_date>
...         <expire_date>31/10/2014 08:00</expire_date>
...         <source />
...         <patch />
...         <bind_id />
...     </Data_Table>
... </DocumentElement>

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

Built Distributions

File details

Details for the file django-unity-asset-server-http-client-0.1.5.tar.gz.

File metadata

File hashes

Hashes for django-unity-asset-server-http-client-0.1.5.tar.gz
Algorithm Hash digest
SHA256 a639e9412c8253c117d325876d4ff983f1f48d55196bd06a5c3b6e43bcab3a9c
MD5 ef859d48eafaaeb445b80075c81342a0
BLAKE2b-256 d222bf6426784de35d31a5b0f02cbfaacaec2fe0c371cc2603fd910f52dd0629

See more details on using hashes here.

File details

Details for the file django_unity_asset_server_http_client-0.1.5-py2-none-any.whl.

File metadata

File hashes

Hashes for django_unity_asset_server_http_client-0.1.5-py2-none-any.whl
Algorithm Hash digest
SHA256 59dec887ff89874f74a3350054a023995894f373206f58f6aefd8bbfdd3720a9
MD5 7c8d251382ec9aea85f58925c667c0c3
BLAKE2b-256 4d318cbd409cb3021374e0736223920f5aa4209c17c16bafe21bed81ae3e7ce5

See more details on using hashes here.

File details

Details for the file django-unity-asset-server-http-client-0.1.5.linux-x86_64.tar.gz.

File metadata

File hashes

Hashes for django-unity-asset-server-http-client-0.1.5.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 e96714dec53543ef36a87f37770a6af5f1df08de5cc2fe84f219209808c0841f
MD5 c50c69c8c94744d3a9d248be98df91ad
BLAKE2b-256 8dca33a8348d1276ec2c662584ff6cd4cf3d69d658487e8919206bbf57d8049d

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