add bridge to call DokuWiki functions from Python
This commit is contained in:
parent
e2c88692f0
commit
2643fe5d35
2 changed files with 64 additions and 0 deletions
33
doku.php
Executable file
33
doku.php
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/php
|
||||
<?php
|
||||
# -*- coding: utf-8 -*-
|
||||
# Setup VIM: ex: et ts=2 sw=2 :
|
||||
# Bridge for Python code to invoke DokuWiki functions.
|
||||
#
|
||||
# Author: Elan Ruusamäe <glen@pld-linux.org>
|
||||
#
|
||||
# You should probably adjust path to DOKU_INC.
|
||||
|
||||
if ('cli' != php_sapi_name()) die();
|
||||
|
||||
define('DOKU_INC', '/usr/share/dokuwiki/');
|
||||
require_once DOKU_INC.'inc/init.php';
|
||||
require_once DOKU_INC.'inc/common.php';
|
||||
require_once DOKU_INC.'inc/cliopts.php';
|
||||
|
||||
switch ($argv[1]) {
|
||||
case 'cleanID':
|
||||
echo cleanID($argv[2]);
|
||||
break;
|
||||
case 'wikiFn':
|
||||
echo wikiFn($argv[2]);
|
||||
break;
|
||||
case 'mediaFn':
|
||||
echo mediaFn($argv[2]);
|
||||
break;
|
||||
case 'getNS':
|
||||
echo getNS($argv[2]);
|
||||
break;
|
||||
default:
|
||||
die("Unknown knob: {$argv[1]}");
|
||||
}
|
31
doku.py
Normal file
31
doku.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# Setup VIM: ex: noet ts=2 sw=2 :
|
||||
# Bridge for Python code to invoke DokuWiki functions.
|
||||
#
|
||||
# Author: Elan Ruusamäe <glen@pld-linux.org>
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
class DokuWiki:
|
||||
def __init__(self):
|
||||
self.callcache = {}
|
||||
|
||||
def __call(self, call, id):
|
||||
key = "%s-%s" % (call, id)
|
||||
if not self.callcache.has_key(key):
|
||||
cmd = ['./doku.php', call, id]
|
||||
print cmd
|
||||
res = subprocess.Popen(cmd, stdin = None, stdout = subprocess.PIPE, stderr = sys.stderr, close_fds = True).communicate()
|
||||
self.callcache[key] = res[0]
|
||||
return self.callcache[key]
|
||||
|
||||
def wikiFn(self, id):
|
||||
return self.__call('wikiFn', id)
|
||||
|
||||
def mediaFn(self, id):
|
||||
return self.__call('mediaFn', id)
|
||||
|
||||
def getNS(self, id):
|
||||
return self.__call('getNS', id)
|
Loading…
Reference in a new issue