Revert to argparse absed API
Easier and better because you can pass in everything you need without having to deal with decorators which after a look at are quite complicated to play with.
This commit is contained in:
parent
7c449cb887
commit
22ebaf1629
13
README.md
13
README.md
@ -123,18 +123,15 @@ The settings are placed in a file called `.etherpump/settings.json` and are used
|
||||
Library API Example
|
||||
-------------------
|
||||
|
||||
Etherpump can be used as a library:
|
||||
Etherpump can be used as a library.
|
||||
|
||||
All commands can be imported and run programmatically.
|
||||
|
||||
```python
|
||||
from etherpump.api import magicword
|
||||
|
||||
@magicword('__VARIA_PUB_CLUB__')
|
||||
def do_things_with_the_pad_contents(pads):
|
||||
print(pads['my-pad-name']['html'])
|
||||
>>> from etherpump.api import pull
|
||||
>>> pull(['--all', '--publish-opt-in', '--publish', '__PUB_CLUB__'])
|
||||
```
|
||||
|
||||
This is still a work in progress.
|
||||
|
||||
Subcommands
|
||||
----------
|
||||
|
||||
|
@ -2,4 +2,4 @@ import os
|
||||
|
||||
DATAPATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "data")
|
||||
|
||||
__VERSION__ = '0.0.6'
|
||||
__VERSION__ = '0.0.7'
|
||||
|
@ -1 +1,15 @@
|
||||
from etherpump.api.magicword import magicword # noqa
|
||||
from etherpump.commands.creatediffhtml import main as creatediffhtml # noqa
|
||||
from etherpump.commands.deletepad import main as deletepad # noqa
|
||||
from etherpump.commands.dumpcsv import main as dumpcsv # noqa
|
||||
from etherpump.commands.gethtml import main as gethtml # noqa
|
||||
from etherpump.commands.gettext import main as gettext # noqa
|
||||
from etherpump.commands.index import main as index # noqa
|
||||
from etherpump.commands.init import main as init # noqa
|
||||
from etherpump.commands.list import main as list # noqa
|
||||
from etherpump.commands.listauthors import main as listauthors # noqa
|
||||
from etherpump.commands.publication import main as publication # noqa
|
||||
from etherpump.commands.pull import main as pull # noqa
|
||||
from etherpump.commands.revisionscount import main as revisionscount # noqa
|
||||
from etherpump.commands.sethtml import main as sethtml # noqa
|
||||
from etherpump.commands.settext import main as settext # noqa
|
||||
from etherpump.commands.showmeta import main as showmeta # noqa
|
||||
|
@ -1,23 +0,0 @@
|
||||
"""Utilities for API functions."""
|
||||
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlencode
|
||||
|
||||
from etherpump.commands.common import getjson, loadpadinfo
|
||||
from etherpump.commands.init import main
|
||||
|
||||
|
||||
def ensure_init():
|
||||
"""Ensure etherpump has already been init'd."""
|
||||
try:
|
||||
main([])
|
||||
except SystemExit:
|
||||
pass
|
||||
|
||||
|
||||
def get_pad_ids():
|
||||
"""Retrieve all available pad ids."""
|
||||
info = loadpadinfo(Path('.etherpump/settings.json'))
|
||||
data = {'apikey': info['apikey']}
|
||||
url = info['localapiurl'] + 'listAllPads?' + urlencode(data)
|
||||
return getjson(url)['data']['padIDs']
|
@ -1,37 +0,0 @@
|
||||
"""API for programming against pads marked with __MAGIC_WORDS__."""
|
||||
|
||||
__all__ = ['magicword']
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from etherpump.api._utils import ensure_init, get_pad_ids
|
||||
from etherpump.commands.pull import main as pull
|
||||
|
||||
|
||||
def magicword(word):
|
||||
"""Decorator for handling magic words."""
|
||||
|
||||
ensure_init()
|
||||
pull(['--all', '--publish-opt-in', '--publish', word])
|
||||
|
||||
pads = {}
|
||||
for pad_id in get_pad_ids():
|
||||
pads[pad_id] = {}
|
||||
try:
|
||||
pads[pad_id]['html'] = open(Path(f'./p/{pad_id}.raw.html')).read()
|
||||
pads[pad_id]['txt'] = open(Path(f'./p/{pad_id}.raw.txt')).read()
|
||||
pads[pad_id]['meta'] = json.loads(
|
||||
open(Path(f'./p/{pad_id}.meta.json')).read()
|
||||
)
|
||||
pads[pad_id]['dhtml'] = open(Path(f'./p/{pad_id}.raw.dhtml')).read()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
def wrap(userfunc):
|
||||
def wrappedf(*args):
|
||||
userfunc(pads)
|
||||
|
||||
return wrappedf
|
||||
|
||||
return wrap
|
Loading…
Reference in New Issue
Block a user