GithubHelp home page GithubHelp logo

ccil-kbw / robot Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 10.88 MB

mdroid: Masjid's droid

Home Page: https://ccil-kbw.github.io/

License: BSD 3-Clause "New" or "Revised" License

Go 97.14% Dockerfile 1.47% Shell 1.39%
bot discord automation masjid openbroadcastersoftware ummah openbroadcaster

robot's People

Contributors

githnx avatar serafdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

robot's Issues

Add Discord Command to Start and Stop Recordings

  • Add the Recording feature to the rec-start command in Discord Client
  • Add the Stop Recording feature in OBS Client and the rec-stop command to the Discord Client

Prerequisites:

  • Create Discord Bot
  • Add Discord Bot to the QA Discord of KBW

Design MDroid2 Project to properly separate Features

We're in the beginning of the MDroid2 App development. The few features we already developed but do not have a Database:

  • Iqama Notification on Discord
  • Automated Recordings for Lessons
  • Discord Commands for Starting/Stopping/Monitoring Recordings
  • Youtube Uploader

Those were developed in Golang, but for adoptability and ease of Maintainability I believe we should rewrite them in Python (Using Django)

A Design Documentation and a proper File Structure will be required to close this Ticket.

Refactor for Robot to become a Monolith ๐Ÿ”

At the same time why not named it Masjid's Robot (or MasjidsRobot as slug)

Refactoring points:

  • 1 entrypoint with a bunch of features
  • Make it API based (+ generate a cli tool for flexibility while we work on some UI)

Monolith fails when executed locally

go run ./cmd/monolith/main.go throws the following error:

Cannot open the session: websocket: close 4004: Authentication failed.
exit status 1

Organize Environment and Logger init

Create a Module that will take care of Environments and Loggers Initialization to be reused in all commands.

Should be situated in folder internal/ for now

Add PTZ Camera Frame Automation

Request as curl of the ptz camera:

curl 'http://192.168.1.253/cgi-bin/ptzctrl.cgi?ptzcmd&poscall&11' \
  -H 'Content-Type: application/x-www-form-urlencoded;charset=utf-8' \
  -H 'Cookie: CGISESSION=zeFdsRYOsksdEcWymqvAmVMJeQQqURuj' \
  --compressed \
  --insecure

Here we want to detect the Frame and set it properly based on the Event:

11: Chair under Imam for Khutbah Translations
12: Zoomed Out Imam + Iqama
13: Imam Khutbah
14: Zoomed Out everything

E.g: Khutbah Translation Time: 11, Khutbah Time: 13

Iqama Sources

Create different Iqama Sources with a simple configuration from the User.

At the moment we use the API from https://iqama.ccil-kbw.com but other solutions can greatly simplify Administrative Tasks.

At the moment I am thinking about a Public Google Sheets that can simply be modified manually by the Administration, the Sheet would contain a page for each year (2023, 2024, 2025, etc) and reading the Iqama would simply use the URL for the Google Sheets.

When the Administration thinks that they need to change the Iqama they simply login to their Google account and modify the Sheet directly from there. All Iqama Apps can use that Sheet as Source of Truth and is not controlled by any Developer but solely by the Masjid's Administration.

Improve MacOS packaging

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnvironmentVariables</key>
    <dict>
        <key></key>
        <string></string>
    </dict>
    <key>Label</key>
    <string>org.masjidsrobot.darsrec</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/darsrec</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/tmp/darsrec.out</string>
    <key>StandardErrorPath</key>
    <string>/tmp/darsrec.err</string>
</dict>
</plist>

Currently hardcoded the above in ~/Library/LaunchAgents/org.masjidsrobot.darsrec.plist

Should find a better way with an install.sh script to do this automatically

This ticket includes signing the binary with Apple's Developpers - not sure about the process for non-mac users, got to investigate inchaAllah

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.