Wintermute0110 / plugin.program.AEL.dev

Emulator frontend and app launcher for Kodi
GNU General Public License v2.0
105 stars 36 forks source link

I converted the addon to Kodi 19 matrix #128

Closed radmedres closed 3 years ago

radmedres commented 3 years ago

Hi, if you want to publish the addon 'as is' for Kodi 19. I quick converted it to python3 and it is working on Matrix for me. Took me less then a hour. https://drive.google.com/file/d/1nLQX2FB0TjfXNzgi4Z9UIaqJRGYoCdkP/view?usp=sharing

radmedres commented 3 years ago

Disregard my previous mail. Most context menus are not working. But there are no errors in the log about this. I saw it only now because I add, remove and in general manage the JSON files externally with bash scripts as this workflow demands less work for me. I also use only the Application and ROM launchers which I integrated seamlessly in the main menu of Kodi with Estuary Mod 2. Which also runs on 'Matrix'. This all works as intended for me in Kodi 19. So I have no desire for the context menus and am a happy camper.

This is the second launcher I use which I depend on to have an integrated Media PC, and I'm grateful for this! But I don't want to migrate again, so I'm stripping all the unused functions (like virtual collections, most of the context menus and so on) and get a manageable add-on I can use and maintain myself for the coming years. I already reduce the main.py from 11000+ lines to less than 5000.

Thanks for the great add-on you put a lot of work in!

Wintermute0110 commented 3 years ago

Hi, thanks for the effort. Some random thoughts.

Converting AEL to Python 3 should not be too difficult. Since its inception I had Python 3 in mind so the code should be pretty much ready. However, AEL is a huge addon and testing all the functionality requires a lot of time. With this coronavirus thing developing in my free time is difficult but nonetheless the addon is not abandoned. I will release a Python 3 version ASAP.

AEL is designed to be functional so if you don't want the ROM collections, etc., you can disable those in the settings. However, it is true that "Add ROM to Collection" still show up in the context menu. It is a good idea to completely remove those entries from the CMs. I will change the AEL settings from "Display ROM Collections" to "Enable ROM Collections". If you disable them, they won't show up at all.

I understand you are a pro user but 90% of users are not like you and they need the context menus, the launcher creation wizards, etc. However, whatever the changes I made in the AEL database I will always make an easy way to upgrade. For example, currently you can dump all your categories/launchers configuration into a single XML and then import again. If necessary, I can easily create a function to dump the entire AEL database into JSON including ROM metadata and artwork location. So feel confident that whatever changes I made in AEL in the future you will be able to upgrade your setup.

Finally, the update process is taking long because some time ago a collaborator and myself started working on a refactored AEL version which is now into the master branch. This refactored version includes a lot of new features. The main decision now is to quickly port the current AEL version into Python 3 OR complete and port the current version in master. Still I have not decided what to do but I understand that many users want to upgrade to Kodi Matrix soon.

radmedres commented 3 years ago

Hi thanks for the very lengthy response, appreciate it. You made a great product and I love it very much. So, I'm looking forward to whatever comes in the future. Maybe I was premature to cover my bases and change the current add-on to something manageable by myself. To astonishment, it was effortless to make it run on python3 the context menus are the only thing that puzzle me at the moment. They don't generate an error, as if it is not triggering. I'm sure I will hop on when the new add-on emerges.

kalynn3282 commented 3 years ago

Hi, if you want to publish the addon 'as is' for Kodi 19. I quick converted it to python3 and it is working on Matrix for me. Took me less then a hour. https://drive.google.com/file/d/1nLQX2FB0TjfXNzgi4Z9UIaqJRGYoCdkP/view?usp=sharing

This link does not work?

