cciw-website / cciw / webfaction.py

import xmlrpclib
# See http://wf.davidsissitka.com/api/reference/
from django.conf import settings

class WebFactionSession(object):
    """
    Class that wraps xmlrpc server calls to always
    provide the webfaction session id as the first
    parameter to method calls
    """
    def __init__(self, server, session_id):
        self.server = server
        self.session_id = session_id

    def __getattr__(self, name):
        def func(*args):
            f = getattr(self.server, name)
            return f(self.session_id, *args)
        return func

def webfaction_session():
    if settings.WEBFACTION_USER is None:
        return None
    server = xmlrpclib.Server('https://api.webfaction.com/')
    session_id, account = server.login(settings.WEBFACTION_USER, settings.WEBFACTION_PASSWORD)
    return WebFactionSession(server, session_id)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.