Advertisement
Guest User

Untitled

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