Dans mon projet, au lieu d'un rapport quotidien, je poste YWT (ce que j'ai fait, ce que j'ai appris, ce que je fais ensuite) sur Mattermost comme une rétrospective et je le partage entre les membres. Cela fait plus de six mois que j'ai commencé à rédiger des rapports quotidiens, et je voulais créer mes propres articles, j'ai donc essayé de générer des fichiers en utilisant l'API Mattermost.
Environnement de vérification de fonctionnement | version |
---|---|
Windows10 Home Edition | Version 2004 |
Docker for Windows | 2.4.0.0 |
GitLab | 13.4.3 |
GitLab Mattermost | 5.26.2 |
Python | 3.8 |
MattermostDriver | 6.3 |
GitLab Mattermost utilise celui construit la dernière fois (https://qiita.com/shimi58/items/0e9b81f2eac8993be71b).
Je suis inscrit sur GitHub.
Exécuter avec powerShell ou invite de commande
```cmd
pip install mattermostdriver
```
Ouvrez config.ini et spécifiez la destination de la connexion, les informations de connexion et les conditions de recherche.
[CONNECTION]
#Spécifiez l'URL de Mattermost
scheme = http
url = localhost
port = 9081
#Spécifiez l'utilisateur pour se connecter avec l'API
login_id = test
password = Password1!
[SEARCH]
#Spécifiez le nom de l'équipe à rechercher
team_name = sample
#Spécifiez les conditions de recherche
tearms = #XXXXXXX
[OUTPUT]
path = ./mattermostPost.txt
Exécutez matièremost.py
python mattermost.py
C'est un manteau de sauce.
from mattermostdriver import Driver
import configparser
#Lire la définition
config_ini = configparser.ConfigParser()
config_ini.read('config.ini', encoding='utf-8')
#Connexion la plus importante
connection = Driver({
'url': config_ini['CONNECTION']['url'],
'login_id': config_ini['CONNECTION']['login_id'],
'password': config_ini['CONNECTION']['password'],
'scheme': config_ini['CONNECTION']['scheme'],
'basepath': '/api/v4',
'verify': True,
'port': int(config_ini['CONNECTION']['port']),
})
connection.login()
#Obtenir l'ID d'équipe à partir du nom de l'équipe
teamId = connection.api['teams'].get_team_by_name(config_ini['SEARCH']['team_name'])['id']
#Obtenez des articles qui correspondent à vos critères de recherche
postMessage = connection.api['posts'].search_for_team_posts(teamId,options={
'terms': config_ini['SEARCH']['tearms']
})
#Fichier ouvert
with open(config_ini['OUTPUT']['path'], 'w') as f:
#Résultats de la recherche de sortie
for post in postMessage['posts'].values():
print(post['message'], file=f)
#Délimiteur
print('====================', file=f)
L'API Mattermost a d'abondantes API qui peuvent être utilisées, et la documentation est épaisse, donc je pourrais le faire sans aucun blocage. Étant donné que la recherche de Mattermost lui-même n'est pas bonne, je me suis demandé s'il serait plus facile à utiliser si le post extrait plus tard était transformé en une règle avec une balise de hachage. La prochaine fois, j'aimerais créer un Bot.
Recommended Posts