Update Meetup Map (#155)

Benutzt die Meetup-Daten aus dem Portal und enhält nun auch mobil eine Ansicht der Karte.
This commit is contained in:
d11n
2023-01-20 18:15:41 +01:00
committed by GitHub
parent 475e2a9802
commit 143f5b522d
18 changed files with 2543 additions and 705 deletions

View File

@@ -51,7 +51,6 @@ renderPage('kontakt', 'kontakt', { navCurrent: 'kontakt' })
renderPage('datenschutz', 'datenschutz', { navCurrent: 'datenschutz' })
renderPage('adventskalender', 'adventskalender', { adventskalender })
renderPage('gesundes-geld', 'gesundes-geld', { meetups: meetupsSorted })
renderPage('category', 'podcast/news', { navCurrent: 'podcast', category: 'news', categoryName: 'News', episodes: episodes.filter(e => e.category === 'news') })
renderPage('category', 'podcast/interviews', { navCurrent: 'podcast', category: 'interview', categoryName: 'Interviews', episodes: episodes.filter(e => e.category === 'interview') })
renderPage('category', 'podcast/lesestunde', { navCurrent: 'podcast', category: 'lesestunde', categoryName: 'Lesestunde', episodes: episodes.filter(e => e.category === 'lesestunde') })

View File

@@ -3,11 +3,14 @@ const { basename, join, resolve } = require('path')
const request = require('sync-request')
const meta = require('../content/meta.json')
const meetups = require('../content/meetups.json')
const telegram = require('../content/telegram.json')
const soundboard = require('../content/soundboard.json')
const { TELEGRAM_BOT_TOKEN } = process.env
const loadJson = url => {
const jsonBody = request('GET', url).getBody('utf8')
return JSON.parse(jsonBody)
}
const dir = (...path) => resolve(__dirname, '..', ...path)
const writeJSON = (file, data) => writeFileSync(file, JSON.stringify(data, null, 2))
@@ -18,11 +21,7 @@ const getTelegramMembersCount = group => {
[, , telegramId] = url.match(/:\/\/t\.me\/(?!(\+|joinchat))(.*)/) || []
if (telegramId) {
try {
const jsonBody = request(
'GET',
`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getChatMemberCount?chat_id=@${telegramId}`
).getBody('utf8')
const { ok, result } = JSON.parse(jsonBody)
const { ok, result } = loadJson(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getChatMemberCount?chat_id=@${telegramId}`)
if (ok) {
return result
}
@@ -39,8 +38,7 @@ const getTelegramMembersCount = group => {
let recentBlocks = []
try {
const jsonBody = request('GET', 'https://mempool.observer/api/recentBlocks').getBody('utf8')
recentBlocks = JSON.parse(jsonBody)
recentBlocks = loadJson('https://mempool.observer/api/recentBlocks')
} catch (err) {
console.error('Could not load recent blocks:', err)
}
@@ -56,17 +54,21 @@ const telegramData = telegram.map(t =>
)
// Meetups
const meetupsData = meetups.map(m => Object.assign(m, {
members: getTelegramMembersCount(m)
}))
let meetups = []
try {
meetups = loadJson('https://portal.einundzwanzig.space/api/meetups')
} catch (err) {
console.error('Could not load meetups:', err)
meetups = require('../content/soundboard.json')
}
writeJSON(dir('dist', 'meetups.json'), meetupsData)
writeJSON(dir('dist', 'meetups.json'), meetups)
writeJSON(dir('generated', 'site-data.json'), {
date,
block,
meta,
meetups: meetupsData,
meetups,
telegram: telegramData
})