Coder Social home page Coder Social logo

ngld / old-knossos Goto Github PK

View Code? Open in Web Editor NEW
58.0 58.0 23.0 9.13 MB

A mod launcher/installer for FSO

Home Page: https://fsnebula.org/knossos/

License: Apache License 2.0

Python 64.05% CSS 5.16% JavaScript 2.52% HTML 0.12% Shell 2.76% Batchfile 0.47% NSIS 1.20% Makefile 0.05% Vue 23.47% Dockerfile 0.21%

old-knossos's People

Contributors

asarium avatar chief1983 avatar dependabot[bot] avatar eatthepath avatar goober5000 avatar hellzed avatar jg18 avatar kiloku avatar mjnmixael avatar ngld avatar niffiwan avatar notimaginative avatar phantomhoover avatar theforce172 avatar thematthew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

old-knossos's Issues

Issues with multiple videos

  1. There's no way to cycle between videos for mods with multiple YouTube links (e.g. ST:R)
  2. There doesn't seem to be any way to get out of the video screen without exiting Knossos. Escape doesn't work.

Add a version check

The script should at least be able to tell the user that there's a new version available. Maybe it should update itself?

Duplicate Mod Issues

So, say I create a mod called "test" locally and there's also a mod "test" on Nebula. I mean.. who would be so lazy as to name a mod "test" anyway?! But say they also happen to have the same lazy mod ID. (What a coincidence!) Knossos will check the local mod against the Nebula version, even if the local one was just created.

My Test mod was 1.0.0. The Nebula version is 2.1.1. Amazing! My brand new mod already has an update available!

Additionally, now I can't delete my local mod, because I don't have permission to delete the Nebula version of "Test".

I realize this may be a niche case, but something we should think about. I'm thinking a system should be implemented where knossos either askes Nebula if there's duplicates before creating a mod locally OR chooses the ModID automatically, forcing it to just be randomly numerical or hex or something.

Implement new First Run guide

Using this basic template, implement the First Run guide to help the setup process be more smooth.

https://imgur.com/a/bA12G

Other notes are to add the option to login at the last step (Suit Up Pilot) and to make sure OpenAL is installed.

Allow mod source ordering

Allow the user to change the order of mod sources in the Settings tab. The mods in a lower source replace the mod in a higher source.

For example:

  • Source A
  • Source B

If A has a mod Foobar and B has the an entry with the same name, only B's Foobar is shown. This 'priority' only applies when a name appears in mulitple sources.

Starting an install consistency

When starting an Install, Knossos forces you to the Home tab. However the current order of tasks means that the mod you are installing does not show in the Home tab which means you can't see it's progress unless you go back to Explore.

My preferred way to resolve this is to just keep the user on the Explore tab after an install has begun. Assuming that they can install multiple mods simultaneously, this has the added benefit of keeping them right there to install a few more.

Implement Scrolling Announcements

Add the announcements from HLP and/or updates for mods as scrolling text in bar next to the Search field. We'll need to think about how to limit the length of the announcements text from HLP.

Update links can link directly to those mods in Knossos.

BBCode Alignment

Seems light [right] and [center] aren't working for our BBCode setup. Probably a conflict with CSS

Implement mod changelogs

We'll add a new BBCode field called Changelog or Changes to mod releases.
The contents can be seen by opening the mod's detail page and clicking the new "Changelog" button.

When updating a mod, the contents will also be displayed in a popup (if the field isn't empty).

Memory Leak?

It seems that there may be a memory leak when installing mods. I initially noticed this when my PC started paging and the resident memory set (as reported by top) for Knossos was at 2.5GB and growing during an install. A few simple tests suggests that during the install the entire set of mod files is read into memory and then not released. e.g. I did a test install of Blueplanet and the RSS went from ~100MB to 1GB and stayed there once the install was completed.

This could make the initial "install everything" approach for new users a bit interesting :)

Knossos not starting after a clean install

Hi!
I'm running Ubuntu 17.04, this is a clean install. I've installed the dependencies and build Knossos, however I'm running into the following error. I suspect some default keys are missing from the settings object:

[0/1] DEBUG
INFO:MainThread:launcher.main: Running Knossos 0.5.0-dev on PyQt5.
DEBUG:MainThread:launcher.main: Loading resources from /home/loris/Code/knossos/knossos/data/resources.rcc.
DEBUG:MainThread:launcher.main: Loading settings...
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "/home/loris/Code/knossos/knossos/__main__.py", line 123, in <module>
    launcher.main()
  File "/home/loris/Code/knossos/knossos/launcher.py", line 287, in main
    load_settings()
  File "/home/loris/Code/knossos/knossos/launcher.py", line 145, in load_settings
    if '#default' not in settings['cmdlines']:
KeyError: 'cmdlines'
FAILED: debug 
KN_BABEL=False KN_DEBUG=1 QTWEBENGINE_REMOTE_DEBUGGING=4006 /home/loris/Code/knossos/knossos-virt/bin/python /home/loris/Code/knossos/knossos/__main__.py
ninja: build stopped: subcommand failed.

Use libtorrent-rasterbar to implement P2P download of mod files

Knossos will ask the user if they want to enable torrents during the first launch.
This could save bandwidth on the mirrors and improve reliability during traffic spikes.

Each torrent will be automatically generated on the server and include web seeds to ensure that it will always be available (as long as we have mirrors, anyway).

This might require me to add a lot of new options to the settings view. (UL speed, listen port (random?), max DL speed, seed ratio, etc.)

Allow users to create desktop shortcuts for mods

This needs to be part of the integration module since it's platform-specific.
The desktop shortcuts should point to Knossos' executable (launcher.get_cmd()) and pass fso://run/<mod id> as the parameter.

InstallTask doesn't abort cleanly

The task needs to clean up any created files. This will most likely require changes to the Task class because that code needs to run in the background, too.

There seems to be a race-condition where sometimes the next step is triggered even though the task was cancelled.

Implement proper mod update

To update a mod all changed/added files should be downloaded and all old/leftover files should be removed.

The script can already download missing and changed files but it can't detect leftovers...

Weird behaviour on Ubuntu

I've noticed some weird issues on Ubuntu which may or may not be a result of my testing setup.

  • The settings never load because knossos --deviceinfo hangs (so far I can only tell that the issue is in either SDL2 or OpenAL code).
  • The welcome screen doesn't show up reliably. Sometimes you see the home tab before the welcome screen shows up. (Obviously only applies to the first run)

Some things I noticed

  1. "You need to select a directoy where Knossos will store the game data (models, textures, etc.)." -- first, "directory" is misspelled; second, a sensible default should be provided. Maybe %APPDATA%\knossos. I used My Documents\knossos for the time being.

  2. The installation program said it would create an icon on my desktop. It created an icon for the administrator user, but it didn't create an icon for my standard user. (When I launched it, it displayed the UAC dialog.) Neither did it create a start menu icon or group for my standard user.

  3. If there are no mods currently found, I suggest starting on the "Explore" tab instead of the "Home" tab.

  4. I was browsing through the Settings tab, when a mod download completed and it yanked me back to the Explore tab. Suggest not overriding the tab like that.

Make Knossos portable

Knossos should be able to operate from an USB stick. Recent FSO builds implement a portable mode which make this possible.

The stability filter is broken

The mod tiles aren't filtered and due to an error in process_pkg_selection several FSO versions can be returned at the same time.

I also need to investigate if the FSO build selection works properly once this is fixed.

Make all FSO settings mod specific

The FSO specific settings should be moved from the SettingsWindow to ModSettingsWindow.
Afterwards a new button "Game settings" (?) will be added which allows the user to set defaults for most (/ all?) options.

Important Change: This will make the setting fs2_bin mod specific. The default for needs to be derived from the mod's dependencies. This will allow mods to transparently use custom builds.

Two issues with updating dependency metadata

These both happen when I click Save somewhere (both Save buttons if necessary), and later come back to it:

a) when I deselect optional packages for a mod dependency, it reverts to having of them are selected again
b) when I set the mod dependency to a previous version, it reverts to "newest"

I ran into these when configuring dependencies for FSPort MediaVPs and ST:R.

PPA dependencies incomplete

On Mint 17 using the PPA, I needed to install all the recommend packages in order for knossos to run correctly. i.e.

$ sudo apt-get install knossos
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libsdl2-2.0-0 p7zip-full python3-semantic-version
Suggested packages:
p7zip-rar
Recommended packages:
python3-pyside.qtgui python3-pyside.qtnetwork python3-pyside.qtwebkit
The following NEW packages will be installed:
knossos libsdl2-2.0-0 p7zip-full python3-semantic-version
(etc)

Then

sudo apt-get install python3-pyside.qtgui python3-pyside.qtnetwork python3-pyside.qtwebkit

I'd thought that if these are required to run then it should pull them all in automatically?

Unable to get knossos functioning with make run

I don't have much to go on. At first I was fighting missing dependencies, then when I stopped getting the message that indicated I was missing dev packages, I got the following instead:

Collecting resources...
Packing resources...
Compiling ui/settings_audio.ui...
Error: No such file or directory: "knossos/ui/settings_audio.py"
Makefile:29: recipe for target 'knossos/ui/settings_audio.py' failed
make: *** [knossos/ui/settings_audio.py] Error 1

Platform is OpenSuSE 13.2 64-bit, with a number of python packages including the PySide stuff and the python Qt4 and Qt5 bindings. along with some of the 32-bit versions installed too.

Not sure what else to do. I get no stack trace this way, and if I manually run the command in the Makefile that's under the target of run, python - m knossos, I get a totally different failure with a stack trace (see below) that claims I have no copy of the semantic_version module installed even though I did a pip install of that module as well as rq.

DEBUG:MainThread:qt.<module>: Using Qt API PySide.
Traceback (most recent call last):
  File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/jsbelanger/knossos/knossos/__main__.py", line 23, in <module>
    from knossos import launcher
  File "knossos/launcher.py", line 59, in <module>
    from . import util
  File "knossos/util.py", line 28, in <module>
    import semantic_version
ImportError: No module named semantic_version

Hope you folks can make some sense of this. I've got nothing.

Updater launches Knossos as admin

When starting Knossos for the first time, if you select a directory that doesn't exist, Knossos will not ask if you want to create it.

On a related note, if you start Knossos from the updater, it will launch it under the administrator user, not the current user, which will make Knossos think you are starting it for the first time.

Retry a failed upload immediately

A failed upload should be retried if the cause was a connection error. Resuming might be nice but would require changes to Flask and Werkzeug or uploading chunks.

The latter sounds simpler to implement but requires additional server code to track and merge the chunks.

Help unavailable

This is minor; but clicking on Settings -> Help results in the following being output to STDOUT

ERROR:MainThread:windows.show_tab: SettingsWindow: Tab "Help" not found!

On Mint 17, installed from PPA, using python3

Scroll needs reset when switching pages

The best way to see this issue is to start on the Explore tab. Scroll down to find the mod "Warzone". Click Details for Warzone. you'll start at the bottom of the details page.

Whenever we switch tabs or pages, we should bring the user back to the top of the page.

FSO crashes during launch

The used cmdline_fso.cfg:

-mod mediavps_3612 -missile_lighting -3dshockwave -post_process -fxaa -dualscanlines -orbradar -rearm_timer -ship_choice_3d -weapon_choice_3d -3dwarp -warp_flash -snd_preload -fb_explosions -keyboard_layout "azerty" -ambient_factor 75 -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -ogl_spec 60

The actual error message:

Starting FS2 Open (/home/loris/FreeSpace 2 beta/fs2_open_3.7.1_llvm_BP) failed! (return code: -11)

Check wxLauncher (and possibly others) to see if I missed anything. This should be resolved by fixing run_fs2 once I find out why FSO crashes.

Implement tags

We should allow mod authors to add tags to their mods to make sure their mods are found with relevant search terms even if those don't show up in the mod title.

The simplest solution would be a simple text field which would be checked in addition to the mod title while searching. If we want to display tags or allow filtering by tags or something like that, we'll need a better solution.

Modifying an installed mod issues

While testing some things I removed some Option packages from the MediaVPs in the modify tab on a mod that uses MediaVPs as a dependency. Knossos didn't actually delete these packages. However, I cannot launch MediaVPs with these packages anymore, as expected.

However, I cannot reinstall them using the modify tab on MediaVPs in Home or Explore, either.

Last Updated for Devs

Last Updated is not updated for released mods on the dev's computer locally. It is updated on nebula and on the Explore tab.

Either Dev mods should have Last Updated added upon upload or a more fancy option is have Knossos display the last updated date for the most recent file chnage in the mod folder. The latter is unnecessary, probably difficult, but also cool.

Prevent the user from closing the main window while background tasks are running

  • It should be possible to cancel most long-running tasks. Make sure the tasks actually support it.
  • If the user tries to close the window while background tasks are running they should either be allowed to cancel (if possible) or get an error message.
  • Even after cancelling we still need to wait for the tasks to finish before we can exit.
  • Add a cancel button to the progress popup where appropriate.

Scan for exisitng FS2 installations and copy the retail files

Known paths:

  • C:\GOG Games\Freespace 2

What's the Steam path? C:\Program Files (x86)\Steam\SteamApps\common\Freespace 2?
Where does GOG Galaxy install FS2, is it the same folder the GOG Installer uses?


When first launched, Knossos should check the known paths and if any of them contain retail files, a new button "Use your FS2 installation (pick this if you're not sure which one you need)" should show up as the first option.
Upon clicking it, a dialog will appear asking the user where everything should be installed to (the future content directory). A sane default would make sense here but I'm not sure what such a default would look like since the known installation paths seem to be all over the place.

Entire mod reuploaded even if only one file changes

I noticed that misc.vp in Scroll was corrupt, so I created version 1.0.9 (using copy, because rename still caused a critical error, even when I closed all the files). I moved all the identical files from 1.0.0 into 1.0.9 and then replaced misc.vp with the proper uncorrupted file. Unfortunately, Knossos is re-uploading every single file, and every single package, for version 1.0.9.

Prevent empty uploads

If during an upload a package is empty, abort the upload and display an error to prevent broken releases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.