You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

66 lines
1.7 KiB

from datetime import datetime
from getpass import getpass
from time import sleep
from arango import ArangoClient
def now():
"""Returns current date and time as string"""
return datetime.now().strftime("%Y-%m-%d_%H:%M:%S")
def write_stats(db, continuous=False):
while True:
d = {}
for col in db.collections():
if not col["system"]:
d[col["name"]] = db.collection(col["name"]).count()
del d["stats"]
# d['time'] = now()
cursor = db.aql.execute(
"""
FOR doc IN members
FILTER doc.checked == true
COLLECT WITH COUNT INTO length
RETURN length
"""
)
d["checked_members"] = cursor.next()
# Hur många konton per säljare som finns kvar
cursor = db.aql.execute(
"""
for doc in profiles_webshare
filter has(doc, "vendor")
COLLECT vendor = doc.vendor WITH COUNT INTO length
RETURN {
"vendor" : vendor,
"active" : length
}
"""
)
d["active_vendors"] = [doc for doc in cursor]
d["_key"] = now()[:13]
db.insert_document("stats", d, overwrite=True)
# Sov för att fortsätta senare
if continuous:
print(now())
sleep(86400)
else:
break
# Info för arangodb
user_arango = "Stats"
db_arango = "facebook"
host_arango = "http://192.168.1.10:8529"
# Starta koppling till arangodb
# Avkryptera lösen till arango
pwd = getpass(f"Arangolösenord för {user_arango}:").strip()
db = ArangoClient(hosts=host_arango).db(db_arango, username=user_arango, password=pwd)
write_stats(db, continuous=True)