diff --git a/src/mattermost.py b/src/mattermost_client.py
similarity index 100%
rename from src/mattermost.py
rename to src/mattermost_client.py
diff --git a/src/mattermost_communication.py b/src/mattermost_communication.py
new file mode 100644
index 0000000..c939e1b
--- /dev/null
+++ b/src/mattermost_communication.py
@@ -0,0 +1,53 @@
+import mattermostdriver.exceptions
+
+from mattermost_client import ChannelApi, MMApi
+
+
+def send_message(file_id, file_info, message):
+ channel_id = file_info["originating_mm_post_channel_id"]
+ post_id = file_info["originating_mm_post_id"]
+
+ # TODO Comment below line, this is for testing purposes
+ # channel_id = MMApi().get_channel_id("bestuur-dev")
+ channel = ChannelApi(
+ channel_id=channel_id,
+ user=mattermost.users["flynn"],
+ )
+
+ prefix = ""
+ # This is bestuur-INTERN where you can only post when you prefix you message with a '!'
+ if file_info["originating_mm_post_channel_id"] == "hrx6pgfswjbttcj8nim3jrwe7w":
+ prefix = "! "
+
+ try:
+ channel.create_threaded_post(
+ post_id,
+ f"{prefix}{message}",
+ )
+ except mattermostdriver.exceptions.InvalidOrMissingParameters as e:
+ # This will occur when we try to react to a file in a channel that is not the same as the originating channel.
+ unique_post_url = f"https://mattermost.zeus.gent/zeus/pl/{post_id}"
+ channel.create_post(
+ f"{unique_post_url}\n\n{message}",
+ )
+
+
+def report_newly_found_file(file_id, file_info):
+ message = f"I found a new CodiMD file in this post! Making work of putting it on gitlab :)\n - Requested location in the [drive](https://git.zeus.gent/bestuur/drive): {file_info['metadata']['sync-to']}"
+ send_message(file_id, file_info, message)
+
+
+def report_newly_found_but_invalid_file(file_id, file_info):
+ message = """Hi there! :wave:
+I'm your friendly neighbourhood document sync bot.
+I could synchronize this CodiMD file automatically to our Gitlab DRIVE for safekeeping, but the necessary metadata block is not present.
+You can easily add the correct info and I will do the rest of the work for you!
+
+Just add the following lines to your file, the location in your file is not important but at the top would be my recommendation.
+
+```
+:::spoiler Gitlab sync
+- sync-to:
+:::
+```"""
+ send_message(file_id, file_info, message)
diff --git a/src/web.py b/src/web.py
index 7810dfc..d6b53a6 100644
--- a/src/web.py
+++ b/src/web.py
@@ -5,18 +5,17 @@ import time
from pprint import pprint
import hug
-import mattermostdriver.exceptions
import requests
import db
import dir_utils
-import mattermost
-from mattermost import ChannelApi, MMApi
+import mattermost_client
+import mattermost_communication
from utils import id_to_url, url_to_id
def find_codimd_files_on_mattermost():
- mattermost = MMApi()
+ mattermost = mattermost_client.MMApi()
channels = [
"hrx6pgfswjbttcj8nim3jrwe7w", # bestuur-INTERN
"uda7ax9poprduq8ob56e1fqk4e", # bestuur
@@ -70,56 +69,6 @@ def download_files():
db.set_local_file_path(file_id, local_file_path)
-def send_message(file_id, file_info, message):
- channel_id = file_info["originating_mm_post_channel_id"]
- post_id = file_info["originating_mm_post_id"]
-
- # TODO Comment below line, this is for testing purposes
- # channel_id = MMApi().get_channel_id("bestuur-dev")
- channel = ChannelApi(
- channel_id=channel_id,
- user=mattermost.users["flynn"],
- )
-
- prefix = ""
- # This is bestuur-INTERN where you can only post when you prefix you message with a '!'
- if file_info["originating_mm_post_channel_id"] == "hrx6pgfswjbttcj8nim3jrwe7w":
- prefix = "! "
-
- try:
- channel.create_threaded_post(
- post_id,
- f"{prefix}{message}",
- )
- except mattermostdriver.exceptions.InvalidOrMissingParameters as e:
- # This will occur when we try to react to a file in a channel that is not the same as the originating channel.
- unique_post_url = f"https://mattermost.zeus.gent/zeus/pl/{post_id}"
- channel.create_post(
- f"{unique_post_url}\n\n{message}",
- )
-
-
-def report_newly_found_file(file_id, file_info):
- message = f"I found a new CodiMD file in this post! Making work of putting it on gitlab :)\n - Requested location in the [drive](https://git.zeus.gent/bestuur/drive): {file_info['metadata']['sync-to']}"
- send_message(file_id, file_info, message)
-
-
-def report_newly_found_but_invalid_file(file_id, file_info):
- message = """Hi there! :wave:
-I'm your friendly neighbourhood document sync bot.
-I could synchronize this CodiMD file automatically to our Gitlab DRIVE for safekeeping, but the necessary metadata block is not present.
-You can easily add the correct info and I will do the rest of the work for you!
-
-Just add the following lines to your file, the location in your file is not important but at the top would be my recommendation.
-
-```
-:::spoiler Gitlab sync
-- sync-to:
-:::
-```"""
- send_message(file_id, file_info, message)
-
-
def validate_downloaded_files():
path = "data"
dir_list = os.listdir(path)
@@ -130,11 +79,13 @@ def validate_downloaded_files():
if metadata is not None:
is_new_file, new_file_info = db.mark_file_valid(file_id, metadata)
if is_new_file:
- report_newly_found_file(file_id, new_file_info)
+ mattermost_communication.report_newly_found_file(file_id, new_file_info)
else:
changed, new_file_info = db.mark_file_invalid(file_id)
if changed:
- report_newly_found_but_invalid_file(file_id, new_file_info)
+ mattermost_communication.report_newly_found_but_invalid_file(
+ file_id, new_file_info
+ )
return db._load_db()