This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Django Chatterbox: Social listening made easy

Django Chatterbox is an Apache2 Licensed Social aggregation tool written with modularity in mind.

Aggregating content from multiple social networks is not so much fun. First you have to handle OAuth, then acquiring keys, managing keys, writing api’s to get data out of each social network, and then once you have it all, each social activity looks different.

This is a pain…a huge pain.

Enter Django Chatterbox. Chatterbox handles all of the oauth, keys, job creation, api’s, response iteration, and normalizing for you. All you have to provide is a social network key/secret, and Django Chatterbox does the rest.

Installation

Install using pip

pip install django-chatterbox

Add 'chatterbox' to your INSTALLED_APPS setting.

INSTALLED_APPS = (

    'chatterbox',
)

Append urls to urls.py

urlpatterns = patterns(
    (r'^chatterbox/', include('chatterbox.urls', namespace="chatterbox")),
)

EXAMPLE TIME!!

Video demo here.

or:

  • Go to instagram: https://instagram.com/developer/clients/manage/ and register an App

  • Once you have the app created, go here: /admin/chatterbox/client/add/

  • Fill out all Client model info using key/secret from instagram.com

  • Once the Model is created, click on it in the admin. Should look like this:
  • Select the permissions you require (most likely just read permissions)

  • Click ‘get authorization’

  • Follow the prompts redirecting you back to the admin

  • You now have a key model added to the admin

  • Next lets create a job, go here: /admin/chatterbox/job/add/

  • Select Instagram, Instagram tag search, highlight your key, add a search term

  • You now have everything you need to run a job. Lets execute it!

./manage.py shell
from chatterbox.models import Job
jobs = Job.objects.all()
job = jobs[0]
job.run()
# you will see...lots of stuff happen :)

How does it work?

Chatterbox comes with a few built in models and features. Here is a quick run down of what you all get…

Services

A service is basically a social network and it’s associated interactions. Chatterbox ships with 4 services out the box: Facebook, Twitter, Instagram, and YouTube. Additional services will likely be added but this is what comes for free atm.

Each service has an associated driver which is the underlying code used to interact with that social nework.

Clients

If you have ever worked with any of the social networks you know that to interact with it, you need to go grab a key/secret for that social network. Chatterbox clients are the model representation of that key and secret.

Keys

Keys are the result of a client and a user. Once a Client is created, you use that client to authenticate a user and create a key. This key has an access token attribute on it used to make outgoing requests.

Collectors

Chatterbox ships with a few built in collectors. Think of collectors as the thing that goes out, collects the social activites, and then saves them. For every social networks possible collection point, we have build out a collector. ex: i want to search instagram for all activites flagged with the hash #cheese. This would use the collector ‘Instagram Tag Search’

Jobs

A job is everything you need to go out, grab data, and bring it back. A job holds a collector, key, and any associated arguments needed to query that social network.

Activities

Activities are what is returned from each social network. It holds a normalized ‘blob’ object on it (among other things) that can be used to access all associated social response

Release History

0.0.5 (2016-01-19)

Added Tumblr support Added Twitter user search

0.0.1 (2014-01-20)

API Changes Bugfixes

Release History

Release History

0.0.8

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-chatterbox-0.0.8.tar.gz (739.9 kB) Copy SHA256 Checksum SHA256 Source Jan 19, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting