Skip to content

Commit

Permalink
Merge branch 'master' into remove_setuptools_instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
WinnaZ authored Oct 12, 2024
2 parents afda783 + f926390 commit b6c2de4
Show file tree
Hide file tree
Showing 14 changed files with 82 additions and 64 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,18 @@ jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
pip install sphinx sphinx_rtd_theme
- name: Sphinx build
run: |
sphinx-build -b html docs/source docs/build/html
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
# if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/testing' }}
with:
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/pythonapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,21 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v1
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install .
pip install '.[dev]'
- name: Lint with flake8
run: |
pip install flake8
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pip install pytest
pytest
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.9"
python: "3.10"

python:
install:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Despues instala el paquete en modo desarrollo en un virtualenv
~~~bash
virtualenv -p python3 venv
source venv/bin/activate
pip install -e .
pip install -e '.[dev]'
~~~

y estas listo para trabajar.
Expand Down
2 changes: 1 addition & 1 deletion bin/run_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
from pycamp_bot.commands import schedule
from pycamp_bot.commands import announcements
from pycamp_bot.commands import devtools
from pycamp_bot.constants import SENTRY_DATA_SOURCE_NAME_ENVVAR
from pycamp_bot.models import models_db_connection
from pycamp_bot.logger import logger


SENTRY_DATA_SOURCE_NAME_ENVVAR = 'SENTRY_DATA_SOURCE_NAME'
if SENTRY_DATA_SOURCE_NAME_ENVVAR in os.environ:
sentry_sdk.init(dsn=os.environ[SENTRY_DATA_SOURCE_NAME_ENVVAR])

Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']
# html_static_path = ['_static']
# html_favicon = '_static/img/icon.svg'
# html_logo = '_static/img/logo.png'

Expand Down
File renamed without changes.
9 changes: 8 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,18 @@ dependencies = [
"munch==4.0.0",
"python-telegram-bot==21.3",
"peewee==3.17.5",
"sentry-sdk==2.6.0",
"sentry-sdk==2.8.0",
]
requires-python = "==3.10.*"
authors = [
{name = "Pyar", email = "[email protected]"},
]
description = "Bot de telegram para organizar pycamp"
readme = "README.md"

[project.optional-dependencies]
dev = [
"flake8==7.1.0",
"freezegun==1.5.1",
"pytest==8.2.2",
]
8 changes: 6 additions & 2 deletions src/pycamp_bot/commands/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from telegram.ext import CommandHandler
from pycamp_bot.models import Pycampista
from pycamp_bot.logger import logger
from pycamp_bot.utils import escape_markdown


def get_admins_username():
Expand Down Expand Up @@ -84,8 +85,11 @@ async def revoke_admin(update, context):
user = Pycampista.select().where(Pycampista.username == fallen_admin)[0]
user.admin = False
user.save()
await context.bot.send_message(chat_id=chat_id,
text='Un admin ha caido --{}--.'.format(fallen_admin))
await context.bot.send_message(
chat_id=chat_id,
text=f'Un admin ha caído ~{escape_markdown(fallen_admin)}~\\.',
parse_mode='MarkdownV2',
)


async def list_admins(update, context):
Expand Down
2 changes: 1 addition & 1 deletion src/pycamp_bot/commands/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ async def start(update, context):

async def help(update, context):
logger.info('Returning help message')
await context.bot.send_message(chat_id=update.message.chat_id, text=get_help(update, context), parse_mode='Markdown')
await context.bot.send_message(chat_id=update.message.chat_id, text=get_help(update, context), parse_mode='MarkdownV2')


# async def error(update, context):
Expand Down
8 changes: 8 additions & 0 deletions src/pycamp_bot/commands/devtools.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import os
import subprocess
import sys

from telegram.ext import CommandHandler

from pycamp_bot.constants import SENTRY_DATA_SOURCE_NAME_ENVVAR
from pycamp_bot.utils import escape_markdown


Expand All @@ -28,6 +30,11 @@ async def show_version(update, context):
for pip_line in pip_freeze.stdout.decode().splitlines():
dependencies.append(escape_markdown(pip_line))

if SENTRY_DATA_SOURCE_NAME_ENVVAR in os.environ:
sentry_envvar_set = '🟢'
else:
sentry_envvar_set = '🔴'

lines = [
f'Commit deployado: `{commit}`',
f'Fecha del commit \\(author date\\): `{escape_markdown(author_date)}`',
Expand All @@ -37,6 +44,7 @@ async def show_version(update, context):
'```',
*dependencies,
'```',
f'Variable de entorno de Sentry definida: {sentry_envvar_set}',
]

await update.message.reply_text('\n'.join(lines), parse_mode='MarkdownV2')
Expand Down
89 changes: 43 additions & 46 deletions src/pycamp_bot/commands/help_msg.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,24 @@

user_commands_help = '''
Comandos de usuario:
/voy\\_al\\_pycamp (pycamp name): avisá que vas al pycamp! si no especificas un\
pycamp por default es el que esta activo.
/pycamps: lista todos los pycamps.
/cargar\\_proyecto: empieza la conversacion de carga de proyecto.
/proyectos: te muestra la informacion de todos los proyectos y sus responsables.
/mis\\_proyectos: te muestra día y horario de los proyectos que votaste.
/ser\\_magx: te agrega la lista de Magx.
/voy\\_al\\_pycamp \\(pycamp name\\): avisá que vas al pycamp\\! si no especificas un\
pycamp por default es el que esta activo\\.
/pycamps: lista todos los pycamps\\.
/cargar\\_proyecto: empieza la conversacion de carga de proyecto\\.
/proyectos: te muestra la informacion de todos los proyectos y sus responsables\\.
/mis\\_proyectos: te muestra día y horario de los proyectos que votaste\\.
/ser\\_magx: te agrega la lista de Magx\\.
/evocar\\_magx: pingea a la/el Magx de turno, informando que necesitas su\
ayuda. Con un gran poder, viene una gran responsabilidad.
/elegir\\_proyectos: te muestra los proyectos presentados para que digas cuales te gustan.
/cronograma: te muestra el cronograma del PyCamp.
ayuda\\. Con un gran poder, viene una gran responsabilidad\\.
/elegir\\_proyectos: te muestra los proyectos presentados para que digas cuales te gustan\\.
/cronograma: te muestra el cronograma del PyCamp\\.
/anunciar: te pide el nombre de un proyecto y pingea por privado a les \
interesades avisando que esta por empezar (solo para admins u owners del proyecto).
/su (passwrd): convierte al usuario en admin. Si sabe el password :P
/mostrar_version: te muestra qué versión del bot está corriendo y otros detalles
/admins: lista a todos los admins.
/ayuda: esta ayuda.'''
interesades avisando que esta por empezar \\(solo para admins u owners del proyecto\\)\\.
/su \\(passwrd\\): convierte al usuario en admin\\. Si sabe el password :P
/mostrar\\_version: te muestra qué versión del bot está corriendo y otros detalles
/admins: lista a todos los admins\\.
/ayuda: esta ayuda\\.
'''

HELP_MESSAGE = '''
Este bot facilita la carga, administración y procesamiento de \
Expand All @@ -27,49 +28,45 @@
El proceso se divide en 3 etapas:
*Primera etapa*: Lxs responsables de los proyectos cargan sus proyectos \
mediante el comando */cargar_proyecto*. Solo un responsable carga el \
mediante el comando */cargar\\_proyecto*\\. Solo un responsable carga el \
proyecto, y luego si hay otrxs responsables adicionales, pueden \
agregarse con el comando */ownear*.
agregarse con el comando */ownear*\\.
*Segunda etapa*: Mediante el comando */elegir_proyectos* todxs lxs participantes \
seleccionan los proyectos que se expongan. Esto se puede hacer a medida que \
se expone, o al haber finalizado todas las exposiciones. Si no se está \
*Segunda etapa*: Mediante el comando */elegir\\_proyectos* todxs lxs participantes \
seleccionan los proyectos que se expongan\\. Esto se puede hacer a medida que \
se expone, o al haber finalizado todas las exposiciones\\. Si no se está \
segurx de un proyecto, conviene no seleccionar nada, ya que luego podés \
volver a ejecutar el comando y darle que si aquellas cosas que no tocaste. NO \
SE PUEDE CAMBIAR TU RESPUESTA UNA VEZ HECHO.
volver a ejecutar el comando y darle que si aquellas cosas que no tocaste\\. NO \
SE PUEDE CAMBIAR TU RESPUESTA UNA VEZ HECHO\\.
*Tercera etapa*: Lxs admins mergean los proyectos que se haya decidido \
mergear durante las exposiciones (Por tematica similar, u otros \
motivos), y luego se procesan los datos para obtener el cronograma \
final.
mergear durante las exposiciones \\(Por tematica similar, u otros \
motivos\\), y luego se procesan los datos para obtener el cronograma \
final\\.
''' + user_commands_help

HELP_MESSAGE_ADMIN = '''
Be AWARE, you have sudo...
Be AWARE, you have sudo\\.\\.\\.
Pycamp
------
/agregar\\_pycamp (pycamp): Agrega un pycamp.
/activar\\_pycamp (pycamp): Setea un pycamp como activo (si ya hay uno activo lo \
desactiva).
/empezar\\_carga\\_proyectos: Habilita la carga de proyectos en el pycamp activo.
/terminar\\_carga\\_proyectos: Deshabilita la carga de proyectos en el pycamp activo.
/empezar\\_seleccion\\_proyectos: Habilita la seleccion sobre los proyectos del pycamp activo.
/terminar\\_seleccion\\_proyectos: Deshabilita la seleccion sobre los proyectos del pycamp activo.
/empezar\\_pycamp: Setea el tiempo de inicio del pycamp activo. \
Por default usa datetime.now()
/terminar\\_pycamp: Setea el timepo de fin del pycamp activo. \
Por default usa datetime.now()
Pycamp:
/agregar\\_pycamp \\(pycamp\\): Agrega un pycamp\\.
/activar\\_pycamp \\(pycamp\\): Setea un pycamp como activo \\(si ya hay uno activo lo \
desactiva\\)\\.
/empezar\\_carga\\_proyectos: Habilita la carga de proyectos en el pycamp activo\\.
/terminar\\_carga\\_proyectos: Deshabilita la carga de proyectos en el pycamp activo\\.
/empezar\\_seleccion\\_proyectos: Habilita la seleccion sobre los proyectos del pycamp activo\\.
/terminar\\_seleccion\\_proyectos: Deshabilita la seleccion sobre los proyectos del pycamp activo\\.
/empezar\\_pycamp: Setea el tiempo de inicio del pycamp activo\\. \
Por default usa datetime\\.now\\(\\)
/terminar\\_pycamp: Setea el timepo de fin del pycamp activo\\. \
Por default usa datetime\\.now\\(\\)
/cronogramear: Te pregunta cuantos dias y que slot tiene tu pycamp \
y genera el cronograma.
y genera el cronograma\\.
/cambiar\\_slot: Toma el nombre de un proyecto y el nuevo slot \
y lo cambia en el cronograma.
Pycampista
----------
/degradar (username): Le saca los permisos de admin a un usuario.
y lo cambia en el cronograma\\.
Pycampista:
/degradar \\(username\\): Le saca los permisos de admin a un usuario\\.
''' + user_commands_help


Expand Down
1 change: 1 addition & 0 deletions src/pycamp_bot/commands/wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ def compute_wizards_slots(pycamp):
"""
* Magxs trabajan de 9 a 19, sacando almuerzo (13 a 14).
* Magxs trabajan desde el mediodía del primer día, hasta el mediodía del último día.
Slots son [start; end)
"""
wizard_start = pycamp.init
Expand Down
1 change: 1 addition & 0 deletions src/pycamp_bot/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SENTRY_DATA_SOURCE_NAME_ENVVAR = 'SENTRY_DATA_SOURCE_NAME'

0 comments on commit b6c2de4

Please sign in to comment.