Giter Club home page Giter Club logo

yam's People

Contributors

code-factor avatar deepsource-autofix[bot] avatar deepsourcebot avatar dependabot[bot] avatar millenniumearl avatar moulik-deepsource avatar renovate-bot avatar renovate[bot] avatar samueleberlusconi avatar sato-isolated avatar silentnoodlemaster avatar snyk-bot avatar zyphrono 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

Watchers

 avatar  avatar

yam's Issues

path parsing options

Could we get some options on the path parsing when importing or scanning folders?
For example being able to set our own setup, users have different setups from the past and importing titles in bulk would be swell.

For example i have a Game-List controlled collection that has all the titles installed like: creator\title\version\game.exe
Having the ability to change the parsed path to say that scheme or any other scheme would open up for more usecases across the board.

Internal browser

Is your feature request related to a problem? Please describe.
To avoid searching for installed browsers, decide which one to use or prepare all the settings to let the user decide, it is necessary to add an internal browser for navigation

Each link opened within the application must be opened in this internal browser from which it is possible to export the link to open it in an external browser chosen by the user (for possible downloads).

Some useful libraries can be:

[2.5.5] Update message isn't formatted correctly.

Describe the bug
The messagebox at the update message is using the GitHub format. And isn't displaying these formats correctly.

To Reproduce
Steps to reproduce the behavior:

  1. Load up an older version of YAM that requires an update.
  2. Look at the popup

Expected behavior
The description should be formatted correctly.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10
  • App version: 2.5.5

Captcha

F95Zone now requires Captcha.. you need to add a way for us to solve the captcha in the program.

[2.5.6] Preview compression error

Describe the bug
Compressions of previews in WEBP/GIF is not performed due to an error

To Reproduce
Steps to reproduce the behavior:

Navigate the application pages

Expected behavior
Compression should be successful

Screenshots
Compression Error_censored

Desktop (please complete the following information):

  • OS: Win10
  • Version: 20H2 (19042.804)
  • App version: 2.5.6

Add from url fails

Describe the bug
adding game from url fails

log:

16:47:15.351 › Paginator prepared
16:47:15.353 › Paginator connected to DOM
16:47:15.355 › DOM loaded, initializing elements
16:47:15.461 › Elements initialized
16:47:15.461 › Preparing internal data
16:47:15.465 › Logging into F95Zone
16:47:15.516 › Online status: true
16:47:15.517 › Send API to main process for auth request
16:47:18.087 › Authentication result: AUTHENTICATED
16:47:18.093 › Retrieving user info from F95
16:47:18.094 › Loading paginator
undefined:1          Failed to load resource: the server responded with a status of 404 ()
main-renderer.js:179 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'id')
    at HTMLAnchorElement.onAddRemoteGame (main-renderer.js:179:59)
onAddRemoteGame @ main-renderer.js:179
16:48:27.955 › Error 11205: onAddRemoteGame -> window.F95.getGameDataFromURL (URL: https://f95zone.to/threads/maid-idle-v1-0-phracassado.120049/): Error: Error invoking remote method 'f95api': TypeError: Cannot read properties of undefined (reading 'match')
setTimeout (async)
consoleLog @ VM143 console.js:93
transport @ VM143 console.js:46
runTransport @ VM141 log.js:44
runTransports @ VM141 log.js:27
log @ VM141 log.js:21
module.exports.reportError @ VM197 error-manger.js:108
reportError @ VM115 main-preload.js:199
(anonymous) @ main-renderer.js:178
Promise.catch (async)
onAddRemoteGame @ main-renderer.js:178
16:48:27.956 › Unhandled promise rejection in main-renderer.js: Error: Cannot read properties of undefined (reading 'id')
setTimeout (async)
consoleLog @ VM143 console.js:93
transport @ VM143 console.js:46
runTransport @ VM141 log.js:44
runTransports @ VM141 log.js:27
log @ VM141 log.js:21
module.exports.manageUnhandledError @ VM197 error-manger.js:61
unhandlederror @ VM115 main-preload.js:340
window.onunhandledrejection @ main-renderer.js:27

To Reproduce
Steps to reproduce the behavior:

  1. Add game
  2. Paste url
  3. confirm

Screenshots
2022-07-28_16-43

Desktop:

  • OS: linux
  • Version: archlinux 5.19.14
  • App version: 2.6.3

Set default browser to open links or add an option to copy the link

Is your feature request related to a problem? Please describe.
I don't want to open a porn website in my default browser

Describe the solution you'd like
It would be awesome if I could choose which browser I want to use for this application, or an option to copy the link

Unhandle promise error in database

Describe the bug
Unhandled promise rejection in main-renderer.js: ENOENT: no such file or directory, rename 'C:\Users\USERNAME\AppData\Roaming\yam\appcache\threads.db~' -> 'C:\Users\USERNAME\AppData\Roaming\yam\appcache\threads.db'

To Reproduce
It happens randomly

Desktop:

  • OS: win32
  • Version: 10.0.19042
  • App version: 2.4.3

[Suggestion] Updater

Is your feature request related to a problem? Please describe.
It can be annoying sometimes when you're still on an oudated version.

Describe the solution you'd like
Create an update button in the settings page. So you still have a choice if you want to download/install the update or not.

Describe alternatives you've considered
An autoupdater maybe, but not that many people like autoupdaters.

[2.5.6] Unable to remove a game from the disk

Describe the bug
Unable to delete a game from disc, on console the error "EPERM: the directory is not empty"

To Reproduce
Steps to reproduce the behavior:

  1. Add a game from removable media
  2. Select "Remove" > "Also remove from disk"

Expected behavior
The game should be removed without errors

Desktop (please complete the following information):

  • App version: [e.g. 2.5.6]

Invalid time value

Describe the bug
image

First appearance: 2.4.3 after updating it from 2.3.1.

"Comics" and "Animations" categories

Is your feature request related to a problem? Please describe.
As far as I have experienced, there is no way to add anything from the "Comics" or "Animations" sections.

Describe the solution you'd like
Seperate sections for those categories, Due to the nature of them, they should not require a folder, but just a link to the post.
This should make it possible to add a post, and verify that you have seen the newest update. The should then be possible to "mark as read" so that they won't show a marker until next update.

Describe alternatives you've considered
I have tried using F95Watcher, which seems to do this without too much trouble. Although it would be nice to have this implemented in the same manager as the games.
The tool is located here: https://f95zone.to/threads/f95-favorite-games-updates-v1-2-0.44538/

[2.5.6] Delete games not on disk

Describe the bug
It is possible to delete a game from disk even if its path does not exist (e.g. external drive)

To Reproduce
Steps to reproduce the behavior:

  1. Add a game from removable media
  2. Remove the stand
  3. Select "Remove" > "Also remove from disk"

Expected behavior
The application should warn that the game path does not exist

Desktop (please complete the following information):

  • App version: 2.5.6

"Completed" checkmark

Add an option to mark the current version of a game completed.
This would just be, more or less, a checkmark, so that you can see that you have completed all the content in the current version. This could be auto cleared when a new version is installed.

opening thread link not working properly in update window

Describe the bug
When i go to click on "Open Thread" in the update dialog, nothing happens,
electron logs Check failed: chdir(current_directory) == 0

but if i manually run xdg-open <link> (as electron does on linux) it works fine

the "Open Directory" button works normally

Does not affect the link on the game card

Desktop:

  • OS: Linux
  • Version: archlinux 5.10.9-zen
  • App version: 2.5.6

Cannot read property 'length'

I get this error in the log files over and over again for every game. in version 2.5.7

Error: spawn C:\Users\kai\AppData\Local\Programs\yam\resources\app.asar\node_modules\cwebp-bin\vendor\cwebp.exe ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:267:19)
at onErrorNT (internal/child_process.js:469:16)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
[2021-05-10 03:10:07.422] [error] Error 20307: _preparePreview -> this._compressGamePreview: Error: Uncaught TypeError: Cannot read property 'length' of undefined

I had some problems with the menu bar not going away even after I unticked dev mode. it kept popping up on restart. I fixed that by deleting the config.json and preferences. I also deleted the cache.

because the meny tab was open, the rest of the window got pushed down. and I had to scroll down every time I wanted to change page. annoying....

I don't know if these two bugs are related...

If I keep it at default window size and don't touch the dev switch again. it looks fine, and works fine. I'll just use F11 for fullscreen instead to see more.

So I don't really know if this error actually does anything bad or not.
But I figured I'd report it.

Mod/patch support

Is your feature request related to a problem? Please describe.
Add support for game mods/patch, allowing the user to store and install/uninstall them at will.

Describe the solution you'd like
To install a patch, it is usually necessary to add and/or overwrite files present in the original game. It may happen that some mods stop working due to application updates that introduce changes at the code level. For this reason (or because for other reasons) it is necessary to remove the mod files which, for less experienced users, can be a difficult procedure, especially if some files have been overwritten and need to be restored.

To work around this problem, mods can be added via YAM, providing them to the program in the form of a complete directory structure for the game.

Example:
To add a patch to a Ren'Py game you usually add the patch.rpy file in the game directory. This means that YAM will need to pass a file (perhaps compressed, such as zip/rar) or an extracted directory on your computer containing in turn a game directory including the patch.rpy file and not the single patch.rpy file. This is because there may be other files that need to be placed in a particular directory.

The patches/mods will be saved in a system directory in the same folder that contains the game (or its executable) and that mod will have a record in a dedicated database.

id filename game_id path (relative to game) installed (y/n) date

When the mod is added, this operation will be recorded in the database (in a specific table) where the following information will be saved (one record for each mod file added):

id mod_id operation filename path_to_original_file checksum_sha

Where is it:

  • mod_id: is a reference to the unique ID of the actual mod
  • operation: Type of operation performed between add, overwrite or join
  • path_to_original_file: Path to the original overwritten file (which was previously saved)
  • checksum_sha: Checksum of the installed mod file (for verification)

The process of adding a mod to a game is as follows (steps for each mod file):

  • It checks whether the file under examination already exists in the source directory
  • If it exists, the user is asked if he wants to overwrite, merge or cancel the operation
  • If the user decides to overwrite the existing file, it is saved in a special directory from where it can be recovered later, after which the mod file is copied
  • If the user decides to merge the files (only for Ren'Py games) it is still copied but with the addition of an incremental number at the end of the name (see how Ren'Py loads the scripts here)
  • If it does not exist, the file is simply copied
  • The operation is logged in the database
  • The database of previous operations that no longer make sense is "cleaned", for example add operations previous to an overwrite operation of the same file.

Removing a mod is analogous:

  • Select the mod/patch to remove
  • Obtain all operation records for the above patch from the database
  • All files added by the mod (type=add) and merged ones (type=merge) are removed
  • For each overwritten file:
    • I delete the file in the game folder
    • I copy in its place the original file that was previously saved and can be reached via the path_to_original_file field

Unable to Add Certain Games via URL

Describe the bug
When trying to add certain games, the program is unable to find them. When then proceeding to try and add them via URL it will popup with "Adding game from url" and then stop. I've noticed that this only happens on games with 0 reviews on f95.

To Reproduce
Steps to reproduce the behavior:

  1. Attempt to add a game with 0 reviews via URL
  2. Choose the folder on computer
  3. Input the url the game is located

brackets mess with UnRen

The brackets in the version naming system [ ] messes with unren.bat all versions.

can't Decompile rpyc files without removing the brackets first. took me a while to figure out that is was the brackets. tried everything else first.

I don't know if the brackets mess with RenPy games when you play them. but unren doesn't work with brackets.

could we use ( ) instead? that works fine.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Warning

These dependencies are deprecated:

Datasource Name Replacement PR?
npm i18next-electron-language-detector Unavailable
npm string-similarity Unavailable

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/codeql-analysis.yml
  • actions/checkout v3.6.0
  • github/codeql-action v2
  • github/codeql-action v2
  • github/codeql-action v2
.github/workflows/electron-build.yml
  • actions/checkout v3.6.0
  • actions/cache v3.3.3
  • actions/setup-node v3.8.2
  • samuelmeuli/action-electron-builder v1.6.0
.github/workflows/issue-label.yml
  • github/issue-labeler v2.6
.github/workflows/pr-label.yml
  • actions/labeler v4
.github/workflows/stale.yml
  • actions/stale v4
npm
package.json
  • @material-icons/font 1.0.36
  • @materializecss/materialize ^1.0.0
  • @millenniumearl/f95api ^2.0.0-beta.13.2
  • @millenniumearl/recaptcha-harvester ^1.2.1
  • ajv ^8.11.0
  • electron-is-dev ^2.0.0
  • electron-log ^4.4.6
  • electron-online ^1.0.0
  • electron-store ^8.0.1
  • electron-updater ^5.0.1
  • glob ^8.0.1
  • i18next ^21.6.16
  • i18next-electron-language-detector 0.0.10
  • image-downloader ^4.2.0
  • nedb-promises ^6.0.3
  • new-github-issue-url ^0.2.1
  • string-similarity ^4.0.4
  • v8-compile-cache ^2.3.0
  • @babel/eslint-parser 7.24.1
  • electron-builder 23.6.0
  • electron 18.3.15
  • eslint 8.57.0
  • node >=14.10

  • Check this box to trigger a request for Renovate to run again on this repository

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.