Jurij Podgoršek a65612ffd3 | ||
---|---|---|
mobili_cli | ||
mobili_cli.egg-info | ||
primeri | ||
.gitignore | ||
LICENSE | ||
README.org | ||
requirements.txt | ||
setup.py |
README.org
Mobilizon importer
File importer into mobilizon graphql api.
Morganize
This doesn't really make a lot of sense. I'm working on a script to import events via mobilizon GraphQL api from yaml or json or whatever. Probably yaml.
Functionality
Login
Get events
Create event
-
options:
- update existing
- skip existing
From file
User input
Rss feed
Verificiraj ali dogodek ze obstaja
- za rss feed lahko uporabimo link
Structure
- python Click library for cli
- json
-
graphql-core https://github.com/graphql-python/graphql-core
developing in guix
Python requests
import requests import json endpoint='https://dogodki.kompot.si/api' body=''' query { events { elements { id, url, title, description, beginsOn, endsOn, status, picture { url }, physicalAddress { id, description, locality } } total } } ''' r = requests.post(endpoint, json={'query':body}, '') r = requests.post(endpoint, json={"query":body}, headers='') r.status_code print(json.dumps(r.json(), indent=2)) body body2=''' query { events { elements { id, url, title, description, beginsOn, endsOn, status, picture { url }, physicalAddress { id, description, locality } } } } ''' body2=''' query { groups { elements { id, name, domain, page } } } ''' r2 = requests.post(endpoint, json={"query":body2}, headers='') print(json.dumps(r2.json(), indent=2)) body2="query{grups{elements{id,name}}}" r2 = requests.post(endpoint, json={"query":body2}, headers='') r2.status_code print(json.dumps(r2.json(), indent=2)) b2 body2 body2="query{\ngrups{\nelements{\nid,\nname\n}\n}\n}" r2 = requests.post(endpoint, json={"query":body2}, headers='') r2.status_code r2 = requests.post(endpoint, json={"query":body2}, headers='') print(json.dumps(r2.json(), indent=2)) bl=''' mutation Login($email: String!, $password: String!) { login(email: $email, password: $password) { accessToken refreshToken user { id email role } } } ''' varsl= {'email': 'lio@kompot.si', 'password': '<geslo>'} r3=requests.post(endpoint, json={"query": bl, 'variables': varsl}, headers='') r3.status_code print(json.dumps(r3json(), indent=2)) print(json.dumps(r3.json(), indent=2)) r3.json() r3.json().data r3.json().get('data') r3.json().get('data').get.('login') r3.json().get('data').get('login') r3.json().get('data').get('login').get('login') r3.json().get('data').get('login').get('accessToken') r3.json().get('data.login') j=r3.json() data=json.loads(j) j data=json.loads(j) print j['data']['login']['accessToken'] j j['data'] j['data']['login'] j['data']['login']['accessToken'] at=j['data']['login']['accessToken'] head={"Authorization": f"Bearer {at}"} r2 = requests.post(endpoint, json={"query":body2}, headers='') print(json.dumps(r2.json(), indent=2)) bg="query{groups{elements{id,name}\ntotal}}" r2 = requests.post(endpoint, json={"query":body2}, headers='') print(json.dumps(r2.json(), indent=2)) bg="query {\ngroups {\nelements {\nid,\nname}\ntotal\n}\n}" bg r2 = requests.post(endpoint, json={"query":bg}, headers=head) r2.status_code print(json.dumps(r2.json(), indent=2))