diff --git a/components/Home.vue b/components/Home.vue index b74a0c3d..910d5a8c 100644 --- a/components/Home.vue +++ b/components/Home.vue @@ -28,6 +28,20 @@ import Calendar from '@/components/Calendar' export default { name: 'Home', + head () { + console.error(this.settings) + return { + title: this.settings.title, + meta: [ + // hid is used as unique identifier. Do not use `vmid` for it as it will not work + { hid: 'description', name: 'description', content: this.settings.description }, + { hid: 'og-description', name: 'og:description', content: this.settings.description }, + { hid: 'og-title', property: 'og:title', content: this.settings.title }, + { hid: 'og-url', property: 'og:url', content: this.settings.baseurl }, + // { property: 'og:image', content: this.settings.baseurl } + ] + } + }, data () { return { } }, diff --git a/pages/add/_edit.vue b/pages/add/_edit.vue index 2dc67538..3e1df5c6 100644 --- a/pages/add/_edit.vue +++ b/pages/add/_edit.vue @@ -37,6 +37,7 @@ span(slot='label') {{$t('common.when')}} span {{event.multidate ? $t('event.dates_description') : $t('event.date_description')}} el-switch.float-right(v-model='event.multidate' :active-text="$t('event.multidate_description')") + //- el-switch.float-right(v-model='event.recurrent' :active-text="$t('event.recurrent_description')") v-date-picker.mb-3( :mode='event.multidate ? "range" : "single"' diff --git a/server/api/controller/bot.js b/server/api/controller/bot.js index a695499c..3ec31672 100644 --- a/server/api/controller/bot.js +++ b/server/api/controller/bot.js @@ -20,41 +20,21 @@ const botController = { const listener = botController.bot.stream('/streaming/user') listener.on('message', botController.message) listener.on('error', botController.error) - // const botUsers = await User.findAll({ where: { mastodon_auth: { [Op.ne]: null } } }) - // console.log(botUsers) - // botController.bots = botUsers.map(user => { - // console.log('initialize bot ', user.name) - // console.log('.. ', user.mastodon_auth) - // const { client_id, client_secret, access_token } = user.mastodon_auth - // const bot = new Mastodon({ access_token, api_url: `https://${user.mastodon_instance}/api/v1/` }) - // const listener = bot.stream('streaming/direct') - // listener.on('message', botController.message) - // return { email: user.email, bot } - // }) - // console.log(botController.bots) - // }, - // add (user, token) { - // const bot = new Mastodon({ access_token: user.mastodon_auth.access_token, api_url: `https://${user.mastodon_instance}/api/v1/` }) - // const listener = bot.stream('streaming/direct') - // listener.on('message', botController.message) - // listener.on('error', botController.error) - // botController.bots.push({ email: user.email, bot }) }, - async post(instance, access_token, event) { + async post(event) { const status = `${event.title} @${event.place.name} ${moment(event.start_datetime*1000).format('ddd, D MMMM HH:mm')} - ${event.description.length > 200 ? event.description.substr(0, 200) + '...' : event.description} - ${event.tags.map(t => '#' + t.tag).join(' ')} ${config.baseurl}/event/${event.id}` let media if (event.image_path) { - const file = path.join(config.upload_path, event.image_path) + const file = path.resolve(config.upload_path, event.image_path) if (fs.statSync(file)) { - media = await botController.bot.post('media', { file: fs.createReadStream(file) }) + media = await botController.bot.post('/media', { file: fs.createReadStream(file) }) } } return botController.bot.post('/statuses', { status, media_ids: media ? [media.data.id] : [] }) }, - // TOFIX: enable message deletion async message(msg) { const type = msg.event @@ -66,7 +46,6 @@ ${event.description.length > 200 ? event.description.substr(0, 200) + '...' : ev } const activitypub_id = String(msg.data.status.in_reply_to_id) - console.error('il toot di reply ', activitypub_id) if (!activitypub_id) return let event = await Event.findOne({ where: { activitypub_id } }) if (!event) { diff --git a/server/api/controller/settings.js b/server/api/controller/settings.js index b0fd83ad..29ce773d 100644 --- a/server/api/controller/settings.js +++ b/server/api/controller/settings.js @@ -47,7 +47,9 @@ const settingsController = { // get public settings and public configuration const settings = { ...settingsController.settings, - baseurl: config.baseurl + baseurl: config.baseurl, + title: config.title, + description: config.description } res.json(settings) }, diff --git a/server/notifier.js b/server/notifier.js index af891256..d3ba3065 100644 --- a/server/notifier.js +++ b/server/notifier.js @@ -10,8 +10,6 @@ const { event: Event, notification: Notification, event_notification: EventNoti const notifier = { async sendNotification(notification, event) { - const access_token = get(settingsController.secretSettings, 'mastodon_auth.access_token') - const instance = get(settingsController.settings, 'mastodon_instance') const promises = [] switch (notification.type) { case 'mail': @@ -19,11 +17,11 @@ const notifier = { case 'admin_email': return mail.send([config.smtp.auth.user, config.admin_email], 'event', { event, to_confirm: !event.is_visible, config, notification }) case 'mastodon': + console.error('mando le cose') // instance publish - if (instance && access_token) { - const b = bot.post(instance, access_token, event).then(b => { - console.error(b) - event.activitypub_id = b.data.id + if (bot.bot) { + const b = bot.post(event).then(b => { + event.activitypub_id = String(b.data.id) return event.save() }).catch(e => { console.error("ERRORE !! ", e) @@ -55,7 +53,7 @@ const notifier = { await notifier.sendNotification(notification, event) e.status = 'sent' } catch (err) { - console.error(err) + // console.error(err) e.status = 'error' // e.error = err }