Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Online Boolean to Events #105

Closed
Sean12697 opened this issue Sep 6, 2021 · 12 comments · Fixed by #116
Closed

Add Online Boolean to Events #105

Sean12697 opened this issue Sep 6, 2021 · 12 comments · Fixed by #116
Labels
Priority: Low Low Priority Type: Enhancement New feature or request on existing feature

Comments

@Sean12697
Copy link
Member

Since the pandemic some services like Meetup have added is_online_event boolean's to their event API endpoint, this should be generalised across all platforms and be unified into an online boolean in the following definition, which will be used in #100.

module.exports = class event {
constructor(name, link, location, desc, startTimeISO, endTimeISO, going, capacity, free, cost, groupName, groupLink, source, ad) {
this.name = name;
this.link = link;
this.location = location;
this.desc = desc;
this.startTimeISO = startTimeISO;
this.endTimeISO = endTimeISO;
this.going = going;
this.capacity = capacity;
this.free = free;
this.cost = cost;
this.groupName = groupName;
this.groupLink = groupLink;
this.source = source;
this.ad = ad;
}
}

@Sean12697 Sean12697 added Priority: Low Low Priority Type: Enhancement New feature or request on existing feature labels Sep 6, 2021
@Sean12697
Copy link
Member Author

My suggestion for when services don't offer a boolean is to see what they use for the common location property, my assumption is each platform will have its own common standard, such as including the world "Online", which I assume is not a location in the world and can be used to derive the boolean.

@Sean12697
Copy link
Member Author

For clarifications, and using Meetup as an example, the event parameters being passed into the function below refers to an Object within the Response from the /:urlname/events endpoint, which contains a is_online_event property (to be used).

this.event = (event) => new this.eventClass(event.name, event.link, this.rtnEventVenue(event), this.removeHTML(event.description || ""), event.time, event.time + (event.duration || 7200000), event.yes_rsvp_count, event.rsvp_limit || Infinity, event.hasOwnProperty('fee') ? false : true, this.rtnEventFee(event), event.group.name, "https://www.meetup.com/" + event.group.urlname, "Meetup", false);

This is a simple example for Meetup, but the above logic will have to be implemented for both Eventbrite and Google Calendar.

@prototype99
Copy link
Contributor

#116 is the proposed fix

@prototype99
Copy link
Contributor

following a recent discussion here's another idea: what if it was an integer value with these possible values:

  • -1: offline
  • 0: unspecified
  • 1: online

@prototype99
Copy link
Contributor

prototype99 commented Oct 12, 2021

the option of 0 will be useful for older calendar events/groups that were set as recurring events years ago. where those events were still apparently offline during strict covid19 lockdown times it could be assumed that those events should be 0. having just three possible values will help ensure efficient, effective, easy to validate data structure.

@prototype99
Copy link
Contributor

prototype99 commented Oct 12, 2021

the easiest way to implement this would probably be to add events to a list, which can then be read, each of the events listed could be set to 0

@Sean12697
Copy link
Member Author

following a recent discussion here's another idea: what if it was an integer value with these possible values:

  • -1: offline
  • 0: unspecified
  • 1: online

This was a great idea at the time, although thinking about it now, hybrid events are a thing, so maybe having two booleans would be better (online and inPerson).

@Sean12697
Copy link
Member Author

following a recent discussion here's another idea: what if it was an integer value with these possible values:

  • -1: offline
  • 0: unspecified
  • 1: online

This was a great idea at the time, although thinking about it now, hybrid events are a thing, so maybe having two booleans would be better (online and inPerson).

To clarify, either two of the Booleans being true where the other one isn't would signify it's own situation (either online or in-person), when they're both false that represents unspecified, and both true represents a hybrid event.

@Sean12697
Copy link
Member Author

following a recent discussion here's another idea: what if it was an integer value with these possible values:

  • -1: offline
  • 0: unspecified
  • 1: online

This was a great idea at the time, although thinking about it now, hybrid events are a thing, so maybe having two booleans would be better (online and inPerson).

To clarify, either two of the Booleans being true where the other one isn't would signify it's own situation (either online or in-person), when they're both false that represents unspecified, and both true represents a hybrid event.

For the TechNW Google Calendar, we can take a recurring event (based on the name being the same) and sample three instances of the event, one prior to COVID-19, one during peak lock-down (where in-person events could not legally happen) and one after, with those three events if the location remains the same, we can set the event to false for both online and inPerson (deriving unspecified).

@prototype99
Copy link
Contributor

following a recent discussion here's another idea: what if it was an integer value with these possible values:

  • -1: offline
  • 0: unspecified
  • 1: online

This was a great idea at the time, although thinking about it now, hybrid events are a thing, so maybe having two booleans would be better (online and inPerson).

To clarify, either two of the Booleans being true where the other one isn't would signify it's own situation (either online or in-person), when they're both false that represents unspecified, and both true represents a hybrid event.

For the TechNW Google Calendar, we can take a recurring event (based on the name being the same) and sample three instances of the event, one prior to COVID-19, one during peak lock-down (where in-person events could not legally happen) and one after, with those three events if the location remains the same, we can set the event to false for both online and inPerson (deriving unspecified).

is this still in the scope of this issue? Otherwise I have done everything else

@Sean12697
Copy link
Member Author

following a recent discussion here's another idea: what if it was an integer value with these possible values:

  • -1: offline
  • 0: unspecified
  • 1: online

This was a great idea at the time, although thinking about it now, hybrid events are a thing, so maybe having two booleans would be better (online and inPerson).

To clarify, either two of the Booleans being true where the other one isn't would signify it's own situation (either online or in-person), when they're both false that represents unspecified, and both true represents a hybrid event.

For the TechNW Google Calendar, we can take a recurring event (based on the name being the same) and sample three instances of the event, one prior to COVID-19, one during peak lock-down (where in-person events could not legally happen) and one after, with those three events if the location remains the same, we can set the event to false for both online and inPerson (deriving unspecified).

is this still in the scope of this issue? Otherwise I have done everything else

Good question @prototype99, we could leave this issue here, where checking if the location of an event includes the string online, then create a new issue for "Enhanced Online Event Boolean for TechNW Calendar".

@Sean12697 Sean12697 linked a pull request Oct 19, 2021 that will close this issue
@Sean12697
Copy link
Member Author

Fur-filled by #116, #117 can now be started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Low Low Priority Type: Enhancement New feature or request on existing feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants