Kodi Community Forum

Full Version: Advanced Emulator Launcher - Multi-emulator frontend for Kodi
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(2021-08-11, 14:25)Wintermute0110 Wrote: [ -> ]
(2021-08-10, 16:15)tillaz87 Wrote: [ -> ]Anyone have any idea where the default age rating strings are? Or if they can be changed to numeric only like 12+ 18+ etc.

I've been modding the sauna view and was wanting to change this so it all aligns correct

Not sure if they are part of AEL, the skin, or Kodi.

Image

AEL uses ESRB in its internal database, and makes that property available to listitems that you can use in your skin. The way you use this property in the skin is up to you, for example, you can render an icon or render a text string, etc. For more details about ESRB and the age conversion check its Wikipedia page.

Any chance you can give me an example how I can render an age image based off the ESRB rather than text string in EAL I'm still learning skining with Kodi basically I'm just looking at the code in other themes.

Or if you could show how I can just display 18+ etc just numeric would be a big help I've googled about and can't really see anything on it.

I've wanting it to show like this below I can edit the nfo files manually but was hoping of a way to scrap it all at once

Image
(2021-08-11, 20:05)tillaz87 Wrote: [ -> ]Any chance you can give me an example how I can render an age image based off the ESRB rather than text string in EAL I'm still learning skining with Kodi basically I'm just looking at the code in other themes.

Or if you could show how I can just display 18+ etc just numeric would be a big help I've googled about and can't really see anything on it.

I've wanting it to show like this below I can edit the nfo files manually but was hoping of a way to scrap it all at once

Image

I am neither an expert on skinning so don't trust on what I say completely.

First you need to check the SKINNING.md file in AEL source code to learn the infolabels AEL creates. From there, AEL creates a property named esrb and the contents are the values of the database field m_esrb, which has a set of default values.

Then, I would create a variable like this example in Estuary AEL

xml:

<variable name="AEL_ESRB_Status_text">
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],RP (Rating Pending))">[COLOR white]OK[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),EC (Early Childhood))">[COLOR orange]U ROM[/COLOR]</value>
...
</variable>

Note that in the previous example the variable will return a colored text string, however instead of a text string you can point to an image with an icon.
(2021-08-12, 14:03)Wintermute0110 Wrote: [ -> ]
(2021-08-11, 20:05)tillaz87 Wrote: [ -> ]Any chance you can give me an example how I can render an age image based off the ESRB rather than text string in EAL I'm still learning skining with Kodi basically I'm just looking at the code in other themes.

Or if you could show how I can just display 18+ etc just numeric would be a big help I've googled about and can't really see anything on it.

I've wanting it to show like this below I can edit the nfo files manually but was hoping of a way to scrap it all at once

Image

I am neither an expert on skinning so don't trust on what I say completely.

First you need to check the SKINNING.md file in AEL source code to learn the infolabels AEL creates. From there, AEL creates a property named esrb and the contents are the values of the database field m_esrb, which has a set of default values.

Then, I would create a variable like this example in Estuary AEL

xml:

<variable name="AEL_ESRB_Status_text">
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],RP (Rating Pending))">[COLOR white]OK[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),EC (Early Childhood))">[COLOR orange]U ROM[/COLOR]</value>
...
</variable>

Note that in the previous example the variable will return a colored text string, however instead of a text string you can point to an image with an icon.

Thank you, this is big help I get what I need to do now 👍
I'm sorry if this has been answered elsewhere in the thread but if so I wasn't able to find it:

I have an AEL setup that I point to a bunch of snapshots for games I have. By default AEL maps Boxfronts, not Snaps to the default image shown. I tried changing the variables in the modification of Lyrebird I've been working on to use Snaps instead of Boxfronts but that breaks the images I use to display the launcher icons.

Is there a way to make AEL universally use Snaps instead of Boxfronts? I'm just stuffing Snaps into the Boxfronts folder for the time being but a proper way of handling it would be greatly appreciated.

(Also, thank you for your work on this plugin: It's been amazing to use).
(2021-08-12, 14:03)Wintermute0110 Wrote: [ -> ]
(2021-08-11, 20:05)tillaz87 Wrote: [ -> ]Any chance you can give me an example how I can render an age image based off the ESRB rather than text string in EAL I'm still learning skining with Kodi basically I'm just looking at the code in other themes.

Or if you could show how I can just display 18+ etc just numeric would be a big help I've googled about and can't really see anything on it.

I've wanting it to show like this below I can edit the nfo files manually but was hoping of a way to scrap it all at once

Image

I am neither an expert on skinning so don't trust on what I say completely.

First you need to check the SKINNING.md file in AEL source code to learn the infolabels AEL creates. From there, AEL creates a property named esrb and the contents are the values of the database field m_esrb, which has a set of default values.

Then, I would create a variable like this example in Estuary AEL

xml:

<variable name="AEL_ESRB_Status_text">
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],RP (Rating Pending))">[COLOR white]OK[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),EC (Early Childhood))">[COLOR orange]U ROM[/COLOR]</value>
...
</variable>

Note that in the previous example the variable will return a colored text string, however instead of a text string you can point to an image with an icon.

I have added this to the variables.xml that is included in the layibird skin.


xml:

<variable name="Custom_Age_Rating_AEL">

<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],RP (Rating Pending))">[COLOR white]?[/COLOR]</value>

<value condition="String.IsEqual($INFO[ListItem.Property(esrb),EC (Early Childhood))">[COLOR green]3+[/COLOR]</value>


<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],E (Everyone))">[COLOR green]7+[/COLOR]</value>

<value condition="String.IsEqual($INFO[ListItem.Property(esrb),E10+ (Everyone 10+))">[COLOR green]10+[/COLOR]</value>

<value condition="String.IsEqual($INFO[ListItem.Property(esrb),T (Teen))">[COLOR orange]12+[/COLOR]</value>


<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],M (Mature))">[COLOR orange]16+[/COLOR]</value>

<value condition="String.IsEqual($INFO[ListItem.Property(esrb),A0 (Adults Only))">[COLOR red]18+[/COLOR]</value>

</variable>]

But what do I add to my control for this to work? I've tried a few things without luck after reading the Kodi skinning wiki.

Here is my control for the esrb what do I add to make this work?

xml:

<control type="label">
<left>1000</left>
<top>560</top>
<width>720</width>
<height>55</height>
<textcolor>FFFFFFFF</textcolor>
<font>font16</font>
<label>$INFO[ListItem.Year, • Released ,]$INFO[ListItem.Property(nplayers), • , Player]$INFO[ListItem.Property(esrb), • Age ,] •</label>
<scroll>false</scroll>
</control>]
(2021-08-12, 21:35)tillaz87 Wrote: [ -> ]I have added this to the variables.xml that is included in the layibird skin.

xml:

<variable name="Custom_Age_Rating_AEL">
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],RP (Rating Pending))">[COLOR white]?[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),EC (Early Childhood))">[COLOR green]3+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],E (Everyone))">[COLOR green]7+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),E10+ (Everyone 10+))">[COLOR green]10+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),T (Teen))">[COLOR orange]12+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],M (Mature))">[COLOR orange]16+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),A0 (Adults Only))">[COLOR red]18+[/COLOR]</value>
</variable>]

But what do I add to my control for this to work? I've tried a few things without luck after reading the Kodi skinning wiki.

Here is my control for the esrb what do I add to make this work?

xml:

<control type="label">
<left>1000</left>
<top>560</top>
<width>720</width>
<height>55</height>
<textcolor>FFFFFFFF</textcolor>
<font>font16</font>
<label>$INFO[ListItem.Year, • Released ,]$INFO[ListItem.Property(nplayers), • , Player]$INFO[ListItem.Property(esrb), • Age ,] •</label>
<scroll>false</scroll>
</control>

You need to call the variable with $VAR[Custom_Age_Rating_AEL] and not the infolabel

xml:

<control type="label">
<left>1000</left>
<top>560</top>
<width>720</width>
<height>55</height>
<textcolor>FFFFFFFF</textcolor>
<font>font16</font>
<label>$INFO[ListItem.Year, • Released ,]$INFO[ListItem.Property(nplayers), • , Player]$VAR[Custom_Age_Rating_AEL], • Age ,] •</label>
<scroll>false</scroll>
</control>
(2021-08-13, 07:34)Wintermute0110 Wrote: [ -> ]
(2021-08-12, 21:35)tillaz87 Wrote: [ -> ]I have added this to the variables.xml that is included in the layibird skin.

xml:

<variable name="Custom_Age_Rating_AEL">
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],RP (Rating Pending))">[COLOR white]?[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),EC (Early Childhood))">[COLOR green]3+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],E (Everyone))">[COLOR green]7+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),E10+ (Everyone 10+))">[COLOR green]10+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),T (Teen))">[COLOR orange]12+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb)],M (Mature))">[COLOR orange]16+[/COLOR]</value>
<value condition="String.IsEqual($INFO[ListItem.Property(esrb),A0 (Adults Only))">[COLOR red]18+[/COLOR]</value>
</variable>]

But what do I add to my control for this to work? I've tried a few things without luck after reading the Kodi skinning wiki.

Here is my control for the esrb what do I add to make this work?

