From ce6416f5265c5d7b495cd2ce1b5017badf12cde1 Mon Sep 17 00:00:00 2001 From: Christian Boulanger <info@bibliograph.org> Date: Sun, 14 Jan 2024 22:52:02 +0100 Subject: [PATCH] Added Rocket.Chat API experiment --- german-law-journal-network/.gitignore | 2 +- rocket-chat-api/.env.dist | 2 + rocket-chat-api/.gitignore | 3 + rocket-chat-api/rocket-chat-api.ipynb | 110 ++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 rocket-chat-api/.env.dist create mode 100644 rocket-chat-api/.gitignore create mode 100644 rocket-chat-api/rocket-chat-api.ipynb diff --git a/german-law-journal-network/.gitignore b/german-law-journal-network/.gitignore index a1e6db2..1494b43 100644 --- a/german-law-journal-network/.gitignore +++ b/german-law-journal-network/.gitignore @@ -1,3 +1,3 @@ -../.idea +.* !.gitignore !.env.dist \ No newline at end of file diff --git a/rocket-chat-api/.env.dist b/rocket-chat-api/.env.dist new file mode 100644 index 0000000..7ee42ea --- /dev/null +++ b/rocket-chat-api/.env.dist @@ -0,0 +1,2 @@ +ROCKETCHAT_USER_ID='' +ROCKETCHAT_API_KEY='' \ No newline at end of file diff --git a/rocket-chat-api/.gitignore b/rocket-chat-api/.gitignore new file mode 100644 index 0000000..1494b43 --- /dev/null +++ b/rocket-chat-api/.gitignore @@ -0,0 +1,3 @@ +.* +!.gitignore +!.env.dist \ No newline at end of file diff --git a/rocket-chat-api/rocket-chat-api.ipynb b/rocket-chat-api/rocket-chat-api.ipynb new file mode 100644 index 0000000..271243a --- /dev/null +++ b/rocket-chat-api/rocket-chat-api.ipynb @@ -0,0 +1,110 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 27, + "id": "initial_id", + "metadata": { + "collapsed": true, + "ExecuteTime": { + "end_time": "2024-01-14T21:49:59.779267900Z", + "start_time": "2024-01-14T21:49:59.447386400Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": "[('Note-to-self', '6123583208648d50d46136e7', 'Grib6LkDEh8BjXm5A'),\n ('SLT-Team', '621f3257dda518ec820fec0f', 'DLX2YQYzmwSefCFSs'),\n ('Arbeitsaufträge-SHK-Abt-3',\n '6231a585396730692a6254af',\n 'h2F4wES7ALisyjFeS'),\n ('Machine-Learning-Team', '6243f60f3bb97e25a63651be', 'sibAdkwHQzqJChxH9'),\n ('mpilhlt-DH', '6246b44404cc8d8ba31517c2', 'yT4DM9pje2Cbnz7w3'),\n ('reference-extraction-workshops-2023',\n '636a209aa7ef138927c64671',\n 'CXECckP3iJcT7Wzvm'),\n ('Literaturverwaltung', '642ab2edd4f482c368a7e364', 'ALzasJ7iwLpNzE34B'),\n ('Arbeitsgruppe-Gleichstellungsbericht',\n '6492f49d7821ad51fcbbef97',\n '6492f49e7821ad51fcbbef99'),\n ('mpilhlt-Auer-Doctoral-Students-plus-Coordinator',\n '64b50afdf6d0cde3515015c3',\n '64b50afdf6d0cde3515015c5'),\n ('DH-Projekte-Abt-Auer',\n '655cd77374c1eb212615898e',\n '655cd77374c1eb2126158990')]" + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import requests\n", + "import os\n", + "from dotenv import load_dotenv\n", + "from json import JSONDecodeError\n", + "\n", + "load_dotenv()\n", + "\n", + "def call_rocket_chat_api(command, **params):\n", + " url = f'https://chat.gwdg.de/api/v1/{command}'\n", + " headers = {\n", + " 'X-Auth-Token': os.getenv('ROCKETCHAT_API_KEY'),\n", + " 'X-User-Id': os.getenv('ROCKETCHAT_USER_ID')\n", + " }\n", + " response = requests.get(url, headers=headers, params=params)\n", + " response.raise_for_status()\n", + " try:\n", + " return response.json()\n", + " except JSONDecodeError:\n", + " raise RuntimeError(f'Cannot parse response from {response.url}.')\n", + "\n", + "teams = call_rocket_chat_api(\"teams.list\").get('teams')\n", + "[(t.get('name'), t.get('_id'), t.get('roomId')) for t in teams]\n" + ] + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false + }, + "id": "894f002bf39fcb04" + }, + { + "cell_type": "code", + "execution_count": 29, + "outputs": [ + { + "ename": "HTTPError", + "evalue": "400 Client Error: Bad Request for url: https://chat.gwdg.de/api/v1/channels.history?roomId=6243f60f3bb97e25a63651be", + "output_type": "error", + "traceback": [ + "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[1;31mHTTPError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[1;32mIn[29], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m msgs \u001B[38;5;241m=\u001B[39m \u001B[43mcall_rocket_chat_api\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mchannels.history\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mroomId\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43m6243f60f3bb97e25a63651be\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[38;5;241m.\u001B[39mget(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mmessages\u001B[39m\u001B[38;5;124m'\u001B[39m)\n", + "Cell \u001B[1;32mIn[27], line 15\u001B[0m, in \u001B[0;36mcall_rocket_chat_api\u001B[1;34m(command, **params)\u001B[0m\n\u001B[0;32m 10\u001B[0m headers \u001B[38;5;241m=\u001B[39m {\n\u001B[0;32m 11\u001B[0m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mX-Auth-Token\u001B[39m\u001B[38;5;124m'\u001B[39m: os\u001B[38;5;241m.\u001B[39mgetenv(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mROCKETCHAT_API_KEY\u001B[39m\u001B[38;5;124m'\u001B[39m),\n\u001B[0;32m 12\u001B[0m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mX-User-Id\u001B[39m\u001B[38;5;124m'\u001B[39m: os\u001B[38;5;241m.\u001B[39mgetenv(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mROCKETCHAT_USER_ID\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[0;32m 13\u001B[0m }\n\u001B[0;32m 14\u001B[0m response \u001B[38;5;241m=\u001B[39m requests\u001B[38;5;241m.\u001B[39mget(url, headers\u001B[38;5;241m=\u001B[39mheaders, params\u001B[38;5;241m=\u001B[39mparams)\n\u001B[1;32m---> 15\u001B[0m \u001B[43mresponse\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mraise_for_status\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 16\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m 17\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m response\u001B[38;5;241m.\u001B[39mjson()\n", + "File \u001B[1;32m~\\anaconda3\\lib\\site-packages\\requests\\models.py:1021\u001B[0m, in \u001B[0;36mResponse.raise_for_status\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 1016\u001B[0m http_error_msg \u001B[38;5;241m=\u001B[39m (\n\u001B[0;32m 1017\u001B[0m \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;132;01m{\u001B[39;00m\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mstatus_code\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m Server Error: \u001B[39m\u001B[38;5;132;01m{\u001B[39;00mreason\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m for url: \u001B[39m\u001B[38;5;132;01m{\u001B[39;00m\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39murl\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m\"\u001B[39m\n\u001B[0;32m 1018\u001B[0m )\n\u001B[0;32m 1020\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m http_error_msg:\n\u001B[1;32m-> 1021\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m HTTPError(http_error_msg, response\u001B[38;5;241m=\u001B[39m\u001B[38;5;28mself\u001B[39m)\n", + "\u001B[1;31mHTTPError\u001B[0m: 400 Client Error: Bad Request for url: https://chat.gwdg.de/api/v1/channels.history?roomId=6243f60f3bb97e25a63651be" + ] + } + ], + "source": [ + "\n", + "msgs = call_rocket_chat_api('channels.history', roomId='sibAdkwHQzqJChxH9').get('messages')" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-01-14T21:51:18.225934200Z", + "start_time": "2024-01-14T21:51:17.994275Z" + } + }, + "id": "709f6d8c845a0056" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} -- GitLab