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

BookMyShow Bridge #1349

Merged
merged 9 commits into from
Apr 15, 2022
Merged

BookMyShow Bridge #1349

merged 9 commits into from
Apr 15, 2022

Conversation

captn3m0
Copy link
Contributor

@captn3m0 captn3m0 commented Nov 4, 2019

BMS is a Indian aggregator of events, movie theaters and theaters. This is still a WIP PR, needs a little more work.

Supports the following:

  • Movies, Plays and Event listings across all BMS supported cities
  • Venue Directions
  • Multiple Venues
  • Proper Image attachments
  • SuperStar Exclusive Listings
  • Links to Trailers
  • Filter for online events (Only "events" category). Defaults to not showing online events.

Currently does not support:

Plays/Events

  • Plays/Events spread across multiple dates and cities.
  • Multiple dates are a hard problem in general, since the event page
    on BMS shows all dates across all cities, and then a second page
    tells you whether what dates it is for your city.
  • jsonGenre metadata tags, which require a bit more nuance and parsing

Movies

  • Movie screening times.

DEMO: https://rss-bridge.bb8.fun/

@captn3m0 captn3m0 changed the title Initial Work on BookMyShow bridge WIP: Initial Work on BookMyShow bridge Nov 5, 2019
@captn3m0 captn3m0 changed the title WIP: Initial Work on BookMyShow bridge BookMyShow Bridge Nov 23, 2019
@captn3m0
Copy link
Contributor Author

Ready for review. I have one design question pertaining to number of requests:

For plays and event categories, BMS returns back with a list of venues [V1,V2,V3] and a list of date ranges [D1,D2,D3,D4] which don't have clear correspondence. (V1=D1, V2=D2+D3+D4 and a different venue in another city might have D4).

To actually get details of a specific venue (when the play is held there) requires an extra call specific to that post. So if there are 10 plays returned in the feed, this will require 1+10 HTTP calls. Most events/plays have a single venue so it could be optimized a bit.

Right now some code is commented pending the extra 10 calls, but should I make those extra calls?

@logmanoriginal
Copy link
Contributor

Right now some code is commented pending the extra 10 calls, but should I make those extra calls?

A general rule of thumb is to return a feed within "a few seconds". It should be around 1-2 seconds at best, 10-15 seconds at most. If the payload is small, 10 calls is no problem. Otherwise give the user an option to limit the amount of data.

@dvikan
Copy link
Contributor

dvikan commented Mar 22, 2022

@captn3m0 Is this PR still relevant?

@captn3m0 captn3m0 mentioned this pull request Mar 25, 2022
@dvikan
Copy link
Contributor

dvikan commented Mar 29, 2022

@captn3m0 Any update on this? Let us know when it's done.

@github-actions
Copy link

github-actions bot commented Apr 4, 2022

Pull request artifacts

file last change
BookMyShow-pr-context1 2022-04-14, 09:45:27

@captn3m0
Copy link
Contributor Author

captn3m0 commented Apr 4, 2022

@dvikan This should be good to review/merge now. I validated everything as working, made a few small fixes (links were breaking, and online events were overwhelming physical ones - added a filter for that). Resolved prior comments from @logmanoriginal as well, so content looks much better.

@Bockiii
Copy link
Contributor

Bockiii commented Apr 4, 2022

Hi @captn3m0

Can you:

  • Sort by date before you create the feed? See here
  • Limit the returned items to something sensible? In your example are events from 2018. I doubt that they will add more than 10 events in 6 hours

@dvikan
Copy link
Contributor

dvikan commented Apr 4, 2022

I'm getting Notice: Undefined index: arrVenues in /home/d/me/sources/rss-bridge/bridges/BookMyShowBridge.php on line 1314.
Please enable errors. Can do that with touch DEBUG.

Some personal preferences: use short array syntax. Move collectData method to the top so the class can be read top down.

A side note: the frontpage is getting quite large and this bridge does not help. Adds a lot of extra html to a page that already has 4000 lines. Something to think about. Maybe later.

captn3m0 and others added 7 commits April 14, 2022 13:30
Supports the following:

- Plays and Event listings across all BMS supported cities
- Venue Directions
- Multiple Venues
- Proper Image attachments
- SuperStar Exclusive Listings

Currently does not support:

- Events spread across multiple dates and cities.
- Multiple dates are a hard problem in general, since the event page
  on BMS shows all dates across all cities, and then a second page
  tells you whether what dates it is for your city.
- jsonGenre metadata tags, which require a bit more nuance and parsing
- Movies
- Shows all venues in a table
- Adds a new filter for online events
@captn3m0
Copy link
Contributor Author

  • Sorted feed by date.
  • Limited the feed to 15 items
  • Switched to short array syntax (We still supported PHP 5.6 when I created this PR, it's been a while)

A side note: the frontpage is getting quite large and this bridge does not help.

This depends on the number of bridges you enable right?

@Bockiii
Copy link
Contributor

Bockiii commented Apr 15, 2022

Great work, thanks!

@Bockiii Bockiii merged commit 2be613e into RSS-Bridge:master Apr 15, 2022
@captn3m0 captn3m0 deleted the bookmyshow branch April 16, 2022 08:04
Kwbmm pushed a commit to Kwbmm/rss-bridge that referenced this pull request Jun 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants