Skip to content

Commit

Permalink
Added AutoDocs with Sphinx
Browse files Browse the repository at this point in the history
-> Moved code to src folder
-> Updated all build systems for new project structure
-> Added Sphinx Autodoc
-> Implemented rudimentary Documentation
-> Added action to auto update docs on main website
  • Loading branch information
Guhan-SenSam committed Jan 9, 2024
1 parent e1b3644 commit b56aee7
Show file tree
Hide file tree
Showing 67 changed files with 821 additions and 116 deletions.
25 changes: 1 addition & 24 deletions .github/workflows/build_release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,5 @@ jobs:
repo_token: ${{ secrets.TOKEN }}
prerelease: true
files: |
dist/MR.DM.exe
Linux-Build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.10.6
- name: Install dependencies
run: pip install -r requirements-dev.txt

- name: Build Linux Executable
run: pyinstaller linux.spec

- name: Generate Pre Release
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: ${{ secrets.TOKEN }}
prerelease: true
files: |
dist/MR.DM
dist/MR.DM.exe
57 changes: 57 additions & 0 deletions .github/workflows/update_docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Update Docs

on:
push:
branches:
- main
workflow_dispatch:

permissions:
# Give the default GITHUB_TOKEN write permission to commit and push the
# added or changed files to the repository.
contents: write

jobs:
update_docs:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.11

- name: Install dependencies
run: pip install -r requirements-dev.txt

- name: Generate docs
run: |
cd docs
make html
cd ..
- name: Clone Website Repo
uses: actions/checkout@v3
with:
repository: Oxlac/MR.DM-Website
path: website

- name: Clear docs folder
run: rm -rf website/docs/*

- name: Copy New docs to website
run: |
cp -r docs/_build/html/* website/docs/
cd website
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Update docs"
commit_options: '--no-verify --signoff'
commit_user_name: Oxlac Automation
commit_author: Oxlac <[email protected]>

40 changes: 40 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Contributing to MR.DM

Open Source is driven by contributions. We are very happy seeing you here. We want to make the contribution process as easy and transparent as possible. It can range from (but not limited to):
- Reporting a bug
- Submitting a feature
- Submitting a fix
- Proposing features
- Becoming a maintainer

## How to contribute?

All contrubutions are welcome. First check the open issues and see if you can help with any of them. If you want to add a new feature, please create an issue first so that others can have a look at it. Below are the steps you should follow so that your PR can be merged easily.
1. Check out the [issues](https://github.com/oxlac/mr-dm/issues) page.
2. If you want to contribute a new feature or solve a issue, it is recommended you make it an issue for others to have a brief look at what's happening if the proposed feature is not already in the open issues.
3. Fork the repo and create your branch from `master`.
4. To install the development dependecies(Includes dependencies required for writing documentation and building executables) run
```bash
pip install -r requirements-dev.txt
```
> [!WARNING]
> Due to limitations in Kivy Dependencies this application can only be built on python 3.10.6 only. No other version is tested to support the application. If you want to build the application, please use python 3.10.6 only.
5. Make the changes you want to make.

6. Make sure your code lints. MR.Dm uses [ruff](https://github.com/astral-sh/ruff) for linting. To lint your code run
```bash
ruff lint
```
> [!NOTE]
> If you are using VSCode, you can install the [ruff extension](https://marketplace.visualstudio.com/items?itemName=astralsh.ruff) to lint your code on the fly.
7. Commit your changes and push your branch to GitHub.
8. Create a pull request to the `master` branch of the `oxlac/mr-dm` repository.
9. Ensure that your code passes the ruff linter. If it does not pass view the errors and fix them.
10. If you have any questions, please feel free to ask in the [Discord Server](https://discord.gg/Jrd6A94g).

## How to report a bug?

Use the issue templates to report a bug. Please provide as much information as possible. If you have a solution to the bug, please create a pull request.

11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
<a href="https://github.com/oxlac/mr.dm/issues">Report Bug</a>
·
<a href="https://github.com/oxlac/mr.dm/issues">Request Feature</a>
.
<a href="https://discord.gg/2YdnSGHdET">Discord Server</a>
</p>
</div>

Expand Down Expand Up @@ -71,6 +73,9 @@ MR.DM is a tool for automating your Instagram DMs. Sending marketing messages ab

MR.DM will take care of the rest. It will send the message to all the accounts you have loaded.

>[!CAUTION]
> Please use this tool responsibly. Do not spam people with messages. This tool was created for educational purposes only. The creator of this tool is not responsible for any misuse of this tool.
<p align="right">(<a href="#readme-top">back to top</a>)</p>

### Features
Expand Down Expand Up @@ -194,10 +199,16 @@ Distributed under the MIT License. See `LICENSE.txt` for more information.

Your Name - [@Oxlac_](https://twitter.com/Oxlac_) - [email protected]

Discord Server - [https://discord.gg/2YdnSGHdET](https://discord.gg/2YdnSGHdET)

Project Link: [https://github.com/oxlac/mr.dm](https://github.com/oxlac/mr.dm)

<p align="right">(<a href="#readme-top">back to top</a>)</p>

## Disclaimer

This tool is not affiliated with Instagram in any way. It is an independent project created for educational purposes only. The creator of this tool(oxlac and any other contributors) is not responsible for any misuse of this tool.


<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
Expand Down
62 changes: 0 additions & 62 deletions backend/database.py

This file was deleted.

20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
25 changes: 25 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

import os
import sys

sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath("."))))

autoapi_dirs = ["../src"]


project = "Mr.DM"
copyright = "2024, Oxlac LLP"
author = "Oxlac LLP"
extensions = ["autoapi.extension", "sphinx_autodoc_typehints"]
templates_path = ["_templates"]
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
html_theme = "sphinx_book_theme"
html_static_path = ["_static"]
root_doc = "docs"
show_authors = True
html_logo = "images/logo.png"
html_favicon = "images/icon.ico"
51 changes: 51 additions & 0 deletions docs/contributing.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
.. _contributing:

Contributing
============

Open Source is driven by contributions. We are very happy seeing you here. We want to make the contribution process as easy and transparent as possible. It can range from (but not limited to):
- Reporting a bug
- Submitting a feature
- Submitting a fix
- Proposing features
- Becoming a maintainer

How to contribute?
------------------

All contrubutions are welcome. First check the open issues and see if you can help with any of them. If you want to add a new feature, please create an issue first so that others can have a look at it. Below are the steps you should follow so that your PR can be merged easily.
1. Check out the [issues](https://github.com/oxlac/mr-dm/issues) page.
2. If you want to contribute a new feature or solve a issue, it is recommended you make it an issue for others to have a brief look at what's happening if the proposed feature is not already in the open issues.
3. Fork the repo and create your branch from `master`.
4. To install the development dependecies(Includes dependencies required for writing documentation and building executables) run

.. code-block:: bash
pip install -r requirements-dev.txt
.. note::
This will install sphinx and its other dependecies along with py-two-exe which is used to build executables.

.. warning::
Due to limitations in Kivy Dependencies this application can only be built on python 3.10.6 only. No other version is tested to support the application. If you want to build the application, please use python 3.10.6 only.

5. Make the changes you want to make.

6. Make sure your code lints. MR.Dm uses [ruff](https://github.com/astral-sh/ruff) for linting. To lint your code run

.. code-block:: bash
ruff lint
.. note::
If you are using VSCode, you can install the ruff extension to lint your code on the fly.

7. Commit your changes and push your branch to GitHub.
8. Create a pull request to the `master` branch of the `oxlac/mr-dm` repository.
9. Ensure that your code passes the ruff linter. If it does not pass view the errors and fix them.
10. If you have any questions, please feel free to ask in the Discord Server https://discord.gg/Jrd6A94g


How to report a bug?
--------------------
Use the issue templates to report a bug. Please provide as much information as possible. If you have a solution to the bug, please create a pull request.
39 changes: 39 additions & 0 deletions docs/docs.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Welcome to Mr.DM's documentation!
=================================

.. image:: /images/main_image.png
:align: center
:alt: Main Image

A quick and easy tool for automating your Instagram DMs.

MR.DM is a tool for automating your Instagram DMs. Sending marketing messages about your newly launched products to your followers is a tiring process to accomplish manually. MR.DM can solve all of that in just 3 simple steps.

1. Login to your Instagram account.
2. Load the Accounts you want to send the message to from various sources.
3. Enter the message you want to send and click send.

MR.DM will take care of the rest. It will send the message to all the accounts you have loaded.

.. caution::
MR.DM is not intended for spamming. Please use it responsibly. Oxlac and the contributors of MR.DM are not responsible for any misuse of this tool.


.. toctree::
:maxdepth: 1
:caption: Contents:

gettingstarted
installation
usage
contributing
license



Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
16 changes: 16 additions & 0 deletions docs/gettingstarted.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
===============
Getting Started
===============

MR.DM provides an out of the box executable that you can use to run the application directly
or you can clone the github repository, install the dependencies and run the application

.. danger:: MR.DM is to be used for educational purposes only. The author is not responsible for any misuse of the application or for any damage caused by the application to your Instagram account due to excessive use of the application.

.. note:: The executable is only available for Windows. Mac and Linux users will have to clone the repository and run the application manually. These platforms will be supported in the future.

See the `Installation`_ section for more details.




Loading

0 comments on commit b56aee7

Please sign in to comment.