corrección de errores + documentación
This commit is contained in:
@@ -1,10 +1,13 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
#
|
#
|
||||||
# Automarcaje
|
# Automarcaje para timenet.gpisoftware.com
|
||||||
|
# Uso: autoficher.py <user> <pin> <type>
|
||||||
|
# Type: 0 marcar, 1 desmarcar
|
||||||
#
|
#
|
||||||
# Creado: Omar Sánchez 04-05-2019
|
# Creado: Omar Sánchez 04-05-2019
|
||||||
|
|
||||||
|
# Importamos librerias
|
||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
import sys
|
import sys
|
||||||
@@ -13,37 +16,49 @@ from datetime import timedelta
|
|||||||
import requests
|
import requests
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
|
|
||||||
|
# Comprobamos que todos los argumentos estan introducidos
|
||||||
if len(sys.argv) <= 2:
|
if len(sys.argv) == 1:
|
||||||
print("No has escrito el pin ni tipo de marcaje")
|
print("Usuario no introducido")
|
||||||
|
sys.exit(1)
|
||||||
|
if len(sys.argv) == 2:
|
||||||
|
print("Pin no introducido")
|
||||||
|
sys.exit(1)
|
||||||
|
if len(sys.argv) == 3:
|
||||||
|
print("Tipo de marcaje no introducido")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Definimos las variables de tiempo y argumentos
|
||||||
date = datetime.now().strftime("%d/%m/%Y+%H:%M:%S")
|
date = datetime.now().strftime("%d/%m/%Y+%H:%M:%S")
|
||||||
calendar = (datetime.now() + timedelta(days=3)).strftime("%d/%m/%Y")
|
#calendar = (datetime.now() + timedelta(days=3)).strftime("%d/%m/%Y")
|
||||||
#calendar = datetime.now().strftime("%d/%m/%Y")
|
calendar = datetime.now().strftime("%d/%m/%Y")
|
||||||
pin = sys.argv[1]
|
user = sys.argv[1]
|
||||||
typ = sys.argv[2]
|
pin = sys.argv[2]
|
||||||
|
typ = sys.argv[3]
|
||||||
|
|
||||||
|
# URL de la api
|
||||||
url = "https://timenet.gpisoftware.com/api/v1/cp/"
|
url = "https://timenet.gpisoftware.com/api/v1/cp/"
|
||||||
user = "4d805364-70d7-4608-bf2f-7bf7b3d32c04"
|
|
||||||
|
|
||||||
# Iniciamos Sesión
|
# Iniciamos Sesión y obtenemos el token
|
||||||
headers = {'user': user, 'pass': pin}
|
headers = {'user': user, 'pass': pin}
|
||||||
response = requests.get(url+'login', headers=headers)
|
response = requests.get(url+'login', headers=headers)
|
||||||
token = response.text.replace('"','')
|
token = response.text.replace('"','')
|
||||||
|
|
||||||
# Obtenemos horas de marcaje
|
# Revisamos el dia en el calendario y comprobamos si es festivo o no
|
||||||
headers = {'token': token}
|
headers = {'token': token}
|
||||||
response = requests.get(url+"calendar?start="+calendar+"&end="+calendar, headers=headers)
|
response = requests.get(url+"calendar?start="+calendar+"&end="+calendar, headers=headers)
|
||||||
calendar = json.loads(response.text)
|
dayType = json.loads(response.text)["DayTypes"][0]["dayMode"]
|
||||||
|
|
||||||
if calendar["DayTypes"][0]["dayMode"] != "NO_WORK":
|
# Si no es festivo..
|
||||||
|
if dayType != "NO_WORK":
|
||||||
|
# Hacemos la llamada a la api para marcar o desmarcar
|
||||||
print("Dia de curro")
|
print("Dia de curro")
|
||||||
headers = {"Content-type": "application/x-www-form-urlencoded", "token": token}
|
headers = {"Content-type": "application/x-www-form-urlencoded", "token": token}
|
||||||
data = {"typ": typ, "date": urllib.parse.quote(date), "geoLatitude": "41.3908992", "geoLongitude": "2.154496", "geoErrors": ""}
|
data = {"typ": typ, "date": urllib.parse.quote(date), "geoLatitude": "41.3908992", "geoLongitude": "2.154496", "geoErrors": ""}
|
||||||
print(data)
|
|
||||||
sys.exit(1)
|
response = requests.post(url+"checks", data=json.dumps(data), headers=headers)
|
||||||
response = requests.post(url+"checks", data)
|
if response.status_code != 200:
|
||||||
print(response.text)
|
print("Error "+str(response.status_code)+" al realizar el envio: "+ response.text)
|
||||||
|
else:
|
||||||
|
print(response.text)
|
||||||
else:
|
else:
|
||||||
print("Hoy no se trabaja")
|
print("Hoy no se trabaja")
|
||||||
Reference in New Issue
Block a user