I had assumed that the “master branch” build was going to be for Matrix (because seriously... it’s not even a prerelease anymore, it’s now the standard release from Kodi, so I have no idea why people would be putting time into Krypton/Leia when those platforms already have working, usable addons) but apparently I was wrong so I started going line by line through the program, converting while I had a debug running, only to find scraper issues, then come here and see this in the issues, but there’s no working link to it? I’d gladly look into the context issue, but if it’s not available then I need to go back to the original conversion as this is the only addon im aware of that doesn’t at the very least have a beta for matrix (I mean, there’s a reason why they release it so far in advance, so things like this don’t happen.

Example: Things like PseudoTV drop all support and scrub the internet to rid all Leia versions even when Matrix isn’t officially supported as a full release... yet now that it IS fully supported and I can finally make the jump and integrate all my offline and streamed PVR, there was never a version of AEL even after it was finally released ages later. So some developers go out of their way to remove support for older versions while others continue to develop only for older versions even when there was a new one Released on the horizon for over a year in advance before it became official, but in that entire time that addons branch was still being developed for the older platform?

FFS, let me guess, next is Python 4 and one major developer will drop all support for Matrix while others are still developing for Leia?

Can we just have one platform with a set of compatible addons? this is absolutely asinine that this much rewriting is happening.

Wintermute0110 commented 3 years ago

@kalynn3282 Kodi Matrix stable was tagged 26 ago. Not even a month have passed. I think is reasonable for devs to take some time upgrading all the stuff, specially given the fact that the transition from Leia to Matrix is the most complicated in more than 15 years of Kodi's history. Also, many people have Kodi installed in HTPC boxes connected to the TV, not desktop PCs, and are running old versions of Kodi because they work well as appliances, are happy with them and they don't want to bother with the upgrade process. Is there any feature in Matrix not present in Leia you desperately want?

Note that I do this in my free time, I have my real-life job and other real-life issues, AEL is not the only addon I maintain, and on top of that we are in the middle of the worst crisis the world have seen in 70 years which doesn't make things easier, as I have explained in the AEL thread in the Kodi forum several times. If you want to contribute to the Python 3 conversion your contributions will be welcomed, please change the default branch and not master.

notoco commented 3 years ago

@radmedres can you do reupload? maybe we can do something together ...

radmedres commented 3 years ago

Hi, I shared it again. It is working, it doesn't give any errors. Only the context menus are not working. That is why I removed it. https://drive.google.com/file/d/16xnsXmIM_7BZHyIBVbOWM4QnTDhbbN-Z/view?usp=sharing

notoco commented 3 years ago

https://github.com/xulek/plugin.program.AEL/tree/python3 my friend in the meantime began to correct and the menu works. I did not check scrapers

mechevarria commented 3 years ago

Scanning roms still errors out on that fork, but at least launching roms works. I would merge that code into a different branch so that users can at least use an existing install of AEL. Maybe highlight in red or whatever on the kodi forum that this is a patch until a fully functional python3 version is ready.

notoco commented 3 years ago

cool. I know a lot of things don't work there, but there is already a starting point.

Wintermute0110 commented 3 years ago

Thanks for your help guys. Tomorrow I will have some hours to work on the update. Stay tuned.

lgerbault commented 3 years ago

Thanks notoco for the base. I did end up making a bunch of small changes to your code source because I was getting a few errors. Most of them relating to the fact that strings are already UTF-8 in python 3, therefor not needing a decode function here and there.

My collection is now fully scraped, organized and artworked to death :)

Looking forward to wintermute's official version ^^

notoco commented 3 years ago

@lgerbault It's not my job. A colleague did it, quickly, I just tested it on my already existing collection. However, it will be easier for the author of the original. And we show how important it is

kalynn3282 commented 3 years ago

@kalynn3282 Kodi Matrix stable was tagged 26 ago. Not even a month have passed. I think is reasonable for devs to take some time upgrading all the stuff, specially given the fact that the transition from Leia to Matrix is the most complicated in more than 15 years of Kodi's history. Also, many people have Kodi installed in HTPC boxes connected to the TV, not desktop PCs, and are running old versions of Kodi because they work well as appliances, are happy with them and they don't want to bother with the upgrade process. Is there any feature in Matrix not present in Leia you desperately want?

Note that I do this in my free time, I have my real-life job and other real-life issues, AEL is not the only addon I maintain, and on top of that we are in the middle of the worst crisis the world have seen in 70 years which doesn't make things easier, as I have explained in the AEL thread in the Kodi forum several times. If you want to contribute to the Python 3 conversion your contributions will be welcomed, please change the default branch and not master.

That is all correct. And the transition was a big deal which is why Team Kodi made such a big deal about the transition, at which point most developers pushed their final Leia updates and then switched over the python 2 code to 3 to integrate with it.

For example, PseudoTVlive hasn’t had a Leia release in ages, as they were aware Leia plugins would not be supported on Matrix... so they didn’t see a reason to continue to release Leia updates and began working on a Matrix version as there was no point to keep pushing code for a platform that was expired.

As it’s a “game addon”, think about it like games on systems: When the Sega Saturn was announced as ending its lifespan in a year, current development on Saturn titles like “Sonic Adventure” were changed, as even though it could’ve been released at the tail end of it’s lifespan, they realized no one would be on that platform and began working on the transition to the Dreamcast’s architecture.

I had “developed” (added a few lines of code, wasn’t hard) the original “Seren with Downloads” fork (the the point where it pissed off the original developer of Seren so much that they banned me from the Addons4Kodi subreddit since they didn’t want a download button at all associated with their addon due to “piracy issues”... piracy issues in Seren... lol) and didn’t have much time to put into it so as soon as I heard python 3 was going to be the basis for Kodi Matrix, I STOPPED pushing out updates for Leia and focused on the platform that people would be using, as I don’t have time to put into legacy platforms that aren’t going to be the default download anymore. Thankfully they finally added a download function to the original vanilla Seren, so I don’t have to do anything anymore since they finally came to their senses about “piracy”

WarsTime commented 3 years ago

Hello everybody

Like @radmedres I migrated AEL to python3-Matrix. I just used automatic tool to migrate to Python 3 and I solved the bugs. It's totally functional for my use, including context menus and scrapper, at least The Game DB scrapper is OK. I did it before reading this posts, so I didn't reuse your work, sorry, my bad.

Only zip installation is available : https://github.com/WarsTime/plugin.program.AEL/archive/refs/heads/master-0.10.x-python3.zip

I precise, it's not an official version, it's just the current version modified for Kodi Matrix, with the sames features. And it's only while waiting for Wintermute0110's version. By the way, many thanks to him for his great work.

beruth35 commented 3 years ago

Hello everybody

Like @radmedres I migrated AEL to python3-Matrix. I just used automatic tool to migrate to Python 3 and I solved the bugs. It's totally functional for my use, including context menus and scrapper, at least The Game DB scrapper is OK. I did it before reading this posts, so I didn't reuse your work, sorry, my bad.

Only zip installation is available : https://github.com/WarsTime/plugin.program.AEL/archive/refs/heads/master-0.10.x-python3.zip

I precise, it's not an official version, it's just the current version modified for Kodi Matrix, with the sames features. And it's only while waiting for Wintermute0110's version. By the way, many thanks to him for his great work.

I had been waiting for it for a long time THANK YOU!!!

Ge082 commented 3 years ago

Hmmm, the addon works great on Matrix, with just one problem, text encoding seems broken and ScreenScraper alwars throws an 403 error

text

This is how it appears on the config file. "m_plot":"Bayonetta sur Wii U est un beat'em all au rythme effréné. L'héroïne éponyme est une sorcière aussi gracieuse que surpuissante. Elle lutte contre des horde d'ennemis angéliques de taille parfois impressionnante.",

(It can be problematic for some game titles like Pokémon which use a special character)

