sysarmy / disneyland

En este repo consolidamos ideas y propuestas que llegan y surgen en la comunidad. Cualquier persona puede comentar en los issues, proponer y también asignarse los issues para hacerlos. Pueden agregar un comment y tomar ownership.
Creative Commons Zero v1.0 Universal
107 stars 23 forks source link

Calendario de eventos de sysarmy / nerdearla #120

Closed vmariano closed 2 years ago

vmariano commented 2 years ago
image

Hice un PoC que se puede agregar a google calendar a partir de esto necesitaria que alguien de sysarmy cree el calendar para que sea owner, y de permisos de escritura para ir cargando los eventos.

edux commented 2 years ago

Fijate si ves https://calendar.google.com/calendar/u/3?cid=Y19udHNyZzEwcXNqbWZlc2hoZ2FwOGFuZTFzc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t o https://calendar.google.com/calendar/embed?src=c_ntsrg10qsjmfeshhgap8ane1ss%40group.calendar.google.com&ctz=America%2FArgentina%2FBuenos_Aires

vmariano commented 2 years ago

✅ lo pude agregar como calendario. ✅ pude crear un evento. ❌ el evento solo es visible con mi cuenta. Parece que para que sea publico los demas tienen que poder ver el calendario.

Screen Shot 2022-05-05 at 00 05 53

Hay un make it public que me dio miedito darle.

edux commented 2 years ago

Ahi lo puse "make available to public" fijate si va.

El jue, 5 may 2022 a las 0:06, Mariano Vicente @.***>) escribió:

✅ lo pude agregar como calendario. ✅ pude crear un evento. ❌ el evento solo es visible con mi cuenta. Parece que para que sea publico los demas tienen que poder ver el calendario.

[image: Screen Shot 2022-05-05 at 00 05 53] https://user-images.githubusercontent.com/796960/166858155-16d2f55d-8fee-4dec-8006-57925cf65e36.png

Hay un make it public que me dio miedito darle.

— Reply to this email directly, view it on GitHub https://github.com/sysarmy/disneyland/issues/120#issuecomment-1118121019, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGRIY72RCK2JZWMQOF4ZDDVIM3L5ANCNFSM5T42QM5A . You are receiving this because you were assigned.Message ID: @.***>

vmariano commented 2 years ago

Perfectisimo!

Screen Shot 2022-05-09 at 09 46 59
edux commented 2 years ago

estaba pensando como gestionar esto, tiene sentido pensar una integracion github - google calendar? tener un file en disneyland con el listado de eventos con un formato tipo markdown y que un github action actualize el calendar cuando alguien agrega via pull request el evento?

El lun, 9 may 2022 a las 9:47, Mariano Vicente @.***>) escribió:

Perfectisimo!

[image: Screen Shot 2022-05-09 at 09 46 59] https://user-images.githubusercontent.com/796960/167412795-a2c4b82c-57e3-44bc-84b0-546e80e6aaad.png

— Reply to this email directly, view it on GitHub https://github.com/sysarmy/disneyland/issues/120#issuecomment-1121055145, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGRIY7UYAOEBEIBFR74BCDVJECOBANCNFSM5T42QM5A . You are receiving this because you were assigned.Message ID: @.***>

vmariano commented 2 years ago

🤔 Se me ocurre alguna automation tipo iftt o zapier. Pero debe haber algo, al menos en gh actions

Nachichuri commented 2 years ago

Buenas, overengineering 101, pero se me ocurre que se puede armar un action que on commit corra un script que screapee un listado/yaml/json y use la API de Calendar para crear/updatear eventos. El único impedimento puede ser permisos porque el calendar está creado con la account de @vmariano, pero se puede ir viendo. Si les copa la idea cuando tenga un rato puedo armar un PoC a ver si camina.

vmariano commented 2 years ago

Hay un user admina adicionalmente al mio, estimo que se puede con alguna cuenta / user de gmail.