xml:

<control type="label">
<left>1000</left>
<top>560</top>
<width>720</width>
<height>55</height>
<textcolor>FFFFFFFF</textcolor>
<font>font16</font>
<label>$INFO[ListItem.Year, • Released ,]$INFO[ListItem.Property(nplayers), • , Player]$INFO[ListItem.Property(esrb), • Age ,] •</label>
<scroll>false</scroll>
</control>

You need to call the variable with $VAR[Custom_Age_Rating_AEL] and not the infolabel

xml:

<control type="label">
<left>1000</left>
<top>560</top>
<width>720</width>
<height>55</height>
<textcolor>FFFFFFFF</textcolor>
<font>font16</font>
<label>$INFO[ListItem.Year, • Released ,]$INFO[ListItem.Property(nplayers), • , Player]$VAR[Custom_Age_Rating_AEL], • Age ,] •</label>
<scroll>false</scroll>
</control>

Thanks I tried this first but it doesn't work it results in the age rating been empty any ideas? I'm lost
(2021-08-13, 13:02)tillaz87 Wrote: [ -> ]Thanks I tried this first but it doesn't work it results in the age rating been empty any ideas? I'm lost

Yes, go to the skinning subforum and ask there. My skinning knowledge is very limited.
(2021-08-13, 13:05)Wintermute0110 Wrote: [ -> ]
(2021-08-13, 13:02)tillaz87 Wrote: [ -> ]Thanks I tried this first but it doesn't work it results in the age rating been empty any ideas? I'm lost

Yes, go to the skinning subforum and ask there. My skinning knowledge is very limited.

Ok thanks
Curious, is there a way to mark specific files for exclusion from AEL directory scans? I have a LNK launcher set up for PC games, but I'm also synchronizing my ROM folder across multiple devices. The LNKs are stored with the ROMs, but the games themselves are not - some of those devices don't have much storage and some have wonky keyboards (thinking specifically of a GPD Win 3) so it doesn't really make sense to put, say, The Typing of the Dead on some of them. The LNKs synchronize across all the devices, but then every time I add a new LNK and scan the folder, it picks up LNKs for games that might not exist on the device (but do on others.) So I remove them from the list, but the next time I go to add a new LNK they show up again and I have to delete them again. If I delete the LNK itself the delete syncs across all the devices, so that isn't an option.

Setup is, basically...
D:\Non-Steam PC Games\ <-- contains the actual game files, not synced across devices
D:\Emulators\ROM Files\ROMs\LNKs\ <-- contains the shortcuts, scraped by AEL, synced across devices
I ended up editing the Python code itself to make it use Snaps by default instead of Boxfronts...

For newly created launchers:

disk_IO.py

'roms_default_icon' : 's_boxfront',

[REPLACE]
'roms_default_icon' : 's_snap',

To fix existing launchers...

categories.xml

<roms_default_icon>s_boxfront</roms_default_icon>

[REPLACE]
<roms_default_icon>s_boxfront</roms_default_icon>

This had been driving me nuts since I started using AEL a few months ago and it's nice to finally get around it.
All, didn't find this mentioned anywhere for the 0.10.1 (Matrix) vesion but for those simply launching a Windows app (me) and its on a UNC drive (a NAS in my case), it seems that there is an issue with a 'can't find the file' error in the logs. I did a few mins investigation (so take it for what it is) and corrected this very specific issue bye editing main.py. Seems like there was a 'hack/workaround' for UNC in Python 2 that might not apply for Python 3. So I simply remove lines 8371 to 8377 and voila, my UNC-based apps are launched again (in Windows). Lines are as follows (the same code seems to be elsewhere too):

                new_exec_list = list(exec_list)
                for i in range(len(exec_list)):
                    if exec_list[i][0] != '\\': continue
                    new_exec_list[i] = '\\' + exec_list
[i]                    log_debug('_run_process() (Windows) Before arg #{} = "{}"'.format(i, exec_list[i]))
                    log_debug('_run_process() (Windows) Now    arg #{} = "{}"'.format(i, new_exec_list[i]))
                exec_list = list(new_exec_list)
[/i][/i][/i][/i][/i]

And thanks for keeping this app going ... I launch a bunch of external apps and its absolutely critical to my use of Kodi. Now, I can upgrade to Matrix with this addressed!
Does anyone know how one obtains a mobygames API key? I followed the instructions on the website by contacting trays months ago but got no reply same with my post on the forums.

Would be really handy to scrape all assets from there.
Got my mobygames API key added it in AEL settings but it doesn't work says 401 error when I try to scrape?
I'm I supposed to add something to the == at the end of the API key? I can't get it to work at all