Update meetups and telegram

This commit is contained in:
Dennis Reimann
2022-05-04 17:12:31 +02:00
parent edb40f8565
commit 0041358378
6 changed files with 56 additions and 48 deletions

View File

@@ -49,7 +49,7 @@
}, },
{ {
"name": "Einundzwanzig Berlin", "name": "Einundzwanzig Berlin",
"url": "https://t.me/joinchat/vUYgAbXeCnIzMWRi", "url": "https://t.me/Einundzwanzig_Berlin",
"top": 26, "top": 26,
"left": 65, "left": 65,
"country": "DE", "country": "DE",
@@ -129,7 +129,7 @@
}, },
{ {
"name": "Einundzwanzig Düsseldorf", "name": "Einundzwanzig Düsseldorf",
"url": "https://t.me/joinchat/pwUMGpOQzDZiZDRi", "url": "https://t.me/einundzwanzig_duesseldorf",
"top": 38, "top": 38,
"left": 16, "left": 16,
"country": "DE", "country": "DE",
@@ -201,7 +201,7 @@
}, },
{ {
"name": "Einundzwanzig Frankfurt am Main", "name": "Einundzwanzig Frankfurt am Main",
"url": "https://t.me/joinchat/Ox2zR68PzuQ2OTYy", "url": "/https://t.me/einundzwanzigffm",
"top": 51, "top": 51,
"left": 26, "left": 26,
"country": "DE", "country": "DE",

View File

@@ -73,10 +73,6 @@
transform: scale(.75); transform: scale(.75);
animation-name: pulse; animation-name: pulse;
} }
& .members {
display: none;
}
} }
} }
} }

View File

@@ -21,6 +21,10 @@ block main
Hier gibt es ein [Video-Tutorial](https://www.youtube.com/watch?v=BNJc9LExEzU), wie ein neuer Pull Request erstellt werden kann. Hier gibt es ein [Video-Tutorial](https://www.youtube.com/watch?v=BNJc9LExEzU), wie ein neuer Pull Request erstellt werden kann.
Die Werte für `top/left` geben prozentual die Position des Ortes auf der Karte an. Die Werte für `top/left` geben prozentual die Position des Ortes auf der Karte an.
Wir können auch die Anzahl der Gruppenmitglieder hier anzeigen lassen.
Voraussetzung dafür ist, dass die Gruppe öffentlich ist und einen Linknamen hat (a la `t.me/Einundzwanzig_ORT`, kann nur vom Ersteller der Gruppe angepasst werden).
Tipp: Mit Bots wie [Shieldy](https://t.me/shieldy_bot) kann man die Spammer draußen halten.
Die Vorlage für das Telegram-Gruppenbild findest du im [Media Kit](/media). Die Vorlage für das Telegram-Gruppenbild findest du im [Media Kit](/media).
#map #map
@@ -28,24 +32,24 @@ block main
ul.meetups ul.meetups
each m in filterOfficial(meetups, true) each m in filterOfficial(meetups, true)
li.official(class=clss(m) style=style(m)) li.official(class=clss(m) style=style(m))
a(href=m.url target="_blank" rel="nofollow noopener" title=m.members ? `${m.members} Mitglieder` : null) a(href=m.url target="_blank" rel="nofollow noopener")
.dot(style=`animation-delay:${((j*2000) + random(3000))}ms;animation-duration:${meetups.length*2}s;`) .dot(style=`animation-delay:${((j*2000) + random(3000))}ms;animation-duration:${meetups.length*2}s;`)
= m.name.replace('Einundzwanzig ', '') = m.name.replace('Einundzwanzig ', '')
if m.members if m.members
= ' ' = ' '
span.members= `(${m.members} Mitglieder)` small.members= `(${m.members})`
- j++ - j++
h2 Weitere Meetups h2 Weitere Meetups
ul.meetups ul.meetups
each m in filterOfficial(meetups, false) each m in filterOfficial(meetups, false)
li(class=clss(m) style=style(m)) li(class=clss(m) style=style(m))
a(href=m.url target="_blank" rel="nofollow noopener" title=m.members ? `${m.members} Mitglieder` : null) a(href=m.url target="_blank" rel="nofollow noopener")
.dot(style=`animation-delay:${((j*2000) + random(3000))}ms;animation-duration:${meetups.length*2}s;`) .dot(style=`animation-delay:${((j*2000) + random(3000))}ms;animation-duration:${meetups.length*2}s;`)
= m.name.replace('Bitcoin ', '') = m.name.replace('Bitcoin ', '')
if m.members if m.members
= ' ' = ' '
span.members= `(${m.members} Mitglieder)` small.members= `(${m.members})`
- j++ - j++
img#dach(src=assetPath('/img/dach.svg') alt="DE, AT, CH") img#dach(src=assetPath('/img/dach.svg') alt="DE, AT, CH")
@@ -55,11 +59,11 @@ block main
ul.meetups ul.meetups
each m in filterUnmapped(meetups) each m in filterUnmapped(meetups)
li(class=clss(m) style=style(m)) li(class=clss(m) style=style(m))
a(href=m.url target="_blank" rel="nofollow noopener" title=m.members ? `${m.members} Mitglieder` : null) a(href=m.url target="_blank" rel="nofollow noopener")
= m.name = m.name
if m.members if m.members
= ' ' = ' '
span.members= `(${m.members} Mitglieder)` small.members= `(${m.members})`
script. script.
document.getElementById('dach').onclick = e => { document.getElementById('dach').onclick = e => {

View File

@@ -18,3 +18,6 @@ block main
each group in telegram each group in telegram
li li
a(href=group.url rel="nofollow noopener" target="_blank")= group.name a(href=group.url rel="nofollow noopener" target="_blank")= group.name
if group.members
= ' '
small.members= `(${group.members} Mitglieder)`

View File

@@ -37,7 +37,7 @@ renderPage('meetups', 'meetups', { navCurrent: 'meetups', meetups: meetupsSorted
renderPage('spenden', 'spenden', { navCurrent: 'spenden', spendenregister, spendenuebersicht }) renderPage('spenden', 'spenden', { navCurrent: 'spenden', spendenregister, spendenuebersicht })
renderPage('media', 'media', { navCurrent: 'media' }) renderPage('media', 'media', { navCurrent: 'media' })
renderPage('soundboard', 'soundboard', { navCurrent: 'soundboard', soundboard }) renderPage('soundboard', 'soundboard', { navCurrent: 'soundboard', soundboard })
renderPage('telegram', 'telegram', { navCurrent: 'telegram', telegram }) renderPage('telegram', 'telegram', { navCurrent: 'telegram', telegram: site.telegram })
renderPage('events', 'events', { navCurrent: 'events' }) renderPage('events', 'events', { navCurrent: 'events' })
renderPage('events/satoshis-bleibe-2022', 'events/satoshis-bleibe-2022', { navCurrent: 'events'}) renderPage('events/satoshis-bleibe-2022', 'events/satoshis-bleibe-2022', { navCurrent: 'events'})
renderPage('events/bitcoin-im-laendle-2022', 'events/bitcoin-im-laendle-2022', { navCurrent: 'events' }) renderPage('events/bitcoin-im-laendle-2022', 'events/bitcoin-im-laendle-2022', { navCurrent: 'events' })

View File

@@ -4,12 +4,32 @@ const request = require('sync-request')
const meta = require('../content/meta.json') const meta = require('../content/meta.json')
const meetups = require('../content/meetups.json') const meetups = require('../content/meetups.json')
const telegram = require('../content/telegram.json')
const soundboard = require('../content/soundboard.json') const soundboard = require('../content/soundboard.json')
const { TELEGRAM_BOT_TOKEN } = process.env const { TELEGRAM_BOT_TOKEN } = process.env
const dir = (...path) => resolve(__dirname, '..', ...path) const dir = (...path) => resolve(__dirname, '..', ...path)
const writeJSON = (file, data) => writeFileSync(file, JSON.stringify(data, null, 2)) const writeJSON = (file, data) => writeFileSync(file, JSON.stringify(data, null, 2))
const getTelegramMembersCount = url => {
if (TELEGRAM_BOT_TOKEN) {
if (url.startsWith('https://t.me/')) {
[, , 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)
if (ok) {
return result
}
} catch (err) {}
}
}
}
}
let recentBlocks = [] let recentBlocks = []
try { try {
@@ -22,41 +42,26 @@ try {
const block = recentBlocks.length && recentBlocks[0].height const block = recentBlocks.length && recentBlocks[0].height
const date = (new Date()).toJSON().split('T')[0] const date = (new Date()).toJSON().split('T')[0]
// Telegram
const telegramData = telegram.map(t =>
Object.assign(t, {
members: getTelegramMembersCount(t.url),
})
)
// Meetups // Meetups
const meetup = meetups.map(m => { const meetupsData = meetups.map(m => Object.assign(m, {
const copy = Object.assign({}, m) members: getTelegramMembersCount(m.url)
}))
if (TELEGRAM_BOT_TOKEN) { writeJSON(dir('dist', 'meetups.json'), meetupsData)
let { telegramId } = m
if (!telegramId && m.url.startsWith('https://t.me/')) {
[,, telegramId] = m.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)
if (ok) {
copy.telegramId = telegramId
copy.members = result
}
} catch (err) {
}
}
}
}
return copy
})
writeJSON(dir('dist', 'meetups.json'), meetup)
writeJSON(dir('generated', 'site-data.json'), { writeJSON(dir('generated', 'site-data.json'), {
date, date,
block, block,
meta, meta,
meetups: meetup, meetups: meetupsData,
telegram: telegramData
}) })
// Soundboard // Soundboard