Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. from flask import Flask
  2. from flask_restful import Api, Resource, reqparse
  3.  
  4. app = Flask(__name__)
  5. api = Api(app)
  6.  
  7. import pymongo
  8. import pprint
  9. from bson.objectid import ObjectId
  10.  
  11. uri = "mongodb://dbadmin:654321@185.22.60.14/?authSource=blogerCounter&authMechanism=SCRAM-SHA-1"
  12. conn = pymongo.MongoClient(uri)
  13. db = conn.blogerCounter
  14. check = db.checks
  15.  
  16. import datetime
  17. import numpy as np
  18. from datetime import timedelta
  19.  
  20. class bd_three(Resource):
  21. def bdd():
  22. p = 0
  23. p_o = 0
  24. ans = 0
  25. ans_o = 0
  26. numb_of_days = 7
  27. now = datetime.datetime.now()
  28.  
  29. #ищем последнюю запись
  30. for ch in check.find().sort('checkTimestamp',-1).limit(1):
  31. now = ch["checkTimestamp"]
  32. p = ch["views"]
  33.  
  34. #ищем запись час назад
  35. for ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1))}}).limit(1):
  36. p_0 = ch["views"]
  37.  
  38. #анализируем за последнюю неделю
  39. for i in range(1, numb_of_days + 1):
  40. for pred_ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(days = i))}}).limit(1):
  41. ans = ans + pred_ch["views"]
  42. for pred_ch_o in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1) -timedelta(days = i))}}).limit(1):
  43. ans_o = ans_o + pred_ch_o["views"]
  44.  
  45. print ("изменение за последний час с изменением за аналогичный час за последнюю неделю")
  46. if p - p_o == 0:
  47. print ("Изменения не было")
  48. else:
  49. print (abs((((ans - ans_o) / numb_of_days) - (p - p_o)) / (p - p_o)))
  50.  
  51. ans = 0
  52. ans_o = 0
  53. numb_of_weeks = 4
  54.  
  55. #анализируем за последний месяц
  56.  
  57. for i in range(1, numb_of_weeks + 1):
  58. for pred_ch in check.find({ "checkTimestamp": {'$gt': (now - timedelta(days = 7 * i))}}).limit(1):
  59. ans = ans + pred_ch["views"]
  60. for pred_ch_o in check.find({ "checkTimestamp": {'$gt': (now - timedelta(hours = 1) -timedelta(days = 7 * i))}}).limit(1):
  61. ans_o = ans_o + pred_ch_o["views"]
  62.  
  63. print("изменение за последний час с изменением в аналогичный час за аналогичные дни недели за последний месяц")
  64. if p - p_o == 0:
  65. print("Изменения не было")
  66. else:
  67. print(abs((((ans - ans_o) / numb_of_days) - (p - p_o)) / (p - p_o)))
  68. return
  69.  
  70. api.add_resource(bd_three, "/bd_change")
  71.  
  72. if __name__ == '__main__':
  73. app.run(debug=True, host = '0.0.0.0')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement