botijo teams guardias llamadas
parent
618889bc1f
commit
cd270b75f8
@ -0,0 +1,116 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
#59 23 * * * export https_proxy="http://172.xx.xxx.xxx:3128" && /usr/bin/python3.11 /home/bots/botijo_guardias/botijo_guardias.py -run
|
||||||
|
|
||||||
|
import ssl
|
||||||
|
import urllib.request
|
||||||
|
import pymsteams
|
||||||
|
import pandas as pd
|
||||||
|
import datetime
|
||||||
|
import time
|
||||||
|
import statistics
|
||||||
|
import sys
|
||||||
|
import re
|
||||||
|
import csv
|
||||||
|
from itertools import groupby
|
||||||
|
|
||||||
|
ssl._create_default_https_context = ssl._create_unverified_context
|
||||||
|
outputFormat="csv"
|
||||||
|
protocol="https"
|
||||||
|
domain="docs.google.com"
|
||||||
|
idSpreadsheet="xxxxdkBDwOWjYWw3xxxxxxxxxxxjltULrM-94lWxxxxxK8"
|
||||||
|
url=protocol+"://"+domain+"/a/google.com/spreadsheets/d/"+idSpreadsheet+"/gviz/tq?tq=select%20*&tqx=out:"+outputFormat
|
||||||
|
outputFileName="guardias."+outputFormat
|
||||||
|
pd.options.display.max_rows = 9999
|
||||||
|
teamsWebhook="https://gfi1.webhook.office.com/webhookb2/730e3sdafasdfadsfasdfasdfsa/IncomingWebhook/8b63esadfdsafasdadsfads50260513/910d3a2a-2a00-4332-ad4d-7f781aasdfsdaf6a9"
|
||||||
|
|
||||||
|
def main():
|
||||||
|
my = mediaLlamadasGuardiaActualYear()
|
||||||
|
mp = mediaLlamadasGuardiaPastYear()
|
||||||
|
mt = mediaLlamadasGuardiaTotales()
|
||||||
|
llamadasHoy = comprobarLlamadasDiaActual()
|
||||||
|
time.sleep(62)
|
||||||
|
if len(llamadasHoy) != 0:
|
||||||
|
enviarAlCanal("<b>Llamadas Ayer:</b> <br><br>"+llamadasHoy+"<br><b>Datos de llamadas semanales</b><br><br>☎ <b>Media Año Actual:</b> "+my+"<br>☎ <b>Media Año Pasado:</b> "+mp+"<br>☎ <b>Media de todos los Años:</b> "+mt)
|
||||||
|
|
||||||
|
def comprobarLlamadasDiaActual():
|
||||||
|
getGoogleSpreadsheet()
|
||||||
|
currentDateTime = datetime.datetime.now()
|
||||||
|
date = currentDateTime.date()
|
||||||
|
ActualDay = date.strftime("%d/%m/%Y")
|
||||||
|
result = pd.read_csv(outputFileName, usecols=[1,2,3,4,5,6], header=None, index_col=False, skiprows=1)
|
||||||
|
result.to_csv(outputFileName)
|
||||||
|
llamadas= ""
|
||||||
|
with open(outputFileName, 'r') as infile:
|
||||||
|
reader = csv.reader(infile)
|
||||||
|
for row in reader:
|
||||||
|
if ActualDay in row[1]:
|
||||||
|
if row[2] != "3" and len(row[2]) != 0:
|
||||||
|
if len(row[1]) != 0:
|
||||||
|
llamada = "📅 "+row[1]+" a las "+row[2]+" "+row[4]+" llamó a "+row[3]+". Ticket: "+row[5]+" . Motivo: "+row[6]+"<br>"
|
||||||
|
llamadas = llamadas + llamada
|
||||||
|
return llamadas
|
||||||
|
|
||||||
|
def mediaLlamadasGuardiaActualYear():
|
||||||
|
getGoogleSpreadsheet()
|
||||||
|
currentDateTime = datetime.datetime.now()
|
||||||
|
date = currentDateTime.date()
|
||||||
|
ActualYear = date.strftime("%Y")
|
||||||
|
result = pd.read_csv(outputFileName, usecols=[1,3], header=None, index_col=False, skiprows=1)
|
||||||
|
result.to_csv(outputFileName)
|
||||||
|
list_=[]
|
||||||
|
with open(outputFileName, 'r') as infile:
|
||||||
|
reader = csv.reader(infile)
|
||||||
|
for row in reader:
|
||||||
|
if ActualYear in row[1]:
|
||||||
|
if row[2] != "3" and len(row[2]) != 0:
|
||||||
|
list_.append(row[2])
|
||||||
|
count_dups = [sum(1 for _ in group) for _, group in groupby(list_)]
|
||||||
|
meanActualYear = str(statistics.mean(count_dups))
|
||||||
|
return meanActualYear
|
||||||
|
|
||||||
|
def mediaLlamadasGuardiaPastYear():
|
||||||
|
getGoogleSpreadsheet()
|
||||||
|
currentDateTime = datetime.datetime.now()
|
||||||
|
date = currentDateTime.date()
|
||||||
|
ActualYear = date.strftime("%Y")
|
||||||
|
lastYear = int(ActualYear)-1
|
||||||
|
lastYear = str(lastYear)
|
||||||
|
result = pd.read_csv(outputFileName, usecols=[1,3], header=None, index_col=False, skiprows=1)
|
||||||
|
result.to_csv(outputFileName)
|
||||||
|
list_=[]
|
||||||
|
with open(outputFileName, 'r') as infile:
|
||||||
|
reader = csv.reader(infile)
|
||||||
|
for row in reader:
|
||||||
|
if lastYear in row[1]:
|
||||||
|
if row[2] != "3" and len(row[2]) != 0:
|
||||||
|
list_.append(row[2])
|
||||||
|
count_dups = [sum(1 for _ in group) for _, group in groupby(list_)]
|
||||||
|
meanActualYear = str(statistics.mean(count_dups))
|
||||||
|
return meanActualYear
|
||||||
|
|
||||||
|
def mediaLlamadasGuardiaTotales():
|
||||||
|
getGoogleSpreadsheet()
|
||||||
|
result = pd.read_csv(outputFileName, usecols=[1,3], header=None, index_col=False, skiprows=1)
|
||||||
|
result.to_csv(outputFileName)
|
||||||
|
list_=[]
|
||||||
|
with open(outputFileName, 'r') as infile:
|
||||||
|
reader = csv.reader(infile)
|
||||||
|
for row in reader:
|
||||||
|
if row[2] != "3" and len(row[2]) != 0:
|
||||||
|
list_.append(row[2])
|
||||||
|
count_dups = [sum(1 for _ in group) for _, group in groupby(list_)]
|
||||||
|
meanTotal = str(statistics.mean(count_dups))
|
||||||
|
return meanTotal
|
||||||
|
|
||||||
|
def enviarAlCanal(msg):
|
||||||
|
myTeamsMessage = pymsteams.connectorcard(teamsWebhook)
|
||||||
|
myTeamsMessage.text(msg)
|
||||||
|
myTeamsMessage.send()
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
|
def getGoogleSpreadsheet():
|
||||||
|
urllib.request.urlretrieve(url, outputFileName)
|
||||||
|
|
||||||
|
for arg in sys.argv:
|
||||||
|
if arg == "-run": main()
|
||||||
|
|
Loading…
Reference in New Issue