Microblog app used to share quick knowledge. This code powers Vinta's lessons learned running at http://www.vinta.com.br/lessons-learned/.
The posts are created via slack using a custom command and are automatically posted on twitter.
Install Django Knowledge Share:
pip install django-knowledge-share
Create an app for your microblog:
python manage.py startapp microblog
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
...
"microblog",
"knowledge_share",
...
)
In your urls.py add the urls entry:
url(r'^', include('knowledge_share.urls', namespace='microblog')),
In your microblog/models.py create your models by inheriting from the abstract models:
# customize those models as needed
from knowledge_share import models as knowledge_share_abstract_models
class MicroBlogPost(knowledge_share_abstract_models.MicroBlogPostBase):
pass
class MicroBlogCategory(knowledge_share_abstract_models.MicroBlogCategoryBase):
pass
Then create and run your migrations:
python manage.py makemigrations python manage.py migrate
You can see the available models and it's fields here. They are all abstract and you need to create an instance of it (see Quickstart section).
Create a custom command in this page: https://my.slack.com/services/new/slash-commands.
Set the url to your slack endpoint, by default https://yoursite.com/microblog/integrations/slack-slash/
Copy the generated token and add to your settings.py as "SLACK_TOKEN='your-token'".
To send a new post use /yourcommand This is a blog post content [Category, Another Category]
You will need to set the following settings using your twitter data:
TWITTER_API_KEY TWITTER_API_SECRET TWITTER_ACCESS_TOKEN TWITTER_ACCESS_TOKEN_SECRET
Whenever new posts are created it will be posted to twitter.
Whenever you are showing the content of the post you should use:
{% load microblog %} {{ post.content|convert_to_html }}
If you want to create a link with the content to be shared you can use:
{% load microblog %} <a href="https://twitter.com/intent/tweet?text={{ post|format_post }}"> Share on twitter </a>
There is a RSS feed served by default at /microblog/feed/.
The following configurations are available:
# settings.py
# name of the app created with your microblog's models
KNOWLEDGE_APP_NAME = 'microblog'
# the title of the rss feed (available at: /microblog/feed/)
KNOWLEDGE_FEED_TITLE = 'microblog'
# the link of the feed
KNOWLEDGE_FEED_LINK = '/microblog/'
# Either to use twitter or not
KNOWLEDGE_USE_TWITTER = True
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
Tools used in rendering this package: