XF2 [8WR] XenRio 2 (Streams) PRO

XF2 [8WR] XenRio 2 (Streams) PRO [Paid] 2.1.1.9

No permission to buy ($40.00)
Ok then something is wrong here.

I've added Client ID in service settings as API key 1, and Client Secret as API key 2. Then adding games to my lists, and forcing a new scrape. Since I am allowed to save games with the Trovo service, that should mean it's able to connect to the API. Previously, when incorrect details on service was added, it used to send an error when trying to save a game using that service.

I added poker as new game.

1647169973604.webp

It has one live stream now.

1647170094640.webp

But none show up.

1647170008503.webp
 
Scraped perfectly fine for me... are you sure your scrape restrictions are correct?

View attachment 265874

Yes.
I scrape limit by games. But every game I've added using Twitch, has always shown up right after I've forced a scrape, never any problems with Twitch. And Trovo is supposed to support everything as Twitch (games scraping, embed etc), except the language scraping. My language scraping is blank because of this, in case that could cause problems with Trovo.

1647209143222.png

As you see in the image, I've added service Trovo and game "Poker". Trovo has found the game on their site and I was able to save the game without problem.
1647170094640-png.265865


If I intentionally try to misspell f.eks typing "Pokrr", then I get error:1647208963910.png
So that's working as intended with the connection to Trovo.

Right now there are two live poker streams, and none show up on my site.

Do you need some admin access to check? @Jaxel
 
Last edited:
What is the best method for adding a service that is not already provided?
Only 2 files are needed per service. The XML and the PHP in the _api and Api folders.

Yes.
I scrape limit by games. But every game I've added using Twitch, has always shown up right after I've forced a scrape, never any problems with Twitch. And Trovo is supposed to support everything as Twitch (games scraping, embed etc), except the language scraping. My language scraping is blank because of this, in case that could cause problems with Trovo.

View attachment 265880

As you see in the image, I've added service Trovo and game "Poker". Trovo has found the game on their site and I was able to save the game without problem.
1647170094640-png.265865


If I intentionally try to misspell f.eks typing "Pokrr", then I get error:View attachment 265879
So that's working as intended with the connection to Trovo.

Right now there are two live poker streams, and none show up on my site.

Do you need some admin access to check? @Jaxel

You'll have to give me access so I can look at it.
 
Ok then something is wrong here.

I've added Client ID in service settings as API key 1, and Client Secret as API key 2. Then adding games to my lists, and forcing a new scrape. Since I am allowed to save games with the Trovo service, that should mean it's able to connect to the API. Previously, when incorrect details on service was added, it used to send an error when trying to save a game using that service.

I added poker as new game.

View attachment 265863

It has one live stream now.

View attachment 265865

But none show up.

View attachment 265864

I figured it out. The way the addon is programmed, is that if a service (such as Trovo), returns an error during a scrape, it simply stops pinging that service and moves on to the next service. This is so that if a service goes down (like Twitch does constantly), it doesn't back up and slow down scraping for other services.

However, Trovo seems to operate different from other services. With other services, if a game is not being streamed by anyone, that service will simply return an empty list. However, with Trovo, if a game is not being streamed, rather than return an empty list, it returns a code 404 error. That error, triggered the escape on the service and told the addon to stop scraping Trovo. So since the first Trovo game you had was "Catan", it skipped all other games alphabetically after it. Which included Poker, Tabletop Simulator, Monopoly, etc...

I never caught this error, because I only tested the service on popular games that always have someone streaming, like League of Legends and Minecraft. I have edited the Trovo service so if it encounters a 404 error, rather than exit to the next service, it will instead continue to the next game.
 
Jaxel updated XF2 [8WR] XenRio 2 (Streams) PRO with a new update entry:

