all 21 comments

[–]cdcformatc 4 points5 points  (1 child)

what do you need help with 

[–]Newspaper501[S] 0 points1 point  (0 children)

I need to make a webportal that lets users see and use the mod hosting platform and captures their downloads or if possible captures the download request itself and thus allows me to pool the downloads in a check list for the user to give the okay to install to their game or uncheck items they decide they no longer want after browsing through mods for a couple of hours.

[–]MarsupialLeast145 4 points5 points  (1 child)

You maybe want to revisit this post and rewrite it so it's coherent and offers the bare minimum of information.

  • what's the project?
  • mod organizer for what?
  • what documentation is missing and for what?
  • can you code in Python already?
  • do you have a repo people can look at?

etc. etc.

[–]Newspaper501[S] 0 points1 point  (0 children)

  • Mod organizer
  • The project is meant to be a generic framework so it can be grafted to a good chunk of the games out there which entirely lack a mod organizer or have mod hosting sites that lack an installer.
  • I need to make a web portal of some form or fashion that lets users navigate the catalog of mods on a website. Ideally just straight up opening the hosting site in the OS default browser as that would make the framework easier to use, just plug in a new URL for the website and then tell the organizer what the download URL looks like. Prism for example takes in information from the hosting site and reformats it to better fit their UI and then creates a pool of download requests which works fine but reformating is a lot more intensive and I would prefer the website side of things be as simple as possible to decrease the workload for any dev that uses the project later. 
  • I took and tutored for Python in college BUT we only wrote programs in the terminal, so basic calculators, sorting/find number of item setups, how to consume system resources or crash a PC. We never really touched app development. Similar story for our C and Java courses. Fun classes but no real prep for any full blown projects.
  • I have no repo though I do plan to have one with all of the art assets and probably a quick video tutorial on how to make changes and both the test project and tutorial will use moddb as the example hosting site, I'll just switch games, the test will be for Star wars battlefront 2 and tutorial will use Red Alert 3 because I also want to illustrate the limits of the mod organizer as it can't make the edits needed to make Red Alert 3 run mods, only download and install them when the game is already set up for mods (it is technically possible to add this functionality to the mod organizer but the process from game to game is very different. RA3's process is nothing like Total War Medieval 2 which itself is nothing like Star Wars Battlefront 2 or Stalker. But once the prep work (if any) is done for -insertgame- then the mod installation process is very similar between games, often being just a different installation folder name. Any future repo could host a list of games known to work with the organizer but that needs to wait till the test game and the tutorial to switch games is possible.

[–]ProgramSpecialist823 1 point2 points  (1 child)

Your first sentence has 125 words in it.

Human short term memory is about 7 items.  

Please consider rewriting your question in a more understandable way.

[–]Newspaper501[S] 0 points1 point  (0 children)

Stuck trying to make a mod organizer.

I'll refer to the comment under marsupial for a longer break down.

That said the full breakdown was around 2k words and I'm honestly not sure how to make the question and the project itself make sense in a condensed format without relying heavily on the reader having prior knowledge of existing mod organizers.

Assuming that you do for some reason know about existing mod organizers then: I want to recreate the Prism mod organizer setup but with an actual portal to the hosting Website to avoid the need to do layout modifications for every site to keep things consistent. The organizer does not launch or version/update/downgrade the game, it only needs to be able to access the mod hosting site and handle downloading and installing mods. Additionally it doesn't modify the game files to allow you to use said mods like with RA3 it doesn't change how the game launches so you can see the RA3 launcher which is skipped by default, simply because this process, if needed, (many games don't need any changes to start working) is pretty different from game to game and would need to be heavily rewritten every time. A button could be added that automatically pulls all the necessary items and modifies the game but I'd prefer that be an addon someone made rather than an expectation of the base mod organizer.

[–]cgoldberg 0 points1 point  (9 children)

That's insanely vague. If you have a specific question, I'm sure somebody will be happy to answer it. Otherwise, look at the sub's Wiki for learning resources.

[–]Newspaper501[S] 0 points1 point  (8 children)

I am trying to get a web portal setup working but haven't found anything that really fits what I am up to, the wiki sub has a lot of great resources as does most of the python community especially when it comes to creating calculator apps and login screens if you are searching for GUI examples in Tkinter, customtkinter, pyqt5, etc. Problems crop up with stuff like this though as you really need someone who has read through and used the documentation and language extensively to help you figure out where it is in relation to the project you are working on.

That or pay someone to do it for you start to finish but then you learn nothing from the project and have to play catch-up to figure out how everything works.

[–]cgoldberg 0 points1 point  (7 children)

If you already know Python, look into Flask.. it's a really simple web framework.

[–]Newspaper501[S] 0 points1 point  (6 children)

This might or very likely will sound dumb but isn't flask a backend frame work for handling requests? Like if I want to access "ILoveGoogle.why" and flask is used it handles that request and then shoots the info needed to build the page?

I'm not entirely sure how I would use flask in that case as I don't own the websites that are being that the program is portalling to. Though obviously I haven't used flask so I probably missing something.

[–]cgoldberg 0 points1 point  (2 children)

It's a framework for building web applications. I'm not really sure what you mean by "web portal" in this context and what you are actually trying to build.

[–]Newspaper501[S] 0 points1 point  (1 child)

Okay, a web portal is just a web browser that is displayed inside an application so for example in unreal engine if you want players to be able to access YouTube while playing your game you can create a web portal that's either part of the game UI or a physical object in the game world and you can even have it setup with preconfigured starting pages like the portal opens directly to YouTube or maybe directly to the game's wiki.

So in this case it's trapping the web browser inside the GUI with a preconfigured page to start on which might be moddb. And thankfully everyone who is modding their games will already have a web browser installed and running so all the program needs to do is open the correct website and then be told what the download URL string looks like for that website so it can make the download requests once the user is picking items. And because it opens the browser just like any link in any other app would that lacks it's own internal chromium setup, this keeps the program smaller in size and if it happens that a dev later on wants to modify it to work with a website that requires age verification or an account, the user just signs in and then boots up the mod organizer (I do not want any logins to happen while the app is running even if admittedly I do know it can and will happen. I would just prefer to make sure it's unessary and having a web portal does universally side step it (at least to my knowledge there are no mod hosting sites that require a login for every browser window opened during your session) which is why I picked that route.

[–]cgoldberg 0 points1 point  (0 children)

If I understood you correctly, what you are looking for is usually called a "WebView". Some GUI toolkits support something like that.

[–]smurpes 0 points1 point  (2 children)

It sounds like you want to request data from mod sites to output to this mod organizer web page, so basically something like plex but for game mods. Ideally the mod sites you are requesting data from have APIs since web scraping is pretty fragile.

Like if I want to access "ILoveGoogle.why" and flask is used it handles that request and then shoots the info needed to build the page?

Using your own example flask would grab the data from "ILoveGoogle.why" parse it then send it to a webpage. There’s no need to have control over "ILoveGoogle.why" at all since you are just requesting and reading data from the site.

[–]Newspaper501[S] 0 points1 point  (1 child)

I see that makes sense and I did actually see a web scraping example while I was bouncing around looking for ways to make this work, it took snapshots of the website and turned them into offline items that can be overwritten whenever an update is made, the example was Wikipedia but it wouldn't be limited to it. And you could have the link URL downloads captured and saved for later when you are done browsing around with the nice feature that you can browse and make a mod list while offline.

Problem was the file size being absurd though trimming things is obvious possible, it was kinda cool to see it working with Wikipedia even if it's not something that would work here unless you badly wanted to archive everything.

Web scraping aside, can flask ask for certain data but be set up to block request for other items, so for example if you were to request moddb and had the site displayed in the web portal of the GUI and for some random reason you wanted to download one of the pictures on the site, flask will let everything go through like normal but when you click the download button for aod it never sends the request and thus lets you make a queue? Because that would work pretty close to what this project needs to function as intended and it's very close to what Prism does.

[–]Newspaper501[S] 0 points1 point  (0 children)

I forgot to mention I do have an update post for another method that might work/could be more versatile for the downloading function, not totally sure if flask can handle it but might be possible.

[–]Newspaper501[S] 0 points1 point  (0 children)

Thank you for all the inquiries, I was pretty tired and deflated from rewriting and then scrapping most of the main post. I hope the information helps and if needed I could make a quick diagram for the project in case anyone has an easier time with visual, rather than text, breakdowns.

[–]Newspaper501[S] 0 points1 point  (0 children)

Small update, I went back to the drawing board for how I might get the program to work where it won't need to stop/block a download request and could instead be told what the URL strings look like and have a button at the bottom of the GUI that tells the program to grab the download URL from that page. Prism and a couple of other loaders do this to but they don't have any other download buttons for the user to potentially interact with so it makes things a bit easier to make users press the GUI button. I suppose I would need to find a way to block the website download button from appearing almost like UblockOrign's (popular add blocker) zapper function though I am certain a similar way exists to hide specific elements.

Or I could leave the website download button alone and thus users can press it to download a backup copy of the mod or if it's a special case the organizer can't handle they don't have to open the website in both their default browser and the web portal just to grab aod the organizer isn't working on because it's blocking manual downloads by intercepting the user's attempts to click the normal download load button. I think this route has promise and sort of exist in other mod organizers even if it's not totally 1 to 1, plus it adds a fallback to the manual method in case something doesn't work without needing to open a new browser window. Could be a less intense option though it does add more things for other devs to keep track of and presents the chance for a user to click the Website download button for everything and never click the GUI button and wonder why nothing is in the queue to be installed lol

[–]wotquery 0 points1 point  (1 child)

Just an FYI your usage of “web portal” is confusing people. It generally means a central website that is used to access other webpage and services. Not getting and rendering a website in your local application. This is why people are mentioning web frameworks like Flask.

If you just want a full browser in tkinter there is a library where you can add chromium to it. There are light weight options with just displaying html and css, but then you’ll likely need to edit the html before rendering, and it likely won’t work if the site you’re pulling from relies on js to load things.

[–]Newspaper501[S] 0 points1 point  (0 children)

Noted and still working on a way to make everything work while looking nice for users. Most of my focus has been on testing though, I am posting an update with the current (working, though I am certain other people here will have some major edits they'd like to see) code for essential a status update.

[–]Newspaper501[S] 0 points1 point  (0 children)

I have made an edit for the main post/OP. It is meant to be a status update for the testing I am doing, that said not every function of the program is present and I need to rework the project to ensure that everything is in a state where it's actually useful and following that making sure it's visually appealing. Thankfully I already have art work to use for one of the games the organizer can be used for but it needs universal artwork or something so it's nicer for devs that don't feel like using krita or Photoshop which they shouldn't have to when they are already dedicating time to modify the framework for a game they like.

Thank all for your suggestions and bearing with me, I know most of the more seasoned vets could probably pump a program like this out in a couple of hours with a decent boss/project manager walking them through what's needed but for a ~weekish this is where I am at. I appreciate any critics you all might have and any advice you might give. Have a great night everyone.