151 lines
3.4 KiB
Python
Executable File
151 lines
3.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import json
|
|
import re
|
|
import requests
|
|
import uuid
|
|
|
|
login_url = 'http://localhost:12345/login'
|
|
category_create_url = 'http://localhost:12345/category/create'
|
|
category_delete_url_format = 'http://localhost:12345/category/{}/delete'
|
|
category_edit_url_format = 'http://localhost:12345/category/{}/edit'
|
|
tts_model_list_url = 'http://localhost:12345/tts/list'
|
|
tts_category_assignment_url = 'http://localhost:12345/category/assign/tts'
|
|
|
|
payload = {
|
|
'username_or_email': 'echelon',
|
|
'password': 'testing',
|
|
}
|
|
|
|
r = requests.post(login_url, json=payload)
|
|
|
|
print("===== [1] Login =====")
|
|
print('Status: {}'.format(r.status_code))
|
|
print(r.content)
|
|
for k, v in r.headers.items():
|
|
print(' {}: {}'.format(k, v))
|
|
|
|
# NB: May not be set due to cookie domain:
|
|
#r.cookies['session']
|
|
|
|
raw_set_cookie_header = r.headers['set-cookie']
|
|
m = re.match(r'session=([^;\s]+);', raw_set_cookie_header)
|
|
session_cookie = m.group(1)
|
|
|
|
|
|
print("===== [2] Create Category =====")
|
|
|
|
cookies = { 'session': session_cookie }
|
|
|
|
payload = {
|
|
'idempotency_token': str(uuid.uuid4()),
|
|
'name': 'First Category',
|
|
'model_type': 'tts', # tts or w2l
|
|
'can_directly_have_models': False,
|
|
'can_have_subcategories': True,
|
|
'is_mod_approved': True,
|
|
}
|
|
|
|
r = requests.post(category_create_url, cookies=cookies, json=payload)
|
|
|
|
print('Status: {}'.format(r.status_code))
|
|
|
|
d = json.loads(r.content)
|
|
category_token = d['token']
|
|
|
|
print(f'created category token: #{category_token}')
|
|
|
|
|
|
print("===== [3] (Soft) Delete Category =====")
|
|
|
|
category_delete_url = category_delete_url_format.format(category_token)
|
|
|
|
cookies = { 'session': session_cookie }
|
|
|
|
payload = {
|
|
'set_delete': True,
|
|
}
|
|
|
|
r = requests.post(category_delete_url, cookies=cookies, json=payload)
|
|
|
|
print('Status: {}'.format(r.status_code))
|
|
print(r.content)
|
|
|
|
|
|
print("===== [4] Undelete Category =====")
|
|
|
|
cookies = { 'session': session_cookie }
|
|
|
|
payload = {
|
|
'set_delete': False,
|
|
}
|
|
|
|
r = requests.post(category_delete_url, cookies=cookies, json=payload)
|
|
|
|
print('Status: {}'.format(r.status_code))
|
|
print(r.content)
|
|
|
|
|
|
print("===== [5] Edit Category =====")
|
|
|
|
category_edit_url = category_edit_url_format.format(category_token)
|
|
|
|
cookies = { 'session': session_cookie }
|
|
|
|
payload = {
|
|
'name': 'Edited Name',
|
|
'dropdown_name': 'Edited Dropdown Name',
|
|
'can_directly_have_models': True,
|
|
'can_have_subcategories': True,
|
|
'can_only_mods_apply': False,
|
|
'is_mod_approved': True,
|
|
'maybe_mod_comments': 'mod comment',
|
|
}
|
|
|
|
r = requests.post(category_edit_url, cookies=cookies, json=payload)
|
|
|
|
print('Status: {}'.format(r.status_code))
|
|
print(r.content)
|
|
|
|
|
|
print("===== [6] List TTS Models =====")
|
|
|
|
r = requests.get(tts_model_list_url, cookies=cookies)
|
|
|
|
print('Status: {}'.format(r.status_code))
|
|
|
|
d = json.loads(r.content)
|
|
|
|
tts_model_token = d['models'][0]['model_token']
|
|
|
|
print('TTS model token: {}'.format(tts_model_token))
|
|
|
|
|
|
print("===== [7] Create Category Assignment to TTS Model =====")
|
|
|
|
payload = {
|
|
'category_token': category_token,
|
|
'tts_model_token': tts_model_token,
|
|
'assign': True,
|
|
}
|
|
|
|
r = requests.post(tts_category_assignment_url, cookies=cookies, json=payload)
|
|
|
|
print('Status: {}'.format(r.status_code))
|
|
print(r.content)
|
|
|
|
|
|
print("===== [8] Delete Category Assignment to TTS Model =====")
|
|
|
|
payload = {
|
|
'category_token': category_token,
|
|
'tts_model_token': tts_model_token,
|
|
'assign': False,
|
|
}
|
|
|
|
r = requests.post(tts_category_assignment_url, cookies=cookies, json=payload)
|
|
|
|
print('Status: {}'.format(r.status_code))
|
|
print(r.content)
|
|
|