2.1.1.6 - CHANGELOG

  • Fixed an issue where Trovo would silently fail if it encountered a game without any active live streams.
  • Fixed an issue with Trovo embedding where a channel's username and it's nickname were in conflict.
  • You can now restrict Trovo listings by ISO language codes. Do keep in mind that unlike Twitch, this restriction is POST-scrape, rather than during-scrape. This means if you are restricting by games, Trovo will scrape the top 100 streams playing that game, in ANY language...

Read the rest of this update entry...
 
I figured it out. The way the addon is programmed, is that if a service (such as Trovo), returns an error during a scrape, it simply stops pinging that service and moves on to the next service. This is so that if a service goes down (like Twitch does constantly), it doesn't back up and slow down scraping for other services.

However, Trovo seems to operate different from other services. With other services, if a game is not being streamed by anyone, that service will simply return an empty list. However, with Trovo, if a game is not being streamed, rather than return an empty list, it returns a code 404 error. That error, triggered the escape on the service and told the addon to stop scraping Trovo. So since the first Trovo game you had was "Catan", it skipped all other games alphabetically after it. Which included Poker, Tabletop Simulator, Monopoly, etc...

I never caught this error, because I only tested the service on popular games that always have someone streaming, like League of Legends and Minecraft. I have edited the Trovo service so if it encounters a 404 error, rather than exit to the next service, it will instead continue to the next game.

Thanks Jaxel for fixing this. Nice that we got to the bottom of this =)

Is it possible for XenRio to use the interactive embed frame for Trovo? Just asking is all :)


Pls update your addons to php 8.x.

I run this addon with php 8.1 and it works fine.
 
Thanks Jaxel for fixing this. Nice that we got to the bottom of this =)

Is it possible for XenRio to use the interactive embed frame for Trovo? Just asking is all :)




I run this addon with php 8.1 and it works fine.
Not anymore, Trovo made it so your domain needs to be exclusively whitelisted for embedding to work now, and they NEVER get back to you even if you do apply for it.
 
Yeah trash company. Never responds, so I just removed them completely.
Wish I could, unfortunately a bunch of people within my community still streams there, so I just leave it as a redirect as per Jaxel's suggestion. Really miss Mixer, at least they responded to tickets and never did this kind of crap.
 
Wish I could, unfortunately a bunch of people within my community still streams there, so I just leave it as a redirect as per Jaxel's suggestion. Really miss Mixer, at least they responded to tickets and never did this kind of crap.
Until Microsoft bought Mixer and destroyed it.
 
@Jaxel Did Youtube change anything? a user tried to add their Youtube stream this is the URL they used:

It won't let me approve it, and I have an error in my admin panel now:

  • XF\PrintableException: Job XF:ApprovalQueueProcess: An error occurred while connecting with YouTube. Please try again later.
  • src/addons/EWR/Rio/Api/YouTube.php:39
  • Generated by: Unknown account
  • Apr 10, 2022 at 8:33 AM

Stack trace​

#0 [internal function]: EWR\Rio\Api\YouTube::dumpChannel(Object(EWR\Rio\Entity\Service), Array)
#1 src/addons/EWR/Rio/Repository/Channel.php(93): call_user_func_array(Array, Array)
#2 src/addons/EWR/Rio/ApprovalQueue/Queue.php(23): EWR\Rio\Repository\Channel->scrapeChannel('https://youtube...', 769)
#3 [internal function]: EWR\Rio\ApprovalQueue\Queue->actionApprove(Object(EWR\Rio\Entity\Queue))
#4 src/XF/ApprovalQueue/AbstractHandler.php(120): call_user_func_array(Array, Array)
#5 src/XF/Job/ApprovalQueueProcess.php(67): XF\ApprovalQueue\AbstractHandler->performAction('approve', Object(EWR\Rio\Entity\Queue))
#6 src/XF.php(613): XF\Job\ApprovalQueueProcess->XF\Job\{closure}()
#7 src/XF/Job/ApprovalQueueProcess.php(68): XF::asVisitor(Object(Siropu\ReferralSystem\XF\Entity\User), Object(Closure))
#8 src/XF/Job/Manager.php(258): XF\Job\ApprovalQueueProcess->run(8)
#9 src/XF/Job/Manager.php(200): XF\Job\Manager->runJobInternal(Array, 8)
#10 src/XF/Job/Manager.php(116): XF\Job\Manager->runJobEntry(Array, 8)
#11 job.php(22): XF\Job\Manager->runByIds(Array, 8)
#12 {main}

