Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pymongo
- import pprint
- from bson.objectid import ObjectId
- uri = "mongodb://dbadmin:654321@185.22.60.14/?authSource=blogerCounter&authMechanism=SCRAM-SHA-1"
- conn = pymongo.MongoClient(uri)
- db = conn.blogerCounter
- check = db.checks
- import datetime
- import numpy as np
- from datetime import timedelta
- def get():
- p = 0
- p_o = 0
- ans = 0
- ans_o = 0
- numb_of_days = 7
- now = datetime.datetime.now()
- print("ищем последнюю запись")
- for ch in check.find().sort('checkTimestamp',-1).limit(1):
- now = ch["checkTimestamp"]
- p = ch["views"]
- print(now)
- print(ch)
- print("ищем запись час назад")
- for ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1))}}).sort('checkTimestamp',1).limit(1):
- p_0 = ch["views"]
- print(now - timedelta(hours = 1))
- print(ch)
- print("анализируем за последнюю неделю")
- for i in range(1, numb_of_days + 1):
- print(i, "days ago")
- for pred_ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(days = i))}}).sort('checkTimestamp',1).limit(1):
- ans = ans + pred_ch["views"]
- print(pred_ch)
- for pred_ch_o in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1) -timedelta(days = i))}}).sort('checkTimestamp',1).limit(1):
- ans_o = ans_o + pred_ch_o["views"]
- print(pred_ch_o)
- tex = "Change last week"
- #изменение за последний час с изменением за аналогичный час за последнюю неделю"
- if p - p_o == 0:
- change_week = "NULL CHANGE"
- else:
- change_week = -1*((((ans - ans_o) / numb_of_days) - (p - p_o)) / (p - p_o))
- ans = 0
- ans_o = 0
- numb_of_weeks = 4
- print("анализируем за последний месяц")
- for i in range(1, numb_of_weeks + 1):
- print(i, "weeks ago")
- for pred_ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(days = 7 * i))}}).sort('checkTimestamp',1).limit(1):
- ans = ans + pred_ch["views"]
- print(pred_ch)
- for pred_ch_o in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1) -timedelta(days = 7 * i))}}).sort('checkTimestamp',1).limit(1):
- ans_o = ans_o + pred_ch_o["views"]
- print(pred_ch_o)
- tex1 = "Change last month"
- #изменение за последний час с изменением в аналогичный час за аналогичные дни недели за последний месяц"
- if p - p_o == 0:
- change_month = "NULL CHANGE"
- else:
- change_month = (-1*((((ans - ans_o) / numb_of_days) - (p - p_o)) / (p - p_o)))
- return (tex, change_week, tex1, change_month)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement