<commit_before>![Banner](/perchouli/img/blob/master/banner-772x250.png?raw=true)

# Duoshuo Python SDK

本SDK支持用Python语言开发的网站，对其提供[多说]插件的支持。

# Requirements

Python 2.6+

Django 1.2+ (如果在Django中使用)

# Index

[Python Useage](#python-usage)

[Django useage](#django-usage)


# Python Usage

作为Python models来使用

## Core (`__init__`.py)

sdk核心功能： 交换token，生成授权链接，调用api接口

***

### 实例化duoshuoAPI

    from duoshuo import DuoshuoAPI

    code = reqeust.GET.get(code)

    api = DuoshuoAPI(short_name=YOUR_DUOSHUO_SHORT_NAME, secret=YOUR_DUOSHUO_SECRET)

    #例如要获取用户信息
    api.users.details(user_id=1)


更多API可以查看[多说开发文档](http://dev.duoshuo.com/docs "多说开发文档") 。

### 交换token
访问需要用户身份的接口时要先进行授权，采用OAuth2.0协议，Python SDK提供交换token的处理，实例化api后可以直接传入code来获取token：

    code = reqeust.GET.get(code)

    token = api.get_token(redirect_uri=redirect_uri, code=code)


## Utils (utils.py)

多说常用处理： remote_auth字符串加密。

***
views.py:

    from duoshuo.utils import remote_auth
    sig = remote_auth(id=request.user.id, name=request.user.username, email=request.user.email)

template/xxx.html

    duoshuoQuery['remote_auth'] = {{ sig }}

## Widgets (widgets.py)

多说主要挂件：最新评论，最近访客

soon coming...

# Django Usage

作为Django app来使用

## 0. 安装duoshuo插件

	python setup.py install

	INSTALLED_APPS = (
		...
		'duoshuo',
	)

	# settings.py
	DUOSHUO_SECRET = '你的多说secret'
	DUOSHUO_SHORT_NAME = '你的多说short name'

## 1. 导入已有数据

	python manager.py ds_import user
	python manager.py ds_import comment


## 2. 显示多说评论框

	{% load duoshuo_tags %}

	{% duoshuo_comments %}

	#给多说评论框传递其他short name
	{% duoshuo_comments '其他short name' %}

## 3. 用户登录后,在评论框显示本地身份
	# 请放在多说评论框tag: {{ duoshuo_comments }} 之前
	{{ request.user|remote_auth|safe }}<commit_msg>FIX: 更新文档<commit_after>![Banner](/perchouli/img/blob/master/banner-772x250.png?raw=true)

# Duoshuo Python SDK

本SDK支持用Python语言开发的网站，对其提供[多说]插件的支持。

# Requirements

Python 2.6+

Django 1.2+ (如果在Django中使用)

# Index

[Python Useage](#python-usage)

[Django useage](#django-usage)


# Python Usage

作为Python models来使用

## Core (`__init__`.py)

sdk核心功能： 交换token，生成授权链接，调用api接口

***

### 实例化duoshuoAPI

    from duoshuo import DuoshuoAPI

    code = reqeust.GET.get(code)

    api = DuoshuoAPI(short_name=YOUR_DUOSHUO_SHORT_NAME, secret=YOUR_DUOSHUO_SECRET)

    #例如要获取用户信息
    api.users.details(user_id=1)


更多API可以查看[多说开发文档](http://dev.duoshuo.com/docs "多说开发文档") 。

### 交换token
访问需要用户身份的接口时要先进行授权，采用OAuth2.0协议，Python SDK提供交换token的处理，实例化api后可以直接传入code来获取token：

    code = reqeust.GET.get(code)

    token = api.get_token(redirect_uri=redirect_uri, code=code)


## Utils (utils.py)

多说常用处理： remote_auth字符串加密。

***
views.py:

    from duoshuo.utils import remote_auth
    sig = remote_auth(id=request.user.id, name=request.user.username, email=request.user.email)

template/xxx.html

    duoshuoQuery['remote_auth'] = {{ sig }}

## Widgets (widgets.py)

多说主要挂件：最新评论，最近访客

soon coming...

# Django Usage

作为Django app来使用

## 0. 安装duoshuo插件

	python setup.py install

	INSTALLED_APPS = (
		...
		'duoshuo',
	)

	# settings.py
	DUOSHUO_SECRET = '你的多说secret'
	DUOSHUO_SHORT_NAME = '你的多说short name'

## 1. 导入已有数据

	python manager.py ds_import user
	python manager.py ds_import comment


## 2. 显示多说评论框

	{% load duoshuo_tags %}

	{% duoshuo_comments %}

	#给多说评论框传递其他short name
	{% duoshuo_comments '其他short name' %}

## 3. 用户登录后,在评论框显示本地身份
	# 请放在多说评论框tag: {{ duoshuo_comments }} 之后
	{{ request.user|remote_auth|safe }}
{'fraction_non_alphanumeric': 0.12843768285547102, 'fraction_numerical': 0.00994733762434172, 'mean_word_length': 4.496784565916399, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6041061', 'n_tokens_mistral': 1753, 'n_tokens_neox': 1739, 'n_words': 223}