Request state​

array(4) {
["url"] => string(8) "/job.php"
["referrer"] => string(43) "https://www.revillution.net/approval-queue/"
["_GET"] => array(0) {
}
["_POST"] => array(5) {
["only_ids"] => array(1) {
[0] => string(5) "36259"
}
["_xfRequestUri"] => string(16) "/approval-queue/"
["_xfWithData"] => string(1) "1"
["_xfToken"] => string(8) "********"
["_xfResponseType"] => string(4) "json"
}
}

.
Undefinied offset 1
  • ErrorException: [E_NOTICE] Undefined offset: 1
  • src/addons/EWR/Rio/Api/YouTube.php:32
  • Generated by: Smokey
  • Apr 10, 2022 at 8:33 AM

Stack trace​

#0 src/addons/EWR/Rio/Api/YouTube.php(32): XF::handlePhpError(8, '[E_NOTICE] Unde...', '/home/revillu2/...', 32, Array)
#1 [internal function]: EWR\Rio\Api\YouTube::dumpChannel(Object(EWR\Rio\Entity\Service), Array)
#2 src/addons/EWR/Rio/Repository/Channel.php(93): call_user_func_array(Array, Array)
#3 src/addons/EWR/Rio/ApprovalQueue/Queue.php(23): EWR\Rio\Repository\Channel->scrapeChannel('https://youtube...', 769)
#4 [internal function]: EWR\Rio\ApprovalQueue\Queue->actionApprove(Object(EWR\Rio\Entity\Queue))
#5 src/XF/ApprovalQueue/AbstractHandler.php(120): call_user_func_array(Array, Array)
#6 src/XF/Job/ApprovalQueueProcess.php(67): XF\ApprovalQueue\AbstractHandler->performAction('approve', Object(EWR\Rio\Entity\Queue))
#7 src/XF.php(613): XF\Job\ApprovalQueueProcess->XF\Job\{closure}()
#8 src/XF/Job/ApprovalQueueProcess.php(68): XF::asVisitor(Object(Siropu\ReferralSystem\XF\Entity\User), Object(Closure))
#9 src/XF/Job/Manager.php(258): XF\Job\ApprovalQueueProcess->run(8)
#10 src/XF/Job/Manager.php(200): XF\Job\Manager->runJobInternal(Array, 8)
#11 src/XF/Job/Manager.php(116): XF\Job\Manager->runJobEntry(Array, 8)
#12 job.php(22): XF\Job\Manager->runByIds(Array, 8)
#13 {main}

Request state​

array(4) {
["url"] => string(8) "/job.php"
["referrer"] => string(43) "https://www.revillution.net/approval-queue/"
["_GET"] => array(0) {
}
["_POST"] => array(5) {
["only_ids"] => array(1) {
[0] => string(5) "36259"
}
["_xfRequestUri"] => string(16) "/approval-queue/"
["_xfWithData"] => string(1) "1"
["_xfToken"] => string(8) "********"
["_xfResponseType"] => string(4) "json"
}
}
[/quote]




Any help in fixing this would be appreciated.
 
No. YouTube does not offer an API anymore. So streams have to be "guessed" based on the HTML on their page. If they change their HTML, the system breaks.
 
Is there any way to have this scrape by not only Game played but title? Rather than setting each individual streaming into a list, i would like to have any streamer of a specific game (Such as in twitch) and then filter those streamers by a given word/phrase in their stream title.
 
Top Bottom