[nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed
-
@teh_g said in [nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed:
I think I asked a while ago, but is it possible to add events via an ical feed to this calendar?
The specific one I am looking to add is this one here: http://c.opencritic.com/calendar/OpenCritic.ics
I am very interested in an ICS-export function. I've developed a calendar extension for phpBB, that can export and import ICS. I can write JavaScript, so it should be easy, to port the ICS-function to this calendar.
The difficult/time expensive part would be to create an alternative user login. As ICS requires a simple URL to load the events from, there needs to be an extra ICS download key for each user, that can be put into the URL's query string to enable the ICS download...
@PitaJ Maybe we can work together - with some help regarding the nodeBB's extension structure, it should be possible...
-
The difficult/time expensive part would be to create an alternative user login. As ICS requires a simple URL to load the events from, there needs to be an extra ICS download key for each user, that can be put into the URL's query string to enable the ICS download...
@MitjaStachowiak Good news! — Each user already has an automatically generated field in their user hash called
rss_token
. It is semi-private key that is used in conjunction with the uid to protect RSS feeds from uid enumeration.You can get a user's feed token by calling
await user.auth.getFeedToken(uid)
(it generates one if the user account doesn't already have one.)There are other places where this token can be used, although right now it is only used in the RSS functionality. It will not go away (not without ample warning, anyway.) In the future, we may rename
rss_token
to something more generic.
When I say that
rss_token
is "semi-private" I mean that it is sent to the browser in plain text (you can see it if you investigate the URL for this topic's RSS feed). It's hidden from other users insomuch that you can't easily find out someone else'srss_token
, but that's about it. -
@julian Okay, yes, this should work. ICS-Export is not extremely secure. There is a wide range of apps, that can import ICS, but I guess many of them have no ssh-key-validation included and accept any key.
Who enables ICS-export should know, that a capable attacker can find a way to get the ICS of some users.
Hopefully next week, I may find time to have a look on it.
-
@MitjaStachowiak wait, did I say that it wasn't going to go away?
Now I am thinking that maybe it should go away the rss token functionality could potentially be rolled into the already existing API token feature...
That said there are a lot of steps between here and using the API token for this ... The main stumbling block being done RSS clients do not send customizable headers when grabbing RSS feeds... So it might be a no-go from the start.
Anyway, just thinking aloud.
-
@julian The ICS-Export in my calendar works with an URL like
https://theforum.xy/app.php/calendar/?action=ics&user=2&password=XXXXXX&from=D-10&promoters=27,8
User ID (here 2) and a special password (here XXXXXX) are given in the URL. Yes, it is possible to use HTTP-Passwords as well, but not all clients support this. So I decided to go for the URL-password.
The script, that generates the ICS must be accessible for public. You simply give each user an extra ICS-key in the database and grab the events directly from there. If the rss-token can be used for this - nice. If not, the addon needs to add an extra column in the db.
phpBB has a migrationsystem, that manages databasemodifications for extensions and I needed a felt couple of months to understand this . If someone gives me a code point, where the special-key-authentification is done and a database access is possible, I can write the ICS composition for export.
-
Hi,
I am very new to NodeBB so I am still familiarising with it.
I managed to have it working fine but I don't get how to display the calendar with all the events.
I have the little button in the editor when creating a post but I don't know how to display this:As a side note, I had to install the calendar plugin using the CLI as the ACP didn't work for me.
Also I had to manually change the
plugin.json
file from:"modules": { "../admin/plugins/calendar.js": "public/admin.js"
to
"modules": { "../admin/plugins/calendar.js": "./public/admin.js"
(see the "./" before public)
-
@cuginoAle the calendar displays at
forum.example.com/calendar
. If you go to the navigation settings in the ACP, you can add the calendar button to your header navbar. -
New version. Please try out
[email protected]
Note: this version requires NodeBB v2.0.0 or laternpm i nodebb-plugin-calendar@latest
Changelog:
- Calendar buttons match bootstrap theme thanks to Frozen-byte
- Add participation counter to event displays also thanks to Frozen-byte
- bump dependencies
-
Nice update PitaJ!
One small issue I've encountered; I have a forum where the URL is not at the base level (the client wanted to retain it like so due to many years of indexing) and so therefore the API call within settings fails due to it referencing '/api' as an absolute URL.
I've raised an issue on GitHub: https://github.com/pitaj/nodebb-plugin-calendar/issues/157 -
-
Hi @PitaJ , we love your calendar plugin. Will it be v3 compatible before the end of this year? thanks.
-
this is a very useful plugin, I am looking forward to using this on v3.
-
this has been a nice plugin, I am curious whether it will be upgraded to be compatible with NodeBB v3, or should we look for alternative solutions?
Unfortunately, none of the alternatives will offer the same level of integration with the forum as this plugin...