Adding scripts to work with bills, domain and retrieve consumer key

This commit is contained in:
Kirby 2020-03-12 17:35:43 +01:00
parent be6395f60d
commit 2904536840
5 changed files with 135 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
data/*
*.yml
*.conf

26
ovh-domain.py Executable file
View File

@ -0,0 +1,26 @@
#!/usr/bin/python3
import requests
import ovh
import pycurl
import argparse
try:
input = raw_input
except NameError:
pass
parser = argparse.ArgumentParser(description='Process arguments')
parser.add_argument('domain', metavar='method', type=str, help='Function to use')
parser.add_argument('--method', metavar='fr', type=str, help='domain to request from')
args = parser.parse_args()
# Instantiate. Visit https://api.ovh.com/createToken/?GET=/me
# to get your credentials
client = ovh.Client()
# Grab bill list
zone = client.get('/domain/zone/' + args.domain + '/record')
for id in zone:
entry = client.get('/domain/zone/' + args.domain + '/record/'+str(id))
print(entry)

35
ovh-factures.py Executable file
View File

@ -0,0 +1,35 @@
#!/usr/bin/python3
import requests
import ovh
import pycurl
import yaml
try:
input = raw_input
except NameError:
pass
conf = yaml.load(open('creds.yml'))
user = conf['nextcloud']['username']
password = conf['nextcloud']['password']
client = ovh.Client()
bills = client.get('/me/bill')
for bill in bills:
url="https://nextcloud.hyrule.ovh/nextcloud/remote.php/dav/files/seb/Documents/Factures/OVH/"
details = client.get('/me/bill/%s' % bill)
r = requests.get(details['pdfUrl'], stream=True)
file_path = "/tmp/" + bill + ".pdf"
with open(file_path, 'wb') as f:
f.write(r.content)
f.close()
url += bill + ".pdf"
file = open(file_path)
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.USERPWD, '%s:%s' %(username, password))
c.setopt(c.UPLOAD, 1)
c.setopt(c.READDATA, file)
c.perform()
c.close()
file.close()

18
ovh-getck.py Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/python3
import requests
import ovh
try:
input = raw_input
except NameError:
pass
client = ovh.Client()
ck = client.new_consumer_key_request()
ck.add_recursive_rules(ovh.API_READ_WRITE, "/")
validation = ck.request()
print("Please visit %s to authenticate" % validation['validationUrl'])
input("and press Enter to continue...")
print("Welcome", client.get('/me')['firstname'])
print("Btw, your 'consumerKey' is '%s'" % validation['consumerKey'])

53
ovh-mail.py Executable file
View File

@ -0,0 +1,53 @@
#!/usr/bin/python3
import requests
import ovh
import pycurl
import json
import argparse
def writeRedirectionsToFile(client):
# Grab bill list
mailbox = client.get('/email/domain/hyrule.ovh/redirection')
file = open(redir_file,'wt')
for id in mailbox:
redirection = client.get('/email/domain/hyrule.ovh/redirection/'+str(id))
file.write(redirection['from']+','+redirection['to']+','+redirection['id']+'\n')
file.close()
def checkRedirExists(client,fr,to):
mailbox = client.get('/email/domain/hyrule.ovh/redirection')
for id in mailbox:
redirection = client.get('/email/domain/hyrule.ovh/redirection/'+str(id))
if (redirection['from'] == fr and redirection['to'] == to):
print("Redirection existante")
return id
elif (redirection['from'] == fr and redirection ['to'] != to):
print("Redirection existante vers l'adresse " + redirection['to'])
return id
else:
return False
def addRedirection(client,fr,to):
result = client.post('/email/domain/hyrule.ovh/redirection',_from=fr,localCopy=False,to=to)
print(json.dumps(result,indent=4))
return 0
parser = argparse.ArgumentParser(description='Process arguments')
parser.add_argument('method', metavar='method', type=str, help='Function to use')
parser.add_argument('--fr', metavar='fr', type=str, help='from mail address')
parser.add_argument('--to', metavar='to', type=str, help='to mail address')
args = parser.parse_args()
redir_file = '/var/scripts/ovh_api/data/redirections.txt'
try:
input = raw_input
except NameError:
pass
client = ovh.Client()
if (args.method == "write"):
writeRedirectionsToFile(client)
elif (args.method == "add"):
if not (checkRedirExists(client,args.fr,args.to)):
addRedirection(client,args.fr,args.to)