In meinem Projekt poste ich anstelle eines täglichen Berichts YWT (was ich getan habe, was ich gelernt habe, was ich als nächstes tue) als Retrospektive bei Mattermost und teile es unter den Mitgliedern. Es ist mehr als ein halbes Jahr her, seit ich angefangen habe, tägliche Berichte zu schreiben, und ich wollte meine eigenen Beiträge zusammenstellen, also habe ich versucht, Dateien mit der Mattermost-API auszugeben.
Betriebsüberprüfungsumgebung | Ausführung |
---|---|
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 verwendet das zuletzt erstellte (https://qiita.com/shimi58/items/0e9b81f2eac8993be71b).
Ich bin in [GitHub] registriert (https://github.com/shimi58/mattermostApiPostSearch).
Mit PowerShell oder Eingabeaufforderung ausführen
```cmd
pip install mattermostdriver
```
Öffnen Sie die Datei config.ini und geben Sie das Verbindungsziel, die Anmeldeinformationen und die Suchbedingungen an.
[CONNECTION]
#Geben Sie die URL von Mattermost an
scheme = http
url = localhost
port = 9081
#Geben Sie den Benutzer an, der sich mit der API anmelden soll
login_id = test
password = Password1!
[SEARCH]
#Geben Sie den zu durchsuchenden Teamnamen an
team_name = sample
#Geben Sie die Suchbedingungen an
tearms = #XXXXXXX
[OUTPUT]
path = ./mattermostPost.txt
Führen Sie mattermost.py aus
python mattermost.py
Es ist ein Saucenmantel.
from mattermostdriver import Driver
import configparser
#Definition lesen
config_ini = configparser.ConfigParser()
config_ini.read('config.ini', encoding='utf-8')
#Wichtigste Anmeldung
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()
#Holen Sie sich die Team-ID vom Teamnamen
teamId = connection.api['teams'].get_team_by_name(config_ini['SEARCH']['team_name'])['id']
#Erhalten Sie Beiträge, die Ihren Suchkriterien entsprechen
postMessage = connection.api['posts'].search_for_team_posts(teamId,options={
'terms': config_ini['SEARCH']['tearms']
})
#Datei öffnen
with open(config_ini['OUTPUT']['path'], 'w') as f:
#Suchergebnisse ausgeben
for post in postMessage['posts'].values():
print(post['message'], file=f)
#Trennzeichen
print('====================', file=f)
Die Mattermost-API verfügt über zahlreiche APIs, die verwendet werden können, und die Dokumentation ist umfangreich, sodass ich sie ohne Verstopfung erstellen kann. Da die Suche nach Mattermost selbst nicht gut ist, habe ich mich gefragt, ob es einfacher zu bedienen wäre, wenn der später extrahierte Beitrag zu einer Regel mit einem Hash-Tag gemacht würde. Nächstes Mal möchte ich einen Bot machen.
Recommended Posts