-
Notifications
You must be signed in to change notification settings - Fork 0
/
add2reminiscence.py
executable file
·79 lines (67 loc) · 2.18 KB
/
add2reminiscence.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/env python3
"""
usage:
add2reminiscence.py <reminiscence_instance_url> <username> <password> [<url_to_add>]
example:
add2reminiscence.py https://apps.anypla.net/links/ guest supersecretpassword https://example.com
"""
try:
import appex
except ImportError:
appex = None
import getpass
import requests
import sys
__version__ = (0,1,0)
__author__ = 'sven.hessenmueller@gmail.com'
__license__ = 'MIT'
url_api = None
url2add = None
params = {'username': None, 'password': None}
headers = {}
def add_url(rem_url=None, auth_token=None, url=None, dir="/AddToReminiscence", media_link=False):
headers = {}
headers['Authorization'] = 'Token {}'.format(token)
params = {'url': url, 'directory': dir, 'media_link': media_link}
r = requests.post("{}/add-url/".format(rem_url), data=params, headers=headers) # HTTP-POST
print(r.status_code,r.reason)
print(r.json())
if r.status_code != 200:
sys.exit(-1)
if __name__ == '__main__':
if len(sys.argv) < 4:
for param in params:
if not params[param]:
params[param] = getpass.getpass("{}? ".format(param))
else:
url_api = sys.argv[1]
if url_api[-1] != '/':
url_api += '/'
params['username'] = sys.argv[2]
params['password'] = sys.argv[3]
if len(sys.argv) > 4:
url2add = sys.argv[4]
else:
if appex: # pythonista-instance? (e.g. on iPad/iPhone)
url2add = appex.get_url()
if not url_api:
url_api = input('url of reminiscence instance? ')
if not url2add:
url2add = input('url to add? ')
url_api = '{}restapi'.format(url_api)
print("url_api : {}".format(url_api))
print("url2add : {}".format(url2add))
# get AUTH TOKEN
r = requests.post("{}/login/".format(url_api), data=params, headers=headers) # HTTP-POST
print(r.status_code,r.reason)
print(r.json())
token = None
if r.status_code == 200:
token = r.json()['token']
else:
sys.exit(-1)
# add url
if url2add:
add_url(url_api, token, url2add)
# logout
r = requests.get("{}/logout/".format(url_api), params=None, headers=headers) # HTTP-GET