Scrape an artist from SoundCloud
Project description
![Django knockout!](http://i.imgur.com/Nf7Vxq6.gif)
SoundScrape
==============
**SoundScrape** makes it super easy to download artists from SoundCloud.
Usage
---------
First, install it:
```bash
pip install soundscrape
```
To get the data object by itself, you can do this:
```django
{{ myObjects | knockout_data }}
```
Similarly, you can get just the model, if you prefer to load your data from apis, like this:
```django
{{ myObjects | knockout_model }}
```
And even just the bindings:
```django
{{ myObjects | knockout_bindings }}
```
Progammatic Usage
---------
First, import it!
```python
from knockout_modeler.ko import ko, koData, koModel
```
To get the whole template, you can do this:
```python
koString = ko(YourModel)
```
And to get just the data string you can do this..
```python
koString = koData(YourModel)
```
And, surprisingly, you can do the same for the model string:
```python
koString = koModel(YourModel)
```
Custom fieldsets are also allowed:
```python
fields = ['custom', 'fieldset', 'allowed']
koString = ko(entries, fields)
```
Access Control
----------
If you don't want to expose your entire model to Knockout, you can define a function in your model:
```python
def knockout_fields(self):
return['name', 'number']
```
by default, it uses the keys in the object's __to_dict()__ method. For computed properties, you can use python's __property__ function.
Sorting
----------
django-knockout provides some convenient methods for sorting your data. By default, it will use the object's 'id' field, but you can also define your own comparator like so:
```python
@classmethod
def comparator(self):
return 'value'
```
If you don't define a comparator, 'id' must be in your knockout_fields.
Multi-Model Support
----------
django-knockout is all ready set up to be used with multiple types of data at the same time, as bindings happen to specific objects:
```javascript
ko.applyBindings(new MyObjectViewModel(), $('#myobjects')[0]);
```
which means that you somewhere in your HTML template, you will need to have an object with that id, like so:
```html
<div id="myobjects">
<div data-bind="foreach: myobjects">
User <span data-bind="text: myName"></span> is number <span data-bind="text: myNumber"></span>.
</div>
</div>
```
This is handy for prototyping, but more advanced applications may want to use the [master ViewModel](http://stackoverflow.com/a/9294752/1135467) technique instead.
Multi-Data Support
----------
If you're using multiple QuerySets of the same type, you'll need to define a custom name for the data variables.
```django
{{ myObjects | knockout_data:'MyNamedObjectsData' }}
```
Issues
-------
There's probably a lot more that can be done to improve this. Please file issues if you find them!
SoundScrape
==============
**SoundScrape** makes it super easy to download artists from SoundCloud.
Usage
---------
First, install it:
```bash
pip install soundscrape
```
To get the data object by itself, you can do this:
```django
{{ myObjects | knockout_data }}
```
Similarly, you can get just the model, if you prefer to load your data from apis, like this:
```django
{{ myObjects | knockout_model }}
```
And even just the bindings:
```django
{{ myObjects | knockout_bindings }}
```
Progammatic Usage
---------
First, import it!
```python
from knockout_modeler.ko import ko, koData, koModel
```
To get the whole template, you can do this:
```python
koString = ko(YourModel)
```
And to get just the data string you can do this..
```python
koString = koData(YourModel)
```
And, surprisingly, you can do the same for the model string:
```python
koString = koModel(YourModel)
```
Custom fieldsets are also allowed:
```python
fields = ['custom', 'fieldset', 'allowed']
koString = ko(entries, fields)
```
Access Control
----------
If you don't want to expose your entire model to Knockout, you can define a function in your model:
```python
def knockout_fields(self):
return['name', 'number']
```
by default, it uses the keys in the object's __to_dict()__ method. For computed properties, you can use python's __property__ function.
Sorting
----------
django-knockout provides some convenient methods for sorting your data. By default, it will use the object's 'id' field, but you can also define your own comparator like so:
```python
@classmethod
def comparator(self):
return 'value'
```
If you don't define a comparator, 'id' must be in your knockout_fields.
Multi-Model Support
----------
django-knockout is all ready set up to be used with multiple types of data at the same time, as bindings happen to specific objects:
```javascript
ko.applyBindings(new MyObjectViewModel(), $('#myobjects')[0]);
```
which means that you somewhere in your HTML template, you will need to have an object with that id, like so:
```html
<div id="myobjects">
<div data-bind="foreach: myobjects">
User <span data-bind="text: myName"></span> is number <span data-bind="text: myNumber"></span>.
</div>
</div>
```
This is handy for prototyping, but more advanced applications may want to use the [master ViewModel](http://stackoverflow.com/a/9294752/1135467) technique instead.
Multi-Data Support
----------
If you're using multiple QuerySets of the same type, you'll need to define a custom name for the data variables.
```django
{{ myObjects | knockout_data:'MyNamedObjectsData' }}
```
Issues
-------
There's probably a lot more that can be done to improve this. Please file issues if you find them!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
soundscrape-0.1.0.tar.gz
(2.5 kB
view hashes)