Code Monkey home page Code Monkey logo

rem-v2's Introduction

Rem
Rem

The rewrite of Rem, now even cleaner and soon fully documented.

This Code is provided as is, there will be no support for getting it to run.

Discord Dependencies Github Stars


Noteworthy Forks

There are some forks which deserve to be listed here since they added some new features to rem

Contributing Guidelines

I will write those if people actually want to contribute. Until then: Just make it work good and fast. uwu

Requirements:

Installation instructions

  1. Install MongoDB with the guide.
  2. Install redis with the guide
  3. Install git, Here is the link to get it.
  4. Install node, Here is the link to get it.
  5. Install ffmpeg and add it to path, it can be found here, if you are on linux, you might wanna compile it, here is a guide for that
  6. If you have Windows, open a console with administrator permissions and type npm install --global windows-build-tools into it. This will install the neccessary tools, which will be later needed by npm to build Rems dependencies.
  7. For Linux environments, you should get build-essential and python 2.7 installed.
  8. Clone the source of v2 from git
  9. Go into the just created directory and open a cmd and execute npm install. There could be some errors while installing the dependencies as the optional dependency of rem links to eris-crystal If the installation fails, due to not being able to clone the git repo of it, remove it from the dependencies in the package.json.
  10. Create the following directories within the root: temp,audio,config
  11. Create 2 files within the config directory: main.json and keys.json. An Example can be found down below.
  12. Run git submodule init and git submodule update to fetch the newest translations
  13. Start the MongoDB Server and the Redis Server if you did not do that already
  14. Start Rem by going into the src folder and typing the following: node index.js.

Example main.json

{
  "owner": "Owner Name",
  "owner_id": "Owner ID",
  "environment": "development",
  "no_error_tracking": true,
  "token": "Bot Token",
  "client_id": "Bot Client ID",
  "bot_id": "Bot ID (Same as Client ID)",
  "osu_token": "OSU API TOKEN",
  "osu_username": "osu username",
  "osu_password": "osu password",
  "soundcloud_key": "key for the soundcloud api",
  "sentry_token": "not needed.",
  "anilist_secret": "not used atm",
  "anilist_id": "not used atm",
  "lbsearch_sfw_key": "ibsear.ch key",
  "lbsearch_nsfw_key": "ibsearch.xxx key",
  "cleverbot_api_user": "cleverbot.io api user",
  "cleverbot_api_key": "cleverbot.io api key",
  "mashape_key": "mashape key",
  "use_ws": false,
  "master_hostname": "not needed.",
  "mongo_hostname": "The full database adress: e.g. mongodb://host:port/dbname",
  "redis_hostname": "the redis ip, port is automatically set to 6379",
  "redis_enabled": true,
  "redis_database": 2,
  "shard_token": "not needed."
}
  • no_error_tracking disables sentry, the bugtracker of rem, leave this set to true.
  • use_ws tells rem whether the master server should be used or not, leave this set to false, as it is not needed with one shard.
  • the number of shards defines how many processes the master will spawn. Can be set to 1 unless you want to operate this fork on over 2500 servers.

Example keys.json

{
  "keys": [
    "Youtube Api Key, you can add more if you like"
  ]
}

Helpful links

If you need help creating tokens and a Youtube api I suggest reading these two tutorials on it.

rem-v2's People

Contributors

asynchronoustoddler avatar daswolke avatar deansheather avatar dylangubbels avatar hoto-cocoa avatar itsyuka avatar kebien6020 avatar ratismal avatar sdskykloud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rem-v2's Issues

Error: read ECONNRESET

While a song from Youtube is being played, it will randomly cut it off and give the ECONNRESET error as displayed here:

This happens every single time Music is being played.

Move all trello issues over to github

I will move all old trello issues over to github to provide a unified experience, the trello will not be used anymore

  • Migrate the old issues
  • Create nice labels and milestones for the new ones

Rem returns TypeError when starting

I trying to run Rem on my own server. But I starting Rem, it returns TypeError: Cannot read property 'on' of null at MOD.init.then (./src/shard.js:171:17). Can I fix it?

Bot not working..

image

I did npm install, and copied config folder. and i run nodejs index.js, bot is offline.

The bot counts itself as a voting member in the vote to skip a song

Steps to reproduce:

  1. Create a new server.
  2. Join the voice channel of that server.
  3. Add Rem Bot to that server.
  4. !w.play [a song]
  5. !w.skip

Output:

Type !w.yes to voteskip the current song. Current votepercentage at 50%/50
Users that have voted:

.------------------------.
| the_only_member |
'-------------------------'

But clearly, if the only human member of the voice channel has voted, then 100% of the members, whose vote should matter, have voted.

Image:

cannot add osu music to queue

Found Connection!
Shard:0 BLOCKED FOR 37ms
info:        errno=-2, code=ENOENT, syscall=access, path=audio/481371.mp3, worker=1
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: invalid signature: 0x4f44213c
    at /root/rem-v2/node_modules/unzip/lib/parse.js:59:13
    at runCallback (timers.js:651:20)
    at tryOnImmediate (timers.js:624:5)
    at processImmediate [as _immediateCallback] (timers.js:596:5)

i said it to discord, but I think it would be nice to report the issue to GitHub. so i removed pm and submited new issue.

Split Rem up into Microservices and make it use Docker

THIS IS MOST IMPORTANT UWU
Well back to serious:
Rem is not running well atm and I want to solve it once and for all.
Therefore I will do this.
TODO:

  • Write the shards mostly stateless so that they fetch shardid from a server
  • Write the Shard Master Service
  • Microservice: Voice
  • Microservice: User
  • Microservice: Guilds
  • Microservice: Music resolving
  • Microservice: Music encoding

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.