Text updates every 8 seconds

I’m trying to cycle through 50 different quotes so they each show up for a few seconds each. Aesthetically I have an image on top of the screen and a simple text component below. I can get the spreadsheet to renew the text as often as I’d like but the app only updates from the spreadsheet every few minutes. I’m a total hack at this and everything’s been trial and error up to this point but I cannot figure this one out. Any help would be greatly appreciated.

Are these quotes actual documents, or just blocks of text?
You talk about a spreadsheet - does that mean you’re using an external data source?
I’d recommend using native tables, then you don’t have sync delays to deal with.
You can probably do something with a bit of date/time math, but it would be useful to understand how your data is structured. Can you provide a screen shot or two?

Hi Derren,

Appreciate the speedy responses. I’m using google sheets as the data source. Each quote(block of text) is in its own cell. See attachments.(side note, I run a masters pool and try to entertain the participants a bit…this section is AI generated quips about the players) I haven’t used native tables yet but I’ll take a look now. I’m not at all a programmer so could definitely use some direction if the solution calls for some code.


Legend says that @Darren_Murphy responds in seconds if the post is related to golf.

For your case, I would try a custom component with an approach like this.

  • Create a JSON object in your ParBot table, with one for the quote, one for the player, maybe one for an image as well if you have it.
  • In your Users table, create a joined list targetting the JSON object above, joining them by a comma and a new line character.
  • In your Users table, add a template column with the template being this:
[
J
]

Replace the J by the result of the joined list column above. Now you have a valid JSON structure to work with.

Add a custom component to your screen, add the final JSON as data, with the variable name being quotesJSON and prompt it like this:

Here's a sample from my quotesJSON input:

{
"quote": "Quote here",
"player": "Player name here",
"image": "Image here"
}

Please create a card component that cycles through each element every 8 seconds.

Then adjust it as needed through more prompting. You might want to add the cycleDuration as a variable and change it from 8 to whatever number you want.

3 Likes