Worst thing is, if I update some metadata from AEL (without even modifying the plot), the characters duplicates for unknown reasons, in the pic bellow I just updated some artwok from AEL and plot text's special characters got destroyed in the process text2

It's a neat addon for Kodi though, very useful for some HTPC stuffs

Turns out, reencoding the Json file containing scraped data to ANSI solved the issue

Wintermute0110 commented 3 years ago

Guys,

I finished the port of the addon to Python 3. Branch release-0.9.x-python2 contains the Python 2 version for Krypton/Leia (future 0.9.10) and branch release-0.10.x-python3 has the Python 3 version for Kodi Matrix (future 0.10.0). You can see the set of differences between both branches here. Featurewise I didn't add anything new compared with 0.9.9, however I did a lot of small improvements here and there. You can see the differences between current 0.9.9 and branch release-0.9.x-python2 here.

To do the conversion I followed the approach I took with AML. Basically, most of the problems for the conversion come from the Kodi Python API so I created a set of functions to isolate the Kodi API from the rest of the addon.

I have tested it as much as possible but if you could do further testing it would be appreciated. I will also notify other users in the forum ASAP. If you find a bug please report here or create a new issue in Github. Bug reports in the forum are also OK.

Known issues: ScreenScraper does not work in Matrix because of a problem with the HTTPS certificate.

joaosagrath commented 3 years ago

YAY!!!!!!!!!!!! Do you have plans to implement multitags? Because in actual stage, we can only add one single genre for the games (action, RPG, Fighting). It would be very nice multi genres.

As an example, Soul Reaver for PS1 and Dreamcast have three genres on The Games DataBase: "Genre(s): Action | Adventure | Puzzle". (Source: https://thegamesdb.net/game.php?id=85142)

But in AEL, we can input only one in tag in NFO. If we Input all three: "Action, Adventure, Puzzle, it will show one genre named "Action, Adventure, Puzzle" on virtual launcher "Browse by Genre"

screenshot000

I´ve tried a lot of combinations to separate genres but none has effect.

Cheers

WarsTime commented 3 years ago

Thank you @Wintermute0110 ! First bug, when I scrap a front box from TheGamesDB : File "/home/server/.kodi/addons/plugin.program.advanced.emulator.launcher/resources/scrap.py", line 1318, in _scrap_CM_get_candidate search_term = keyboard.getData().strip().decode('utf-8') AttributeError: 'str' object has no attribute 'decode'

Stu1961 commented 3 years ago

So far I've only tried using this addon to add Windows PC games as Standalone launchers. I can add poster images, but not fanart. It shows correctly in the categories.xml for . It just does not display. I also cannot remove the red "(Std)" alongside the game names. Could be me? I seem to recall having an issue resolving this in the previous version too (but I did at some point).

Wintermute0110 commented 3 years ago

@WarsTime I think the issue is fixed now, have a look at issue #131

Wintermute0110 commented 3 years ago

@joaosagrath I prefer to not change the database now, the P2 to P3 transition is complicated enough. I have added you request to the TODO list in the changelog.txt file.

Wintermute0110 commented 3 years ago

@Stu1961 I tested the Standalone Launchers and they seem to work OK. To removed the (Std) tag open AEL addon settings, go to Display tab, and toggle "Display number of ROMs in launchers"

screenshot00000

Stu1961 commented 3 years ago

@Stu1961 I tested the Standalone Launchers and they seem to work OK. To removed the (Std) tag open AEL addon settings, go to Display tab, and toggle "Display number of ROMs in launchers"

Thank you, toggling "Display number of ROMs in launchers" worked perfectly.

I'm still having an issue with fanart displaying ... but it may be skin related (Aeon MQ 8) as I do see the selected fanart in "Panel" view, just not in any of the others (Right List, Low List, Poster, and/or Wide).

Wintermute0110 commented 3 years ago

I think it's time to close this issue. If you find problems in the betas please use the forum or open their own issue.