Inspiration

Our ACM chapter is currently having a holy war over Google Hangouts and Matrix Chat. We wanted to end the conflict and have our friend Jack (one of the holdouts) see the light of matrix. So we decided to create a chat bridge between the two nations.

What it does

We created a bot that cross posts to all of our clubs important chats. It's also packed with all kinds of other goodies like: Event reminders, Keyword code execution, Quoting your friends' funny mispellings, and providing a means to conduct polls. Stargate also can send files and pictures across all supported platforms.

Currently Supports the Following Clients

How we built it

We started by writing raw Matrix API calls in Python to add interactivity to our Matrix chanel. We then used an open source project called Matter Bridge to bridge Slack, Discord and many others. We then implemented a bridge to hangouts our selves using an API called Hangups. The project is currently hosted on Google Cloud Compute Engine.

Challenges we ran into

  • Infinite Chat loops
  • Double posting to chats
  • Keeping the hype contained
  • Finding places to hammock

Hangouts

This is where the rubber hit the road. Matrix has a whole lot of open source support! Unfortunately, Google does not support any open api's for Hangouts and only has a minor go framework. To get around this we used a open source api called Hangups. Hangups is a Python based api for Google Hangouts, and is the result of the open source community reverse engineering the hangouts protocol. Because it's reverse engineered the api is very unwieldy and hard to use. This took two of use many hours to figure out and interface to Matter Link.

Accomplishments that We are proud of

  • Getting rid of a point of friction in our ACM chapter.
  • Winning a round of cup stacking
  • Getting Replication to the MHacks Slack working!

What we learned

  • The Hangups API is annoying
  • Chat bots are fun to code
  • Hackathons are about turning bad ideas into fun projects

What's next for Stargate

There is a lot of support from our club to permanently implement this and keep Stargate as club infrastructure. that being said, A complete rewrite is in our future. Hackathons are fun, but they are not known for creating high quality code. We would like to code this up from the ground again with the lessons we learned and create a maintainable open source codebase.

  • Twilio Support for dataless operations
    • For back country skiing or remote operations over phone
    • Use matrix VoIP service for group calls from cellular
    • Voice recognition to send and receive text using Google Dialogflow
  • All the bots!
    • All ACM Members can add new bots this open source project
    • Framework for universal plugins across all supported clients
  • Selective messaging
    • If a user is on multiple services to be able to selectively disable replication
  • Talk with Groupme's REST api

Built With

Share this project:

Updates