Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask
- from flask_restful import Api, Resource, reqparse
- app = Flask(__name__)
- api = Api(app)
- 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
- class bd_three(Resource):
- def bdd():
- p = 0
- p_o = 0
- ans = 0
- ans_o = 0
- numb_of_days = 7
- now = datetime.datetime.now()
- #ищем последнюю запись
- for ch in check.find().sort('checkTimestamp',-1).limit(1):
- now = ch["checkTimestamp"]
- p = ch["views"]
- #ищем запись час назад
- for ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1))}}).limit(1):
- p_0 = ch["views"]
- #анализируем за последнюю неделю
- for i in range(1, numb_of_days + 1):
- for pred_ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(days = i))}}).limit(1):
- ans = ans + pred_ch["views"]
- for pred_ch_o in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1) -timedelta(days = i))}}).limit(1):
- ans_o = ans_o + pred_ch_o["views"]
- print ("изменение за последний час с изменением за аналогичный час за последнюю неделю")
- if p - p_o == 0:
- print ("Изменения не было")
- else:
- print (abs((((ans - ans_o) / numb_of_days) - (p - p_o)) / (p - p_o)))
- ans = 0
- ans_o = 0
- numb_of_weeks = 4
- #анализируем за последний месяц
- for i in range(1, numb_of_weeks + 1):
- for pred_ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(days = 7 * i))}}).limit(1):
- ans = ans + pred_ch["views"]
- for pred_ch_o in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1) -timedelta(days = 7 * i))}}).limit(1):
- ans_o = ans_o + pred_ch_o["views"]
- print("изменение за последний час с изменением в аналогичный час за аналогичные дни недели за последний месяц")
- if p - p_o == 0:
- print("Изменения не было")
- else:
- print(abs((((ans - ans_o) / numb_of_days) - (p - p_o)) / (p - p_o)))
- return
- api.add_resource(bd_three, "/bd_change")
- if __name__ == '__main__':
- app.run(debug=True, host = '0.0.0.0')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement