• Stars
    star
    191
  • Rank 202,877 (Top 4 %)
  • Language
    Python
  • Created over 3 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bot for 'Ballerini' server on Discord

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

More Repositories

1

GitTutorial

Tutorial de como usar o Git e Github na prática
7,303
star
2

rafaballerini

2,294
star
3

10ProjetosHTMLeCSS

1,156
star
4

Formulario

Página de formulário com HTML e CSS
HTML
1,019
star
5

PerfilGithub

593
star
6

ReactHooks

Um guia para entender os diferentes Hooks em React!
JavaScript
316
star
7

LandingPage

CSS
303
star
8

DesenvolvimentoWeb

263
star
9

AssistentePessoal

Assistente pessoal virtual desenvolvida com Python 🤖
Python
210
star
10

7DaysOfJavascript

155
star
11

InglesParaProgramacao

151
star
12

10PaisesParaTI

120
star
13

Tamagotchi

Tamagotchi in Python
Python
119
star
14

ComoUsarNotion

109
star
15

QuantoCobrarPorSite

107
star
16

Studify

JavaScript
93
star
17

AnaliseDaPlaylistDeRock

Uma associação de como o rock foi se modificando desde a década de 50 até os dias de hoje e como isso pode ser observado na prática nas músicas presentes na minha playlist de rock do Spotify, chamada "For Those About To Rock"
Jupyter Notebook
88
star
18

ProjetoGit

Projeto em que ensino a utilização do git
81
star
19

Certificard

Certificado com os projetos desenvolvidos na Imersão Dev da Alura
CSS
80
star
20

FlexboxParte1

CSS
71
star
21

TwitterSentimentAnalysis

Jupyter Notebook
63
star
22

ReactTypescriptCurso

TypeScript
57
star
23

DominioeHospedagem

Roteiro do vídeo sobre domínio e hospedagem de sites com a Hostinger
57
star
24

Notion

56
star
25

ExemploVideos

Códigos HTML e CSS utilizados nos videos do meu canal no youtube:
CSS
53
star
26

FlexboxCSS

CSS
52
star
27

BalleDocs

JavaScript
46
star
28

ExerciciosPython

exercicios do python
Python
41
star
29

OpenSource

40
star
30

FlexboxParte2

CSS
36
star
31

PurchaseList

Purchase List using Python
Python
33
star
32

Studify-TCC

JavaScript
32
star
33

EstudosSeriesTemporais

Um estudo breve de análise de séries temporais com dados de voos, utilizando python
Jupyter Notebook
30
star
34

ReactCards

An application where you can create reminder notes
CSS
27
star
35

ReactForms

Forms using React
JavaScript
26
star
36

NovoCelular

19
star
37

NLW3

Happy: a mobile/web application for people to find orphanages near their locations, so that they can visit it and make it an especial day for some of the children :)
TypeScript
16
star
38

SalesOrderRecord

C#
15
star
39

HomeAutomation

Domotic system using arduino and PHP
11
star
40

ProjetoGodot

GAP
8
star
41

lanchonete

Projeto desenvolvido para o Tech Challenge da Pós Tech em Software Architecture
JavaScript
5
star
42

CountDownTimer

Uma contagem regressiva pra surpresa que a Alura está preparando
JavaScript
1
star
43

apiballecoffee

Python
1
star