README.md

This commit is contained in:
2026-03-02 14:14:31 +01:00
parent 275cf0c6b0
commit a5159bbf60
2 changed files with 115 additions and 134 deletions

115
README.md Normal file
View File

@@ -0,0 +1,115 @@
[![Python version supported](https://img.shields.io/badge/python-3.6-orange.svg)](https://pypi.python.org/pypi/django-th/)
[![License](https://img.shields.io/badge/license-BSD-blue.svg)](https://pypi.python.org/pypi/django-th/)
# Wallabag API
Python API for Wallabag v2.2.3
## Requirements
* aiohttp
## Installation
to get the project, from your virtualenv, do :
```python
git clone https://git.gasser.ovh/thib8956/wallabag-api-client
```
or
```python
pip install git+https://git.gasser.ovh/thib8956/wallabag-api-client.git
```
## Creating a post
1) request the token, if you don't have it yet
2) create the post
```python
#!/usr/bin/env python
import aiohttp
import asyncio
from wallabag_api.wallabag import Wallabag
# settings
my_host = 'http://localhost:8080'
async def main(loop):
params = {'username': 'foxmask',
'password': 'mypass',
'client_id': 'myid',
'client_secret': 'mysecret',
'extension': 'pdf'}
# get a new token
token = await Wallabag.get_token(host=my_host, **params)
# initializing
async with aiohttp.ClientSession(loop=loop) as session:
wall = Wallabag(host=my_host,
client_secret=params.get('client_secret'),
client_id=params.get('client_id'),
token=token,
extension=params['extension'],
aio_sess=session)
url = 'https://foxmask.trigger-happy.eu'
title = 'foxmask\'s blog'
await wall.post_entries(url, title, '', 0, 0)
url = 'https://trigger-happy.eu'
title = 'Project TrigerHappy'
await wall.post_entries(url, title, '', 0, 0)
# get all the articles
my_wallabag = await wall.get_entries()
all_article = my_wallabag['_embedded']['items']
for article in all_article:
print(article['id'], article['title'])
# get the version of wallabag
version = await wall.version
print(f"version {version}")
# export one article into PDF
my_wallabag = await wall.get_entry_export(entry=1)
with open("foobar.pdf", "wb") as f:
f.write(my_wallabag)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
```
this will give you something like this :
![Wallabag](https://git.gasser.ovh/thib8956/wallabag-api-client/raw/commit/b3d68b0e1b911c824c4af83570a97b3b47496d14/wallabag.png)
## Testing
Install Wallabag V2 on your own host like explain here http://doc.wallabag.org/en/v2/user/installation.html
Then run the development version (with make run)
Then create a client API like explain here http://doc.wallabag.org/en/v2/developer/api.html
this will give you something like this
![Wallabag API Key](https://git.gasser.ovh/thib8956/wallabag-api-client/raw/commit/b3d68b0e1b911c824c4af83570a97b3b47496d14/wallabag_api_key.png)
Then replace the client_id / client_secret / login / pass to wallabag_test.py and run
```python
python wallabag_test.py
```