Kiki Documentation. Release 0.7a1. Stephen Burrows

Similar documents
Bambu API Documentation

django-avatar Documentation

PyZabbixObj Documentation

fragapy Documentation

django-slim Documentation

tld Documentation Release 0.9 Artur Barseghyan

Django-Select2 Documentation. Nirupam Biswas

django-embed-video Documentation

colab Documentation Release 2.0dev Sergio Oliveira

micawber Documentation

django-oauth2-provider Documentation

django-subdomains Documentation

bzz Documentation Release Rafael Floriano and Bernardo Heynemann

Django Data Importer Documentation

Biostar Central Documentation. Release latest

RandoPony Documentation

django-embed-video Documentation

utidylib Documentation Release 0.4

Django Better Cache Documentation

django-revproxy Documentation

django-avatar Documentation

Caching. Caching Overview

freeze Documentation Release 0.7.0alpha Jean-Louis Fuchs

alphafilter Documentation

scrapekit Documentation

django-celery Documentation

django-embed-video Documentation

prompt Documentation Release Stefan Fischer

Course Title: Python + Django for Web Application

django-intercom Documentation

Django with Python Course Catalog

SLAC s Experience with the RT Request Tracker

Python STL. Release dev

Django-CSP Documentation

Tangent MicroServices Documentation

Using the Control Panel

django-notifier Documentation

tally Documentation Release Dan Watson

iris-grib Documentation

PySpec Documentation. Release Zac Stewart

Flask- Documentation

django-conduit Documentation

SpaceEZ Documentation

Manual for Mailman List Administrators. Issued by Advanced Center for Computing and Communication, RIKEN

LECTURE 26. Documenting Python

ourwiki Documentation

django-sticky-uploads Documentation

django-model-report Documentation

django-app-metrics Documentation

Django-frontend-notification Documentation

Yampy Documentation. Release 1.0. Yammer

Aldryn Installer Documentation

django-konfera Documentation

django-allauth-2fa Documentation

GoCD Python API client Documentation

Gunnery Documentation

I hate money. Release 1.0

newauth Documentation

pymemcache Documentation

Django Mail Queue Documentation

Canvas Data Utilities Documentation

Django File Picker Documentation

Sphinx Bulma Theme Documentation

Administration Guide. 05 Apr TM and copyright Imagicle spa

django-antispam Documentation

OpenText RightFax 10.0 Connector for Microsoft SharePoint 2007 Administrator Guide

FCS Documentation. Release 1.0 AGH-GLK

SpringCM. Release Notes December 2017

payload Documentation

Python Overpass API Documentation

django-fluent-dashboard Documentation

pyoutlook Documentation

Django Admin Sortable Documentation

django-ratelimit-backend Documentation

Simple manual for ML administrators (Mailman) Version 4.2 (Mailing List Service)

SOAP API. The correct URL has been hidden. Please contact your account manager for the full URL information.

memex-explorer Documentation

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message.

Python-Django-DevOps Documentation

Groups Backend Configuration Notes

mri Documentation Release Nate Harada

Django PAM Documentation

django-cron Documentation

HAProxy log analyzer Documentation

pyrauth Documentation

HyperKitty Documentation

djangotribune Documentation

django-renderit Documentation

Talend Component tgoogledrive

Mutation Testing in Patterns Documentation

Celery-RabbitMQ Documentation

Bricks Documentation. Release 1.0. Germano Guerrini

8.0 Help for End Users About Jive for SharePoint System Requirements Using Jive for SharePoint... 6

django-mailbox Documentation

Bronto Integration. Version

django-permission Documentation

Django IPRestrict Documentation

.. Documentation. Release Author

feed2toot Documentation

django-messages Documentation

Transcription:

Kiki Documentation Release 0.7a1 Stephen Burrows August 14, 2013

CONTENTS i

ii

Kiki Documentation, Release 0.7a1 Kiki is envisioned as a Django-based mailing list manager which can replace Mailman. CONTENTS 1

Kiki Documentation, Release 0.7a1 2 CONTENTS

CHAPTER ONE WHY REPLACE MAILMAN? Mailman is a grand old thing. However, there are some major sticking points, which Kiki tries to resolve. Mailman Kiki Install requires root access and a build step. Django package. Can be installed simply and locally. Includes C modules. Pure Python. Only accessible through its own web interface, and authentication is baked in. Integrates with the django admin and provides default urls, views, and templates. Uses a private database for Users. Integrates with the Users already on your site. Documents are wiki-based or not easily buildable. Sphinx documentation is in a separate directory from the code. You can also find the docs on readthedocs.org. Message queueing baked in. Uses django-celery for queues. Contents: 1.1 Models class kiki.models.listcommand(*args, **kwargs) ListCommand(id, message_id, mailing_list_id, status, command) FAILED = 4 An error occurred while processing the ListCommand. PROCESSED = 3 Ths ListCommand has been processed completely. REJECTED = 2 The ListCommand has been rejected (e.g. for permissioning reasons.) UNPROCESSED = 1 The ListCommand has not been processed. class kiki.models.listmessage(*args, **kwargs) Represents the relationship between a Message and a MailingList. This is what is processed to handle the sending of a message to a list rather than the original message. class kiki.models.listusermetadata(*args, **kwargs) ListUserMetadata(id, user_id, mailing_list_id, status) class kiki.models.mailinglist(*args, **kwargs) This model contains all options for a mailing list, as well as some helpful methods for accessing subscribers, moderators, etc. 3

Kiki Documentation, Release 0.7a1 get_recipients() Returns a queryset of Users that should receive this message. class kiki.models.message(*args, **kwargs) Represents an email received by Kiki. Stores the original received message as well as a pickled version of the processed message. from_email = None The message_id of the email this is in reply to. class kiki.models.processedmessagemodel(*args, **kwargs) Encapsulates the logic required for storing and fetching pickled EmailMessage objects. This should eventually be replaced with a custom model field. 1.2 Celery tasks 1.3 Messaging utils kiki.utils.message.sanitize_headers(msg) Set and modify headers on an email.message that need to be there no matter which list the message ends up being delivered to. Also remove headers that need to not be there. kiki.utils.message.set_list_headers(msg, list_) Modifies the headers of a django.core.mail.emailmessage in-place for a specific list. kiki.utils.message.set_user_headers(msg, user) Modifies the headers of a django.core.mail.emailmessage in-place for a specific user. 1.4 Routing utils kiki.utils.routing.create_message_commands(msg) Given a message, creates and returns a list of commands for that message and target mailing lists. kiki.utils.routing.list_post(list_cmd) Given a kiki.models.listcommand for a post, returns a kiki.models.listmessage based on that command, or None if the command was invalid. The kiki.models.listmessage will be marked either as Accepted or Requires Moderation, and it will have the appropriate list headers set. kiki.utils.routing.prep_list_message(list_msg) Runs kiki.utils.message.set_list_headers() on an accepted ListMessage and sets its status to ListMessage.PREPPED. kiki.utils.routing.receive_email(msg_str) Given a string representation of an email message, parses it into a KikiMessage. Returns a (message, created) tuple, where created is False if the message was already in the database. kiki.utils.routing.send_list_message(list_msg, user) Sends a copy of a kiki.models.listmessage to a single User. 1.5 Email 4 Chapter 1. Why replace Mailman?

CHAPTER TWO INDICES AND TABLES genindex modindex search 5

Kiki Documentation, Release 0.7a1 6 Chapter 2. Indices and tables

PYTHON MODULE INDEX k kiki.message,?? kiki.models,?? kiki.tasks,?? kiki.utils.message,?? kiki.utils.routing,?? 7