Giter VIP home page Giter VIP logo

discordbot's Introduction

BALLE BOT

Introdução

Esse é um projeto para criar o próprio bot de discord para o servidor da Rafella Ballerini, e aqui estão (até agora) algumas anotações sobre como montar o bot.

Techs

Confome desenvolvemos o projeto, atualizar quais tecnologias estamos utilizando

  • Python: Linguagem de programação de sintaxe simples;
  • Mongodb: Bando de dados não relacional para armazenamento de informações, está sendo utilizado o banco diretamente no site;
  • Discord Developer Portal: site para registrar sua aplicação/bot;
  • Discord.py: Biblioteca para integração com o discord;

Requisitos

  • Ter instalado Python na versão 3.5 (durante o desenvolvimento, começamos na versão 3.5, então não podemos garantir que versões anteriores funcionem);
  • Crie um arquivo Token.py, preencha com os seguintes dados:
class TokenDiscord:
  def uploadToken():
    return {
      "database": "Link de conexão ao mongodb",
      "idapresentacao":"é um long que representa o id de um dos canais onde vai ter pontos por reações",
      "idaviso":"é um long que representa o id de um dos canais onde vai ter pontos por reações",
      "token":"token de acesso do bot, gerado no site do Discord Developer Portal"
    }

GAMIFICAÇÃO

A gamificação do bot é feita através de 2 tipos, a xp e níveis, o xp é dividido em semanal e por canal, os níveis são calculados de forma geral;

XP

O cálculo do xp vai seguir essas regras:

  • Por mensagem:
    • Mínimo de 2 palavras;
    • Máximo por mensagem, 40 pontos;
    • Número de caracteres não repetidos / 3;
  • Reações a mensagens:
    • Disponíveis em alguns canais;
    • Badlist de emojis, remove pontos, 200 pontos, remove a reação;
    • Goodlist de emojis, 5 emojis, 2x pontos, 100 pontos base;
  • Tempo de canais de voz:
    • Conferir quais informações recebemos para avaliar os pontos
  • Compartilhamento de tela:
    • Conferir quais informações recebemos para avaliar os pontos

pymongo operações

Essas informações que estão sendo mostradas é apenas para enteder como deve ser utilizado o pymongo

  • Insert
data = {
  'nome': 'Jef',
  'idade': 45
}

responseData = collection.insert_one(data)
# responseData é do tipo InsertOneResult, só vi que tem o inserted_id até agora

Infos sobre InsertOneResult

  • Replace
data = {
  'nome': 'Jef',
  'idade': 45
}

responseData = collection.replace_one({'nome': 'Mateus'}, data)
# responseData é do tipo UpdateResult, só vi que tem matched_count,modified_count e upserted_id de informações relevantes

Infos sobre UpdateResult

  • Update
responseData = collection.update_one({'nome': 'Mateus'}, {'$inc': {'idade': 2}}, upsert)
# responseData é do tipo UpdateResult, só vi que tem matched_count,modified_count e upserted_id de informações relevantes
# incrementa o valor idade em 2
# upsert é um valor booleano, que vai definir se é necessário inserir o objeto ou não

Infos sobre UpdateResult

  • Outros operadores interessantes:
    • $set: vai definir um valor específico
    • $mul: vai múltiplicar a propriedade pelo valor especificado
    • $rename: vai trocar o campo
    • $setOnInsert: se a query não resultar em nada, e o objeto tiver que ser inserido, adiciona os campos
    • $unset: remove o campo
  • Para arrays:
    • $: atualiza o primeiro que encontrar na condição
    • $[]: atualiza todos os elementos encontrados
    • $[<identifiers>]: atualiza todos que combinarem com a condição dentro do parênteses

Infos sobre Update Operators

  • update_many
responseData = collection.update_many(
    {'valor': 10}, {'$set': {'teste2':'novo'}})
# procura todo lugar onde valor é igual a 10, e altera/adiciona o campo teste2 = novo

Infos sobre UpdateResult

discordbot's People

Contributors

matan18 avatar niumxp avatar rafaballerini avatar

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.