Coder Social home page Coder Social logo

mahadana / pujas.live Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 11.46 MB

Livestreams and meditation groups in the Thai Forest tradition

Home Page: https://pujas.live/

License: Creative Commons Zero v1.0 Universal

Shell 4.67% Dockerfile 1.13% JavaScript 93.10% HTML 1.10%
livestream monastic youtube chanting

pujas.live's People

Contributors

jeffzira avatar vjagaro avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

pujas.live's Issues

React-ify chanting

will want to make a scroll speed control in some form or another.

Also, might as well consider having a "default audio file" associated with each chant so if you want, you can have the audio play as it scrolls

Add contextual routing for modals

When playing a video or browsing a list of recordings, the modal state does not modify the browser history so the back/forward buttons do not work as expected.

We would like to add contextual routes for these modals.

Highlighted recordings

We would like to add a feature where specific recordings can be selected for a channel and would be made public in the home page "Livestreams" list.

Worker failure check

Add a worker check functionality that will send an email if exceptions persist for > 1 day.

Add latest recordings

We have a curated list of recordings but it would be good to surface the latest recordings captured by the automation.

Test sometimes fails

Occasionally one of the unit tests fails. See the following:

  ● channel › services.find(_sort=_activeStreams)

    expect(received).toEqual(expected) // deep equality

    - Expected  - 1
    + Received  + 1

      Array [
        "3",
    -   "1",
        "2",
    +   "1",
      ]

      52 |     expect(_.map(result, "title")).toEqual(["1", "2", "3"]);
      53 |     result = await strapi.services.channel.find({ _sort: "_activeStreams" });
    > 54 |     expect(_.map(result, "title")).toEqual(["3", "1", "2"]);
         |                                    ^
      55 | 
      56 |     done();
      57 |   });

      at Object.<anonymous> (tests/channel.strapi.js:54:36)

Channel temporarily removed activeStream

A channel removed its activeStream for a short period of time. At around 7:02pm, the assigned activeStream went to null, then recovered about five minutes later.

The following was found in the worker logs:

worker_1    | Pass 2: get YouTube video ids from channels
worker_1    |   channel id = 1, title = Abhayagiri Daily Evening Puja livestream
worker_1    |     ytChannelId = UCFAuQ5fmYYVv5_Dim0EQpVA
worker_1    |     videoId = _zQBnKs6fgI

Then...

worker_1    | Pass 2: get YouTube video ids from channels
worker_1    |   channel id = 1, title = Abhayagiri Daily Evening Puja livestream
worker_1    |     ytChannelId = UCFAuQ5fmYYVv5_Dim0EQpVA
worker_1    |     videoId = false
...
worker_1    | Pass 4: update channels with latest data
worker_1    |   channel id = 1, videoId = false, title = Abhayagiri Daily Evening Puja livestream
worker_1    |     removed activeStream from channel id = 1

Then, 3 minutes later...

worker_1    | Pass 2: get YouTube video ids from channels
worker_1    |   channel id = 1, title = Abhayagiri Daily Evening Puja livestream
worker_1    |     ytChannelId = UCFAuQ5fmYYVv5_Dim0EQpVA
worker_1    |     videoId = _zQBnKs6fgI

DRY-up shared code

Some code is shared between backend, frontend and worker. It would be good if there was a way to DRY-up this code.

Additional tracking events

We would like to capture plausible events for additional user actions:

  • opening a livestream
  • opening a chanting book

also capture the straight chanting book page

Simplify skip / curated recordings

Having overridable data in curated recordings adds unneeded complexity. Let's move skip from curated recordings to recordings table, remove optional title, description from curated recordings.

Surface logs

The worker log is buried in docker and it would be nice if this log (and other logs) could be made more publicly available.

Support >50 YouTube videos

Currently the worker job that updates the YouTube automated recordings and channels is limited to processing 50 YouTube videos. At some point (soon) this will result in breakage.

Auto-hide groups

We would like groups to automatically hide after some amount of time has past without any updates by the group owner.

One possibility is to add a worker task to check updated_at on a group. If it’s older than a threshold (e.g., 1 week), then send an email to the group owner, and ask them to do something (e.g., click on the edit group link), otherwise, the group will automatically hide after a second threshold (e.g., 2 weeks).

Clean up design of "recorded pujas" page

add "Recorded Pujas -- [monastery name]" in title
make image/row smaller
use image from recording instead of default image (or default to channel image if no image)

Preview upcoming stream

Currently information about the upcoming stream can only be viewed by going to the stream. We would like to add a preview of the upcoming title (just a few words with an ellipse), then if you click on that you get a popup with a fuller preview of the upcoming stream including thumbnail, title, description, and date/time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.