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

View File

@@ -73,10 +73,6 @@
transform: scale(.75);
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.
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).
#map
@@ -28,24 +32,24 @@ block main
ul.meetups
each m in filterOfficial(meetups, true)
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;`)
= m.name.replace('Einundzwanzig ', '')
if m.members
= ' '
span.members= `(${m.members} Mitglieder)`
if m.members
= ' '
small.members= `(${m.members})`
- j++
h2 Weitere Meetups
ul.meetups
each m in filterOfficial(meetups, false)
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;`)
= m.name.replace('Bitcoin ', '')
if m.members
= ' '
span.members= `(${m.members} Mitglieder)`
if m.members
= ' '
small.members= `(${m.members})`
- j++
img#dach(src=assetPath('/img/dach.svg') alt="DE, AT, CH")
@@ -55,11 +59,11 @@ block main
ul.meetups
each m in filterUnmapped(meetups)
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
if m.members
= ' '
span.members= `(${m.members} Mitglieder)`
if m.members
= ' '
small.members= `(${m.members})`
script.
document.getElementById('dach').onclick = e => {

View File

@@ -18,3 +18,6 @@ block main
each group in telegram
li
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('media', 'media', { navCurrent: 'media' })
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/satoshis-bleibe-2022', 'events/satoshis-bleibe-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 meetups = require('../content/meetups.json')
const telegram = require('../content/telegram.json')
const soundboard = require('../content/soundboard.json')
const { TELEGRAM_BOT_TOKEN } = process.env
const dir = (...path) => resolve(__dirname, '..', ...path)
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 = []
try {
@@ -22,41 +42,26 @@ try {
const block = recentBlocks.length && recentBlocks[0].height
const date = (new Date()).toJSON().split('T')[0]
// Telegram
const telegramData = telegram.map(t =>
Object.assign(t, {
members: getTelegramMembersCount(t.url),
})
)
// Meetups
const meetup = meetups.map(m => {
const copy = Object.assign({}, m)
const meetupsData = meetups.map(m => Object.assign(m, {
members: getTelegramMembersCount(m.url)
}))
if (TELEGRAM_BOT_TOKEN) {
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('dist', 'meetups.json'), meetupsData)
writeJSON(dir('generated', 'site-data.json'), {
date,
block,
meta,
meetups: meetup,
meetups: meetupsData,
telegram: telegramData
})
// Soundboard