diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..83b6c82 --- /dev/null +++ b/dockerfile @@ -0,0 +1,11 @@ +FROM python:3 +WORKDIR /usr/src/app + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + + + +CMD [ "python", "./src/main.py" ] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5c900e5 Binary files /dev/null and b/requirements.txt differ diff --git a/ComitsPaginatedView.py b/src/ComitsPaginatedView.py similarity index 87% rename from ComitsPaginatedView.py rename to src/ComitsPaginatedView.py index edca02c..8637f8a 100644 --- a/ComitsPaginatedView.py +++ b/src/ComitsPaginatedView.py @@ -1,8 +1,9 @@ -import PaginatedView +from PaginatedView import PaginatedView from CommitsSelectMenu import CommitSelectMenu from typing import * import datetime -from discord.ui import Select, SelectOption +from discord.ui import Select +from discord import SelectOption import discord BRANCH = "main" @@ -32,8 +33,8 @@ class CommitsPaginatedView(PaginatedView): msg = commit['commit']['message'].split('\n')[0][:80] author = commit['commit']['author']['name'] sha = commit['sha'][:7] - date = datetime.fromisoformat(commit['commit']['committer']['date'].replace('Z', '+00:00')) - + date = datetime.datetime.fromisoformat(commit['commit']['committer']['date'].replace('Z', '+00:00')) + embed.add_field( name=f"{i+1}. `{sha}` by {author}", value=f"```{msg}```\nšŸ•’ {discord.utils.format_dt(date, 'R')}", diff --git a/CommitsActionView.py b/src/CommitsActionView.py similarity index 100% rename from CommitsActionView.py rename to src/CommitsActionView.py diff --git a/CommitsSelectMenu.py b/src/CommitsSelectMenu.py similarity index 95% rename from CommitsSelectMenu.py rename to src/CommitsSelectMenu.py index f8e81e2..3de9a2d 100644 --- a/CommitsSelectMenu.py +++ b/src/CommitsSelectMenu.py @@ -2,7 +2,6 @@ import discord from typing import * from discord.ui import * -from main import create_commit_embed, fetch_commit_files from CommitsActionView import CommitActionsView class CommitSelectMenu(Select): @@ -25,6 +24,7 @@ class CommitSelectMenu(Select): self.commits = commits async def callback(self, interaction: discord.Interaction): + from main import create_commit_embed, fetch_commit_files selected_idx = int(self.values[0]) commit = self.commits[selected_idx] diff --git a/FileBrowserSelect.py b/src/FileBrowserSelect.py similarity index 96% rename from FileBrowserSelect.py rename to src/FileBrowserSelect.py index ddf235b..addd6fb 100644 --- a/FileBrowserSelect.py +++ b/src/FileBrowserSelect.py @@ -1,7 +1,6 @@ from discord.ui import * import discord from typing import * -from main import show_file_diff class FileBrowserSelect(Select): """Dropdown for browsing files in a commit""" @@ -28,5 +27,6 @@ class FileBrowserSelect(Select): file_info = self.files[selected_idx] filename = file_info['filename'] + from main import show_file_diff await show_file_diff(interaction, self.commit_sha, filename) diff --git a/PaginatedView.py b/src/PaginatedView.py similarity index 100% rename from PaginatedView.py rename to src/PaginatedView.py diff --git a/SearchModal.py b/src/SearchModal.py similarity index 94% rename from SearchModal.py rename to src/SearchModal.py index 267d8ae..e8b69b4 100644 --- a/SearchModal.py +++ b/src/SearchModal.py @@ -1,8 +1,6 @@ from discord.ui import * import discord -from main import search_commits - class SearchModal(Modal): """Modal for searching commits""" def __init__(self, search_type: str = "message"): @@ -18,6 +16,7 @@ class SearchModal(Modal): self.add_item(self.search_term) async def on_submit(self, interaction: discord.Interaction): + from main import search_commits await interaction.response.defer() await search_commits(interaction, self.search_type, self.search_term.value) diff --git a/main.py b/src/main.py similarity index 99% rename from main.py rename to src/main.py index 2d65561..d2039b1 100644 --- a/main.py +++ b/src/main.py @@ -222,8 +222,11 @@ async def show_commit_diff_interactive(interaction: discord.Interaction, commit_ title=f"šŸ“Š Diff for commit `{matching_commit['sha'][:7]}`", color=discord.Color.blue() ) - await interaction.followup.send(embed=embed, ephemeral=True) - await interaction.followup.send(f"```diff\n{diff_text[:1800]}\n```", ephemeral=True) + try: + await interaction.followup.send(embed=embed, ephemeral=True) + await interaction.followup.send(f"```diff\n{diff_text[:1800]}\n```", ephemeral=True) + except Exception as e: + print(f"err at main.py with {e}") except Exception as e: await interaction.followup.send(f"Error: {str(e)}", ephemeral=True)