Olá! Obrigado pelo interesse em contribuir com essa API. Esse repositório implementa a API do Pegabot, capaz de buscar dados por meio da API do Twitter e solicitar a requisição de uma análise pelo Motor do Pegabot.
Reunimos aqui as diretrizes para ajudá-lo a descobrir onde você pode ser mais útil.
- Tipos de contribuições que estamos procurando
- Regras básicas e expectativas
- Como contribuir
- Configurando seu ambiente
- Comunidade
A API do Pegabot aceita contribuições que:
- Tornem a API mais eficiente
- Documente o funcionamento da API
- Corrijam possíveis bugs
- Proponha novos endpoints
Interessado em contribuir neste projeto? Leia!
Antes de começarmos, aqui estão algumas coisas que esperamos de você (e que você deve esperar dos outros):
- Seja gentil e atencioso em suas conversas sobre este projeto. Todos nós viemos de diferentes origens e projetos, o que significa que provavelmente temos diferentes perspectivas sobre "como o código aberto é feito". Tente ouvir os outros em vez de convencê-los de que seu caminho está correto.
- Este projeto conta com um Código de Conduta do Contribuidor. Ao participar deste projeto, você concorda em cumprir seus termos.
Se você quiser contribuir, comece pesquisando em issues e pull requests para ver se alguém levantou uma ideia ou pergunta semelhante.
Se você não vir sua ideia listada e achar que ela se encaixa nos objetivos deste guia, abra uma nova issue.
Este código foi executado com python 3.9.4
e pip 20.2.3
.
git clone https://github.com/Pegabots/API.git
No terminal, basta executar:
pip install --user virtualenv
pip install pysqlite3 poetry pandas flask
No terminal, dentro da pasta do projeto digite:
cd API
virtualenv .venv
e você deverá ver um diretório .env/
dentro da pasta do seu projeto ou com o nome que você escolheu no passo anterior.
Agora, ative o ambiente virtual:
source .venv/bin/activate
No terminal, dentro da pasta do projeto apenas copie e renomeie o example.env
para .env
cp example.env .env
preencha a string .env
com suas credenciais de desenvolvedor do Twitter (veja as instruções abaixo)
poetry install
poetry config virtualenvs.create false --local
poetry config --list
O resultado deve ser algo como abaixo:
cache-dir = "/Users/dc/Library/Caches/pypoetry"
experimental.new-installer = true
installer.parallel = true
virtualenvs.create = false
virtualenvs.in-project = true
virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/dc/Library/Caches/pypoetry/virtualenvs
cd app
touch mydatabase.db # Você pode criar manualmente
Se você planeja usar outro sistema de banco de dados, visite Flask
Na pasta do projeto edite o arquivo .env
twitter_api_key= "<INPUT YOUR KEY HERE>"
twitter_api_secret= "<INPUT YOUR CONSUMER SECRET HERE>"
twitter_access_token= "<INPUT YOUR ACCESS TOKEN KEY HERE>"
twitter_access_token_secret= "<INPUT YOUR ACCESS TOKEN SECRET HERE>"
DATABASE_URL="sqlite:///mydatabase.db"
Para gerar arquivos de migração, se eles não existirem
flask db upgrade
Para criar as próprias tabelas
flask db migrate
sqlite3 app/mydatabase.db
.schema
Você deve ver algo assim:
sqlite> .schema
CREATE TABLE alembic_version (
version_num VARCHAR(32) NOT NULL,
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
);
CREATE TABLE analises (
id INTEGER NOT NULL,
handle VARCHAR(80) NOT NULL,
total VARCHAR(120),
network VARCHAR(120),
sentiment VARCHAR(120),
friends VARCHAR(120),
temporal VARCHAR(120),
twitter_id VARCHAR(120),
twitter_handle VARCHAR(120),
twitter_user_name VARCHAR(120),
twitter_is_protected BOOLEAN,
twitter_user_description VARCHAR(255),
twitter_followers_count INTEGER,
twitter_friends_count INTEGER,
twitter_location VARCHAR(120),
twitter_created_at TIMESTAMP,
twitter_is_verified BOOLEAN,
twitter_lang TIMESTAMP,
twitter_default_profile VARCHAR(255),
twitter_profile_image VARCHAR(255),
twitter_withheld_in_countries VARCHAR(255),
cache_times_served INTEGER,
cache_validity TIMESTAMP, pegabot_version VARCHAR(255), created_at DATETIME, updated_at DATETIME,
PRIMARY KEY (id),
CHECK (twitter_is_verified IN (0, 1))
);
CREATE TABLE feedbacks (
id INTEGER NOT NULL,
analisis_id VARCHAR(80) NOT NULL,
feedback BOOLEAN NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE relatorios (
id INTEGER NOT NULL,
report_name VARCHAR NOT NULL,
analise_id VARCHAR(80) NOT NULL,
PRIMARY KEY (id)
);
O script init.sh
contém os comandos necessários para você executar o projeto.
No seu terminal
./init.sh
$ poetry shell
$ export FLASK_APP=app/api.py
$ export FLASK_ENV=development
$ poetry install
$ poetry run flask run
As discussões sobre o projeto ocorrem nas seções Issues e Pull Requests. Qualquer pessoa é bem-vinda para participar dessas conversas.
Sempre que possível, não leve essas conversas para canais privados, inclusive entrando em contato diretamente com os mantenedores. Manter a comunicação pública significa que todos podem se beneficiar e aprender com a conversa.
Esse arquivo foi elaborado com base neste repositório.