Si les copa la idea cuando tenga un rato puedo armar un PoC a ver si camina.

Dale nomas!

Nachichuri commented 2 years ago

Buenas, mini update, probé la API con una service account y parece andar 10 points. Es un PoC medio cabeza igual, pero con muy poquito código se puede pegarle fácil al Calendar, después armo alguna logica para crear/updatear events sin duplicar leyendo desde un YAML de eventos que creo que sería un buen middle ground entre legible y parseable...

Ejemplo:

adminbirras_event = {
    "summary": "#AdminBirras",
    "location": "https://g.page/darsenabar?share",
    "description": "Creado desde Adminbirrator :) \n Mas detalles en https://www.meetup.com/sysarmy/events/285768129/",
    "start": {
        "dateTime": "2022-05-12T19:00:00",
        "timeZone": "America/Argentina/Buenos_Aires"
    },
    "end": {
        "dateTime": "2022-05-12T23:00:00",
        "timeZone": "America/Argentina/Buenos_Aires"
    }
}
from googleapiclient.discovery import build
from google.oauth2 import service_account

def get_calendar_service():
    creds = service_account.Credentials.from_service_account_file(
        'credentials.json', # <- de la service account, se lo pasaríamos como secrets al Actions
        scopes=['https://www.googleapis.com/auth/calendar'])
    return build("calendar", "v3", credentials=creds)

def create_event(event):
    try:
        service = get_calendar_service()
        response = service.events().insert(
            calendarId="hrvaq70ep407avdc000hptkh40@group.calendar.google.com", # <- Acá iría el ID del calendario
            body=event).execute()
        return response
    except Exception as e:
        return e

create_event(adminbirras_event)

*drum roll*

image

El nombre está abierto a sugerencias :P

Nachichuri commented 2 years ago

Buenas,

Bueno, la censista tardó mucho en pasar el miércoles así que me cebé un poco y Adminbirrator se convirtió en una fully-fledged automatic tool/ugly monster para gestionar los eventos con python y actions xD

Está codeada siguiendo estrictos estándares de la escuela latinoamericana así que seguramente tenga bugs por todos lados, pero bueno, es una primera versión que crea/updatea eventos... Está en la PR #123 si lo quieren revisar.

Como pendientes para que funcione, antes de aprobar la PR, serían:

Vamos hablando n.n

edux commented 2 years ago

Buenas, ahi esta andando! agregue un evento de pruebas de la adminfest, mirenlo a ver si lo ven todo ok. Genial trabajo!!!

El lun, 23 may 2022 a las 18:41, Emilio @.***>) escribió:

Buenas,

Bueno, la censista tardó mucho en pasar el miércoles así que me cebé un poco y Adminbirrator se convirtió en una fully-fledged automatic tool/ugly monster para gestionar los eventos con python y actions xD

Está codeada siguiendo estrictos estándares de la escuela latinoamericana así que seguramente tenga bugs por todos lados, pero bueno, es una primera versión que crea/updatea eventos... Está en la PR #123 https://github.com/sysarmy/disneyland/pull/123 si lo quieren revisar.

Como pendientes para que funcione, antes de aprobar la PR, serían:

    1. Darle sudo a la service account ( @.***) al Calendar público (no sé al final quién tiene ownership).
    1. Agregar 2 secrets ($ADMINBIRRATOR_CREDENTIALS y $ADMINBIRRATOR_CALENDAR_ID) en las configs del repo, @edux https://github.com/edux help here?

Vamos hablando n.n

— Reply to this email directly, view it on GitHub https://github.com/sysarmy/disneyland/issues/120#issuecomment-1135162975, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGRIYZALUW6SBF6UK7RQI3VLP3PJANCNFSM5T42QM5A . You are receiving this because you were mentioned.Message ID: @.***>

vmariano commented 2 years ago

Muy bueno @Nachichuri ! laburazo!.

Visto y considerando que ahora se puede reemplazar por scripts , creo que no necesito mas permisos @edux