68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
# coding: utf8
|
|
|
|
# toutes les chaines sont en unicode (même les docstrings)
|
|
from __future__ import unicode_literals
|
|
|
|
from pprint import pprint
|
|
from rocketchat_API.rocketchat import RocketChat
|
|
import json
|
|
import dev_config as cfg
|
|
import os
|
|
import random
|
|
from datetime import datetime
|
|
from monthdelta import monthdelta
|
|
|
|
def getColor():
|
|
r = random.randrange(255)
|
|
g = random.randrange(255)
|
|
b = random.randrange(255)
|
|
return 'rgb({:0},{:0},{:0})'.format(r,g,b)
|
|
|
|
rocket = RocketChat(cfg.rocket['user'], cfg.rocket['password'],
|
|
server_url='https://coa.crapaud-fou.org')
|
|
index = 0
|
|
messagesByChannel = []
|
|
|
|
now = datetime.now()
|
|
date = datetime(now.year, now.month, now.day, 0,0,0)
|
|
|
|
while True:
|
|
channels = rocket.channels_list(offset=index).json()
|
|
totalChannels = channels['total']
|
|
|
|
for channel in channels['channels']:
|
|
data = []
|
|
pprint( channel['name'] )
|
|
begin = date - monthdelta(12)
|
|
end = begin + monthdelta(1)
|
|
for id in range(0, 12):
|
|
begindate = begin.isoformat()
|
|
enddate = end.isoformat()
|
|
resultMess = rocket.channels_history(channel['_id'], oldest= begindate, latest=enddate, count= 10000).json()
|
|
data.append(len(resultMess['messages']))
|
|
begin = end
|
|
end = begin + monthdelta(1)
|
|
|
|
messageByChannel = {
|
|
"label": channel['name'],
|
|
"backgroundColor": getColor(),
|
|
"data": data
|
|
}
|
|
|
|
messagesByChannel.append(messageByChannel)
|
|
|
|
if channels['count'] + channels['offset'] >= channels['total']:
|
|
break
|
|
index += channels['count']
|
|
|
|
# Récupération du répertoire racine du repo
|
|
rootFolder = os.path.join(os.path.dirname(__file__), '..')
|
|
# Répertoire pour stocker le fichier de sortie
|
|
dataFolder = os.path.join(rootFolder, 'public', 'data')
|
|
|
|
statsFilePath = os.path.abspath(
|
|
os.path.join(dataFolder, 'messagesByChannel.json'))
|
|
with open(statsFilePath, "w") as file_write:
|
|
json.dump(messagesByChannel, file_write)
|
|
|