Meetup.com 이벤트를 Github Pages Jekyll 사이트로 내보내기
(TL&DR을 원하는 경우: https://github.com/jeffsheets/ojug-meetup-export에서 모든 세부 정보를 참조하십시오.)
Meetup.com에서 이벤트 내보내기
첫 번째 단계는 내보낼 방법을 찾는 것이었습니다our past events. 관리 UI를 통해 CSV 내보내기를 원했지만 아무 것도 표시되지 않았습니다. 그런 다음 웹 스크래핑이 필요하거나 일부 네트워크 개발 도구 API 호출 감시가 필요할 수 있다고 생각했습니다. 그러나 Meetup API 🤔의 관리 UI에 회색으로 표시된 설정이 있음을 확인했습니다. 빠른 Google에서 Meetup GraphQL API Playground 페이지를 찾았습니다. 그리고 놀랍게도 테스트 쿼리를 보내는 것이 제대로 작동했습니다! 🎉
API 문서에서 약간의 시행착오를 거쳐 페이징 없이 모든 이벤트를 가져오기 위해 결과 수를 100으로 늘린 후 다음을 사용하여 모든 과거 이벤트를 JSON으로 내보낼 수 있었습니다.
query($meetupId: String!) {
groupByUrlname(urlname: $meetupId) {
description
pastEvents(input: {first: 100}) {
count
edges {
node {
title
description
dateTime
going
}
}
}
}
}
그리고 다음의 일부 입력:
{"meetupId":"omahajava"}
a nice JSON result 다음과 같이
{
"data": {
"groupByUrlname": {
"description": "Omaha's Java User Group [@omahajug](https://twitter.com/omahajug/). yadda yadda yadda",
"pastEvents": {
"count": 65,
"edges": [
{
"node": {
"title": "Angular JS for Java Developers",
"description": "This month //etc etc etc",
"dateTime": "2014-05-20T17:30-05:00",
"going": 27
}
},
.....
ojug.org 기술
이벤트 블로그 게시물 페이지가 생성된 방법을 보여주기 전에 ojug.org의 기술에 대한 간단한 메모입니다(src at https://github.com/OJUG/ojug.github.io ). 표준Github Pages Jekyll workflow 스택에서 실행 중입니다. 11ty 으로 옮길 생각이 있지만 지금은 Jekyll 이 잘 작동합니다. _posts folder에서 새 마크다운 파일을 생성하고 기본 분기에 병합하면 워크플로가 자동으로 시작되어 마술처럼 ojug.org 사이트를 재배포합니다.
Meetup 이벤트 Jekyll 게시물 생성
이를 염두에 두고 블로그에는 이벤트 JSON의 각 이벤트에 대해 생성된 .md 파일이 필요합니다. 약간의 Groovy를 사용하여 이것은 GSP 템플릿, 날짜 형식을 예쁘게 만드는 일부 기능 및 파일 이름 생성 기능으로 매우 빠르게 수행되었습니다. 그루비post.gsp template는 다음과 같습니다.
---
layout: post
title: " \"<%= longDate %> <%= title %>\""
---
<%= description %>
(This past event was exported from Meetup.com)
(<%= attended %> people had RSVP'd to this event in Meetup)
그런 다음 각 JSON 이벤트에 대한 템플릿을 생성하는 코드는 PostGenerator.groovy에 있습니다.
void generatePosts() {
def events = new JsonSlurper().parse(getClass().getResource(SRC_JSON)).data.groupByUrlname.pastEvents.edges
events.each {
def event = it.node
def filename = makeFilename(event.title, event.dateTime)
def outfile = new File("$DEST_FOLDER/$filename")
def filecontents = new SimpleTemplateEngine()
.createTemplate(getClass().getResource('/post.gsp'))
.make([
title : event.title.replaceAll('"', '\"'),
description: event.description,
longDate : convertToLongDate(event.dateTime),
attended : event.going
])
.toString()
outfile.write filecontents
}
}
실행되면 2014-05-20-angular-js-for-java-developers.md과 유사한 멋진 마크다운 파일이 출력 디렉터리에 생성됩니다.
---
layout: post
title: "May 20, 2014 Angular JS for Java Developers"
---
This month //etc etc etc
(This past event was exported from Meetup.com)
(27 people had RSVP'd to this event in Meetup)
마지막 단계는 모든 새 마크다운 파일을 _posts 디렉토리에 복사하고, PR을 만들고, 병합하고, ojug.org에서 최종 결과를 확인하는 것입니다!
마무리
그리고 그게 다야! 이 블로그 게시물을 작성하는 데는 Meetup을 JSON으로 내보내고 Jekyll 블로그를 위한 새 마크다운 파일을 생성하는 프로세스보다 더 오래 걸렸을 것입니다! 내 githubhttps://github.com/jeffsheets/ojug-meetup-export에서 전체 소스를 모두 볼 수 있습니다.
[1] - Meetup.com에 대한 짧은 각주... 수년 동안 Meetup은 우리 그룹을 광고하고, 새로운 회원을 유치하고, 훌륭한 사용자 인터페이스를 갖고, 이벤트에 대한 RSVP를 쉽게 수집하는 데 큰 도움이 되었습니다. 우리는 항상 증가하는 수수료를 지불할 수 있는 훌륭한 스폰서를 가질 수 있어 항상 운이 좋았습니다. 이제 수수료는 연간 최대 $197.98입니다. 그러나 우리(또는 어떤 그룹)가 계정을 "동결"하는 것을 허용하지 않기로 한 Meetup의 결정은 우리 스폰서가 거의 혜택 없이 2.5년 동안 그 수수료를 지불해 왔다는 것을 의미합니다. 다른 지역 기술 모임 주최자와 이야기를 나누면서 우리 중 많은 사람들이 이러한 수수료에서 벗어날 수 있는 방법을 숙고하고 있음이 분명해졌습니다. 우리 스폰서는 절약된 금액으로 꽤 멋진 사용자 그룹 파티를 열 수 있습니다! 복제해야 할 기능이 많기 때문에 전체 논의는 다음 시간으로 미루겠습니다...
Reference
이 문제에 관하여(Meetup.com 이벤트를 Github Pages Jekyll 사이트로 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jeffsheets/export-meetupcom-events-to-a-github-pages-jekyll-site-5ga1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)