Compare commits

...

890 Commits

Author SHA1 Message Date
JackEnx
cdad2f5554 Merge pull request #430 from hydralauncher/fix/game-play-time
fix: remove play time fraction
2024-05-17 22:45:07 -03:00
JackEnx
b0bf42f754 fix: remove play time fraction 2024-05-17 22:42:20 -03:00
Zamitto
7e321ea9d1 chore: update version to 1.2.2 2024-05-17 19:43:49 -03:00
Zamitto
01c3ddf167 Merge pull request #423 from hydralauncher/hotfix/repack-uploadDate
Hotfix/repack upload date
2024-05-17 19:33:22 -03:00
Zamitto
f8770a03f7 update migration to delete xatab repacks as well 2024-05-17 19:00:01 -03:00
Zamitto
3b7725d774 remove entris from game_shop_cache and migrations 2024-05-17 18:40:31 -03:00
Zamitto
2679b143ed add yarn.lock 2024-05-17 18:40:30 -03:00
JackEnx
2b0f57f967 fix: change migration to atomic 2024-05-17 18:35:56 -03:00
Zamitto
622107a6f1 check if table exists and has items before running migration 2024-05-17 17:12:03 -03:00
Zamitto
5908544602 improve xatab scrap performance and update seed with xatab repacks 2024-05-17 16:59:16 -03:00
Zamitto
b330c94dca update hydra.db after scrap 2024-05-17 16:21:43 -03:00
Zamitto
4b0f998830 fix: online fix totalPages becoming NaN 2024-05-17 16:19:59 -03:00
Zamitto
d3d9315102 ensure migrations are run before everything else 2024-05-17 14:02:41 -03:00
Zamitto
689fe5715e update migration so it updates xatab repacks 2024-05-17 13:47:17 -03:00
Zamitto
6a52c26874 fix: modal role 2024-05-17 13:46:35 -03:00
JackEnx
60907cdc4b fix: incomplete migration 2024-05-17 13:43:27 -03:00
JackEnx
1b00e2ed57 Merge branch 'hotfix/repack-uploadDate' of https://github.com/hydralauncher/hydra into hotfix/repack-uploadDate 2024-05-17 11:40:14 -03:00
Zamitto
6479049256 add missing await 2024-05-17 09:47:06 -03:00
Zamitto
e739f3a483 update migration to prevent fk error 2024-05-17 09:44:25 -03:00
JackEnx
18f27e76d7 Merge branch 'hotfix/repack-uploadDate' of https://github.com/hydralauncher/hydra into hotfix/repack-uploadDate 2024-05-17 07:14:06 -03:00
JackEnx
47018ace60 Merge branch 'main' of https://github.com/hydralauncher/hydra into hotfix/repack-uploadDate 2024-05-17 07:10:42 -03:00
Zamitto
a8332c858e update migration to get onlinefix repacks from hydra.db 2024-05-16 23:54:27 -03:00
Zamitto
d93e580d0f Merge branch 'main' into hotfix/repack-uploadDate 2024-05-16 22:25:29 -03:00
Zamitto
0e7e62d596 Merge pull request #405 from userMacieG/patch-1
Update polish translation
2024-05-16 20:48:52 -03:00
Zamitto
1d05551f4e Merge branch 'main' into patch-1 2024-05-16 20:40:03 -03:00
Zamitto
4908d07ef2 change migration so it sets uploadDate = createdAt 2024-05-16 20:35:51 -03:00
Zamitto
be4d13533c fix: add migration 2024-05-16 20:30:08 -03:00
Zamitto
7231848bd8 fix: get date and name from torrent 2024-05-16 20:29:37 -03:00
Zamitto
fb5ed9aae3 Merge pull request #411 from itsOdell/feat/force-use-yarn
feat: force developer to use yarn
2024-05-16 12:50:08 -03:00
Abduladil Sunnat
e908cc6273 Merge branch 'main' into feat/force-use-yarn 2024-05-16 11:45:02 -04:00
Zamitto
5e670aab24 Merge pull request #373 from mag1yar/feature/recently-played-games-in-tray-context-menu
Adding recently played games to tray context menu
2024-05-16 12:24:39 -03:00
itsOdell
75a9d56624 feat: force developer to use yarn
This solves alot of issues in PR's that have package-lock.json becuase
they did npm install, this update forces an error and exits out when
developer runs npm install
2024-05-16 11:17:01 -04:00
mag1yar
28bd70e745 Removed update when clicking on a game and fixed sorting 2024-05-16 19:26:45 +05:00
mag1yar
3cbbb71768 Merge branch 'main' into feature/recently-played-games-in-tray-context-menu 2024-05-16 13:49:10 +05:00
Maciej Ratyński
2034e0a157 Update translation.json 2024-05-16 10:37:49 +02:00
Zamitto
a27a8644ea Merge pull request #400 from hydralauncher/fix/worker-null-error
fix/null-error
2024-05-15 23:26:28 -03:00
JackEnx
1a3e33cbc9 fix/null-error 2024-05-15 23:21:06 -03:00
Zamitto
4e8f260b33 Merge branch 'main' into feature/recently-played-games-in-tray-context-menu 2024-05-15 23:14:27 -03:00
Zamitto
29d9c43834 Merge pull request #397 from hydralauncher/add-prettier-check-on-pipeline
add prettier check on ci
2024-05-15 22:09:06 -03:00
Zamitto
d4be3ed4a0 add changes from prettier 2024-05-15 22:04:07 -03:00
Zamitto
16b9c9d340 add prettier check 2024-05-15 21:58:41 -03:00
Zamitto
f3f68e9009 fix: invalid json on spanish translation 2024-05-15 21:40:42 -03:00
Zamitto
2caf83b929 Merge pull request #395 from Lianela/main
Fixed and updated Spanish translation
2024-05-15 21:37:23 -03:00
Lianela
97467705b0 translation.json 2024-05-15 17:05:52 -06:00
Lianela
cdb15a0493 Update translation.json 2024-05-15 16:50:23 -06:00
Lianela
b9d42ca43f Update translation.json
Updated to new dialogs and cleaned some strings to match lines with english one
2024-05-15 16:27:08 -06:00
Zamitto
3d89fc659b Merge pull request #352 from ruth3n/feat/issues-forms
Using GitHub forms for Issues
2024-05-15 19:21:02 -03:00
Zamitto
e5bc60c13d Merge branch 'main' into feat/issues-forms 2024-05-15 19:16:46 -03:00
Zamitto
53e7053764 feat: disable hardware acceleration 2024-05-15 18:42:44 -03:00
Zamitto
24c6a3ebe3 Merge pull request #383 from expload233/main
Fix typo in chinese Translation
2024-05-15 17:47:31 -03:00
Zamitto
3b2fe183b5 Merge branch 'main' into main 2024-05-15 17:45:07 -03:00
Zamitto
ba6a41d8e1 Merge pull request #384 from xmkgfm/main
Fixed some Korean translation
2024-05-15 07:57:54 -03:00
xmkgfm
4ef054175a Fixed some Korean translation 2024-05-15 15:19:49 +09:00
expload
642c2abfd6 fix steam language get wrong 2024-05-15 05:21:29 +00:00
expload
f90ad4c377 fix typo in chinese Translation 2024-05-15 05:09:46 +00:00
mag1yar
20dab9c4c1 Adding recently played games to tray context menu 2024-05-15 01:51:25 +05:00
Zamitto
be6c255bc1 Merge pull request #370 from xxDRV/patch-7
Fixed a typo in RU locale
2024-05-14 17:47:33 -03:00
Antecess
d5dfd7853f Fixed a typo in RU locale
Dunno how i oversaw it earlier, sorry
2024-05-15 01:43:55 +05:00
Chubby Granny Chaser
863f85f45d fix: unsetting game details when switching pages 2024-05-14 18:03:09 +01:00
Chubby Granny Chaser
016c511cec fix: removing copy link from game details skeleton 2024-05-14 17:52:08 +01:00
Chubby Granny Chaser
05cc2a1206 feat: adding electron updater 2024-05-14 17:12:19 +01:00
Chubby Granny Chaser
125264ff42 Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-14 16:54:24 +01:00
Chubby Granny Chaser
dc7591ee28 feat: removing sentry 2024-05-14 16:54:14 +01:00
Matvey Natsevskiy
5882d3697c Merge branch 'main' into feat/issues-forms 2024-05-14 15:39:53 +03:00
Zamitto
27ea6a54f8 Merge pull request #351 from mohannadzidan/fix/repacks-modal-title-overflow-bug
fix: repacks-modal title overflow bug
2024-05-13 20:12:32 -03:00
Chubby Granny Chaser
2dc2e17d63 Merge branch 'main' into fix/repacks-modal-title-overflow-bug 2024-05-13 23:23:58 +01:00
Chubby Granny Chaser
59b1f2d5a5 fix: improving adding soft deleted games to the library 2024-05-13 23:05:25 +01:00
Chubby Granny Chaser
d019f2ad07 Merge branch 'main' into fix/repacks-modal-title-overflow-bug 2024-05-13 22:55:49 +01:00
Zamitto
6b7302ceac Merge pull request #349 from mohannadzidan/feat/arabic-localization
feat: add Arabic translation
2024-05-13 18:40:18 -03:00
Mohannad Zidan
8e7cc154bc Merge branch 'main' into feat/arabic-localization 2024-05-14 00:35:17 +03:00
Zamitto
62c7e0373e Merge pull request #350 from xxDRV/patch-5
Updated RU translation to fit new features
2024-05-13 18:27:11 -03:00
Zamitto
c22a68561a Merge branch 'main' into patch-5 2024-05-13 18:24:03 -03:00
Mohannad Zidan
7ea9403d39 Merge branch 'main' into feat/arabic-localization 2024-05-14 00:23:35 +03:00
Zamitto
51bd1a909b Merge pull request #312 from expload233/main
Add Chinese simplified Translation
2024-05-13 18:22:47 -03:00
Zamitto
e421aa0c5a Merge branch 'main' into main 2024-05-13 18:20:39 -03:00
Zamitto
1c191206c6 Merge branch 'main' into patch-5 2024-05-13 18:20:16 -03:00
Mohannad Zidan
9c6f0104d0 Merge branch 'main' into feat/arabic-localization 2024-05-14 00:19:57 +03:00
Zamitto
6027dfde21 Merge pull request #348 from ruth3n/feat/belarus-readme
Belarusian language translation
2024-05-13 18:19:30 -03:00
Zamitto
72c3052e47 Merge branch 'main' into feat/belarus-readme 2024-05-13 18:17:09 -03:00
Zamitto
b7e7f4ad12 Merge pull request #340 from xmkgfm/main
Adding Korean Localization
2024-05-13 18:16:31 -03:00
Zamitto
6665d904bc Merge branch 'main' into fix/repacks-modal-title-overflow-bug 2024-05-13 18:12:02 -03:00
Zamitto
f7796c2846 Merge branch 'main' into main 2024-05-13 18:11:18 -03:00
Antecess
15aa78de6b Merge branch 'main' into patch-5 2024-05-14 02:07:15 +05:00
Chubby Granny Chaser
820cf65d13 fix: fixing named pipes on windows 2024-05-13 22:01:34 +01:00
Zamitto
b043ace106 Merge branch 'main' into feat/arabic-localization 2024-05-13 17:40:54 -03:00
Antecess
d928b8c2dc Merge branch 'main' into patch-5 2024-05-14 01:08:38 +05:00
Zamitto
429713dd46 Update use-date.ts 2024-05-13 17:07:54 -03:00
Zamitto
268610e423 Merge branch 'main' into main 2024-05-13 17:06:58 -03:00
Matvey Natsevskiy
caceea70d4 Merge branch 'main' into feat/belarus-readme 2024-05-13 22:59:15 +03:00
Matvey Natsevskiy
14a2ac46b7 Fixed README.be.md 2024-05-13 22:55:42 +03:00
Matvey Natsevskiy
1780b889c9 Fixed translation.json 2024-05-13 22:55:42 +03:00
Matvey Natsevskiy
e93159fbb9 Update README.uk-UA.md languages 2024-05-13 22:55:42 +03:00
Matvey Natsevskiy
7a219726c9 Update README.ru.md languages 2024-05-13 22:55:42 +03:00
Matvey Natsevskiy
ab0518deb0 Update README.pt-BR.md languages 2024-05-13 22:55:42 +03:00
Matvey Natsevskiy
41bcbadc02 Update README.md languages 2024-05-13 22:55:42 +03:00
Matvey Natsevskiy
cf7367811d Fix README.be.md 2024-05-13 22:55:42 +03:00
Matvey Natsevskiy
b5389c4a55 Create README.be.md 2024-05-13 22:55:42 +03:00
Hydra
610f38ab95 chore: removing hardcoded language change 2024-05-13 22:55:42 +03:00
LovelessCodes
5662ec6c0e changed: added danish date locale 2024-05-13 22:55:42 +03:00
LovelessCodes
c368d73e89 changed: added danish as a steam language in renderer helpers 2024-05-13 22:55:42 +03:00
LovelessCodes
9a8f29cfff changed: added danish translation file to locales index 2024-05-13 22:55:41 +03:00
LovelessCodes
b7ff6fd323 added: Danish translation.json 2024-05-13 22:55:41 +03:00
Zamitto
c71eeb2b9b Merge pull request #346 from Javid-Izadfar/main
Add Farsi locale
2024-05-13 16:50:57 -03:00
Zamitto
a02dfe49aa Merge branch 'main' into main 2024-05-13 16:31:30 -03:00
mouzidan
a19ce240af fix: repacks-modal title overflow bug 2024-05-13 22:18:42 +03:00
Antecess
8cf5b5eaca Updated RU translation to fit new features 2024-05-14 00:15:08 +05:00
mouzidan
ce4497a5a3 feat: add Arabic translation 2024-05-13 21:32:06 +03:00
Matvey Natsevskiy
046d291585 Update and rename bug_report.md to bug_report.yml 2024-05-13 19:40:11 +03:00
Matvey Natsevskiy
819e8bc508 Update feature_request.yml 2024-05-13 19:38:55 +03:00
Matvey Natsevskiy
91fe56d810 Update feature_request.yml 2024-05-13 19:37:33 +03:00
Javid Izadfar
1656e90c7c Merge branch 'main' of https://github.com/hydralauncher/hydra into main 2024-05-13 20:54:28 +04:30
Javid Izadfar
e953886635 Add farsi locale 2024-05-13 20:49:20 +04:30
Hydra
76981b4fc8 chore: removing hardcoded language change 2024-05-13 10:59:04 +01:00
expload
755acbddb2 Merge branch 'main' into main 2024-05-13 17:57:14 +08:00
Hydra
9671af12d0 Merge branch 'main' of github.com:hydralauncher/hydra 2024-05-13 10:51:45 +01:00
Hydra
a6bc937dda ci: removing macos-latest 2024-05-13 10:51:22 +01:00
Hydra
52d918e5cf Merge pull request #338 from LovelessCodes/patch-1
added: danish translation to places I could find that needed it
2024-05-13 10:50:23 +01:00
expload
70be619c2f Merge branch 'hydralauncher:main' into main 2024-05-13 17:50:12 +08:00
Hydra
2c8ef4e24e Merge branch 'main' into main 2024-05-13 10:48:52 +01:00
Hydra
a46004494d Merge branch 'main' into patch-1 2024-05-13 10:48:45 +01:00
expload
dd537f9a08 Update Translation 2024-05-13 09:48:27 +00:00
Hydra
d30e095dc4 ci: adding macos-latest 2024-05-13 10:48:17 +01:00
Hydra
914e0d82e6 ci: moving prettier to eslint 2024-05-13 10:46:22 +01:00
Hydra
0c4ddab432 Merge branch 'main' into main 2024-05-13 10:43:12 +01:00
Hydra
942e774679 Merge branch 'main' into patch-1 2024-05-13 10:42:57 +01:00
Hydra
bdb58e0e59 ci: changing lint.yml to pull_request 2024-05-13 10:41:21 +01:00
Hydra
c277d865a1 Merge branch 'main' into main 2024-05-13 10:40:35 +01:00
Hydra
89a53f9b5b Merge branch 'main' into patch-1 2024-05-13 10:39:15 +01:00
Hydra
51129bfb76 Merge pull request #331 from hydralauncher/feat/bypass-shop-block
Feat/bypass shop block
2024-05-13 10:37:08 +01:00
Hydra
30e0ed6498 Merge branch 'main' into patch-1 2024-05-13 10:35:22 +01:00
Hydra
301d9a5732 perf: using local english cache in order to improve performance 2024-05-13 10:34:32 +01:00
expload
c9fe6a8684 Merge branch 'hydralauncher:main' into main 2024-05-13 17:32:07 +08:00
expload
ec5e28ba9f format code 2024-05-13 09:30:40 +00:00
Hydra
38b88d087b Merge pull request #326 from hydralauncher/fix/video-controller-not-clickable-on-game-details
Fix/video controller not clickable on game details
2024-05-13 10:27:35 +01:00
Hydra
0e09f59412 chore: fixing a11y for gallery slider 2024-05-13 10:24:14 +01:00
Hydra
0144e93045 Merge branch 'fix/video-controller-not-clickable-on-game-details' of github.com:hydralauncher/hydra into fix/video-controller-not-clickable-on-game-details 2024-05-13 10:22:11 +01:00
Hydra
2ba5c2b04f chore: fixing a11y for gallery slider 2024-05-13 10:21:21 +01:00
xmkgfm
cc2231acd8 Update translation.json 2024-05-13 17:55:09 +09:00
xmkgfm
83f20dc577 Rename src/locales/translation.json to src/locales/ko/translation.json 2024-05-13 17:51:40 +09:00
xmkgfm
d079f695ce Delete src/locales/ko 2024-05-13 17:51:15 +09:00
xmkgfm
2c8a60d1c2 Create ko 2024-05-13 17:48:29 +09:00
xmkgfm
741b02a119 Add files via upload 2024-05-13 17:47:52 +09:00
xmkgfm
a4bf62aaf0 Update index.ts 2024-05-13 17:47:05 +09:00
Hydra
5ab51e4547 fix: changing get random game to work with shop block 2024-05-13 09:35:29 +01:00
LovelessCodes
d56698b728 changed: added danish date locale 2024-05-13 10:13:59 +02:00
LovelessCodes
388a6c458a changed: added danish as a steam language in renderer helpers 2024-05-13 10:08:35 +02:00
LovelessCodes
d39ff3a3b5 changed: added danish translation file to locales index 2024-05-13 10:06:47 +02:00
LovelessCodes
effb2ed738 added: Danish translation.json 2024-05-13 10:00:52 +02:00
Zamitto
2e2962ef05 Merge branch 'main' into fix/video-controller-not-clickable-on-game-details 2024-05-12 23:01:53 -03:00
expload
311ca1c990 Merge branch 'main' into main 2024-05-13 09:50:47 +08:00
Hydra
2475d48bc4 fix: removing return null from hero-panel 2024-05-13 02:43:48 +01:00
Hydra
601bb27a02 Merge branch 'main' of github.com:hydralauncher/hydra into feat/bypass-shop-block 2024-05-13 02:42:43 +01:00
Hydra
aaa94a43bb chore: removing tabindex from modal 2024-05-13 02:38:07 +01:00
Hydra
ebcdf1af7a Merge branch 'main' of github.com:hydralauncher/hydra into fix/video-controller-not-clickable-on-game-details 2024-05-13 02:33:28 +01:00
Hydra
6c9f2547cc ci: adding a11y plugin to eslint 2024-05-13 02:33:10 +01:00
Hydra
0d937bacc8 chore: fixing translation 2024-05-13 02:07:24 +01:00
Hydra
ff20d531c2 feat: improving buttons on gallery slider 2024-05-13 02:02:55 +01:00
Hydra
329309718b ci: changing lint script to push only 2024-05-13 01:02:21 +01:00
Hydra
f726279d5f fix: resolving merge conflicts 2024-05-13 01:01:06 +01:00
Hydra
cabec999ba Merge branch 'main' into fix/video-controller-not-clickable-on-game-details 2024-05-13 00:57:41 +01:00
Hydra
4be685a7fc ci: adding commitlint to lint.yml 2024-05-13 00:57:23 +01:00
Hydra
c9070bfdaf ci: adding commitlint to lint.yml 2024-05-13 00:54:48 +01:00
Hydra
5da39a2ffa chore: removing package-lock.json 2024-05-13 00:53:24 +01:00
Hydra
0cc3202f85 ci: testing husky 2024-05-13 00:49:42 +01:00
Hydra
ad5e6c6313 ci: fixing translations 2024-05-12 23:52:03 +01:00
Hydra
1c7911c531 feat: adding bypass for region blocks 2024-05-12 23:43:00 +01:00
Zamitto
4302639220 fix: video not playing on thumb click 2024-05-12 17:03:39 -03:00
Zamitto
05c6c7c64d simplify chained ifs 2024-05-12 16:55:54 -03:00
Zamitto
86bca75b3f Merge branch 'main' into fix/video-controller-not-clickable-on-game-details 2024-05-12 16:51:38 -03:00
Zamitto
b0803fa28d feat: add lazy loading to images and thumbs 2024-05-12 16:51:25 -03:00
Zamitto
a2790190e6 Merge pull request #323 from Realturnpoint/main
Added dutch translation
2024-05-12 16:48:13 -03:00
Zamitto
10b9cb2128 Merge branch 'main' into main 2024-05-12 16:40:26 -03:00
Zamitto
af86cf0852 Merge pull request #307 from frendywijaya/indonesian-translation
Add Indonesian translation
2024-05-12 16:24:35 -03:00
Zamitto
ed2d75241f Merge branch 'main' into indonesian-translation 2024-05-12 16:22:58 -03:00
Zamitto
483f069d81 remove debug log 2024-05-12 16:11:08 -03:00
Zamitto
1c7c64a5a2 fix: replace webm with mp4 file. cause high cpu usage sometimes 2024-05-12 16:09:47 -03:00
Zamitto
4015af1648 feat: remove autoplay from html tag. makes autoplay dinamically on scroll 2024-05-12 16:09:20 -03:00
Zamitto
da255f7c61 fix: arrow have smaller height 2024-05-12 16:06:48 -03:00
Frendy Wijaya
9407eebf2d Update more translated words 2024-05-13 00:35:23 +07:00
turnpoint
66456d858d Merge branch 'main' into main 2024-05-12 19:11:21 +02:00
Hydra
53f0de945c Merge pull request #321 from hydralauncher/fix/playtime-not-showing-on-ui
fix: playtime not showing on UI
2024-05-12 17:14:07 +01:00
Zamitto
62cff6ce84 fix: playtime not showing on UI 2024-05-12 12:41:56 -03:00
turnpoint
418f62c15e Merge branch 'main' of https://github.com/Realturnpoint/hydra 2024-05-12 17:29:57 +02:00
turnpoint
000ead7e60 Added dutch translation
Added dutch translation,

also we use english words so you see here and there english in there,
2024-05-12 17:29:55 +02:00
Zamitto
042dc77c4a Merge pull request #314 from xxDRV/patch-3
Changed "Telegram Server" to "Telegram Channel" in RU and uk-UA README.md
2024-05-12 11:52:53 -03:00
expload
2ce8f88a98 Merge branch 'main' into main 2024-05-12 22:29:26 +08:00
Hydra
eec61b8b97 Merge branch 'main' into patch-3 2024-05-12 14:12:22 +01:00
Hydra
2f77d881c4 ci: fixing lint trigger 2024-05-12 14:06:17 +01:00
Hydra
4a7b7ea04a ci: fixing lint trigger 2024-05-12 14:05:51 +01:00
Hydra
164c2dd4b9 Merge branch 'main' into main 2024-05-12 13:41:04 +01:00
Hydra
9d3d7a61ab Merge branch 'main' into patch-3 2024-05-12 13:40:13 +01:00
Hydra
93b9547fa9 Merge pull request #315 from hydralauncher/feat/real-debrid-integration
Feat/real debrid integration
2024-05-12 13:38:05 +01:00
Hydra
50a2185ad7 fix: removing decompression 2024-05-12 13:34:06 +01:00
Hydra
c29f28dbdd fix: fixing tsc errors 2024-05-12 13:29:12 +01:00
Antecess
081823cd8c Update README.ru.md 2024-05-12 16:45:41 +05:00
Antecess
d7c6807370 Update README.uk-UA.md 2024-05-12 16:45:05 +05:00
Antecess
b413c673fd Changed "Telegram server" to "Telegram channel" in uk-UA 2024-05-12 16:40:26 +05:00
Hydra
13743cd7a5 Merge branch 'main' of github.com:hydralauncher/hydra into feat/real-debrid-integration 2024-05-12 12:27:58 +01:00
expload
73436d4472 import Chinese translation to index.ts file 2024-05-12 18:51:41 +08:00
expload
b5e7ab5834 Add Chinese simplified Translation 2024-05-12 18:50:27 +08:00
Hydra
9e0b69d8aa fix: fixing be translation 2024-05-12 11:22:52 +01:00
Hydra
7426c826f5 Merge pull request #308 from v1mkss/fix-UK
Correcting the text in the Readme (uk-UA)
2024-05-12 11:11:51 +01:00
Hydra
3bd8662b18 fix: fixing add game to library 2024-05-12 10:56:31 +01:00
v1mkss
655af0b863 fix readme 2024-05-12 10:52:06 +03:00
Frendy Wijaya
f378becc58 edit translation 2024-05-12 13:56:29 +07:00
Frendy Wijaya
5acbbc9902 add indonesian translation 2024-05-12 13:49:11 +07:00
Zamitto
ae1e2f1f30 feat: add keys to lists on galler-slider 2024-05-11 23:04:53 -03:00
Zamitto
86eb76ccad Merge pull request #296 from piradata/main
Readme modifications for Discord change to Telegram
2024-05-11 22:49:39 -03:00
piradata
9839259856 finish pr-BR localization 2024-05-11 22:23:35 -03:00
piradata
6ba8378152 change discord to telegram on sidebar 2024-05-11 21:58:05 -03:00
piradata
2e5d2c55fe so i need to actually change the text and go back, super dumb 2024-05-11 20:53:26 -03:00
piradata
edf8be3a1e git hub ignore captalization changes on files 2024-05-11 20:52:57 -03:00
piradata
54feb14daf change 'pt-br' and 'au' to 'pt-BR' and 'uk-AU' according to http://www.lingoes.net/en/translator/langcode.htm 2024-05-11 20:46:11 -03:00
piradata
9c4ed98151 Merge branch 'main' of https://github.com/piradata/hydra 2024-05-11 20:40:33 -03:00
piradata
c5b5be9ff2 apply modification suggested by @zamitto 2024-05-11 20:40:26 -03:00
PIRADATA
05135d6ff2 Merge branch 'main' into main 2024-05-11 20:06:29 -03:00
piradata
2415257a6e remove contributors.yml 2024-05-11 20:05:14 -03:00
github-actions[bot]
7529eb7196 docs(contributor): contrib-readme-action has updated readme 2024-05-11 22:27:58 +00:00
Zamitto
5c4590f08f Merge pull request #278 from xxDRV/patch-1
Improved RU translation
2024-05-11 19:27:46 -03:00
piradata
a02598bc8f add AU loc from PR #265 (thanks @squidsdev) 2024-05-11 18:34:25 -03:00
piradata
ed3ef73064 remove langs section on russian file 2024-05-11 18:21:10 -03:00
piradata
6af6a6bac4 ok, github parses out style tags, so i changed it a little 2024-05-11 18:15:05 -03:00
piradata
d6ba3f13e1 - change links to point to actions and releases
- add style="display: inline-block;" to remove bugg css on badge links
2024-05-11 17:54:52 -03:00
piradata
aed4b8ea00 revert "Сотрудничество" to "Вклад" 2024-05-11 16:57:14 -03:00
piradata
13dd6184e0 change "Вклад" to "Сотрудничество" 2024-05-11 16:28:25 -03:00
piradata
a7492a8a11 - add pb-br readme (WIP)
- change discord link to telegram
- remove discord tag
- add readme links to other languages
- make the list of contributors dynamic using contrib.rocks
2024-05-11 16:22:20 -03:00
Antecess
9dcb931c6d Cleaned typos 2024-05-11 14:45:01 +03:00
Enimatehpma
7be283319a Improved RU translation
Removed lots of unnecessary text
Polished everything for "euphony" of Russian
2024-05-11 11:25:49 +03:00
Zamitto
f1f98de03a Merge pull request #267 from Latgardi/translation/be
add belarusian translation
2024-05-11 00:19:36 -03:00
github-actions[bot]
27ea0218b0 docs(contributor): contrib-readme-action has updated readme 2024-05-11 02:43:15 +00:00
Zamitto
2ef4464687 Merge pull request #262 from savelevvo/translation-fix
Fixed EN translation
2024-05-10 23:43:05 -03:00
github-actions[bot]
c63cc70b1f docs(contributor): contrib-readme-action has updated readme 2024-05-11 02:22:20 +00:00
Zamitto
01b55baa01 Merge pull request #273 from AHOHNMYC/patch-1
Update Russian translation
2024-05-10 23:22:10 -03:00
github-actions[bot]
4ce2f63b36 docs(contributor): contrib-readme-action has updated readme 2024-05-10 23:16:39 +00:00
Zamitto
0a687d6bd5 Merge pull request #264 from IWareQ/main
update ru Readme
2024-05-10 20:16:26 -03:00
AHOHNMYC
9458aa4baf Update Russian translation 2024-05-10 23:50:21 +03:00
github-actions[bot]
8ea6902a81 docs(contributor): contrib-readme-action has updated readme 2024-05-10 15:28:30 +00:00
Zamitto
bd9f5698e4 Merge pull request #269 from HOLKus/patch-2
Update translation.json
2024-05-10 12:28:16 -03:00
Redulum
92f1773366 Update translation.json
Spelling error correction
2024-05-10 17:46:18 +03:00
Latgardi
5f94fa8bc7 add belarusian translation 2024-05-10 17:04:50 +03:00
Zamitto
e416f3da15 Merge pull request #256 from cardosource/patch-2
Correção na frase, estava incorreta
2024-05-10 10:54:59 -03:00
Dmitry Luk
a122af2933 update ru Readme 2024-05-10 15:52:52 +04:00
Viktor Savelev
513d1f8851 Fixed EN translation 2024-05-10 12:35:54 +01:00
cardoso
44963d1c83 Correção na frase, estava incorreta
A frase estava incorreta que futuramente causaria uma má interpretação e a frase estava em desconcordancia com a lingua portuguesa, Brasil.
Com a nova correção deixa mais clara a mensagem.
A análise morfológica e sintática da frase indicava erro.
Agora a frase esta correta:

Análise morfológica:

Verifique: verbo no modo imperativo, segunda pessoa do singular.
a: artigo definido feminino singular.
forma: substantivo feminino singular.
correta: adjetivo feminino singular.
de: preposição.
instalar: verbo no infinitivo.
algum: pronome indefinido masculino singular.
deles: pronome pessoal oblíquo masculino plural.
no: contração da preposição "em" com o artigo definido "o".
seu: pronome possessivo masculino singular.
distro: substantivo masculino singular.
Linux: substantivo próprio masculino singular.
garantindo: verbo no gerúndio.
assim: advérbio.
a: artigo definido feminino singular.
execução: substantivo feminino singular.
normal: adjetivo feminino singular.
do: contração da preposição "de" com o artigo definido "o".
jogo: substantivo masculino singular.
2024-05-10 00:00:27 -04:00
github-actions[bot]
cb679e0a05 docs(contributor): contrib-readme-action has updated readme 2024-05-09 19:35:20 +00:00
Zamitto
fd253625bc Merge pull request #253 from hydralauncher/template-issue 2024-05-09 16:35:09 -03:00
Zamitto
ffda39d323 add feature request template 2024-05-09 19:31:25 +00:00
Zamitto
1895751122 Create bug_report.md 2024-05-09 16:14:02 -03:00
github-actions[bot]
ba37002be9 docs(contributor): contrib-readme-action has updated readme 2024-05-09 13:34:15 +00:00
Zamitto
0ce8ece1fc Merge pull request #234 from Tunchichi/Tunchichi-RU-translation
fix: missing character on ru translation.json
2024-05-09 10:34:03 -03:00
Hydra
9dc9f12053 fix: removing translations for real debrid 2024-05-09 09:40:05 +01:00
github-actions[bot]
08c44099a3 docs(contributor): contrib-readme-action has updated readme 2024-05-08 21:07:45 +00:00
Zamitto
c45b344ae1 Merge pull request #239 from ChristoferMendes/main
Fix: Add missing comma in translation string
2024-05-08 18:07:34 -03:00
github-actions[bot]
10176c4a72 docs(contributor): contrib-readme-action has updated readme 2024-05-08 20:42:30 +00:00
Zamitto
dc91ee45c1 Merge pull request #243 from PCTroller/patch-1
some fixes in spanish translation
2024-05-08 17:42:20 -03:00
PCTroller
bf8b02085d I missclicked something and change "hours" and "minutes" now is good 2024-05-08 22:32:53 +02:00
PCTroller
ca14c75a36 some fixes in spanish translation
Added "amount_hours" and "amount minutes" that wasn't in actual code.
2024-05-08 22:24:28 +02:00
ChristoferMendes
de522cd650 fix: Add missing comma in translation string 2024-05-08 11:51:25 -03:00
Ruslan
dc0eeaea9f fix: grammatical errors on ru translation.json 2024-05-08 01:45:55 +03:00
Ruslan
df7a9f452d fix: missing character on ru translation.json 2024-05-07 23:50:11 +03:00
Hydra
11921099c2 fix: removing steam disclaimer 2024-05-07 15:42:41 +01:00
Hydra
023e5ebb3e feat: adding proper path for real debrid downloads 2024-05-07 15:42:16 +01:00
Hydra
5ec56bda5b feat: adding proper path for real debrid downloads 2024-05-07 15:42:09 +01:00
github-actions[bot]
65f9964ef5 docs(contributor): contrib-readme-action has updated readme 2024-05-07 14:40:01 +00:00
Hydra
2d4639757f Merge pull request #176 from vnumex/main
Added Turkish translation
2024-05-07 15:39:47 +01:00
vnumex
7c011064d4 Fixed a little symbol mistake 2024-05-07 16:44:49 +03:00
vnumex
e106f57cc5 Update translation.json 2024-05-07 16:15:17 +03:00
Hydra
072b4dc4d3 chore: updating yarn.lock 2024-05-07 09:40:51 +01:00
Hydra
9e648fed28 chore: pulling from remote 2024-05-07 09:12:48 +01:00
github-actions[bot]
53e5d2938c docs(contributor): contrib-readme-action has updated readme 2024-05-07 04:56:05 +00:00
Hydra
748f3457f2 Merge pull request #200 from Mkdantas/main
Added screenshots and trailers to game details
2024-05-07 05:55:54 +01:00
Hydra
97ef496703 Merge branch 'main' into main 2024-05-07 05:55:35 +01:00
github-actions[bot]
7fb74bca47 docs(contributor): contrib-readme-action has updated readme 2024-05-07 04:52:19 +00:00
Hydra
b2791021c7 Merge pull request #212 from Tunchichi/Tunchichi-ru-README
Translated README.md to ru
2024-05-07 05:52:04 +01:00
Hydra
13be9c3814 Merge pull request #211 from lilezek/feat/real-debrid-integration
Improvements over the real debrid integration.
2024-05-07 05:51:00 +01:00
github-actions[bot]
170f9f0d08 docs(contributor): contrib-readme-action has updated readme 2024-05-07 04:49:41 +00:00
Hydra
63069f7bdc Merge pull request #224 from Tunchichi/Tunchichi-RU-translation
Update ru translation.json
2024-05-07 05:49:30 +01:00
Ruslan
cf837abbb5 Update ru translation.json 2024-05-07 07:25:14 +03:00
Hydra
3c340d1667 fix: adding color as library 2024-05-06 16:51:55 +01:00
github-actions[bot]
8eab64178f docs(contributor): contrib-readme-action has updated readme 2024-05-06 15:27:43 +00:00
Hydra
e041d27988 Merge pull request #207 from Hachi-R/auto-launch
added option to start hydra on system startup
2024-05-06 16:27:28 +01:00
Matheus Dantas
8282d468e1 add minimum scrollbar size 2024-05-06 10:31:28 -03:00
Ruslan
25509615c7 // 2024-05-06 13:56:33 +03:00
Matheus Dantas
def79000ba remove translations for title that does not exist anymore 2024-05-06 06:52:50 -03:00
lilezek
cf0128321d fix: forgot to push the project files with the 7z library 2024-05-06 11:51:38 +02:00
lilezek
31ad209dda Merge branch 'feat/real-debrid-integration' of https://github.com/hydralauncher/hydra into feat/real-debrid-integration 2024-05-06 11:48:29 +02:00
Matheus Dantas
92e937628a add scroll to preview and remove title 2024-05-06 06:43:12 -03:00
lilezek
a748135365 feat: now the .rar file gets decompressed into the final directory of the game 2024-05-06 11:25:13 +02:00
lilezek
0398164906 fix: do not notify about the download being ready until the parts are built into the single file. 2024-05-06 11:15:49 +02:00
lilezek
9cd8188f06 refactor: rename of the http downloader to real debrid downloader given that it only supports downloading games through real debrid 2024-05-06 10:55:39 +02:00
Hydra
75ddc9276f Merge pull request #205 from Chr1s0Blood/fix
fix: typo in SteamAppsDetails interface
2024-05-06 03:23:33 +01:00
Hachi-R
8e74355cf7 odeio prettier 2024-05-05 20:25:43 -03:00
Hachi-R
9c3e44b015 removed readme changes 2024-05-05 20:17:58 -03:00
Hachi-R
ce5b7a337d name changes 2024-05-05 20:11:12 -03:00
Hydra
adad23530e fix: using file name as path 2024-05-05 23:10:07 +01:00
Hachi-R
970a3be280 added option to start hydra on system startup 2024-05-05 18:13:28 -03:00
Hachi-R
5b9af9e0ea initial commit 2024-05-05 17:18:06 -03:00
Matheus Dantas
94a7192c3e add space between images inside preview and removed blank space of image preview 2024-05-05 17:03:15 -03:00
Matheus Dantas
f5f3c7412f add slider previews 2024-05-05 16:38:27 -03:00
Hydra
73c65640e1 Merge branch 'main' of https://github.com/hydralauncher/hydra into feat/real-debrid-integration 2024-05-05 20:08:13 +01:00
Chr1s0Blood
f7f1a586d1 fix: typo in SteamAppsDetails interface 2024-05-05 15:50:17 -03:00
Hydra
1c7f68d6ca chore: removing unused var 2024-05-05 19:24:06 +01:00
Hydra
74a99f5bc8 fix: fixing errors with electron dl manager 2024-05-05 19:18:48 +01:00
Hachi
21296cba95 Merge branch 'hydralauncher:main' into main 2024-05-05 12:37:57 -03:00
vnumex
823712b7f3 Update index.ts 2024-05-05 13:56:09 +03:00
Matheus Dantas
3e47560048 fix error when displaying img and video last screenshot not showing 2024-05-05 03:53:17 -03:00
Matheus Dantas
e047ec924b added back .env.example 2024-05-05 03:18:05 -03:00
Matheus Dantas
1e5c0db46e Add prettier to gallery-slider.tsx, remove console.log and revert .env.example file exclusion 2024-05-05 00:25:23 -03:00
Matheus Dantas
77b975d456 Add pt and en translations for gallery-slider 2024-05-04 23:41:52 -03:00
Matheus Dantas
de1d4c347f Add slider functionality 2024-05-04 23:37:47 -03:00
Matheus Dantas
40adf3da0e Create gallery-slider structure 2024-05-04 19:32:37 -03:00
github-actions[bot]
6483698305 docs(contributor): contrib-readme-action has updated readme 2024-05-04 21:24:34 +00:00
Zamitto
4ea1ef8a6b Merge pull request #190 from hydralauncher/doc/update-readme
update README.md
2024-05-04 18:24:23 -03:00
Zamitto
6d8f65bc84 Merge branch 'main' into doc/update-readme 2024-05-04 16:44:45 -03:00
Zamitto
1572e0a0b0 update screenshot 2024-05-04 16:44:34 -03:00
Zamitto
17bc5cd9ec fix text 2024-05-04 16:32:47 -03:00
Hydra
878eead4d2 Merge pull request #194 from Tunchichi/Tunchichi-RU-translation
The missing lines have been translated in RU
2024-05-04 20:28:01 +01:00
Zamitto
3c491200ec incrementing index 2024-05-04 16:17:30 -03:00
Tunchichi
6f5e1a7a5b The missing lines have been translated in RU 2024-05-04 21:37:39 +03:00
github-actions[bot]
9165c82355 docs(contributor): contrib-readme-action has updated readme 2024-05-04 18:37:16 +00:00
Hachi
e6cf2149a2 Merge branch 'hydralauncher:main' into main 2024-05-04 15:37:06 -03:00
Hachi-R
58f58d0c63 get userPreferences moved to close event 2024-05-04 15:07:19 -03:00
Zamitto
11f1785432 fix: torrent-client path join 2024-05-04 14:54:08 -03:00
Zamitto
73817691a0 Merge branch 'main' into doc/update-readme 2024-05-04 14:42:36 -03:00
Hydra
2f30778d8a Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-04 18:41:38 +01:00
Hydra
b6e8c7dd60 fix: fixing icon dir on setup.py 2024-05-04 18:41:27 +01:00
Hydra
ea2c002419 Merge pull request #125 from lilezek/main
Adds support to real debrid.
2024-05-04 18:39:22 +01:00
Zamitto
e7ad71df14 new Build From Source and adjustments 2024-05-04 14:36:03 -03:00
lilezek
cb0bed0bbc Merge branch 'main' of github.com:lilezek/hydra 2024-05-04 19:35:57 +02:00
lilezek
2033951505 Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-04 19:35:49 +02:00
github-actions[bot]
d1973eba26 docs(contributor): contrib-readme-action has updated readme 2024-05-04 17:28:12 +00:00
Zamitto
af4f3baf39 Merge branch 'main' into doc/update-readme 2024-05-04 14:28:04 -03:00
lilezek
2bcc40278c refactor: ran prettier 2024-05-04 19:27:58 +02:00
Zamitto
0288db15e7 replace contrib.rocks 2024-05-04 14:27:28 -03:00
lilezek
8caea2893d fix: copy unrar.wasm as part of the postinstallation process 2024-05-04 19:27:14 +02:00
github-actions[bot]
c44fb156f2 docs(contributor): contrib-readme-action has updated readme 2024-05-04 17:25:32 +00:00
Hydra
0a597acd26 fix: fixing translations and typescript renderer errors 2024-05-04 18:25:19 +01:00
lilezek
8b304dc46c Merge branch 'main' of github.com:lilezek/hydra 2024-05-04 19:20:49 +02:00
lilezek
2a674ed988 fix: typo on downloaders folder 2024-05-04 19:20:46 +02:00
Zamitto
f09a43a45f replace clone with fork instruction 2024-05-04 14:11:22 -03:00
Zamitto
91b4784cff update table of contents 2024-05-04 13:43:27 -03:00
Zamitto
be10bc9cfc update README.md 2024-05-04 13:39:18 -03:00
github-actions[bot]
5fda06477d docs(contributor): contrib-readme-action has updated readme 2024-05-04 16:00:12 +00:00
Hydra
22633ba45f Merge pull request #165 from userMacieG/main
Polish translation
2024-05-04 16:34:52 +01:00
Hydra
866ee7b30d fix: moving downloader directly to parser 2024-05-04 15:09:43 +01:00
lilezek
ff189f7677 fix: forgot to import something during the merge commit 2024-05-04 12:34:21 +02:00
github-actions[bot]
56ac59bce6 docs(contributor): contrib-readme-action has updated readme 2024-05-04 10:08:05 +00:00
lilezek
2b14b9dda0 Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-04 12:07:44 +02:00
github-actions[bot]
4d32ff2ac2 docs(contributor): contrib-readme-action has updated readme 2024-05-03 22:01:16 +00:00
Hydra
e1955e11f5 fix: fixing main thread lock 2024-05-03 23:00:53 +01:00
github-actions[bot]
86a21ea2c2 docs(contributor): contrib-readme-action has updated readme 2024-05-03 20:09:26 +00:00
lilezek
62b5b12397 Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-03 22:09:10 +02:00
Hydra
1eb963679e Merge branch 'main' of github.com:hydralauncher/hydra 2024-05-03 19:51:17 +01:00
Hydra
1f2f269736 feat: adding background to item 2024-05-03 19:51:13 +01:00
Hydra
d7b92b472d Merge pull request #154 from hydralauncher/feat/format-playtime-in-hours
Feat/format playtime in hours
2024-05-03 19:37:20 +01:00
Hydra
473d4874ea Merge pull request #179 from Hachi-R/main
option to quit the app or minimize in close button
2024-05-03 19:36:08 +01:00
Hydra
ad112effda Merge pull request #180 from pmenta/fix/onlinefix
Fix/onlinefix
2024-05-03 19:35:40 +01:00
Hachi-R
315d03ae69 refactor ternary to if statement in window-manager, update constant definitions for better clarity 2024-05-03 14:58:45 -03:00
João Martins
9740726652 chore: remove windows-1251 dep 2024-05-03 14:37:51 -03:00
João Martins
d454d0c00b fix: change onlinefixScraper to fetch 2024-05-03 14:33:31 -03:00
Hachi-R
94b7c8aefe ops 2024-05-03 13:17:53 -03:00
Hachi-R
8aed8f15d7 option to quit the app or minimize 2024-05-03 13:13:37 -03:00
lilezek
27e22917f1 fix: forgot to update the yarn.lock after merge 2024-05-03 16:28:05 +02:00
vnumex
601872a0e5 Added Turkish translition 2024-05-03 16:38:21 +03:00
Zamitto
2ae3f95a73 useMemo to create numberFormater instance 2024-05-03 09:35:13 -03:00
Zamitto
1098418a3e feat: add translations 2024-05-03 09:21:16 -03:00
Zamitto
64449910c5 Merge branch 'main' into feat/format-playtime-in-hours
# Conflicts:
#	src/renderer/src/pages/game-details/hero/hero-panel.tsx
2024-05-03 09:21:02 -03:00
Zamitto
30ed41be61 feat: use i18n interpolation for minutes and hours 2024-05-03 09:19:56 -03:00
lilezek
bdbcf830f3 Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-03 14:19:02 +02:00
Zamitto
a98a0eadd8 feat: lower process-watcher sleep time to 500ms 2024-05-03 09:07:05 -03:00
Hydra
f6072eeb5c Merge branch 'main' of github.com:hydralauncher/hydra 2024-05-03 10:13:18 +01:00
Hydra
590ead9643 fix: using random user agent for how long to beat 2024-05-03 10:13:07 +01:00
Hydra
81fc79fc82 Merge pull request #171 from Magrid0/main
[Locales] Update italian translation
2024-05-03 07:59:42 +01:00
Hydra
5ae7815e03 fix: fixing typo on portuguese translation 2024-05-02 23:42:07 +01:00
Hydra
83e0a5f4da fix: fixing typo on portuguese translation 2024-05-02 23:16:10 +01:00
Hydra
59ffab4731 feat: adding installerSidebar image 2024-05-02 23:14:44 +01:00
Magrid
c2d3f15712 Update italian translation 2024-05-02 23:57:54 +02:00
Hydra
7f03841f8a chore: removing oneClick installer 2024-05-02 22:51:05 +01:00
Hydra
9d3b292a29 Merge branch 'main' into main 2024-05-02 22:28:19 +01:00
github-actions[bot]
ffa55d983d docs(contributor): contrib-readme-action has updated readme 2024-05-02 21:25:21 +00:00
Hydra
53911757b7 Merge pull request #169 from hydralauncher/feat/adding-installation-instructions
Feat/adding installation instructions
2024-05-02 22:25:10 +01:00
Hydra
193cc327cf feat: adding installation instructions 2024-05-02 22:22:23 +01:00
Hydra
5dd9ac9432 Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-05-02 22:19:19 +01:00
github-actions[bot]
c41d748bf2 docs(contributor): contrib-readme-action has updated readme 2024-05-02 16:40:41 +00:00
Hydra
165edec292 Merge pull request #162 from FerNikoMF/main
added Russian language
2024-05-02 17:40:29 +01:00
FerNikoMF
2c3e768101 . 2024-05-02 19:22:59 +05:00
Maciej Ratyński
ae133889cd Polish translation 2024-05-02 15:50:41 +02:00
Hydra
2f19094341 fix: removing backdrop from online-fix guide 2024-05-02 09:47:25 +01:00
github-actions[bot]
43bd72d02f docs(contributor): contrib-readme-action has updated readme 2024-05-02 08:25:01 +00:00
lilezek
8e8b232ed9 Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-02 10:24:30 +02:00
FerNikoMF
68f5dd16ae added Russian language 2024-05-02 13:17:42 +05:00
github-actions[bot]
98a1f816cc docs(contributor): contrib-readme-action has updated readme 2024-05-02 01:10:20 +00:00
Zamitto
4049ee5980 Merge pull request #161 from hydralauncher/feat/add-issue-templates
feat: create issue templates
2024-05-01 22:10:08 -03:00
Zamitto
adfe2e529a feat: create issue templates 2024-05-01 22:02:29 -03:00
Zamitto
f4ee88c075 format date based on user language 2024-05-01 19:55:31 -03:00
Zamitto
cfdd09d9ac feat: move sleep to end of function on process-watcher 2024-05-01 19:11:05 -03:00
Zamitto
7a1d0b2eaf feat: increase process watcher sleep time to 5s 2024-05-01 18:53:10 -03:00
Zamitto
cce54f9937 feat: show decimal part of hour 2024-05-01 17:44:06 -03:00
Zamitto
f1c37a0aaf refactor updateLastTimePlayed, setInterval seems unnecessary 2024-05-01 17:39:17 -03:00
Zamitto
1569c3eb73 feat: format play time in hours 2024-05-01 17:38:46 -03:00
lilezek
90a40d379a feat: i18n for the real debrid api token 2024-05-01 21:49:40 +02:00
github-actions[bot]
fb968310e0 docs(contributor): contrib-readme-action has updated readme 2024-05-01 19:11:10 +00:00
lilezek
7fe75a102e Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-01 21:10:50 +02:00
Hydra
f38f574d04 Merge branch 'main' of github.com:hydralauncher/hydra 2024-05-01 19:52:00 +01:00
Hydra
d24e9f9b06 Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-05-01 19:45:06 +01:00
github-actions[bot]
e6c9a2eaa9 docs(contributor): contrib-readme-action has updated readme 2024-05-01 09:37:59 +00:00
lilezek
69f0eccece Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-05-01 11:37:25 +02:00
Hydra
cd1a157098 Merge branch 'main' of github.com:hydralauncher/hydra 2024-05-01 01:02:45 +01:00
Hydra
976616b5ac Merge branch 'main' of github.com:hydralauncher/hydra 2024-05-01 01:02:45 +01:00
Hydra
5a78eb903c feat: adding online-fix modal 2024-05-01 00:59:24 +01:00
Hydra
7c7d390b5b Merge pull request #136 from hydralauncher/fix/update-fastlist-location-after-electron-build-migration
fix: update fastlist directory
2024-04-30 22:24:23 +01:00
Hydra
42579b414d Merge pull request #136 from hydralauncher/fix/update-fastlist-location-after-electron-build-migration
fix: update fastlist directory
2024-04-30 22:24:23 +01:00
Hydra
1cbaa53852 Merge pull request #136 from hydralauncher/fix/update-fastlist-location-after-electron-build-migration
fix: update fastlist directory
2024-04-30 22:24:23 +01:00
Hydra
4282eca581 Merge pull request #136 from hydralauncher/fix/update-fastlist-location-after-electron-build-migration
fix: update fastlist directory
2024-04-30 22:24:23 +01:00
lilezek
27bf3c92ec fix: do not add the same magnet twice to real debrid 2024-04-30 21:11:32 +02:00
Zamitto
f14ddba807 fix: update fastlist directory 2024-04-30 16:04:42 -03:00
Zamitto
15ba379152 fix: update fastlist directory 2024-04-30 16:04:42 -03:00
Zamitto
de636533ca fix: update fastlist directory 2024-04-30 16:04:42 -03:00
Zamitto
5d94958197 fix: update fastlist directory 2024-04-30 16:04:42 -03:00
lilezek
d3f891da16 Merge branch 'main' of github.com:lilezek/hydra 2024-04-30 11:39:42 +02:00
lilezek
e2feb5f056 refactor: drop unnecesary node-fetch library 2024-04-30 11:39:35 +02:00
github-actions[bot]
c5dc8e17f3 docs(contributor): contrib-readme-action has updated readme 2024-04-30 09:28:06 +00:00
lilezek
040dc475e7 fix: forgot to add @globals to the vite config. 2024-04-30 11:27:44 +02:00
lilezek
e79b6f1391 refactor: prettier changes 2024-04-30 11:24:35 +02:00
lilezek
a16a30761e Merge branch 'main' of github.com:lilezek/hydra 2024-04-30 11:12:33 +02:00
lilezek
7ee5b73688 fix: real debrid decompression happens in a folder that hydra recognises properly. 2024-04-30 11:11:58 +02:00
lilezek
c5693e94af refactor: real debrid types 2024-04-30 11:09:53 +02:00
lilezek
6d36db5446 fix: added the @globals back and removed some merge leftovers 2024-04-30 11:09:29 +02:00
lilezek
c8fe984171 fix: drop some merge leftovers 2024-04-30 11:07:39 +02:00
github-actions[bot]
9aff88c768 docs(contributor): contrib-readme-action has updated readme 2024-04-30 08:33:05 +00:00
lilezek
483f8223b6 Merge branch 'main' of https://github.com/hydralauncher/hydra 2024-04-30 10:01:52 +02:00
lilezek
a6d515c49f fix: some spanish translations were wrong. 2024-04-30 09:44:35 +02:00
lilezek
f1d2a88442 feat: added helper functions to the game status to keep it simple to read. 2024-04-30 09:29:29 +02:00
github-actions[bot]
06d334d2d7 docs(contributor): contrib-readme-action has updated readme 2024-04-30 03:15:11 +00:00
github-actions[bot]
d85fa66a87 docs(contributor): contrib-readme-action has updated readme 2024-04-30 03:15:11 +00:00
github-actions[bot]
d48789a7fa docs(contributor): contrib-readme-action has updated readme 2024-04-30 03:15:11 +00:00
github-actions[bot]
66ee78edc1 docs(contributor): contrib-readme-action has updated readme 2024-04-30 03:15:11 +00:00
Hydra
5e1c850c72 chore: merge with main 2024-04-30 03:59:35 +01:00
Hydra
c2acc868da chore: merge with main 2024-04-30 03:59:35 +01:00
Hydra
d0a9039c4b chore: merge with main 2024-04-30 03:59:35 +01:00
Hydra
5fb33646ce chore: merge with main 2024-04-30 03:59:35 +01:00
Hydra
5293038b82 Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-30 03:31:10 +01:00
Hydra
5929155276 Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-30 03:31:10 +01:00
Hydra
8289fb28ee Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-30 03:31:10 +01:00
Hydra
f7c2c2630d Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-30 03:31:10 +01:00
Hydra
a072487c55 Merge pull request #104 from fxwss/fix/description-image-sizing
💄 fix game details description image size
2024-04-30 03:31:05 +01:00
Hydra
580136c8ae Merge pull request #104 from fxwss/fix/description-image-sizing
💄 fix game details description image size
2024-04-30 03:31:05 +01:00
Hydra
0eae40793f Merge pull request #104 from fxwss/fix/description-image-sizing
💄 fix game details description image size
2024-04-30 03:31:05 +01:00
Hydra
8f606876ff Merge pull request #104 from fxwss/fix/description-image-sizing
💄 fix game details description image size
2024-04-30 03:31:05 +01:00
Hydra
cc91b38d6a chore: merge with main 2024-04-30 03:30:48 +01:00
Hydra
5b74ef512a chore: merge with main 2024-04-30 03:30:48 +01:00
Hydra
b19c673db3 chore: merge with main 2024-04-30 03:30:48 +01:00
Hydra
be532d00fe chore: merge with main 2024-04-30 03:30:48 +01:00
Hydra
e630a6129a Merge branch 'main' into fix/description-image-sizing 2024-04-30 03:28:57 +01:00
Hydra
926ed4574d Merge branch 'main' into fix/description-image-sizing 2024-04-30 03:28:57 +01:00
Hydra
354336319e Merge branch 'main' into fix/description-image-sizing 2024-04-30 03:28:57 +01:00
Hydra
872b7f38ce Merge branch 'main' into fix/description-image-sizing 2024-04-30 03:28:57 +01:00
Hydra
6b2a480fa6 fix: fixing typecheck errors 2024-04-30 03:27:07 +01:00
Hydra
8383cb9070 fix: fixing typecheck errors 2024-04-30 03:27:07 +01:00
Hydra
ac299ba061 fix: fixing typecheck errors 2024-04-30 03:27:07 +01:00
Hydra
4cc81fe6b9 fix: fixing typecheck errors 2024-04-30 03:27:07 +01:00
Hydra
cbfc822d73 Merge pull request #92 from zamitto/feat/enhance-get-random-game
Feat/enhance get random game
2024-04-30 03:26:41 +01:00
Hydra
d5444c2999 Merge pull request #92 from zamitto/feat/enhance-get-random-game
Feat/enhance get random game
2024-04-30 03:26:41 +01:00
Hydra
7bc4cd20cb Merge pull request #92 from zamitto/feat/enhance-get-random-game
Feat/enhance get random game
2024-04-30 03:26:41 +01:00
Hydra
77a53696bb Merge pull request #92 from zamitto/feat/enhance-get-random-game
Feat/enhance get random game
2024-04-30 03:26:41 +01:00
Lucas
acb9ff82b6 💄 fix game details description image size 2024-04-29 16:43:13 -03:00
Lucas
ea58e88e27 💄 fix game details description image size 2024-04-29 16:43:13 -03:00
Lucas
de26361e6a 💄 fix game details description image size 2024-04-29 16:43:13 -03:00
Lucas
2f1a034f28 💄 fix game details description image size 2024-04-29 16:43:13 -03:00
lilezek
666b1afcb6 feat: added a Downloader helper to choose between real debrid and torrent when downloading 2024-04-29 20:57:04 +02:00
lilezek
6bb22655e8 feat: added support to add magnets and download from real debrid 2024-04-29 20:54:27 +02:00
lilezek
76a64fca4a feat: added support to unrar files 2024-04-29 20:53:58 +02:00
lilezek
3ef2f87412 feat: added fields in entities to support rar decompression progress, and real debrid api token settings 2024-04-29 20:52:53 +02:00
lilezek
6fa4c178a7 refactor: moved the game status to a global file (accessible to the render part) and used it in game entity 2024-04-29 20:50:10 +02:00
lilezek
c6e4ba4789 feat: add the dependencies for real debrid 2024-04-29 20:44:14 +02:00
Zamitto
12c90f9ba4 changes after pr review 2024-04-29 14:12:06 -03:00
Zamitto
4519816b49 changes after pr review 2024-04-29 14:12:06 -03:00
Zamitto
eb8dc38f1e changes after pr review 2024-04-29 14:12:06 -03:00
Zamitto
6f1bfa0fb9 changes after pr review 2024-04-29 14:12:06 -03:00
Hydra
ab8721f2e5 ci: adding contributors 2024-04-29 14:59:23 +01:00
Hydra
733a471c9b ci: adding contributors 2024-04-29 14:59:23 +01:00
Hydra
0a23806ee8 ci: adding contributors 2024-04-29 14:59:23 +01:00
Hydra
dea52d317f ci: adding contributors 2024-04-29 14:59:23 +01:00
Hydra
d77c518fad chore: replacing tray icon 2024-04-29 11:52:14 +01:00
Hydra
5453246237 chore: replacing tray icon 2024-04-29 11:52:14 +01:00
Hydra
2ddc77cebe chore: replacing tray icon 2024-04-29 11:52:14 +01:00
Hydra
eafc68550d chore: replacing tray icon 2024-04-29 11:52:14 +01:00
Hydra
4a2c28d306 fix: moving db 2024-04-29 11:49:26 +01:00
Hydra
9c279c21bc fix: moving db 2024-04-29 11:49:26 +01:00
Hydra
464c1928ce fix: moving db 2024-04-29 11:49:26 +01:00
Hydra
0d899eb268 fix: moving db 2024-04-29 11:49:26 +01:00
Hydra
2e315e2df1 fix: moving db 2024-04-29 11:40:41 +01:00
Hydra
c4120fd5c6 fix: moving db 2024-04-29 11:40:41 +01:00
Hydra
268a2d7fdb fix: moving db 2024-04-29 11:40:41 +01:00
Hydra
238303b8b0 fix: moving db 2024-04-29 11:40:41 +01:00
Hydra
6bb69b8169 fix: commenting online fix ONCE AGAIN 2024-04-29 11:23:23 +01:00
Hydra
0fc1823a8d fix: commenting online fix ONCE AGAIN 2024-04-29 11:23:23 +01:00
Hydra
3f6c1e780e fix: commenting online fix ONCE AGAIN 2024-04-29 11:23:23 +01:00
Hydra
d19a191112 fix: commenting online fix ONCE AGAIN 2024-04-29 11:23:23 +01:00
Hydra
744dbe5a6f ci: testing pipeline 2024-04-29 11:13:11 +01:00
Hydra
2f8c594c3e ci: testing pipeline 2024-04-29 11:13:11 +01:00
Hydra
a7336d444e ci: testing pipeline 2024-04-29 11:13:11 +01:00
Hydra
e79c845b78 ci: testing pipeline 2024-04-29 11:13:11 +01:00
Hydra
c6d8f83780 ci: testing pipeline 2024-04-29 11:08:04 +01:00
Hydra
04d7a46f82 ci: testing pipeline 2024-04-29 11:08:04 +01:00
Hydra
615dea5b8e ci: testing pipeline 2024-04-29 11:08:04 +01:00
Hydra
b26135dd2a ci: testing pipeline 2024-04-29 11:08:04 +01:00
Hydra
3b5f3da2ab ci: testing pipeline 2024-04-29 11:01:34 +01:00
Hydra
25fb4342d6 ci: testing pipeline 2024-04-29 11:01:34 +01:00
Hydra
7bc14c7f5c ci: testing pipeline 2024-04-29 11:01:34 +01:00
Hydra
ae6484b7b1 ci: testing pipeline 2024-04-29 11:01:34 +01:00
Hydra
5bec457ba6 fix: renaming extension of postinstall script 2024-04-28 19:30:03 +01:00
Hydra
05177d5e9c fix: renaming extension of postinstall script 2024-04-28 19:30:03 +01:00
Hydra
7241869ed0 fix: renaming extension of postinstall script 2024-04-28 19:30:03 +01:00
Hydra
7e3f53a0d0 fix: renaming extension of postinstall script 2024-04-28 19:30:03 +01:00
Hydra
dd3709656a Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-28 19:21:23 +01:00
Hydra
4a7100d92a Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-28 19:21:23 +01:00
Hydra
79109afb89 Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-28 19:21:23 +01:00
Hydra
57ac444f9c Merge branch 'main' of github.com:hydralauncher/hydra into feat/migration-to-electron-builder 2024-04-28 19:21:23 +01:00
Hydra
4636571a25 chore: merge with main 2024-04-28 19:21:14 +01:00
Hydra
f865adc865 chore: merge with main 2024-04-28 19:21:14 +01:00
Hydra
546a241c51 chore: merge with main 2024-04-28 19:21:14 +01:00
Hydra
a471450d45 chore: merge with main 2024-04-28 19:21:14 +01:00
Zamitto
a03cbe1f39 Merge branch 'main' into feat/enhance-get-random-game 2024-04-28 15:06:25 -03:00
Zamitto
1d2c6c61fe Merge branch 'main' into feat/enhance-get-random-game 2024-04-28 15:06:25 -03:00
Zamitto
e6cc7a2861 Merge branch 'main' into feat/enhance-get-random-game 2024-04-28 15:06:25 -03:00
Zamitto
7bdb549f08 Merge branch 'main' into feat/enhance-get-random-game 2024-04-28 15:06:25 -03:00
Hydra
208b82d6c9 Merge pull request #84 from Netflixyapp/main
fix: fix french terms in translation
2024-04-28 17:10:33 +01:00
Hydra
12e5f96274 Merge pull request #84 from Netflixyapp/main
fix: fix french terms in translation
2024-04-28 17:10:33 +01:00
Hydra
41f858124a Merge pull request #84 from Netflixyapp/main
fix: fix french terms in translation
2024-04-28 17:10:33 +01:00
Hydra
0da18311aa Merge pull request #84 from Netflixyapp/main
fix: fix french terms in translation
2024-04-28 17:10:33 +01:00
Hydra
84956e3c9c Merge branch 'main' into main 2024-04-28 17:09:10 +01:00
Hydra
8b2a96d8d5 Merge branch 'main' into main 2024-04-28 17:09:10 +01:00
Hydra
12a1cbaabd Merge branch 'main' into main 2024-04-28 17:09:10 +01:00
Hydra
8754ad93a3 Merge branch 'main' into main 2024-04-28 17:09:10 +01:00
Hydra
57a735f17a Merge pull request #95 from eltociear/patch-1
Update README.md
2024-04-28 17:08:00 +01:00
Hydra
21eb92075d Merge pull request #95 from eltociear/patch-1
Update README.md
2024-04-28 17:08:00 +01:00
Hydra
44e703b600 Merge pull request #95 from eltociear/patch-1
Update README.md
2024-04-28 17:08:00 +01:00
Hydra
407f137bca Merge pull request #95 from eltociear/patch-1
Update README.md
2024-04-28 17:08:00 +01:00
Ikko Eltociear Ashimine
58a777e41b Update README.md
minor fix
2024-04-29 00:43:08 +09:00
Ikko Eltociear Ashimine
6f0357ee74 Update README.md
minor fix
2024-04-29 00:43:08 +09:00
Ikko Eltociear Ashimine
67083839b9 Update README.md
minor fix
2024-04-29 00:43:08 +09:00
Ikko Eltociear Ashimine
df599d39b0 Update README.md
minor fix
2024-04-29 00:43:08 +09:00
Hydra
a4df6e9bab feat: adding tray icon 2024-04-28 05:59:06 +01:00
Hydra
842dc22f3d feat: adding tray icon 2024-04-28 05:59:06 +01:00
Hydra
5536ea1ddf feat: adding tray icon 2024-04-28 05:59:06 +01:00
Hydra
90c49d60f7 feat: adding tray icon 2024-04-28 05:59:06 +01:00
Zamitto
632cd244b0 remove unused import and fix lint 2024-04-28 00:28:12 -03:00
Zamitto
9c330c40a8 remove unused import and fix lint 2024-04-28 00:28:12 -03:00
Zamitto
f14148861a remove unused import and fix lint 2024-04-28 00:28:12 -03:00
Zamitto
4f0416763c remove unused import and fix lint 2024-04-28 00:28:12 -03:00
Zamitto
bb9302908d make sure the registed event for seachGames returns a Promise 2024-04-28 00:13:29 -03:00
Zamitto
1c6ffc8ce2 make sure the registed event for seachGames returns a Promise 2024-04-28 00:13:29 -03:00
Zamitto
8c9ab2012b make sure the registed event for seachGames returns a Promise 2024-04-28 00:13:29 -03:00
Zamitto
2a63d1f7ca make sure the registed event for seachGames returns a Promise 2024-04-28 00:13:29 -03:00
Zamitto
4ffaa510cc refactor get-random-game 2024-04-27 22:04:42 -03:00
Zamitto
49d9e5e8c0 refactor get-random-game 2024-04-27 22:04:42 -03:00
Zamitto
0759813ed5 refactor get-random-game 2024-04-27 22:04:42 -03:00
Zamitto
013aa20745 refactor get-random-game 2024-04-27 22:04:42 -03:00
Zamitto
c32d75713c removing async from searchGames 2024-04-27 22:04:35 -03:00
Zamitto
76faa0607d removing async from searchGames 2024-04-27 22:04:35 -03:00
Zamitto
d84c665caf removing async from searchGames 2024-04-27 22:04:35 -03:00
Zamitto
8eece72a81 removing async from searchGames 2024-04-27 22:04:35 -03:00
Zamitto
5f3dc5d0ea feat: disable next random suggestion button until game details finish loading 2024-04-27 21:00:57 -03:00
Zamitto
f9fe68e550 feat: disable next random suggestion button until game details finish loading 2024-04-27 21:00:57 -03:00
Zamitto
a89686a45b feat: disable next random suggestion button until game details finish loading 2024-04-27 21:00:57 -03:00
Zamitto
7a48a0202c feat: disable next random suggestion button until game details finish loading 2024-04-27 21:00:57 -03:00
Zamitto
a8b236e02c fix possibility of 404 on home if getRandomGame has no validy elements to return
this can happen when user has no internet connection when opening hydra
2024-04-27 20:46:15 -03:00
Zamitto
2839d65526 fix possibility of 404 on home if getRandomGame has no validy elements to return
this can happen when user has no internet connection when opening hydra
2024-04-27 20:46:15 -03:00
Zamitto
15edc1698a fix possibility of 404 on home if getRandomGame has no validy elements to return
this can happen when user has no internet connection when opening hydra
2024-04-27 20:46:15 -03:00
Zamitto
dd757ccfce fix possibility of 404 on home if getRandomGame has no validy elements to return
this can happen when user has no internet connection when opening hydra
2024-04-27 20:46:15 -03:00
Zamitto
2904302c81 renaming variables 2024-04-27 20:42:50 -03:00
Zamitto
588dc5bb54 renaming variables 2024-04-27 20:42:50 -03:00
Zamitto
0b8ebcbfd8 renaming variables 2024-04-27 20:42:50 -03:00
Zamitto
7994b2a135 renaming variables 2024-04-27 20:42:50 -03:00
Zamitto
74a5d5c7f4 replace Set with Map 2024-04-27 20:42:28 -03:00
Zamitto
135c9be5f7 replace Set with Map 2024-04-27 20:42:28 -03:00
Zamitto
913699e4b6 replace Set with Map 2024-04-27 20:42:28 -03:00
Zamitto
4e3ee8747b replace Set with Map 2024-04-27 20:42:28 -03:00
Zamitto
5d8813a78f fix: possible bug when catalogue returns games with similar name 2024-04-27 20:15:24 -03:00
Zamitto
6328497372 fix: possible bug when catalogue returns games with similar name 2024-04-27 20:15:24 -03:00
Zamitto
5ede782acd fix: possible bug when catalogue returns games with similar name 2024-04-27 20:15:24 -03:00
Zamitto
4acb9938f3 fix: possible bug when catalogue returns games with similar name 2024-04-27 20:15:24 -03:00
Zamitto
170a58d3cd feat: adjustments 2024-04-27 19:54:37 -03:00
Zamitto
330dd9c218 feat: adjustments 2024-04-27 19:54:37 -03:00
Zamitto
1b2d857dd1 feat: adjustments 2024-04-27 19:54:37 -03:00
Zamitto
ac3234aad9 feat: adjustments 2024-04-27 19:54:37 -03:00
Zamitto
c9d678be11 feat: game-details call getRandomCall on button click 2024-04-27 18:41:37 -03:00
Zamitto
523d711b49 feat: game-details call getRandomCall on button click 2024-04-27 18:41:37 -03:00
Zamitto
b6c54c103d feat: game-details call getRandomCall on button click 2024-04-27 18:41:37 -03:00
Zamitto
2426eab371 feat: game-details call getRandomCall on button click 2024-04-27 18:41:37 -03:00
Zamitto
6132ddd2b7 feat: get all games on first request 2024-04-27 18:40:05 -03:00
Zamitto
d7810eec38 feat: get all games on first request 2024-04-27 18:40:05 -03:00
Zamitto
dacaf347fd feat: get all games on first request 2024-04-27 18:40:05 -03:00
Zamitto
6068c506c3 feat: get all games on first request 2024-04-27 18:40:05 -03:00
Hydra
b4a960f069 Merge branch 'main' into main 2024-04-27 03:12:42 +01:00
Hydra
5f06c3ec5e Merge branch 'main' into main 2024-04-27 03:12:42 +01:00
Hydra
ec3039620d Merge branch 'main' into main 2024-04-27 03:12:42 +01:00
Hydra
900e2b211c Merge branch 'main' into main 2024-04-27 03:12:42 +01:00
Hydra
ffaccba896 Merge pull request #79 from zamitto/feat/process-watcher
process watcher performance
2024-04-27 03:12:15 +01:00
Hydra
5a24f5ba29 Merge pull request #79 from zamitto/feat/process-watcher
process watcher performance
2024-04-27 03:12:15 +01:00
Hydra
7d9119053f Merge pull request #79 from zamitto/feat/process-watcher
process watcher performance
2024-04-27 03:12:15 +01:00
Hydra
592ccb576a Merge pull request #79 from zamitto/feat/process-watcher
process watcher performance
2024-04-27 03:12:15 +01:00
Zamitto
bcfa3bb795 add new line to .eslintignore 2024-04-26 23:04:57 -03:00
Zamitto
0e38e7555a add new line to .eslintignore 2024-04-26 23:04:57 -03:00
Zamitto
03e5941adb add new line to .eslintignore 2024-04-26 23:04:57 -03:00
Zamitto
5af2f951ea add new line to .eslintignore 2024-04-26 23:04:57 -03:00
Zamitto
a4edff3619 use app.isPackaged directly inside getProcesses function 2024-04-26 23:02:53 -03:00
Zamitto
b781bd919c use app.isPackaged directly inside getProcesses function 2024-04-26 23:02:53 -03:00
Zamitto
ffd9349ebe use app.isPackaged directly inside getProcesses function 2024-04-26 23:02:53 -03:00
Zamitto
31772138f1 use app.isPackaged directly inside getProcesses function 2024-04-26 23:02:53 -03:00
Zamitto
9b9eabd801 migrate postinstall from py to js 2024-04-26 23:02:21 -03:00
Zamitto
41ab9333a4 migrate postinstall from py to js 2024-04-26 23:02:21 -03:00
Zamitto
a66f5a845f migrate postinstall from py to js 2024-04-26 23:02:21 -03:00
Zamitto
bf218e9ce6 migrate postinstall from py to js 2024-04-26 23:02:21 -03:00
Zamitto
e15479cd6a feat: remove tasklist ts declaration and remove tasklist dependency 2024-04-26 22:42:07 -03:00
Zamitto
decfe4369c feat: remove tasklist ts declaration and remove tasklist dependency 2024-04-26 22:42:07 -03:00
Zamitto
aedb08d939 feat: remove tasklist ts declaration and remove tasklist dependency 2024-04-26 22:42:07 -03:00
Zamitto
3b26d9ffdc feat: remove tasklist ts declaration and remove tasklist dependency 2024-04-26 22:42:07 -03:00
Zamitto
2363a6d0b2 feat: remove unneeded gitignore 2024-04-26 22:39:25 -03:00
Zamitto
349acbc779 feat: remove unneeded gitignore 2024-04-26 22:39:25 -03:00
Zamitto
917c92602e feat: remove unneeded gitignore 2024-04-26 22:39:25 -03:00
Zamitto
1f6da223be feat: remove unneeded gitignore 2024-04-26 22:39:25 -03:00
Zamitto
7f7d4a1db3 chage fastlis.exe location to not conflict with linux build 2024-04-26 00:22:28 -03:00
Zamitto
5419376d09 chage fastlis.exe location to not conflict with linux build 2024-04-26 00:22:28 -03:00
Zamitto
4c644dfd90 chage fastlis.exe location to not conflict with linux build 2024-04-26 00:22:28 -03:00
Zamitto
42be20664d chage fastlis.exe location to not conflict with linux build 2024-04-26 00:22:28 -03:00
Zamitto
fd6ab62e13 add fastlist.exe to extraResources 2024-04-26 00:12:17 -03:00
Zamitto
315e06a7b8 add fastlist.exe to extraResources 2024-04-26 00:12:17 -03:00
Zamitto
02cce803ac add fastlist.exe to extraResources 2024-04-26 00:12:17 -03:00
Zamitto
2d88427c87 add fastlist.exe to extraResources 2024-04-26 00:12:17 -03:00
Zamitto
0bbd7d013f feat: run fastfile binary from resources folder
feat: run process watcher each 300ms

feat: add build step to copy fastlist from node_modules

feat: create postinstall script to copy fastlist binary

remove debug logs
2024-04-25 23:53:24 -03:00
Zamitto
e4133e9a90 feat: run fastfile binary from resources folder
feat: run process watcher each 300ms

feat: add build step to copy fastlist from node_modules

feat: create postinstall script to copy fastlist binary

remove debug logs
2024-04-25 23:53:24 -03:00
Zamitto
9229bf8236 feat: run fastfile binary from resources folder
feat: run process watcher each 300ms

feat: add build step to copy fastlist from node_modules

feat: create postinstall script to copy fastlist binary

remove debug logs
2024-04-25 23:53:24 -03:00
Zamitto
2194a5ac21 feat: run fastfile binary from resources folder
feat: run process watcher each 300ms

feat: add build step to copy fastlist from node_modules

feat: create postinstall script to copy fastlist binary

remove debug logs
2024-04-25 23:53:24 -03:00
Zamitto
854b23e4ef correctly print time logs 2024-04-25 23:53:23 -03:00
Zamitto
cb82424eb2 correctly print time logs 2024-04-25 23:53:23 -03:00
Zamitto
0bd977d9e9 correctly print time logs 2024-04-25 23:53:23 -03:00
Zamitto
b5d1c1a0b0 correctly print time logs 2024-04-25 23:53:23 -03:00
Zamitto
1620437d1e format with prettier 2024-04-25 23:53:23 -03:00
Zamitto
efab6a7c30 format with prettier 2024-04-25 23:53:23 -03:00
Zamitto
3a3db8cbc8 format with prettier 2024-04-25 23:53:23 -03:00
Zamitto
d779b315dc format with prettier 2024-04-25 23:53:23 -03:00
Zamitto
2675641f7b feat: add total loop time log 2024-04-25 23:53:23 -03:00
Zamitto
8a496d20ef feat: add total loop time log 2024-04-25 23:53:23 -03:00
Zamitto
43e51727ef feat: add total loop time log 2024-04-25 23:53:23 -03:00
Zamitto
33ad8e8bcf feat: add total loop time log 2024-04-25 23:53:23 -03:00
Zamitto
ecac6376d7 feat: use psList on windows (~25ms vs ~320ms) 2024-04-25 23:53:23 -03:00
Zamitto
5cb81cd54f feat: use psList on windows (~25ms vs ~320ms) 2024-04-25 23:53:23 -03:00
Zamitto
1822724df2 feat: use psList on windows (~25ms vs ~320ms) 2024-04-25 23:53:23 -03:00
Zamitto
0a2d694634 feat: use psList on windows (~25ms vs ~320ms) 2024-04-25 23:53:23 -03:00
Netflixy
5c9e1099b4 fix: fix french terms in translation 2024-04-25 23:24:50 +02:00
Netflixy
1c59e98fbf fix: fix french terms in translation 2024-04-25 23:24:50 +02:00
Netflixy
ff43648944 fix: fix french terms in translation 2024-04-25 23:24:50 +02:00
Netflixy
9908280269 fix: fix french terms in translation 2024-04-25 23:24:50 +02:00
Hydra
f9223ad36d fix: fixing typechecks 2024-04-25 20:54:38 +01:00
Hydra
4b57ea48e8 fix: fixing typechecks 2024-04-25 20:54:38 +01:00
Hydra
486ae1f084 fix: fixing typechecks 2024-04-25 20:54:38 +01:00
Hydra
412766e0d0 fix: fixing typechecks 2024-04-25 20:54:38 +01:00
Hydra
c07f82ce49 chore: merge with main 2024-04-25 05:57:01 +01:00
Hydra
b833e7e351 chore: merge with main 2024-04-25 05:57:01 +01:00
Hydra
ab6091def5 chore: merge with main 2024-04-25 05:57:01 +01:00
Hydra
b7afc3e9fa chore: merge with main 2024-04-25 05:57:01 +01:00
Hydra
498a889f1d chore: merge with main 2024-04-25 05:52:19 +01:00
Hydra
5dbc3b68c5 chore: merge with main 2024-04-25 05:52:19 +01:00
Hydra
c9e15512aa chore: merge with main 2024-04-25 05:52:19 +01:00
Hydra
1e52a21349 chore: merge with main 2024-04-25 05:52:19 +01:00
Hydra
6ab42eee2d Merge pull request #82 from Magrid0/main
[Locales] Fix french translation
2024-04-24 20:38:28 +01:00
Hydra
7eeb1a281c Merge pull request #82 from Magrid0/main
[Locales] Fix french translation
2024-04-24 20:38:28 +01:00
Hydra
46a099118e Merge pull request #82 from Magrid0/main
[Locales] Fix french translation
2024-04-24 20:38:28 +01:00
Hydra
6c6cdfaa76 Merge pull request #82 from Magrid0/main
[Locales] Fix french translation
2024-04-24 20:38:28 +01:00
Magrid
219f532569 Merge pull request #1 from Magrid0/fix-french-translation
[Locales] Fix french translation
2024-04-24 20:25:23 +02:00
Magrid
a40007f536 Merge pull request #1 from Magrid0/fix-french-translation
[Locales] Fix french translation
2024-04-24 20:25:23 +02:00
Magrid
cce8705a21 Merge pull request #1 from Magrid0/fix-french-translation
[Locales] Fix french translation
2024-04-24 20:25:23 +02:00
Magrid
e6208fbfbd Merge pull request #1 from Magrid0/fix-french-translation
[Locales] Fix french translation
2024-04-24 20:25:23 +02:00
Magrid
e18200d796 fix french translation 2024-04-24 20:21:37 +02:00
Magrid
76bd345c47 fix french translation 2024-04-24 20:21:37 +02:00
Magrid
980082d659 fix french translation 2024-04-24 20:21:37 +02:00
Magrid
d136e99765 fix french translation 2024-04-24 20:21:37 +02:00
Hydra
a7cad41d36 Merge pull request #58 from hydralauncher/refactor/change-game-delete-to-soft-delete
refactor: change game delete to soft delete
2024-04-24 10:41:04 +01:00
Hydra
9a2091f752 Merge pull request #58 from hydralauncher/refactor/change-game-delete-to-soft-delete
refactor: change game delete to soft delete
2024-04-24 10:41:04 +01:00
Hydra
06efd199a7 Merge pull request #58 from hydralauncher/refactor/change-game-delete-to-soft-delete
refactor: change game delete to soft delete
2024-04-24 10:41:04 +01:00
Hydra
be44d0f3db Merge pull request #58 from hydralauncher/refactor/change-game-delete-to-soft-delete
refactor: change game delete to soft delete
2024-04-24 10:41:04 +01:00
Hydra
b3f22bd6eb Merge pull request #56 from ferivoq/main
[Locales] Added Hungarian language support
2024-04-24 10:40:44 +01:00
Hydra
017d4df3dd Merge pull request #56 from ferivoq/main
[Locales] Added Hungarian language support
2024-04-24 10:40:44 +01:00
Hydra
6f96d599e6 Merge pull request #56 from ferivoq/main
[Locales] Added Hungarian language support
2024-04-24 10:40:44 +01:00
Hydra
33ceb7aac5 Merge pull request #56 from ferivoq/main
[Locales] Added Hungarian language support
2024-04-24 10:40:44 +01:00
Hydra
816a37de85 Merge branch 'main' into main 2024-04-24 10:40:25 +01:00
Hydra
5a3fcef268 Merge branch 'main' into main 2024-04-24 10:40:25 +01:00
Hydra
bb98f691e4 Merge branch 'main' into main 2024-04-24 10:40:25 +01:00
Hydra
4bd7aacf7c Merge branch 'main' into main 2024-04-24 10:40:25 +01:00
Hydra
1016f1eb6d Merge pull request #72 from Magrid0/italian-translation
[Locales] Added Italian language support
2024-04-24 10:34:14 +01:00
Hydra
a063fce481 Merge pull request #72 from Magrid0/italian-translation
[Locales] Added Italian language support
2024-04-24 10:34:14 +01:00
Hydra
3d29e070d2 Merge pull request #72 from Magrid0/italian-translation
[Locales] Added Italian language support
2024-04-24 10:34:14 +01:00
Hydra
ba31886013 Merge pull request #72 from Magrid0/italian-translation
[Locales] Added Italian language support
2024-04-24 10:34:14 +01:00
Hydra
0e916084aa chore: removing pycache 2024-04-24 10:29:24 +01:00
Hydra
a7135733fb chore: removing pycache 2024-04-24 10:29:24 +01:00
Hydra
fc6cd710ac feat: adding pycache to gitignore 2024-04-24 10:22:12 +01:00
Hydra
ca1b9b2170 feat: adding pycache to gitignore 2024-04-24 10:22:12 +01:00
JackEnx
22354f6cb5 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 21:31:23 -03:00
JackEnx
61f3ad26a2 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 21:31:23 -03:00
JackEnx
7789e128a1 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 21:31:23 -03:00
JackEnx
db7dc724ac Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 21:31:23 -03:00
Hydra
a0b8a6cd47 Merge branch 'main' into italian-translation 2024-04-24 00:05:55 +01:00
Hydra
413e21786b Merge branch 'main' into italian-translation 2024-04-24 00:05:55 +01:00
Hydra
6ad88e060b Merge branch 'main' into italian-translation 2024-04-24 00:05:55 +01:00
Hydra
311676f96f Merge branch 'main' into italian-translation 2024-04-24 00:05:55 +01:00
Hydra
97b90578d0 Merge branch 'main' into main 2024-04-24 00:05:44 +01:00
Hydra
84fd1c5748 Merge branch 'main' into main 2024-04-24 00:05:44 +01:00
Hydra
3717f6dcef Merge branch 'main' into main 2024-04-24 00:05:44 +01:00
Hydra
3fa18a4376 Merge branch 'main' into main 2024-04-24 00:05:44 +01:00
Hydra
f753bd5c96 Merge pull request #76 from fernandozanutto/fix/missing-useEffect-dependency
fix: add handleCloseClick to useEffect dependency
2024-04-23 23:58:18 +01:00
Hydra
83f304be9e Merge pull request #76 from fernandozanutto/fix/missing-useEffect-dependency
fix: add handleCloseClick to useEffect dependency
2024-04-23 23:58:18 +01:00
Hydra
86407e2a55 Merge pull request #76 from fernandozanutto/fix/missing-useEffect-dependency
fix: add handleCloseClick to useEffect dependency
2024-04-23 23:58:18 +01:00
Hydra
80f69f3600 Merge pull request #76 from fernandozanutto/fix/missing-useEffect-dependency
fix: add handleCloseClick to useEffect dependency
2024-04-23 23:58:18 +01:00
Fernando Zanutto
b60c319dfd lint warnings 2024-04-23 19:44:01 -03:00
Fernando Zanutto
cc02bedd65 lint warnings 2024-04-23 19:44:01 -03:00
Fernando Zanutto
32f134ade5 lint warnings 2024-04-23 19:44:01 -03:00
Fernando Zanutto
0916cb29a5 lint warnings 2024-04-23 19:44:01 -03:00
Fernando Zanutto
6131c14067 trigger pipeline 2024-04-23 19:35:48 -03:00
Fernando Zanutto
11f2b99027 trigger pipeline 2024-04-23 19:35:48 -03:00
Fernando Zanutto
70d8f1072b trigger pipeline 2024-04-23 19:35:48 -03:00
Fernando Zanutto
11410585d5 trigger pipeline 2024-04-23 19:35:48 -03:00
Fernando Zanutto
d11c142032 trigger pipeline 2024-04-23 19:35:40 -03:00
Fernando Zanutto
e99f74f553 trigger pipeline 2024-04-23 19:35:40 -03:00
Fernando Zanutto
6b62d3e6bc trigger pipeline 2024-04-23 19:35:40 -03:00
Fernando Zanutto
1e51712f68 trigger pipeline 2024-04-23 19:35:40 -03:00
JackEnx
504dd5f6c2 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 19:31:38 -03:00
JackEnx
594450f3a5 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 19:31:38 -03:00
JackEnx
86a52043b9 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 19:31:38 -03:00
JackEnx
35522cfbca Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 19:31:38 -03:00
Fernando Zanutto
7ba7391c83 fix: remove unused variable 2024-04-23 19:28:32 -03:00
Fernando Zanutto
9a73be47c4 fix: remove unused variable 2024-04-23 19:28:32 -03:00
Fernando Zanutto
a6884f727c fix: remove unused variable 2024-04-23 19:28:32 -03:00
Fernando Zanutto
0fa887fdc9 fix: remove unused variable 2024-04-23 19:28:32 -03:00
Fernando Zanutto
01c66d79af fix: add handleCloseClick to useEffect dependency 2024-04-23 19:25:47 -03:00
Fernando Zanutto
981b7266a3 fix: add handleCloseClick to useEffect dependency 2024-04-23 19:25:47 -03:00
Fernando Zanutto
08fbaf7b59 fix: add handleCloseClick to useEffect dependency 2024-04-23 19:25:47 -03:00
Fernando Zanutto
eedb8b14b7 fix: add handleCloseClick to useEffect dependency 2024-04-23 19:25:47 -03:00
Hydra
f3c362e3f3 Merge pull request #75 from fernandozanutto/feat/close-modals-on-esc-or-outside-click
Feat/close modals on esc or outside click
2024-04-23 23:16:28 +01:00
Hydra
8e93ec9768 Merge pull request #75 from fernandozanutto/feat/close-modals-on-esc-or-outside-click
Feat/close modals on esc or outside click
2024-04-23 23:16:28 +01:00
Hydra
376c0810cd Merge pull request #75 from fernandozanutto/feat/close-modals-on-esc-or-outside-click
Feat/close modals on esc or outside click
2024-04-23 23:16:28 +01:00
Hydra
6c735e6d1b Merge pull request #75 from fernandozanutto/feat/close-modals-on-esc-or-outside-click
Feat/close modals on esc or outside click
2024-04-23 23:16:28 +01:00
Fernando Zanutto
5bcce3eca2 feat: rename role 2024-04-23 19:15:26 -03:00
Fernando Zanutto
1deb435b42 feat: rename role 2024-04-23 19:15:26 -03:00
Fernando Zanutto
3d9c289e3f feat: rename role 2024-04-23 19:15:26 -03:00
Fernando Zanutto
0cf9362f18 feat: rename role 2024-04-23 19:15:26 -03:00
Fernando Zanutto
c1055463cc feat: removing necessity of id on outer div 2024-04-23 19:11:38 -03:00
Fernando Zanutto
1aa0c215a8 feat: removing necessity of id on outer div 2024-04-23 19:11:38 -03:00
Fernando Zanutto
dae566ce76 feat: removing necessity of id on outer div 2024-04-23 19:11:38 -03:00
Fernando Zanutto
8ebb384418 feat: removing necessity of id on outer div 2024-04-23 19:11:38 -03:00
Magrid
1101c2010b Update translation.json
fix an error
2024-04-23 20:49:43 +02:00
Magrid
b57f54d68b Update translation.json
fix an error
2024-04-23 20:49:43 +02:00
Fernando Zanutto
d9c6d8704d feat: useRef instead of getting element by id 2024-04-23 15:48:00 -03:00
Fernando Zanutto
0f064ca8e6 feat: useRef instead of getting element by id 2024-04-23 15:48:00 -03:00
Fernando Zanutto
bf85316800 feat: useRef instead of getting element by id 2024-04-23 15:48:00 -03:00
Fernando Zanutto
e4015e78cd feat: useRef instead of getting element by id 2024-04-23 15:48:00 -03:00
Fernando Zanutto
d1ad0ea31b feat: rename function 2024-04-23 15:47:34 -03:00
Fernando Zanutto
b1a31cf5fd feat: rename function 2024-04-23 15:47:34 -03:00
Fernando Zanutto
840e45033c feat: rename function 2024-04-23 15:47:34 -03:00
Fernando Zanutto
1691e637c9 feat: rename function 2024-04-23 15:47:34 -03:00
Fernando Zanutto
801abbf744 feat: use role attribute instead of using class with no style 2024-04-23 15:47:10 -03:00
Fernando Zanutto
25887c3ba5 feat: use role attribute instead of using class with no style 2024-04-23 15:47:10 -03:00
Fernando Zanutto
c6facbe253 feat: use role attribute instead of using class with no style 2024-04-23 15:47:10 -03:00
Fernando Zanutto
673691f329 feat: use role attribute instead of using class with no style 2024-04-23 15:47:10 -03:00
Fernando Zanutto
9fa88255a8 feat: rename modal container id 2024-04-23 15:07:31 -03:00
Fernando Zanutto
fd50e3e30b feat: rename modal container id 2024-04-23 15:07:31 -03:00
Fernando Zanutto
74075a014d feat: rename modal container id 2024-04-23 15:07:31 -03:00
Fernando Zanutto
e79e06adb7 feat: rename modal container id 2024-04-23 15:07:31 -03:00
Fernando Zanutto
67af138e5a feat: apply prettier and rename variable 2024-04-23 15:04:22 -03:00
Fernando Zanutto
e28dfcad83 feat: apply prettier and rename variable 2024-04-23 15:04:22 -03:00
Fernando Zanutto
8743db64a6 feat: apply prettier and rename variable 2024-04-23 15:04:22 -03:00
Fernando Zanutto
608ffa7ce5 feat: apply prettier and rename variable 2024-04-23 15:04:22 -03:00
Fernando Zanutto
f8947d4f49 feat: correctly check if modal is top most modal 2024-04-23 15:01:02 -03:00
Fernando Zanutto
a614d24976 feat: correctly check if modal is top most modal 2024-04-23 15:01:02 -03:00
Fernando Zanutto
3e5734343c feat: correctly check if modal is top most modal 2024-04-23 15:01:02 -03:00
Fernando Zanutto
bcd961b791 feat: correctly check if modal is top most modal 2024-04-23 15:01:02 -03:00
JackEnx
66a8349263 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 13:31:35 -03:00
JackEnx
cf44acbf31 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 13:31:35 -03:00
JackEnx
eebec51382 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 13:31:35 -03:00
JackEnx
349f5d6f64 Merge branch 'main' of https://github.com/hydralauncher/hydra into refactor/change-game-delete-to-soft-delete 2024-04-23 13:31:35 -03:00
FeriVOQ
d7c955f753 Update translation.json 2024-04-23 17:20:27 +02:00
FeriVOQ
6348813415 Update translation.json 2024-04-23 17:20:27 +02:00
Fernando Zanutto
dbdb36999d feat: close modal on Esc press 2024-04-23 09:34:07 -03:00
Fernando Zanutto
d7ab50846d feat: close modal on Esc press 2024-04-23 09:34:07 -03:00
Fernando Zanutto
3603fc29fd feat: close modal on Esc press 2024-04-23 09:34:07 -03:00
Fernando Zanutto
ae364f78ca feat: close modal on Esc press 2024-04-23 09:34:07 -03:00
Hydra
9a4b8f2f67 Merge pull request #49 from peres07/feat/add-select-folder-modal-in-game-installation
Feat/add select folder modal in game installation
2024-04-23 12:11:05 +01:00
Hydra
c82109a5bb Merge pull request #49 from peres07/feat/add-select-folder-modal-in-game-installation
Feat/add select folder modal in game installation
2024-04-23 12:11:05 +01:00
Hydra
fe17b2f50e Merge pull request #49 from peres07/feat/add-select-folder-modal-in-game-installation
Feat/add select folder modal in game installation
2024-04-23 12:11:05 +01:00
Hydra
d0d5b5974c Merge pull request #49 from peres07/feat/add-select-folder-modal-in-game-installation
Feat/add select folder modal in game installation
2024-04-23 12:11:05 +01:00
Magrid
ad179c9e12 Finish translation 2024-04-22 22:59:14 +02:00
Magrid
4a1c9f2c4b Finish translation 2024-04-22 22:59:14 +02:00
Magrid
072629fdef Update translation.json 2024-04-22 22:55:39 +02:00
Magrid
d7ac87e2e6 Update translation.json 2024-04-22 22:55:39 +02:00
Magrid
00bc8c5db2 Update index.ts 2024-04-22 22:29:24 +02:00
Magrid
fe26e9ed1f Update index.ts 2024-04-22 22:29:24 +02:00
Magrid
9694c7d668 Start italian translation 2024-04-22 22:26:24 +02:00
Magrid
4f0d00f510 Start italian translation 2024-04-22 22:26:24 +02:00
Hydra
0f60f5ca83 fix: disable change path button when downloading is starting 2024-04-21 22:59:03 -03:00
shadowtosser
aadea11f28 fix: disable change path button when downloading is starting 2024-04-21 22:59:03 -03:00
Hydra
f0bffaa72d fix: disable change path button when downloading is starting 2024-04-21 22:59:03 -03:00
José Luís
cc5712171c fix: disable change path button when downloading is starting 2024-04-21 22:59:03 -03:00
Hydra
d488a9858d feat: change diskFreeSpace from rapacks modal to select folder modal description 2024-04-21 22:57:31 -03:00
shadowtosser
62c92c6253 feat: change diskFreeSpace from rapacks modal to select folder modal description 2024-04-21 22:57:31 -03:00
Hydra
37e9ea71c6 feat: change diskFreeSpace from rapacks modal to select folder modal description 2024-04-21 22:57:31 -03:00
José Luís
4467fe33a7 feat: change diskFreeSpace from rapacks modal to select folder modal description 2024-04-21 22:57:31 -03:00
Hydra
aed8567174 Revert "feat: change selectFolderModal to a section inside repacksModal"
This reverts commit 934fb1145e.
2024-04-21 22:55:00 -03:00
shadowtosser
4d548bb768 Revert "feat: change selectFolderModal to a section inside repacksModal"
This reverts commit 934fb1145e.
2024-04-21 22:55:00 -03:00
Hydra
35927b8784 Revert "feat: change selectFolderModal to a section inside repacksModal"
This reverts commit 934fb1145e.
2024-04-21 22:55:00 -03:00
José Luís
ba15699aab Revert "feat: change selectFolderModal to a section inside repacksModal"
This reverts commit 934fb1145e.
2024-04-21 22:55:00 -03:00
JackEnx
ecbfffb039 fix: change install validation to remove download game only 2024-04-21 19:17:47 -03:00
JackEnx
7f127fdc5c fix: change install validation to remove download game only 2024-04-21 19:17:47 -03:00
JackEnx
797f5ee0d8 refactor: change game delete to soft delete 2024-04-21 16:36:34 -03:00
JackEnx
a947b93669 refactor: change game delete to soft delete 2024-04-21 16:36:34 -03:00
FeriVOQ
791b50ccf4 Added hu to index.ts 2024-04-21 21:11:37 +02:00
FeriVOQ
8f4b0cf2df Added hu to index.ts 2024-04-21 21:11:37 +02:00
FeriVOQ
b5d79e9db0 Added Hungarian translation files 2024-04-21 21:11:17 +02:00
FeriVOQ
66ab20adb9 Added Hungarian translation files 2024-04-21 21:11:17 +02:00
Hydra
1db5a9c295 feat: migrating to electron-vite 2024-04-21 06:26:29 +01:00
Hydra
18de7ca671 feat: migrating to electron-vite 2024-04-21 06:26:29 +01:00
Hydra
44583c4626 prettier: format all files 2024-04-21 01:02:17 -03:00
shadowtosser
9627eae1d2 prettier: format all files 2024-04-21 01:02:17 -03:00
Hydra
a242ea7f47 prettier: format all files 2024-04-21 01:02:17 -03:00
José Luís
149c07c89d prettier: format all files 2024-04-21 01:02:17 -03:00
Hydra
433e00bb50 feat: change selectFolderModal to a section inside repacksModal 2024-04-21 00:59:52 -03:00
shadowtosser
fea8f44c17 feat: change selectFolderModal to a section inside repacksModal 2024-04-21 00:59:52 -03:00
Hydra
95a26c805f feat: change selectFolderModal to a section inside repacksModal 2024-04-21 00:59:52 -03:00
José Luís
934fb1145e feat: change selectFolderModal to a section inside repacksModal 2024-04-21 00:59:52 -03:00
Hydra
5db7b97090 fix: cannot read properties of undefined in selectFolderModal 2024-04-20 23:09:05 -03:00
shadowtosser
23f1eb82db fix: cannot read properties of undefined in selectFolderModal 2024-04-20 23:09:05 -03:00
Hydra
521f23d410 fix: cannot read properties of undefined in selectFolderModal 2024-04-20 23:09:05 -03:00
José Luís
db2b7dc08b fix: cannot read properties of undefined in selectFolderModal 2024-04-20 23:09:05 -03:00
Hydra
93ff4b8f7a refactor: remove downloadPath constant to get directly from props 2024-04-20 23:04:41 -03:00
shadowtosser
64842dc77d refactor: remove downloadPath constant to get directly from props 2024-04-20 23:04:41 -03:00
Hydra
bed9c8f90c refactor: remove downloadPath constant to get directly from props 2024-04-20 23:04:41 -03:00
José Luís
40c0fdc2fd refactor: remove downloadPath constant to get directly from props 2024-04-20 23:04:41 -03:00
Hydra
fca84f7c90 refactor: changed selectedPath from an object to a string 2024-04-20 23:04:00 -03:00
shadowtosser
1c0810b976 refactor: changed selectedPath from an object to a string 2024-04-20 23:04:00 -03:00
Hydra
2442866bab refactor: changed selectedPath from an object to a string 2024-04-20 23:04:00 -03:00
José Luís
d89e4cc32b refactor: changed selectedPath from an object to a string 2024-04-20 23:04:00 -03:00
Hydra
e860b8aeaa fix: game dont install in another path after the first installation 2024-04-20 21:32:10 -03:00
shadowtosser
41f7e5016d fix: game dont install in another path after the first installation 2024-04-20 21:32:10 -03:00
Hydra
a6dbd648c2 fix: game dont install in another path after the first installation 2024-04-20 21:32:10 -03:00
José Luís
2307e96823 fix: game dont install in another path after the first installation 2024-04-20 21:32:10 -03:00
Hydra
12fb53908b fix: select Folder Modal doesn't close 2024-04-20 21:11:01 -03:00
shadowtosser
98d883b7f1 fix: select Folder Modal doesn't close 2024-04-20 21:11:01 -03:00
Hydra
2e53523076 fix: select Folder Modal doesn't close 2024-04-20 21:11:01 -03:00
José Luís
362386ef17 fix: select Folder Modal doesn't close 2024-04-20 21:11:01 -03:00
Hydra
86cdc121e8 Merge remote-tracking branch 'origin/main' into feat/add-select-folder-modal-in-game-installation 2024-04-20 17:03:29 -03:00
shadowtosser
433b05df36 Merge remote-tracking branch 'origin/main' into feat/add-select-folder-modal-in-game-installation 2024-04-20 17:03:29 -03:00
Hydra
bd2ad383c6 Merge remote-tracking branch 'origin/main' into feat/add-select-folder-modal-in-game-installation 2024-04-20 17:03:29 -03:00
José Luís
af715aa110 Merge remote-tracking branch 'origin/main' into feat/add-select-folder-modal-in-game-installation 2024-04-20 17:03:29 -03:00
Hydra
8343b66d67 feat: adding repacker friendly name 2024-04-20 20:40:16 +01:00
Hydra
7a3f0ef9e2 feat: add a modal to select game installation folder (pt and en translation) 2024-04-20 15:54:08 -03:00
shadowtosser
cacc4ca57a feat: add a modal to select game installation folder (pt and en translation) 2024-04-20 15:54:08 -03:00
Hydra
e10b04b78b feat: add a modal to select game installation folder (pt and en translation) 2024-04-20 15:54:08 -03:00
José Luís
ff6c73b95b feat: add a modal to select game installation folder (pt and en translation) 2024-04-20 15:54:08 -03:00
Hydra
0eed312410 feat: commenting online-fix 2024-04-20 18:07:36 +01:00
Hydra
12505cef82 Merge pull request #48 from fhilipecrash/build/add-torrent-client-icon
build: add icon to client torrent exe
2024-04-20 13:48:27 -03:00
Fhilipe Coelho
730e560964 build: add icon to client torrent exe 2024-04-20 13:33:32 -03:00
Hydra
9d159dcf95 chore: removing qs 2024-04-20 17:30:03 +01:00
Hydra
b1c7191ef6 feat: adding onlinefix credentials 2024-04-20 17:12:10 +01:00
Hydra
348d927ca1 feat: adding onlinefix credentials 2024-04-20 17:11:35 +01:00
Hydra
d9056ff0d6 Merge pull request #47 from pmenta/feat/onlinefix
Feat/onlinefix
2024-04-19 23:07:08 -03:00
João Martins
74b424b025 fix: revert unintentional changes 2024-04-19 22:56:05 -03:00
João Martins
6e8425d808 chore: add onlinefix credentials to .env.example 2024-04-19 22:55:13 -03:00
João Martins
b2990039a0 feat: add online fix as repacker 2024-04-19 22:53:58 -03:00
Hydra
cf3b7710e5 chore: sync with main 2024-04-20 00:42:31 +01:00
Hydra
00011cf618 Merge pull request #43 from xbozo/feat/sidebar-socials
feat/sidebar-socials: add socials to sidebar footer
2024-04-19 17:24:57 -03:00
Guilherme Viana
08c258c7d0 fix/sidebar-socials: fix something wrong 2024-04-19 16:49:29 -03:00
Guilherme Viana
a65704e735 refactor/sidebar-socials: refactor & adjust code 2024-04-19 16:47:07 -03:00
Hydra
f8d6375126 Merge pull request #46 from fhilipecrash/build/generate-python-exe-with-cx-freeze
Build/change pyinstaller with cx_freeze
2024-04-19 16:44:05 -03:00
Fhilipe Coelho
761801e5d2 build: change build torrent task name 2024-04-19 16:42:09 -03:00
Fhilipe Coelho
57922eaff0 build: change build torrent command in pipeline 2024-04-19 16:35:47 -03:00
Hydra
14e30d64fa Merge pull request #41 from hydralauncher/fix/game-download-information
fix: game download information
2024-04-19 16:25:53 -03:00
Fhilipe Coelho
d953ae9c47 docs: change build bittorrent client command 2024-04-19 15:36:29 -03:00
Fhilipe Coelho
ebd0654595 build: add windows deps in requirements.txt 2024-04-19 15:22:44 -03:00
Fhilipe Coelho
f8228bfde0 build(linux): add .desktop config 2024-04-19 15:14:44 -03:00
Fhilipe Coelho
d04af753ce build: use cx freeze instead pyinstaller 2024-04-19 15:03:41 -03:00
Guilherme Viana
4725a2e32a feat/sidebar-socials: add socials to sidebar footer 2024-04-19 08:51:52 -03:00
JackEnx
50da09f44e fix: game download information 2024-04-18 21:11:34 -03:00
Hydra
cf27a73149 ci: testing nuitka 2024-04-18 23:27:50 +01:00
Hydra
407c736522 fix: fixing null user preferences for download notifications 2024-04-18 23:03:50 +01:00
Hydra
671c160e49 chore: resolve yarn.lock conflict 2024-04-18 22:27:04 +01:00
Hydra
7d675f6acf feat: updating play label on hero panel 2024-04-18 22:26:17 +01:00
Hydra
733ad61d74 Merge pull request #40 from hydralauncher/refactor/game-download-information
refactor: remove pretty bytes
2024-04-18 17:51:27 -03:00
JackEnx
f710dcdd49 refactor: change file name 2024-04-18 17:17:07 -03:00
JackEnx
28d1aec413 refactor: remove pretty bytes 2024-04-18 15:35:22 -03:00
Hydra
f1bdec484e first commit 2024-04-18 08:46:06 +01:00
255 changed files with 11775 additions and 10725 deletions

9
.editorconfig Normal file
View File

@@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

View File

@@ -1,4 +1,4 @@
STEAMGRIDDB_API_KEY=YOUR_API_KEY
ONLINEFIX_USERNAME=YOUR_ONLINEFIX_USERNAME
ONLINEFIX_PASSWORD=YOUR_ONLINEFIX_PASSWORD
SENTRY_DSN=
MAIN_VITE_STEAMGRIDDB_API_KEY=YOUR_API_KEY
MAIN_VITE_ONLINEFIX_USERNAME=YOUR_USERNAME
MAIN_VITE_ONLINEFIX_PASSWORD=YOUR_PASSWORD

4
.eslintignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules
dist
out
.gitignore

29
.eslintrc.cjs Normal file
View File

@@ -0,0 +1,29 @@
module.exports = {
extends: [
"eslint:recommended",
"plugin:react/recommended",
"plugin:react/jsx-runtime",
"plugin:react-hooks/recommended",
"plugin:jsx-a11y/recommended",
"@electron-toolkit/eslint-config-ts/recommended",
"plugin:prettier/recommended",
],
rules: {
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
},
],
"@typescript-eslint/no-explicit-any": "warn",
"prettier/prettier": [
"error",
{
endOfLine: "auto",
},
],
},
};

View File

@@ -1,46 +0,0 @@
module.exports = {
env: {
browser: true,
es2021: true,
},
settings: {
react: {
version: "detect",
},
},
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react/jsx-runtime",
"plugin:react-hooks/recommended",
"prettier",
],
overrides: [
{
env: {
node: true,
},
files: [".eslintrc.{js,cjs}"],
parserOptions: {
sourceType: "script",
},
},
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["@typescript-eslint", "react"],
rules: {
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
},
],
"@typescript-eslint/no-explicit-any": "warn",
},
};

58
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,58 @@
name: Bug Report
description: Create a report to help us improve. Write in English, please.
title: "[BUG] "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thank you for creating a bug report to help us improve!
- type: textarea
id: bug-description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: bug-reproduce
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior. For example, "1. Go to '...', 2. Click on '...', 3. See error"
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem.
validations:
required: false
- type: input
id: OS
attributes:
label: Operating System
description: Which operating system are you using (e.g., Windows 11/Linux Distro/Steam Deck)?
validations:
required: true
- type: input
id: hydra-version
attributes:
label: Hydra Version
description: Please provide the version of Hydra you are using.
validations:
required: true
- type: textarea
id: additional-info
attributes:
label: Additional Information
description: Please provide any additional information and context about your problem.
validations:
required: false

View File

@@ -0,0 +1,37 @@
name: Feature Request
description: Request a new feature.
title: "[REQUEST] "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to suggest a new feature!
- type: textarea
id: problem-related
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false

View File

@@ -2,27 +2,15 @@ name: Build
on:
push:
branches: "**"
branches: main
jobs:
build:
strategy:
matrix:
os:
[
{
name: windows-latest,
build_path: out/Hydra-win32-x64,
artifact: Hydra-win32-x64,
},
{
name: ubuntu-latest,
build_path: out/Hydra-linux-x64,
artifact: Hydra-linux-x64,
},
]
os: [windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os.name }}
runs-on: ${{ matrix.os }}
steps:
- name: Check out Git repository
@@ -36,9 +24,6 @@ jobs:
- name: Install dependencies
run: yarn
- name: Lint
run: yarn lint
- name: Install Python
uses: actions/setup-python@v5
with:
@@ -50,18 +35,52 @@ jobs:
- name: Build with cx_Freeze
run: python torrent-client/setup.py build
- name: Publish
run: yarn run publish
- name: Build Linux
if: matrix.os == 'ubuntu-latest'
run: yarn build:linux
env:
MAIN_VITE_STEAMGRIDDB_API_KEY: ${{ secrets.STEAMGRIDDB_API_KEY }}
MAIN_VITE_ONLINEFIX_USERNAME: ${{ secrets.ONLINEFIX_USERNAME }}
MAIN_VITE_ONLINEFIX_PASSWORD: ${{ secrets.ONLINEFIX_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build Windows
if: matrix.os == 'windows-latest'
run: yarn build:win
env:
MAIN_VITE_STEAMGRIDDB_API_KEY: ${{ secrets.STEAMGRIDDB_API_KEY }}
MAIN_VITE_ONLINEFIX_USERNAME: ${{ secrets.ONLINEFIX_USERNAME }}
MAIN_VITE_ONLINEFIX_PASSWORD: ${{ secrets.ONLINEFIX_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
STEAMGRIDDB_API_KEY: ${{ secrets.STEAMGRIDDB_API_KEY }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_DSN: ${{ vars.SENTRY_DSN }}
ONLINEFIX_USERNAME: ${{ secrets.ONLINEFIX_USERNAME }}
ONLINEFIX_PASSWORD: ${{ secrets.ONLINEFIX_PASSWORD }}
- name: Create artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os.artifact }}
path: ${{ matrix.os.build_path }}
name: Build-${{ matrix.os }}
path: |
dist/*.exe
dist/*.zip
dist/*.dmg
dist/*.deb
dist/*.rpm
dist/*.tar.gz
dist/*.yml
dist/*.blockmap
- name: Release
uses: softprops/action-gh-release@v1
with:
draft: true
files: |
dist/*.exe
dist/*.zip
dist/*.dmg
dist/*.AppImage
dist/*.snap
dist/*.deb
dist/*.rpm
dist/*.tar.gz
dist/*.yml
dist/*.blockmap
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,10 +1,6 @@
name: Lint
on:
push:
branches:
- "**"
- "!main"
on: [pull_request]
jobs:
lint:
@@ -22,5 +18,14 @@ jobs:
- name: Install dependencies
run: yarn
- name: Validate current commit (last commit) with commitlint
run: npx commitlint --last --verbose
- name: Typecheck
run: yarn typecheck
- name: Lint
run: yarn lint
- name: Format check
run: yarn format-check

116
.gitignore vendored
View File

@@ -1,108 +1,12 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
.DS_Store
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# Webpack
.webpack/
# Vite
.vite/
# Electron-Forge
out/
.vscode/
.venv
dev.db
.vscode
node_modules
hydra-download-manager
fastlist.exe
__pycache__
dist
out
.DS_Store
*.log*
.env
.vite
# pyinstaller
build/
resources/dist/
*.spec
# Sentry Config File
.env.sentry-build-plugin

2
.husky/pre-commit Normal file
View File

@@ -0,0 +1,2 @@
yarn lint
yarn typecheck

1
.husky/pre-push Normal file
View File

@@ -0,0 +1 @@
yarn format

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
engine-strict = true

6
.prettierignore Normal file
View File

@@ -0,0 +1,6 @@
out
dist
pnpm-lock.yaml
LICENSE.md
tsconfig.json
tsconfig.*.json

181
README.be.md Normal file
View File

@@ -0,0 +1,181 @@
<br>
<div align="center">
[<img src="./resources/icon.png" width="144"/>](https://hydralauncher.site)
<h1 align="center">Hydra Launcher</h1>
<p align="center">
<strong>Hydra - гэта гульнявы лаўнчар з уласным убудаваным кліентам BitTorrent і самастойным scraper`ам для рэпакаў.</strong>
</p>
[![build](https://img.shields.io/github/actions/workflow/status/hydralauncher/hydra/build.yml)](https://github.com/hydralauncher/hydra/actions)
[![release](https://img.shields.io/github/package-json/v/hydralauncher/hydra)](https://github.com/hydralauncher/hydra/releases)
[![pt-BR](https://img.shields.io/badge/lang-pt--BR-green.svg)](README.pt-BR.md)
[![en](https://img.shields.io/badge/lang-en-red.svg)](README.md)
[![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md)
[![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md)
[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md)
![Hydra Catalogue](./docs/screenshot.png)
</div>
## Змест
- [Апісанне](#апісанне)
- [Асаблівасці](#асаблівасці)
- [Усталёўка](#усталёўка)
- [Уклад](#contributing)
- [Далучайцеся да нашага Telegram](#join-our-telegram)
- [Форк і кланаванне рэпазітара](#форк-і-кланаванне-рэпазітара)
- [Спосабы ўнесці свой уклад](#спосабы-ўнесці-свой-уклад)
- [Структура праекту](#структура-праекту)
- [Зборка з зыходнага коду](#зборка-з-зыходнага-коду)
- [Усталёўка Node.js](#усталёўка-nodejs)
- [Усталёўка Yarn](#усталёўка-yarn)
- [Усталёўка залежнасцяў Node](#усталёўка-залежнасцяў-node)
- [Усталёўка Python 3.9](#усталёўка-python-39)
- [Усталёўка залежнасцяў Python](#усталёўка-залежнасцяў-python)
- [Пераменныя асяроддзі](#пераменныя-асяроддзі)
- [Запуск](#запуск)
- [Зборка](#зборка)
- [Зборка кліента BitTorrent](#зборка-кліента-bittorrent)
- [Зборка прыкладання Electron](#зборка-прыкладання-electron)
- [Удзельнікі](#удзельнікі)
## Апісанне
**Hydra** - гэта **гульнявы лаўнчар** з уласным убудаваным **кліентам BitTorrent** і **самастойным scraper`ом для рэпакаў**.
<br>
Лаўнчар напісаны на TypeScript (Electron) і Python, які кіруе сістэмай торэнтаў з дапамогай libtorrent.
## Асаблівасці
- Самастойны scraper рэпакаў сярод усіх найбольш надзейных вэб-сайтаў у [Megathread](https://www.reddit.com/r/Piracy/wiki/megathread/)
- Убудаваны кліент BitTorrent
- Інтэграцыя How Long To Beat (HLTB) на старонцы гульні
- Настройка шляху сцягвання
- Паведамленні аб абнаўленні спісу рэпакаў
- Падтрымка Windows і Linux
- Рэгулярныя абнаўленні
- І многае іншае...
## Усталёўка
Каб усталяваць, выканайце наступныя крокі:
1. Спампуйце апошнюю версію Hydra з [старонкі рэлізаў](https://github.com/hydralauncher/hydra/releases/latest).
- Загрузіце толькі .exe, калі жадаеце ўсталяваць Hydra на Windows.
- Загрузіце .deb ці .rpm ці .zip, калі жадаеце ўсталяваць Hydra на Linux (у залежнасці ад вашага дыстрыбутыва Linux).
2. Запусціце спампаваны файл.
3. Атрымлівайце асалоду ад Hydra!
## <a name="contributing"> Уклад
### <a name="join-our-telegram"></a> Далучайцеся да нашага Telegram
Мы засяроджваем нашы абмеркаванні ў нашым канале [Telegram](https://t.me/hydralauncher).
### Форк і кланаванне рэпазітара
1. Форкніце рэпазітар [(націсніце тут, каб зрабіць форк зараз)](https://github.com/hydralauncher/hydra/fork)
2. Склануйце свой форкнуты код `git clone https://github.com/ваше_имя_пользователя/hydra`
3. Стварыце новую галіну
4. Адпраўце свае каміты
5. Адпраўце Pull Request
### Спосабы ўнесці свой уклад
- Пераклад: Мы хочам, каб Hydra была даступная як мага большай колькасці людзей. Не саромейцеся дапамагаць перакладаць на новыя мовы ці абнаўляць і паляпшаць тыя, якія ўжо даступныя ў Hydra.
- Код: Hydra створаны з выкарыстаннем TypeScript, Electron і крыху Python. Калі хочаце ўнесці свой уклад, далучайцеся да нашага канала [Telegram](https://t.me/hydralauncher)!
### Структура праекту
- torrent-client: Мы выкарыстоўваем libtorrent, бібліятэку Python, для кіравання торэнт-загрузкамі.
- src/renderer: Карыстацкі інтэрфейс прыкладання.
- src/main: Увесь асноўны функцыянал тут.
## Зборка з зыходнага коду
### Усталёўка Node.js
Упэўніцеся, што ў вас усталяваны Node.js на вашым кампутары. Калі не, загрузіце і ўсталюйце яго з [nodejs.org](https://nodejs.org/).
### Усталёўка Yarn
Yarn - мэнэджэр пакетаў для Node.js. Калі вы яшчэ не ўсталявалі Yarn, зрабіце гэта, прытрымліваючыся інструкцыям на [yarnpkg.com](https://classic.yarnpkg.com/lang/en/docs/install/).
### Усталёўка залежнасцяў Node
Перайдзіце ў каталог праекта і ўсталюйце залежнасці Node, выкарыстоўваючы Yarn:
```bash
cd hydra
yarn
```
### Усталёўка Python 3.9
Упэўніцеся, што ў вас усталяваны Python 3.9 на вашым кампутары. Вы можаце загрузіць і ўсталяваць яго з [python.org](https://www.python.org/downloads/release/python-3919/).
### Усталёўка залежнасцяў Python
Усталюйце неабходныя залежнасці Python, выкарыстоўваючы pip:
```bash
pip install -r requirements.txt
```
## Пераменныя асяроддзі
Вам спатрэбіцца ключ API SteamGridDB, каб атрымаць значкі гульняў пры ўсталёўкі.
Калі вы жадаеце выкарыстоўваць onlinefix у якасці рэпака, вам трэба дадаць вашыя ўліковыя дадзеныя ў файл .env.
Як толькі вы атрымаеце ключ, вы зможаце скапіяваць або пераназваць файл `.env.example` у `.env` і змясціць у яго `STEAMGRIDDB_API_KEY`, `ONLINEFIX_USERNAME`, `ONLINEFIX_PASSWORD`.
## Запуск
Пасля таго як усё наладжана, вы можаце выканаць наступную каманду, каб запусціць працэс Electron і кліента BitTorrent:
```bash
yarn dev
```
## Зборка
### Зборка кліента BitTorrent
Збярыце кліент BitTorrent з дапамогай гэтай каманды:
```bash
python torrent-client/setup.py build
```
### Зборка прыкладання Electron
Збярыце прыкладанне Electron, выкарыстоўваючы гэтую каманду:
На Windows:
```bash
yarn build:win
```
На Linux:
```bash
yarn build:linux
```
## Удзельнікі
<a href="https://github.com/hydralauncher/hydra/graphs/contributors">
<img src="https://contrib.rocks/image?repo=hydralauncher/hydra" />
</a>
## Ліцэнзія
Hydra ліцэнзавана ў адпаведнасці з [MIT License](LICENSE).

125
README.md
View File

@@ -1,16 +1,105 @@
# Hydra
<br>
<a href="https://discord.gg/hydralauncher" target="_blank">![Discord](https://img.shields.io/discord/1220692017311645737?style=flat&logo=discord&label=Hydra&labelColor=%231c1c1c)</a>
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/hydralauncher/hydra/build.yml)
![GitHub package.json version](https://img.shields.io/github/package-json/v/hydralauncher/hydra)
<div align="center">
Hydra is a game launcher with its own embedded bittorrent client and a self-managed repack scraper.
The launcher is written in TypeScript (Electron) and Python, which handles the torrenting system by using [libtorrent](https://www.libtorrent.org/).
[<img src="./resources/icon.png" width="144"/>](https://hydralauncher.site)
<h1 align="center">Hydra Launcher</h1>
<p align="center">
<strong>Hydra is a game launcher with its own embedded bittorrent client and a self-managed repack scraper.</strong>
</p>
[![build](https://img.shields.io/github/actions/workflow/status/hydralauncher/hydra/build.yml)](https://github.com/hydralauncher/hydra/actions)
[![release](https://img.shields.io/github/package-json/v/hydralauncher/hydra)](https://github.com/hydralauncher/hydra/releases)
[![pt-BR](https://img.shields.io/badge/lang-pt--BR-green.svg)](README.pt-BR.md)
[![en](https://img.shields.io/badge/lang-en-red.svg)](README.md)
[![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md)
[![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md)
[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md)
![Hydra Catalogue](./docs/screenshot.png)
</div>
## Table of Contents
- [About](#about)
- [Features](#features)
- [Installation](#installation)
- [Contributing](#contributing)
- [Join our Telegram](#join-our-telegram)
- [Fork and clone your repository](#fork-and-clone-your-repository)
- [Ways you can contribute](#ways-you-can-contribute)
- [Project Structure](#project-structure)
- [Build from source](#build-from-source)
- [Install Node.js](#install-nodejs)
- [Install Yarn](#install-yarn)
- [Install Node Dependencies](#install-node-dependencies)
- [Install Python 3.9](#install-python-39)
- [Install Python Dependencies](#install-python-dependencies)
- [Environment variables](#environment-variables)
- [Running](#running)
- [Build](#build)
- [Build the bittorrent client](#build-the-bittorrent-client)
- [Build the Electron application](#build-the-electron-application)
- [Contributors](#contributors)
## About
**Hydra** is a **Game Launcher** with its own embedded **BitTorrent Client** and a **self-managed repack scraper**.
<br>
The launcher is written in TypeScript (Electron) and Python, which handles the torrenting system by using libtorrent.
## Features
- Self-Managed repack scraper among all the most reliable websites on the [Megathread]("https://www.reddit.com/r/Piracy/wiki/megathread/")
- Own embedded bittorrent client
- How Long To Beat (HLTB) integration on game page
- Downloads path customization
- Repack list update notifications
- Windows and Linux support
- Constantly updated
- And more ...
## Installation
Follow the steps below to install:
1. Download the latest version of Hydra from the [Releases](https://github.com/hydralauncher/hydra/releases/latest) page.
- Download only .exe if you want to install Hydra on Windows.
- Download .deb or .rpm or .zip if you want to install Hydra on Linux. (depends on your Linux distro)
2. Run the downloaded file.
3. Enjoy Hydra!
## <a name="contributing"> Contributing
### <a name="join-our-telegram"></a> Join our Telegram
We concentrate our discussions on our [Telegram](https://t.me/hydralauncher) channel.
### Fork and clone your repository
1. Fork the repository [(click here to fork now)](https://github.com/hydralauncher/hydra/fork)
2. Clone your forked code `git clone https://github.com/your_username/hydra`
3. Create a new branch
4. Push your commits
5. Submit a new Pull Request
### Ways you can contribute
- Translation: We want Hydra to be available to as many people as possible. Feel free to help translate to new languages or update and improve the ones that are already available on Hydra.
- Code: Hydra is built with Typescript, Electron and a little bit of Python. If you want to contribute, join our [Telegram](https://t.me/hydralauncher)!
### Project Structure
- torrent-client: We use libtorrent, a Python library, to manage torrent downloads
- src/renderer: the UI of the application
- src/main: all the logic rests here.
## Build from source
### Install Node.js
Ensure you have Node.js installed on your machine. If not, download and install it from [nodejs.org](https://nodejs.org/).
@@ -19,12 +108,6 @@ Ensure you have Node.js installed on your machine. If not, download and install
Yarn is a package manager for Node.js. If you haven't installed Yarn yet, you can do so by following the instructions on [yarnpkg.com](https://classic.yarnpkg.com/lang/en/docs/install/).
### Clone the Repository
```bash
git clone https://github.com/hydralauncher/hydra.git
```
### Install Node Dependencies
Navigate to the project directory and install the Node dependencies using Yarn:
@@ -36,7 +119,7 @@ yarn
### Install Python 3.9
Ensure you have Python installed on your machine. You can download and install it from [python.org](https://www.python.org/downloads/release/python-3919/).
Ensure you have Python 3.9 installed on your machine. You can download and install it from [python.org](https://www.python.org/downloads/release/python-3919/).
### Install Python Dependencies
@@ -51,14 +134,14 @@ pip install -r requirements.txt
You'll need an SteamGridDB API Key in order to fetch the game icons on installation.
If you want to have onlinefix as a repacker you'll need to add your credentials to the .env
Once you have it, you can paste the `.env.example` file and put it on `STEAMGRIDDB_API_KEY`, `ONLINEFIX_USERNAME`, `ONLINEFIX_PASSWORD`.
Once you have it, you can copy or rename the `.env.example` file to `.env`and put it on`STEAMGRIDDB_API_KEY`, `ONLINEFIX_USERNAME`, `ONLINEFIX_PASSWORD`.
## Running
Once you've got all things set up, you can run the following command to start both the Electron process and the bittorrent client:
```bash
yarn start
yarn dev
```
## Build
@@ -75,8 +158,16 @@ python torrent-client/setup.py build
Build the Electron application by using this command:
On Windows:
```bash
yarn make
yarn build:win
```
On Linux:
```bash
yarn build:linux
```
## Contributors
@@ -85,8 +176,6 @@ yarn make
<img src="https://contrib.rocks/image?repo=hydralauncher/hydra" />
</a>
Made with [contrib.rocks](https://contrib.rocks).
## License
Hydra is licensed under the [MIT License](LICENSE).

181
README.pt-BR.md Normal file
View File

@@ -0,0 +1,181 @@
<br>
<div align="center">
[<img src="./resources/icon.png" width="144"/>](https://hydralauncher.site)
<h1 align="center">Hydra Launcher</h1>
<p align="center">
<strong>Hydra é um Launcher de Jogos com seu próprio cliente de bittorrent integrado e um wrapper autogerenciado para busca de repacks.</strong>
</p>
[![build](https://img.shields.io/github/actions/workflow/status/hydralauncher/hydra/build.yml)](https://github.com/hydralauncher/hydra/actions)
[![release](https://img.shields.io/github/package-json/v/hydralauncher/hydra)](https://github.com/hydralauncher/hydra/releases)
[![pt-BR](https://img.shields.io/badge/lang-pt--BR-green.svg)](README.pt-BR.md)
[![en](https://img.shields.io/badge/lang-en-red.svg)](README.md)
[![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md)
[![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md)
[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md)
![Hydra Catalogue](./docs/screenshot.png)
</div>
## Índice
- [Sobre](#about)
- [Recursos](#features)
- [Instalação](#installation)
- [Contribuindo](#contributing)
- [Junte-se ao nosso Telegram](#join-our-telegram)
- [Fork e clone seu repositorio](#fork-and-clone-your-repository)
- [Como contribuir](#ways-you-can-contribute)
- [Estrutura do projeto](#project-structure)
- [Compile a partir do código-fonte](#build-from-source)
- [Instale Node.js](#install-nodejs)
- [Instale Yarn](#install-yarn)
- [Instale Node Dependencies](#install-node-dependencies)
- [Instale Python 3.9](#install-python-39)
- [Instale Python Dependencies](#install-python-dependencies)
- [variaveis de ambiente](#environment-variables)
- [Rodando o programa](#running)
- [Compilando](#build)
- [Compile o client bittorrent](#build-the-bittorrent-client)
- [Compile a aplicação Electron](#build-the-electron-application)
- [Contribuidores](#contributors)
## <a name="about"> Sobre
**Hydra** é um **Launcher de Jogos** com seu próprio **Cliente BitTorrent incorporado** e um **raspador de repack auto-gerenciado**.
<br>
O launcher é escrito em TypeScript (Electron) e Python, que lida com o sistema de torrent usando libtorrent.
## <a name="features"> Recursos
- Wrapper de repacks auto-gerenciado entre todos os sites mais confiáveis no [Megathread]("https://www.reddit.com/r/Piracy/wiki/megathread/")
- Cliente BitTorrent incorporado próprio
- Integração com [How Long To Beat (HLTB)](https://howlongtobeat.com/) na página do jogo
- Personalização do caminho de downloads
- Notificações de atualização da lista de repacks
- Suporte para Windows e Linux
- Constantemente atualizado
- E mais ...
## <a name="installation"> Instalação
Siga os passos abaixo para instalar:
1. Baixe a versão mais recente do Hydra na página de [Releases](https://github.com/hydralauncher/hydra/releases/latest).
- Baixe apenas o .exe se quiser instalar o Hydra no Windows.
- Baixe .deb ou .rpm ou .zip se quiser instalar o Hydra no Linux. (depende da sua distribuição Linux)
2. Execute o arquivo baixado.
3. Aproveite o Hydra!
## <a name="contributing"> Contribuindo
### <a name="join-our-telegram"></a> Junte-se ao nosso Telegram
Concentramos nossas discussões no nosso canal do [Telegram](https://t.me/hydralauncher).
### <a name="fork-and-clone-your-repository"></a> Fork e clone o seu repositório
1. Faça um fork do repositório [(clique aqui para fazer o fork agora)](https://github.com/hydralauncher/hydra/fork)
2. Clone o código do seu fork `git clone https://github.com/seu_nome_de_usuário/hydra`
3. Crie uma nova branch
4. Faça o push dos seus commits
5. Envie um novo Pull Request
### <a name="ways-you-can-contribute"></a> Formas de contribuir
- **Tradução**: Queremos que o Hydra esteja disponível para o maior número possível de pessoas. Sinta-se à vontade para ajudar a traduzir para novos idiomas ou atualizar e melhorar aqueles que já estão disponíveis no Hydra.
- **Código**: O Hydra é construído com Typescript, Electron e um pouco de Python. Se você deseja contribuir, junte-se ao nosso [Telegram](https://t.me/hydralauncher)!
### <a name="project-structure"></a> Estrutura do Projeto
- torrent-client: Utilizamos o libtorrent, uma biblioteca Python, para gerenciar downloads via torrent.
- src/renderer: A interface de usuário (UI) da aplicação.
- src/main: Toda a lógica da aplicação reside aqui.
## <a name="build-from-source"></a> Compile a partir do código-fonte
### <a name="install-nodejs"></a> Instale Node.js
Certifique-se de ter o Node.js instalado em sua máquina. Se não, faça o download e instale-o em [nodejs.org](https://nodejs.org/).
### <a name="install-yarn"></a> Instale Yarn
Yarn é um gerenciador de pacotes para Node.js. Se você ainda não o instalou, pode fazê-lo seguindo as instruções em [yarnpkg.com](https://classic.yarnpkg.com/lang/en/docs/install/).
### <a name="install-node-dependencies"></a> Instale Dependencias do Node
Navegue até o diretório do projeto e instale as dependências do Node usando o Yarn:
```bash
cd hydra
yarn
```
### <a name="install-python-39"></a> Instale Python 3.9
Certifique-se de ter o Python 3.9 instalado em sua máquina. Você pode baixá-lo e instalá-lo em [python.org](https://www.python.org/downloads/release/python-3919/).
### <a name="install-python-dependencies"></a> Instale Python Dependencies
Instale as dependências Python necessárias usando o pip:
```bash
pip install -r requirements.txt
```
## <a name="environment-variables"></a> Environment variables
Você precisará de uma chave da API SteamGridDB para buscar os ícones do jogo durante a instalação.
Se você deseja ter o onlinefix como um repacker, precisará adicionar suas credenciais ao arquivo .env.
Depois de obtê-lo, você pode copiar ou renomear o arquivo `.env.example` para `.env` e inserir `STEAMGRIDDB_API_KEY`, `ONLINEFIX_USERNAME` e `ONLINEFIX_PASSWORD`.
## <a name="running"></a> Running
Uma vez que você tenha configurado tudo, você pode executar o seguinte comando para iniciar tanto o processo Electron quanto o cliente BitTorrent:
```bash
yarn dev
```
## <a name="build"></a> Build
### <a name="build-the-bittorrent-client"></a> Build the bittorrent client
Compile o cliente BitTorrent usando este comando
```bash
python torrent-client/setup.py build
```
### <a name="build-the-electron-application"></a> Build the Electron application
Compile a aplicação Electron usando este comando:
No Windows:
```bash
yarn build:win
```
No Linux:
```bash
yarn build:linux
```
## <a name="contributors"></a> Contributors
<a href="https://github.com/hydralauncher/hydra/graphs/contributors">
<img src="https://contrib.rocks/image?repo=hydralauncher/hydra" />
</a>
## <a name="license"></a> Licença
O Hydra é licenciado sob a [Licença MIT](LICENSE).

181
README.ru.md Normal file
View File

@@ -0,0 +1,181 @@
<br>
<div align="center">
[<img src="./resources/icon.png" width="144"/>](https://hydralauncher.site)
<h1 align="center">Hydra Launcher</h1>
<p align="center">
<strong>Hydra - это игровой лаунчер с собственным встроенным клиентом BitTorrent и самостоятельным scraper`ом для репаков.</strong>
</p>
[![build](https://img.shields.io/github/actions/workflow/status/hydralauncher/hydra/build.yml)](https://github.com/hydralauncher/hydra/actions)
[![release](https://img.shields.io/github/package-json/v/hydralauncher/hydra)](https://github.com/hydralauncher/hydra/releases)
[![pt-BR](https://img.shields.io/badge/lang-pt--BR-green.svg)](README.pt-BR.md)
[![en](https://img.shields.io/badge/lang-en-red.svg)](README.md)
[![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md)
[![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md)
[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md)
![Hydra Catalogue](./docs/screenshot.png)
</div>
## Содержание
- [Описание](#описание)
- [Особенности](#особенности)
- [Установка](#установка)
- [Вклад](#contributing)
- [Присоединяйтесь к нашему Telegram](#join-our-telegram)
- [Форк и клонирование репозитория](#форк-и-клонирование-репозитория)
- [Способы внести свой вклад](#способы-внести-свой-вклад)
- [Структура проекта](#структура-проекта)
- [Сборка из исходного кода](#сборка-из-исходного-кода)
- [Установка Node.js](#установка-nodejs)
- [Установка Yarn](#установка-yarn)
- [Установка зависимостей Node](#установка-зависимостей-node)
- [Установка Python 3.9](#установка-python-39)
- [Установка зависимостей Python](#установка-зависимостей-python)
- [Переменные среды](#переменные-среды)
- [Запуск](#запуск)
- [Сборка](#сборка)
- [Сборка клиента BitTorrent](#сборка-клиента-bittorrent)
- [Сборка приложения Electron](#сборка-приложения-electron)
- [Участники](#участники)
## Описание
**Hydra** - это **Игровой Лаунчер** с собственным встроенным **Клиентом BitTorrent** и **самостоятельным scraper`ом для репаков**.
<br>
Лаунчер написан на TypeScript (Electron) и Python, который управляет системой торрентов с помощью libtorrent.
## Особенности
- Самостоятельный scraper репаков среди всех наиболее надежных веб-сайтов в [Megathread](https://www.reddit.com/r/Piracy/wiki/megathread/)
- Встроенный клиент BitTorrent
- Интеграция How Long To Beat (HLTB) на странице игры
- Настройка пути загрузки
- Уведомления об обновлении списка репаков
- Поддержка Windows и Linux
- Постоянно обновляется
- И многое другое...
## Установка
Чтобы установить, выполните следующие шаги:
1. Скачайте последнюю версию Hydra с [страницы релизов](https://github.com/hydralauncher/hydra/releases/latest).
- Загрузите только .exe, если хотите установить Hydra на Windows.
- Загрузите .deb или .rpm или .zip, если хотите установить Hydra на Linux (в зависимости от вашего дистрибутива Linux).
2. Запустите скачанный файл.
3. Наслаждайтесь Hydra!
## <a name="contributing"> Вклад
### <a name="join-our-telegram"></a> Присоединяйтесь к нашему Telegram
Мы сосредотачиваем наши обсуждения в нашем канале [Telegram](https://t.me/hydralauncher).
### Форк и клонирование репозитория
1. Форкните репозиторий [(нажмите здесь, чтобы сделать форк сейчас)](https://github.com/hydralauncher/hydra/fork)
2. Склонируйте свой форкнутый код `git clone https://github.com/ваше_имя_пользователя/hydra`
3. Создайте новую ветку
4. Отправьте свои коммиты
5. Отправьте Pull Request
### Способы внести свой вклад
- Перевод: Мы хотим, чтобы Hydra была доступна как можно большему количеству людей. Не стесняйтесь помогать переводить на новые языки или обновлять и улучшать те, которые уже доступны в Hydra.
- Код: Hydra создан с использованием TypeScript, Electron и немного Python. Если хотите внести свой вклад, присоединяйтесь к нашему каналу [Telegram](https://t.me/hydralauncher)!
### Структура проекта
- torrent-client: Мы используем libtorrent, библиотеку Python, для управления загрузками торрентов.
- src/renderer: пользовательский интерфейс приложения.
- src/main: весь основной функционал здесь.
## Сборка из исходного кода
### Установка Node.js
Убедитесь, что у вас установлен Node.js на вашем компьютере. Если нет, загрузите и установите его с [nodejs.org](https://nodejs.org/).
### Установка Yarn
Yarn - менеджер пакетов для Node.js. Если вы еще не установили Yarn, сделайте это, следуя инструкциям на [yarnpkg.com](https://classic.yarnpkg.com/lang/en/docs/install/).
### Установка зависимостей Node
Перейдите в каталог проекта и установите зависимости Node, используя Yarn:
```bash
cd hydra
yarn
```
### Установка Python 3.9
Убедитесь, что у вас установлен Python 3.9 на вашем компьютере. Вы можете загрузить и установить его с [python.org](https://www.python.org/downloads/release/python-3919/).
### Установка зависимостей Python
Установите необходимые зависимости Python, используя pip:
```bash
pip install -r requirements.txt
```
## Переменные среды
Вам понадобится ключ API SteamGridDB, чтобы получить значки игр при установке.
Если вы хотите использовать onlinefix в качестве репака, вам нужно добавить ваши учетные данные в файл .env.
Как только у вас будет ключ, вы можете скопировать или переименовать файл `.env.example` в `.env` и поместить в него `STEAMGRIDDB_API_KEY`, `ONLINEFIX_USERNAME`, `ONLINEFIX_PASSWORD`.
## Запуск
После того как все настроено, вы можете выполнить следующую команду, чтобы запустить процесс Electron и клиента BitTorrent:
```bash
yarn dev
```
## Сборка
### Сборка клиента BitTorrent
Соберите клиент BitTorrent с помощью этой команды:
```bash
python torrent-client/setup.py build
```
### Сборка приложения Electron
Соберите приложение Electron, используя эту команду:
На Windows:
```bash
yarn build:win
```
На Linux:
```bash
yarn build:linux
```
## Участники
<a href="https://github.com/hydralauncher/hydra/graphs/contributors">
<img src="https://contrib.rocks/image?repo=hydralauncher/hydra" />
</a>
## License
Hydra лицензирована в соответствии с [MIT License](LICENSE).

185
README.uk-UA.md Normal file
View File

@@ -0,0 +1,185 @@
<br>
<div align="center">
[<img src="./resources/icon.png" width="144"/>](https://hydralauncher.site)
<h1 align="center">Hydra Launcher</h1>
<p align="center">
<strong>Hydra - це ігровий лаунчер з власним вбудованим bittorrent-клієнтом і самокерованим збирачем репаків.</strong>
</p>
[![build](https://img.shields.io/github/actions/workflow/status/hydralauncher/hydra/build.yml)](https://github.com/hydralauncher/hydra/actions)
[![release](https://img.shields.io/github/package-json/v/hydralauncher/hydra)](https://github.com/hydralauncher/hydra/releases)
[![pt-BR](https://img.shields.io/badge/lang-pt--BR-green.svg)](README.pt-BR.md)
[![en](https://img.shields.io/badge/lang-en-red.svg)](README.md)
[![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md)
[![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md)
[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md)
![Hydra Catalogue](./docs/screenshot.png)
</div>
## Зміст
- [Про нас](#про-нас)
- [Функції](#функції)
- [Встановлення](#встановлення)
- [Зробити свій внесок](#contributing)
- [Приєднуйтесь до нашого Telegram](#join-our-telegram)
- [Форк і клонування вашого репозиторію](#форк-і-клонування-вашого-репозиторію)
- [Як ви можете зробити свій внесок](#як-ви-можете-зробити-свій-внесок)
- [Структура проекту](#структура-проекту)
- [Зробити білд з вихідного коду](#зробити-білд-з-вихідного-коду)
- [Встановіть Node.js](#встановіть-nodejs)
- [Встановіть Yarn](#встановіть-yarn)
- [Встановіть Node залежності](#встановіть-node-залежності)
- [Встановіть Python 3.9](#встановіть-python-39)
- [Встановіть Python залежності](#встановіть-python-залежності)
- [Змінні середовища](#змінні-середовища)
- [Запустіть](#запустіть)
- [Зробіть білд](#зробіть-білд)
- [Зробіть білд bittorrent client](#зробіть-білд-bittorrent-client)
- [Зробіть білд Electron застосунку](#зробіть-білд-electron-застосунку)
- [Контриб'ютори](#контрибютори)
## Про нас
**Hydra** - це **ігровий лаунчер** з власним вбудованим **BitTorrent-клієнтом** і **самокерованим збирачем репаків**.
<br>
Цей лаунчер написано мовами TypeScript (Electron) та Python, який працює з торрент-системою за допомогою libtorrent.
## Функції
- Самокерований збирач репаків серед усіх найнадійніших сайтів на [Megathread]("https://www.reddit.com/r/Piracy/wiki/megathread/")
- Власний вбудований клієнт bittorrent
- Інтеграція How Long To Beat (HLTB) на сторінці гри
- Налаштування теки завантаження
- Сповіщення про оновлення списку репаків
- Підтримка Windows і Linux
- Постійно оновлюється
- І не тільки ...
## Встановлення
Щоб встановити, виконайте наведені нижче кроки:
1. Завантажте останню версію Hydra зі сторінки [Releases](https://github.com/hydralauncher/hydra/releases/latest).
- Завантажте лише .exe, якщо ви хочете встановити Hydra на Windows.
- Завантажте .deb або .rpm або .zip, якщо ви хочете встановити Hydra на Linux. (залежить від вашого дистрибутива Linux)
2. Запустіть завантажений файл.
3. Насолоджуйтесь Гідрою!
## <a name="contributing"> Зробити свій внесок
### <a name="join-our-telegram"></a> Приєднуйтесь до нашого Telegram
Ми зосереджуємо наші дискусії на нашому каналі [Telegram](https://t.me/hydralauncher).
1. Приєднуйтесь до нашого канала
2. Перейдіть на канал ролей і виберіть роль Співробітник
3. Заходьте на dev-канал, спілкуйтеся з нами та діліться своїми ідеями.
### Форк і клонування вашого репозиторію
1. Зробіть форк репозиторію [(натисніть тут, щоб зробити форк зараз)](https://github.com/hydralauncher/hydra/fork)
2. Клонуйте ваш форк-код `git clone https://github.com/your_username/hydra`
3. Створіть новий бранч
4. Зробіть пуш своїх комітів
5. Надішліть новий Pull Request
### Як ви можете зробити свій внесок
- Переклад: Ми хочемо, щоб Hydra була доступна якомога більшій кількості людей. Не соромтеся допомагати перекладати на нові мови або оновлювати і покращувати ті, які вже доступні на Hydra.
- Код: Hydra створена за допомогою Typescript, Electron і трохи Python. Якщо ви хочете зробити свій внесок, приєднуйтесь до нашого Telegram!
### Структура проекту
- torrent-client: Ми використовуємо libtorrent, бібліотеку Python, для керування завантаженнями з торрентів
- src/renderer: інтерфейс програми
- src/main: вся логіка тут.
## Зробити білд з вихідного коду
### Встановіть Node.js
Переконайтеся, що на вашому комп'ютері встановлено Node.js. Якщо ні, завантажте та встановіть його з [nodejs.org](https://nodejs.org/).
### Встановіть Yarn
Yarn - це менеджер пакетів для Node.js. Якщо ви ще не встановили Yarn, ви можете зробити це, дотримуючись інструкцій на сторінці [yarnpkg.com](https://classic.yarnpkg.com/lang/en/docs/install/).
### Встановіть Node залежності
Перейдіть до каталогу проекту і встановіть Node залежності за допомогою Yarn:
```bash
cd hydra
yarn
```
### Встановіть Python 3.9
Переконайтеся, що на вашому комп'ютері встановлено Python 3.9. Ви можете завантажити та встановити його з [python.org](https://www.python.org/downloads/release/python-3919/).
### Встановіть Python залежності
Встановіть необхідні залежності Python за допомогою pip:
```bash
pip install -r requirements.txt
```
## Змінні середовища
Вам знадобиться ключ API SteamGridDB, щоб отримати іконки ігор під час встановлення.
Якщо ви хочете використовувати onlinefix як перепакувальник, вам потрібно додати свої облікові дані до .env
Отримавши його, ви можете скопіювати або перейменувати файл `.env.example` на `.env`і помістити його на`STEAMGRIDDB_API_KEY`, `ONLINEFIX_USERNAME`, `ONLINEFIX_PASSWORD`.
## Запустіть
Після того, як ви все налаштували, ви можете запустити наступну команду, щоб запустити як процес Electron, так і клієнт bittorrent:
```bash
yarn dev
```
## Зробіть білд
### Зробіть білд bittorrent client
Зробіть білд bittorrent client за допомогою цієї команди:
```bash
python torrent-client/setup.py build
```
### Зробіть білд Electron застосунку
Зробіть білд Electron застосунку за допомогою цієї команди:
На Windows:
```bash
yarn build:win
```
На Linux:
```bash
yarn build:linux
```
## Контриб'ютори
<a href="https://github.com/hydralauncher/hydra/graphs/contributors">
<img src="https://contrib.rocks/image?repo=hydralauncher/hydra" />
</a>
## License
Hydra має ліцензію [MIT License](LICENSE).

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>

BIN
build/icon.icns Normal file

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 188 KiB

BIN
build/installerSidebar.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

1
commitlint.config.js Normal file
View File

@@ -0,0 +1 @@
export default { extends: ["@commitlint/config-conventional"] };

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 KiB

After

Width:  |  Height:  |  Size: 830 KiB

52
electron-builder.yml Normal file
View File

@@ -0,0 +1,52 @@
appId: site.hydralauncher.hydra
productName: Hydra
directories:
buildResources: build
extraResources:
- hydra-download-manager
- hydra.db
- fastlist.exe
files:
- "!**/.vscode/*"
- "!src/*"
- "!electron.vite.config.{js,ts,mjs,cjs}"
- "!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}"
- "!{.env,.env.*,.npmrc,pnpm-lock.yaml}"
- "!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}"
asarUnpack:
- resources/**
win:
executableName: Hydra
requestedExecutionLevel: requireAdministrator
nsis:
artifactName: ${name}-${version}-setup.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
oneClick: false
mac:
entitlementsInherit: build/entitlements.mac.plist
extendInfo:
- NSCameraUsageDescription: Application requests access to the device's camera.
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
notarize: false
dmg:
artifactName: ${name}-${version}.${ext}
linux:
target:
- AppImage
- snap
- deb
maintainer: electronjs.org
category: Utility
appImage:
artifactName: ${name}-${version}.${ext}
npmRebuild: false
publish:
provider: github
owner: hydralauncher
repo: hydra
electronDownload:
mirror: https://npmmirror.com/mirrors/electron/

49
electron.vite.config.ts Normal file
View File

@@ -0,0 +1,49 @@
import { resolve } from "path";
import {
defineConfig,
loadEnv,
swcPlugin,
externalizeDepsPlugin,
} from "electron-vite";
import react from "@vitejs/plugin-react";
import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin";
import svgr from "vite-plugin-svgr";
export default defineConfig(({ mode }) => {
loadEnv(mode);
return {
main: {
build: {
sourcemap: true,
rollupOptions: {
external: ["better-sqlite3"],
},
},
resolve: {
alias: {
"@main": resolve("src/main"),
"@locales": resolve("src/locales"),
"@resources": resolve("resources"),
"@shared": resolve("src/shared"),
},
},
plugins: [externalizeDepsPlugin(), swcPlugin()],
},
preload: {
plugins: [externalizeDepsPlugin()],
},
renderer: {
build: {
sourcemap: true,
},
resolve: {
alias: {
"@renderer": resolve("src/renderer/src"),
"@locales": resolve("src/locales"),
"@shared": resolve("src/shared"),
},
},
plugins: [svgr(), react(), vanillaExtractPlugin()],
},
};
});

View File

@@ -1,103 +0,0 @@
import type { ForgeConfig } from "@electron-forge/shared-types";
import { MakerSquirrel } from "@electron-forge/maker-squirrel";
import { MakerZIP } from "@electron-forge/maker-zip";
import { MakerDeb } from "@electron-forge/maker-deb";
import { MakerRpm } from "@electron-forge/maker-rpm";
import { AutoUnpackNativesPlugin } from "@electron-forge/plugin-auto-unpack-natives";
import { WebpackPlugin } from "@electron-forge/plugin-webpack";
import { FusesPlugin } from "@electron-forge/plugin-fuses";
import { PublisherGithub } from "@electron-forge/publisher-github";
import { FuseV1Options, FuseVersion } from "@electron/fuses";
import { ElectronegativityPlugin } from "@electron-forge/plugin-electronegativity";
import { mainConfig } from "./webpack.main.config";
import { rendererConfig } from "./webpack.renderer.config";
const linuxPkgConfig = {
mimeType: ["x-scheme-handler/hydralauncher"],
bin: "./Hydra",
desktopTemplate: "./hydra-launcher.desktop",
icon: "images/icon.png",
genericName: "Games Launcher",
name: "hydra-launcher",
productName: "Hydra"
};
const config: ForgeConfig = {
packagerConfig: {
asar: true,
icon: "./images/icon.png",
executableName: "Hydra",
extraResource: [
"./resources/hydra.db",
"./resources/icon_tray.png",
"./resources/dist",
],
protocols: [
{
name: "Hydra",
schemes: ["hydralauncher"],
},
],
win32metadata: {
"requested-execution-level": "requireAdministrator",
},
},
rebuildConfig: {},
makers: [
new MakerSquirrel({
setupIcon: "./images/icon.ico",
}),
new MakerZIP({}, ["darwin", "linux"]),
new MakerRpm({
options: linuxPkgConfig
}),
new MakerDeb({
options: linuxPkgConfig
}),
],
publishers: [
new PublisherGithub({
repository: {
owner: "hydralauncher",
name: "hydra",
},
}),
],
plugins: [
new AutoUnpackNativesPlugin({}),
new WebpackPlugin({
mainConfig,
devContentSecurityPolicy: "connect-src 'self' * 'unsafe-eval'",
renderer: {
config: rendererConfig,
entryPoints: [
{
html: "./src/index.html",
js: "./src/renderer.ts",
name: "main_window",
preload: {
js: "./src/preload.ts",
},
},
],
},
}),
// Fuses are used to enable/disable various Electron functionality
// at package time, before code signing the application
new FusesPlugin({
version: FuseVersion.V1,
[FuseV1Options.RunAsNode]: false,
[FuseV1Options.EnableCookieEncryption]: true,
[FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
[FuseV1Options.EnableNodeCliInspectArguments]: false,
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
[FuseV1Options.OnlyLoadAppFromAsar]: true,
}),
new ElectronegativityPlugin({
isSarif: true,
}),
],
};
export default config;

View File

@@ -1,11 +0,0 @@
[Desktop Entry]
Name=Hydra
Comment=No bullshit. Just play.
GenericName=Games Launcher
Exec=hydra-launcher %U
Icon=hydra-launcher
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;
MimeType=x-scheme-handler/hydralauncher;
StartupWMClass=Hydra

Binary file not shown.

View File

@@ -1,108 +1,104 @@
{
"name": "hydra",
"productName": "Hydra",
"version": "1.1.0",
"description": "No bullshit. Just play.",
"main": ".webpack/main",
"version": "1.2.2",
"description": "Hydra",
"main": "./out/main/index.js",
"author": "Los Broxas",
"homepage": "https://hydralauncher.site",
"repository": {
"url": "https://github.com/hydralauncher/hydra"
"type": "git",
"url": "https://github.com/hydralauncher/hydra.git"
},
"author": {
"name": "Hydra",
"email": "hydra@hydralauncher.site"
"type": "module",
"engines": {
"npm": "please-use-yarn",
"yarn": ">= 1.19.1"
},
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "eslint .",
"format": "prettier . --write"
"format": "prettier --write .",
"format-check": "prettier --check .",
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "npm run typecheck:node && npm run typecheck:web",
"start": "electron-vite preview",
"dev": "electron-vite dev",
"build": "npm run typecheck && electron-vite build",
"postinstall": "electron-builder install-app-deps && node ./postinstall.cjs",
"build:unpack": "npm run build && electron-builder --dir",
"build:win": "electron-vite build && electron-builder --win",
"build:mac": "electron-vite build && electron-builder --mac",
"build:linux": "electron-vite build && electron-builder --linux",
"prepare": "husky",
"typeorm:migration-create": "yarn typeorm migration:create"
},
"devDependencies": {
"@electron-forge/cli": "^7.3.0",
"@electron-forge/maker-deb": "^7.3.0",
"@electron-forge/maker-rpm": "^7.3.0",
"@electron-forge/maker-squirrel": "^7.3.0",
"@electron-forge/maker-zip": "^7.3.0",
"@electron-forge/plugin-auto-unpack-natives": "^7.3.0",
"@electron-forge/plugin-electronegativity": "^7.3.0",
"@electron-forge/plugin-fuses": "^7.3.0",
"@electron-forge/plugin-webpack": "^7.3.0",
"@electron-forge/publisher-github": "^7.3.0",
"@electron/fuses": "^1.7.0",
"@sentry/webpack-plugin": "^2.16.1",
"@svgr/webpack": "^8.1.0",
"@types/color": "^3.0.6",
"@types/dotenv-webpack": "^7.0.7",
"@types/jsdom": "^21.1.6",
"@types/lodash": "^4.17.0",
"@types/react": "^18.2.66",
"@types/react-dom": "^18.2.22",
"@types/uuid": "^9.0.8",
"@types/webtorrent": "^0.109.8",
"@types/windows-1251": "^0.1.22",
"@typescript-eslint/eslint-plugin": "^7.3.1",
"@typescript-eslint/parser": "^7.3.1",
"@vanilla-extract/webpack-plugin": "^2.3.7",
"@vercel/webpack-asset-relocator-loader": "1.7.3",
"css-loader": "^6.0.0",
"dotenv-webpack": "^8.1.0",
"electron": "29.1.4",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0",
"fork-ts-checker-webpack-plugin": "^7.2.13",
"node-loader": "^2.0.0",
"prettier": "^3.2.5",
"style-loader": "^3.0.0",
"ts-loader": "^9.2.2",
"ts-node": "^10.0.0",
"tsconfig-paths-webpack-plugin": "^4.1.0",
"typescript": "^5.4.3"
},
"keywords": [],
"license": "MIT",
"dependencies": {
"@fontsource/fira-mono": "^5.0.12",
"@fontsource/fira-sans": "^5.0.19",
"@primer/octicons-react": "^19.8.0",
"@reduxjs/toolkit": "^2.2.2",
"@sentry/electron": "^4.22.0",
"@sentry/react": "^7.110.1",
"@vanilla-extract/css": "^1.14.1",
"@electron-toolkit/preload": "^3.0.0",
"@electron-toolkit/utils": "^3.0.0",
"@fontsource/fira-mono": "^5.0.13",
"@fontsource/fira-sans": "^5.0.20",
"@primer/octicons-react": "^19.9.0",
"@reduxjs/toolkit": "^2.2.3",
"@vanilla-extract/css": "^1.14.2",
"@vanilla-extract/recipes": "^0.5.2",
"auto-launch": "^5.0.6",
"axios": "^1.6.8",
"better-sqlite3": "^9.5.0",
"check-disk-space": "^3.4.0",
"classnames": "^2.5.1",
"color": "^4.2.3",
"color.js": "^1.2.0",
"date-fns": "^3.5.0",
"electron-squirrel-startup": "^1.0.0",
"date-fns": "^3.6.0",
"easydl": "^1.1.1",
"electron-updater": "^6.1.8",
"fetch-cookie": "^3.0.1",
"flexsearch": "^0.7.43",
"got-scraping": "^4.0.5",
"i18next": "^23.10.1",
"i18next-browser-languagedetector": "^7.2.0",
"i18next": "^23.11.2",
"i18next-browser-languagedetector": "^7.2.1",
"jsdom": "^24.0.0",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lottie-react": "^2.4.0",
"parse-torrent": "9.1.5",
"node-7z-archive": "^1.1.7",
"parse-torrent": "^11.0.16",
"ps-list": "^8.1.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-i18next": "^14.1.0",
"react-loading-skeleton": "^3.4.0",
"react-redux": "^9.1.0",
"react-redux": "^9.1.1",
"react-router-dom": "^6.22.3",
"sqlite3": "^5.1.7",
"tasklist": "^5.0.0",
"tough-cookie": "^4.1.3",
"typeorm": "^0.3.20",
"update-electron-app": "^3.0.0",
"uuid": "^9.0.1",
"windows-1251": "^3.0.4",
"winston": "^3.12.0",
"user-agents": "^1.1.193",
"winston": "^3.13.0",
"yaml": "^2.4.1"
},
"devDependencies": {
"@commitlint/cli": "^19.3.0",
"@commitlint/config-conventional": "^19.2.2",
"@electron-toolkit/eslint-config-prettier": "^2.0.0",
"@electron-toolkit/eslint-config-ts": "^1.0.1",
"@electron-toolkit/tsconfig": "^1.0.1",
"@swc/core": "^1.4.16",
"@types/auto-launch": "^5.0.5",
"@types/jsdom": "^21.1.6",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.12.7",
"@types/parse-torrent": "^5.8.7",
"@types/react": "^18.2.48",
"@types/react-dom": "^18.2.18",
"@vanilla-extract/vite-plugin": "^4.0.7",
"@vitejs/plugin-react": "^4.2.1",
"electron": "^28.2.0",
"electron-builder": "^24.9.1",
"electron-vite": "^2.0.0",
"eslint": "^8.56.0",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"husky": "^9.0.11",
"prettier": "^3.2.4",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"typescript": "^5.3.3",
"vite": "^5.0.12",
"vite-plugin-svgr": "^4.2.0"
}
}

8
postinstall.cjs Normal file
View File

@@ -0,0 +1,8 @@
const fs = require("fs");
if (process.platform === "win32") {
fs.copyFileSync(
"node_modules/ps-list/vendor/fastlist-0.3.0-x64.exe",
"fastlist.exe"
);
}

BIN
resources/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

BIN
resources/tray-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

13
src/declaration.d.ts vendored
View File

@@ -1,13 +0,0 @@
declare module "tasklist" {
interface Task {
imageName: string;
pid: number;
sessionName: string;
sessionNumber: number;
memUsage: number;
}
function tasklist(): Promise<Task[]>;
export { tasklist };
}

View File

@@ -1,11 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Hydra</title>
</head>
<body>
<div id="root"></div>
</body>
</html>

View File

@@ -1,110 +0,0 @@
import { app, BrowserWindow } from "electron";
import { init } from "@sentry/electron/main";
import i18n from "i18next";
import path from "node:path";
import { resolveDatabaseUpdates, WindowManager } from "@main/services";
import { updateElectronApp } from "update-electron-app";
import { dataSource } from "@main/data-source";
import * as resources from "@locales";
import { userPreferencesRepository } from "@main/repository";
const gotTheLock = app.requestSingleInstanceLock();
if (!gotTheLock) app.quit();
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (require("electron-squirrel-startup")) app.quit();
if (process.platform !== "darwin") {
updateElectronApp();
}
if (process.env.SENTRY_DSN) {
init({
dsn: process.env.SENTRY_DSN,
beforeSend: async (event) => {
const userPreferences = await userPreferencesRepository.findOne({
where: { id: 1 },
});
if (userPreferences?.telemetryEnabled) return event;
return null;
},
});
}
i18n.init({
resources,
lng: "en",
fallbackLng: "en",
interpolation: {
escapeValue: false,
},
});
const PROTOCOL = "hydralauncher";
if (process.defaultApp) {
if (process.argv.length >= 2) {
app.setAsDefaultProtocolClient(PROTOCOL, process.execPath, [
path.resolve(process.argv[1]),
]);
}
} else {
app.setAsDefaultProtocolClient(PROTOCOL);
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on("ready", () => {
dataSource.initialize().then(async () => {
await resolveDatabaseUpdates();
await import("./main");
const userPreferences = await userPreferencesRepository.findOne({
where: { id: 1 },
});
WindowManager.createMainWindow();
WindowManager.createSystemTray(userPreferences?.language || "en");
});
});
app.on("second-instance", (_event, commandLine) => {
// Someone tried to run a second instance, we should focus our window.
if (WindowManager.mainWindow) {
if (WindowManager.mainWindow.isMinimized())
WindowManager.mainWindow.restore();
WindowManager.mainWindow.focus();
} else {
WindowManager.createMainWindow();
}
const [, path] = commandLine.pop().split("://");
if (path) WindowManager.redirect(path);
});
app.on("open-url", (_event, url) => {
const [, path] = url.split("://");
WindowManager.redirect(path);
});
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on("window-all-closed", () => {
WindowManager.mainWindow = null;
});
app.on("activate", () => {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (BrowserWindow.getAllWindows().length === 0) {
WindowManager.createMainWindow();
}
});
// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and import them here.

View File

@@ -0,0 +1,180 @@
{
"home": {
"featured": "مميّز",
"recently_added": "مضاف مؤخراً",
"trending": "شائع",
"surprise_me": "فاجئني",
"no_results": "لم يتم العثور على نتائج"
},
"sidebar": {
"catalogue": "قائمة الألعاب",
"downloads": "التحميلات",
"settings": "إعدادات",
"my_library": "مكتبتي",
"downloading_metadata": "{{title}} (جارٍ تنزيل البيانات الوصفية...)",
"checking_files": "{{title}} ({{percentage}} - جارٍ التحقق من الملفات...)",
"paused": "{{title}} (متوقف)",
"downloading": "{{title}} ({{percentage}} - جارٍ التنزيل...)",
"filter": "بحث في المكتبة",
"follow_us": "تابعنا",
"home": "الرئيسية",
"discord": "انضم إلى الـDiscord الخاص بنا",
"telegram": "انضم إلى قناة Telegram الخاصة بنا",
"x": "تابعنا على X",
"github": "ساهم في مشروعنا على GitHub"
},
"header": {
"search": "ابحث عن الألعاب",
"home": "الرئيسية",
"catalogue": "قائمة الألعاب",
"downloads": "التحميلات",
"search_results": "نتائج البحث",
"settings": "إعدادات"
},
"bottom_panel": {
"no_downloads_in_progress": "لا يوجد تنزيلات جارية",
"downloading_metadata": "جارٍ تنزيل بيانات وصف {{title}}",
"checking_files": "جارٍ التحقق من ملفات {{title}}… ({{percentage}} مكتملة)",
"downloading": "جارٍ تنزيل {{title}}… ({{percentage}} مكتملة) - الانتهاء {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "الصفحة التالية",
"previous_page": "الصفحة السابقة"
},
"game_details": {
"open_download_options": "افتح خيارات التنزيل",
"download_options_zero": "لا يوجد خيار تنزيل",
"download_options_one": "{{count}} خيار تنزيل",
"download_options_other": "{{count}} خيار تنزيل",
"updated_at": "تم التحديث {{updated_at}}",
"install": "تثبيت",
"resume": "استئناف",
"pause": "إيقاف",
"cancel": "إلغاء",
"remove": "إزالة",
"remove_from_list": "إزالة",
"space_left_on_disk": "{{space}} متبقية على القرص",
"eta": "الوقت المتبقي {{eta}}",
"downloading_metadata": "جاري تنزيل البيانات الوصفية...",
"checking_files": "جاري التحقق من الملفات...",
"filter": "تصفية حزم إعادة التجميع",
"requirements": "متطلبات النظام",
"minimum": "الحد الأدنى",
"recommended": "موصى به",
"no_minimum_requirements": "{{title}} لا تتوفر معلومات عن الحد الأدنى للمتطلبات",
"no_recommended_requirements": "{{title}} لا تتوفر معلومات عن المتطلبات الموصى بها",
"paused_progress": "{{progress}} (متوقف)",
"release_date": "تم الإصدار في {{date}}",
"publisher": "نشر بواسطة {{publisher}}",
"copy_link_to_clipboard": "نسخ الرابط",
"copied_link_to_clipboard": "تم نسخ الرابط",
"hours": "ساعات",
"minutes": "دقائق",
"amount_hours": "{{amount}} ساعات",
"amount_minutes": "{{amount}} دقائق",
"accuracy": "دقة {{accuracy}}%",
"add_to_library": "إضافة إلى المكتبة",
"remove_from_library": "إزالة من المكتبة",
"no_downloads": "لا توجد تنزيلات متاحة",
"play_time": "تم اللعب لمدة {{amount}}",
"last_time_played": "آخر مرة لعبت {{period}}",
"not_played_yet": "لم تلعب {{title}} بعد",
"next_suggestion": "الاقتراح التالي",
"play": "لعب",
"deleting": "جاري حذف المثبت...",
"close": "إغلاق",
"playing_now": "قيد التشغيل الآن",
"change": "تغيير",
"repacks_modal_description": "اختر الحزمة التي تريد تنزيلها",
"select_folder_hint": "لتغيير المجلد الافتراضي، انتقل إلى الإعدادات",
"download_now": "تنزيل الآن",
"installation_instructions": "إرشادات التثبيت",
"installation_instructions_description": "هناك خطوات إضافية مطلوبة لتثبيت هذه اللعبة",
"online_fix_instruction": "تتطلب ألعاب OnlineFix كلمة مرور لاستخراجها. عند الحاجة، استخدم كلمة المرور التالية:",
"dodi_installation_instruction": "عند فتح مثبت DODI، اضغط على مفتاح التشغيل لأعلى <0 /> لبدء عملية التثبيت:",
"dont_show_it_again": "لا تعرضها مرة أخرى",
"copy_to_clipboard": "نسخ",
"copied_to_clipboard": "تم النسخ",
"got_it": "حسنأ",
"no_shop_details": "لم يتم استرداد تفاصيل المتجر.",
"download_options": "خيارات التنزيل",
"download_path": "مسار التنزيل",
"previous_screenshot": "لقطة الشاشة السابقة",
"next_screenshot": "لقطة الشاشة التالية",
"screenshot": "لقطة شاشة {{number}}",
"open_screenshot": "افتح لقطة الشاشة {{number}}"
},
"activation": {
"title": "تفعيل هايدرا",
"installation_id": "معرف التثبيت:",
"enter_activation_code": "أدخل رمز التفعيل الخاص بك",
"message": "إذا كنت لا تعرف أين تسأل عن هذا ، فلا يجب أن يكون لديك هذا.",
"activate": "تفعيل",
"loading": "جار التحميل…"
},
"downloads": {
"resume": "استئناف",
"pause": "إيقاف مؤقت",
"eta": "الوقت المتبقي {{eta}}",
"paused": "متوقفة مؤقتًا",
"verifying": "جار التحقق…",
"completed_at": "اكتمل في {{date}}",
"completed": "اكتمل",
"cancelled": "ملغي",
"download_again": "تحميل مرة أخرى",
"cancel": "إلغاء",
"filter": "تصفية الألعاب التي تم تنزيلها",
"remove": "إزالة",
"downloading_metadata": "جار تنزيل البيانات الوصفية…",
"checking_files": "جار التحقق من الملفات…",
"starting_download": "يبدأ التنزيل…",
"deleting": "جار حذف المثبت…",
"delete": "إزالة المثبت",
"remove_from_list": "إزالة",
"delete_modal_title": "هل أنت متأكد؟",
"delete_modal_description": "سيؤدي هذا إلى إزالة جميع ملفات التثبيت من جهاز الكمبيوتر الخاص بك",
"install": "تثبيت",
"real_debrid": "Real Debrid",
"torrent": "تورنت"
},
"settings": {
"downloads_path": "مسار التنزيلات",
"change": "تحديث",
"notifications": "الإشعارات",
"enable_download_notifications": "عند اكتمال التنزيل",
"enable_repack_list_notifications": "عند إضافة حزمة جديدة",
"telemetry": "القياس عن بعد",
"telemetry_description": "تفعيل إحصائيات الاستخدام مجهولة المصدر",
"real_debrid_api_token_label": "رمز واجهة برمجة التطبيقات (API) لـReal Debrid ",
"quit_app_instead_hiding": "إنهاء هايدرا بدلاً من التصغير الى شريط الحالة",
"launch_with_system": "تشغيل هايدرا عند بدء تشغيل النظام",
"general": "عام",
"behavior": "السلوك",
"enable_real_debrid": "تفعيل Real Debrid ",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "يمكنك الحصول على مفتاح API الخاص بك هنا.",
"save_changes": "حفظ التغييرات"
},
"notifications": {
"download_complete": "تم التحميل",
"game_ready_to_install": "{{title}} جاهزة للتثبيت",
"repack_list_updated": "قائمة التجميعات المحدثة",
"repack_count_one": "{{count}} حزمة مضافة",
"repack_count_other": "{{count}} حزم مُضافة"
},
"system_tray": {
"open": "فتح هايدرا",
"quit": "خروج"
},
"game_card": {
"no_downloads": "لا توجد تنزيلات متاحة"
},
"binary_not_found_modal": {
"title": "البرامج غير مثبتة",
"description": "لم يتم العثور على ملفات Wine أو Lutris التنفيذية على نظامك",
"instructions": "تحقق من الطريقة الصحيحة لتثبيت أي منها على توزيعة Linux الخاصة بك حتى تعمل اللعبة بشكل طبيعي"
},
"modal": {
"close": "زر إغلاق"
}
}

View File

@@ -0,0 +1,166 @@
{
"home": {
"featured": "Рэкамэндаванае",
"recently_added": "Нядаўна дададзенае",
"trending": "Актуальнае",
"surprise_me": "Здзіві мяне",
"no_results": "Няма вынікаў"
},
"sidebar": {
"catalogue": "Каталог",
"downloads": "Сцягванні",
"settings": "Налады",
"my_library": "Мая бібліятэка",
"downloading_metadata": "{{title}} (Сцягванне мэтаданых…)",
"checking_files": "{{title}} ({{percentage}} - Праверка файлаў…)",
"paused": "{{title}} (Спынена)",
"downloading": "{{title}} ({{percentage}} - Сцягванне…)",
"filter": "Фільтар бібліятэкі",
"follow_us": "Падпісвайцеся на нас",
"home": "Галоўная",
"discord": "Далучайцеся да Discord",
"telegram": "Далучайцеся да Telegram",
"x": "Падпісвайцеся на X",
"github": "Зрабіць свой унёсак на GitHub"
},
"header": {
"search": "Пошук",
"home": "Галоўная",
"catalogue": "Каталог",
"downloads": "Сцягванні",
"search_results": "Вынікі пошуку",
"settings": "Налады"
},
"bottom_panel": {
"no_downloads_in_progress": "Няма актыўных сцягванняў",
"downloading_metadata": "Сцягванне мэтаданых {{title}}…",
"checking_files": "Праверка файлаў {{title}}… ({{percentage}} скончана)",
"downloading": "Сцягванне {{title}}… ({{percentage}} скончана) - Канчатак {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Наступная старонка",
"previous_page": "Папярэдняя старонка"
},
"game_details": {
"open_download_options": "Адкрыць варыянты сцягвання",
"download_options_zero": "Няма варыянтаў сцягвання",
"download_options_one": "{{count}} варыянт сцягвання",
"download_options_other": "{{count}} варыянтаў сцягвання",
"updated_at": "Абноўлена {{updated_at}}",
"install": "Усталяваць",
"resume": "Працягнуць",
"pause": "Спыніць",
"cancel": "Скасаваць",
"remove": "Выдаліць",
"remove_from_list": "Выдаліць",
"space_left_on_disk": "{{space}} засталося на дыску",
"eta": "Канчатак {{eta}}",
"downloading_metadata": "Сцягванне мэтаданых…",
"checking_files": "Праверка файлаў…",
"filter": "Фільтар рэпакаў",
"requirements": "Сістэмныя патрэбаванни",
"minimum": "Мінімальныя",
"recommended": "Рэкамендуемыя",
"no_minimum_requirements": "{{title}} ня ўтрымлівае інфармацыі пра мінімальныя патрабаванні",
"no_recommended_requirements": "{{title}} ня ўтрымлівае інфармацыі пра рэкамендуемыя патрабаванні",
"paused_progress": "{{progress}} (Спынена)",
"release_date": "Выпушчана {{date}}",
"publisher": "Выдана {{publisher}}",
"copy_link_to_clipboard": "Скапіяваць спасылку",
"copied_link_to_clipboard": "Спасылка скапіявана",
"hours": "гадзін",
"minutes": "хвілін",
"amount_hours": "{{amount}} гадзін",
"amount_minutes": "{{amount}} хвілін",
"accuracy": "{{accuracy}}% дакладнасць",
"add_to_library": "Дадаць да бібліятэкі",
"remove_from_library": "Выдаліць з бібліятэкі",
"no_downloads": "Няма даступных сцягванняў",
"play_time": "Гулялі {{amount}}",
"last_time_played": "Апошні раз гулялі {{period}}",
"not_played_yet": "Вы яшчэ не гулялі ў {{title}}",
"next_suggestion": "Наступная прапанова",
"play": "Гуляць",
"deleting": "Выдаленне ўсталёўшчыка…",
"close": "Закрыць",
"playing_now": "Зараз гуляе",
"change": "Змяніць",
"repacks_modal_description": "Абярыце рэпак, які хочаце сцягнуць",
"downloads_path": "Шлях сцягвання",
"select_folder_hint": "Каб змяніць папку па змоўчанні, адкрыйце",
"download_now": "Сцягнуць зараз",
"installation_instructions": "Інструкцыя ўсталёўкі",
"installation_instructions_description": "Усталёўка гэтай гульні патрабуе дадатковых крокаў",
"online_fix_instruction": "Гульні з OnlineFix патрабуюць пароль для вымання. Калі неабходна, выкарыстоўвайце наступны пароль:",
"dodi_installation_instruction": "Калі вы адкрыеце ўсталёўшчык DODI, націсніце на клявіятуры клявішу 'уверх' <0 />, каб пачаць працэс усталёўкі:",
"dont_show_it_again": "Не паказваць зноў",
"copy_to_clipboard": "Капіяваць",
"copied_to_clipboard": "Скапіявана",
"got_it": "Зразумела"
},
"activation": {
"title": "Актываваць Hydra",
"installation_id": "ID усталёўкі:",
"enter_activation_code": "Увядзіце ваш код актывацыі",
"message": "Калі вы ня ведаеце, дзе яго атрымаць, то не мусіць гэтага рабіць.",
"activate": "Актываваць",
"loading": "Загрузка…"
},
"downloads": {
"resume": "Працягнуць",
"pause": "Спыніць",
"eta": "Канчатак {{eta}}",
"paused": "Спынена",
"verifying": "Праверка…",
"completed_at": "Скончана а {{date}}",
"completed": "Скончана",
"cancelled": "Скасавана",
"download_again": "Сцягнуць зноў",
"cancel": "Скасаваць",
"filter": "Фільтар сцягнутых гульняў",
"remove": "Выдаліць",
"downloading_metadata": "Сцягванне мэтаданых…",
"checking_files": "Праверка файлаў…",
"starting_download": "Пачатак сцягвання…",
"deleting": "Выдаленне ўсталёўшчыка…",
"delete": "Выдаліць усталёўшчык",
"remove_from_list": "Выдаліць",
"delete_modal_title": "Вы ўпэўнены?",
"delete_modal_description": "Гэта выдаліць усе файлы ўсталёвак з вашага кампутара",
"install": "Усталяваць"
},
"settings": {
"downloads_path": "Шлях сцягвання",
"change": "Змяніць шлях",
"notifications": "Апавяшчэнні",
"enable_download_notifications": "Па сканчэнні сцягванні",
"enable_repack_list_notifications": "Пры даданні новага рэпака",
"telemetry": "Тэлеметрыя",
"telemetry_description": "Уключыць ананімную статыстыку выкарыстання",
"behavior": "Паводзіны",
"quit_app_instead_hiding": "Закрываць праграму замест таго, каб хаваць яе ў трэй",
"launch_with_system": "Запускаць праграму пры запуску сыстэмы"
},
"notifications": {
"download_complete": "Сцягванне скончана",
"game_ready_to_install": "{{title}} гатова да ўсталёўкі",
"repack_list_updated": "Спіс рэпакаў абноўлены",
"repack_count_one": "{{count}} рэпак дададзены",
"repack_count_other": "{{count}} рэпакаў дададзена"
},
"system_tray": {
"open": "Адкрыць Hydra",
"quit": "Выйсьці"
},
"game_card": {
"no_downloads": "Няма даступных сцягванняў"
},
"binary_not_found_modal": {
"title": "Праграмы не ўсталяваныя",
"description": "Выканальныя файлы Wine ці Lutris ня знойдзеныя ў вашай сістэме",
"instructions": "Даведайцеся, як правільна ўсталяваць любы з іх на вашым дыстрыбутыве Linux, каб гульня магла працаваць нармальна"
},
"modal": {
"close": "Кнопка закрыцця"
}
}

View File

@@ -0,0 +1,174 @@
{
"home": {
"featured": "Anbefalet",
"recently_added": "Nyligt tilføjet",
"trending": "Trender",
"surprise_me": "Overrask mig",
"no_results": "Ingen resultater fundet"
},
"sidebar": {
"catalogue": "Katalog",
"downloads": "Downloads",
"settings": "Indstillinger",
"my_library": "Mit bibliotek",
"downloading_metadata": "{{title}} (Downloader metadata…)",
"checking_files": "{{title}} ({{percentage}} - Tjekker filer…)",
"paused": "{{title}} (Paused)",
"downloading": "{{title}} ({{percentage}} - Downloading…)",
"filter": "Filtrer bibliotek",
"follow_us": "Følg os",
"home": "Hjem",
"discord": "Tilslut dig vores Discord",
"telegram": "Tilslut dig vores Telegram",
"x": "Følg på X",
"github": "Bidrag på GitHub"
},
"header": {
"search": "Søg spil",
"home": "Hjem",
"catalogue": "Katalog",
"downloads": "Downloads",
"search_results": "Søge resultater",
"settings": "Indstillinger"
},
"bottom_panel": {
"no_downloads_in_progress": "Ingen downloads igang",
"downloading_metadata": "Downloader {{title}} metadata…",
"checking_files": "Tjekker {{title}} filer… ({{percentage}} færdig)",
"downloading": "Downloader {{title}}… ({{percentage}} færdig) - Konklusion {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Næste side",
"previous_page": "Tidligere side"
},
"game_details": {
"open_download_options": "Åben download muligheder",
"download_options_zero": "Ingen download mulighed",
"download_options_one": "{{count}} download mulighed",
"download_options_other": "{{count}} download muligheder",
"updated_at": "Opdateret {{updated_at}}",
"install": "Installér",
"resume": "Fortsæt",
"pause": "Pause",
"cancel": "Annullér",
"remove": "Fjern",
"remove_from_list": "Fjern",
"space_left_on_disk": "{{space}} tilbage på harddisken",
"eta": "Konklusion {{eta}}",
"downloading_metadata": "Downloader metadata…",
"checking_files": "Tjekker filer…",
"filter": "Filtrer repacks",
"requirements": "System behov",
"minimum": "Mindste",
"recommended": "Anbefalet",
"no_minimum_requirements": "{{title}} angiver ikke mindste behov informationer",
"no_recommended_requirements": "{{title}} angiver ikke anbefalet behov informationer",
"paused_progress": "{{progress}} (Pauset)",
"release_date": "Offentliggjort den {{date}}",
"publisher": "Udgivet af {{publisher}}",
"copy_link_to_clipboard": "Kopier link",
"copied_link_to_clipboard": "Link kopieret",
"hours": "timer",
"minutes": "minutter",
"amount_hours": "{{amount}} timer",
"amount_minutes": "{{amount}} minutter",
"accuracy": "{{accuracy}}% nøjagtighed",
"add_to_library": "Tilføj til bibliotek",
"remove_from_library": "Fjern fra bibliotek",
"no_downloads": "Ingen downloads tilgængelige",
"play_time": "Spillet i {{amount}}",
"last_time_played": "Sidst spillet {{period}}",
"not_played_yet": "Du har ikke spillet {{title}} endnu",
"next_suggestion": "Næste forslag",
"play": "Spil",
"deleting": "Sletter installatør…",
"close": "Luk",
"playing_now": "Spiller nu",
"change": "Ændré",
"repacks_modal_description": "Vælg den repack du vil downloade",
"downloads_path": "Downloads sti",
"select_folder_hint": "For at ændre standard mappen, gå til <0>Instillingerne</0>",
"download_now": "Download nu",
"installation_instructions": "Installations Instrukser",
"installation_instructions_description": "Yderligere skridt er krævet for at installere dette spil",
"online_fix_instruction": "OnlineFix spil kræver et kodeord for at kunne blive udpakket. Når krævet, brug det følgende kodeord:",
"dodi_installation_instruction": "Når du åbner DODI installatør, tryk på op-knappen på dit tastatur <0 /> for at starte installations processen:",
"dont_show_it_again": "Vis ikke igen",
"copy_to_clipboard": "Kopier",
"copied_to_clipboard": "Kopieret",
"got_it": "Forstået"
},
"activation": {
"title": "Aktivér Hydra",
"installation_id": "Installations ID:",
"enter_activation_code": "Indtast din aktiverings kode",
"message": "Hvis du ikke ved hvor du skal spørge om dette, burde du ikke have dette.",
"activate": "Aktivér",
"loading": "Loader…"
},
"downloads": {
"resume": "Fortsæt",
"pause": "Pause",
"eta": "Konklusion {{eta}}",
"paused": "Pauset",
"verifying": "Verificerer…",
"completed_at": "Færdiggjort på {{date}}",
"completed": "Færdigt",
"cancelled": "Annulleret",
"download_again": "Download igen",
"cancel": "Annullér",
"filter": "Filtrer downloadet spil",
"remove": "Fjern",
"downloading_metadata": "Downloader metadata…",
"checking_files": "Tjekker filer…",
"starting_download": "Starter download…",
"deleting": "Sletter installatør…",
"delete": "Fjern installatør",
"remove_from_list": "Fjern",
"delete_modal_title": "Er du sikker?",
"delete_modal_description": "Dette vil fjerne alle installations filerne fra din computer",
"install": "Installér",
"real_debrid": "Real Debrid",
"torrent": "Torrent"
},
"settings": {
"downloads_path": "Downloads sti",
"change": "Opdatering",
"notifications": "Notifikationer",
"enable_download_notifications": "Når et download bliver færdigt",
"enable_repack_list_notifications": "Når en ny repack bliver tilføjet",
"telemetry": "Telemetri",
"telemetry_description": "Slå anonymt brugs statistik til",
"real_debrid_api_token_description": "Real Debrid API token",
"quit_app_instead_hiding": "Afslut Hydra instedet for at minimere til processlinjen",
"launch_with_system": "Åben Hydra ved start af systemet",
"general": "Generelt",
"behavior": "Opførsel",
"enable_real_debrid": "Slå Real Debrid til",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "Du kan få din API nøgle <0>her</0>.",
"save_changes": "Gem ændringer"
},
"notifications": {
"download_complete": "Download færdig",
"game_ready_to_install": "{{title}} er klar til at installeret",
"repack_list_updated": "Repack liste opdateret",
"repack_count_one": "{{count}} repack tilføjet",
"repack_count_other": "{{count}} repacks tilføjet"
},
"system_tray": {
"open": "Åben Hydra",
"quit": "Afslut"
},
"game_card": {
"no_downloads": "Ingen downloads tilgængelig"
},
"binary_not_found_modal": {
"title": "Programmer ikke installeret",
"description": "Wine eller Lutris eksekverbare blev ikke fundet på dit system",
"instructions": "Tjek den korrekte måde at installere nogle af dem, på din Linux distribution, så spillet kan køre normalt"
},
"modal": {
"close": "Luk knap"
}
}

View File

@@ -17,10 +17,14 @@
"downloading": "{{title}} ({{percentage}} - Downloading…)",
"filter": "Filter library",
"follow_us": "Follow us",
"home": "Home"
"home": "Home",
"discord": "Join our Discord",
"telegram": "Join our Telegram",
"x": "Follow on X",
"github": "Contribute on GitHub"
},
"header": {
"search": "Search",
"search": "Search games",
"home": "Home",
"catalogue": "Catalogue",
"downloads": "Downloads",
@@ -60,12 +64,14 @@
"no_minimum_requirements": "{{title}} doesn't provide minimum requirements information",
"no_recommended_requirements": "{{title}} doesn't provide recommended requirements information",
"paused_progress": "{{progress}} (Paused)",
"release_date": "Released in {{date}}",
"release_date": "Released on {{date}}",
"publisher": "Published by {{publisher}}",
"copy_link_to_clipboard": "Copy link",
"copied_link_to_clipboard": "Link copied",
"hours": "hours",
"minutes": "minutes",
"amount_hours": "{{amount}} hours",
"amount_minutes": "{{amount}} minutes",
"accuracy": "{{accuracy}}% accuracy",
"add_to_library": "Add to library",
"remove_from_library": "Remove from library",
@@ -77,7 +83,26 @@
"play": "Play",
"deleting": "Deleting installer…",
"close": "Close",
"playing_now": "Playing now"
"playing_now": "Playing now",
"change": "Change",
"repacks_modal_description": "Choose the repack you want to download",
"select_folder_hint": "To change the default folder, go to the <0>Settings</0>",
"download_now": "Download now",
"installation_instructions": "Installation Instructions",
"installation_instructions_description": "Additional steps are required to install this game",
"online_fix_instruction": "OnlineFix games requires a password to be extracted. When required, use the following password:",
"dodi_installation_instruction": "When you open DODI installer, press your keyboard up key <0 /> to start the installation process:",
"dont_show_it_again": "Don't show it again",
"copy_to_clipboard": "Copy",
"copied_to_clipboard": "Copied",
"got_it": "Got it",
"no_shop_details": "Could not retrieve shop details.",
"download_options": "Download options",
"download_path": "Download path",
"previous_screenshot": "Previous screenshot",
"next_screenshot": "Next screenshot",
"screenshot": "Screenshot {{number}}",
"open_screenshot": "Open screenshot {{number}}"
},
"activation": {
"title": "Activate Hydra",
@@ -108,7 +133,9 @@
"remove_from_list": "Remove",
"delete_modal_title": "Are you sure?",
"delete_modal_description": "This will remove all the installation files from your computer",
"install": "Install"
"install": "Install",
"real_debrid": "Real Debrid",
"torrent": "Torrent"
},
"settings": {
"downloads_path": "Downloads path",
@@ -117,7 +144,16 @@
"enable_download_notifications": "When a download is complete",
"enable_repack_list_notifications": "When a new repack is added",
"telemetry": "Telemetry",
"telemetry_description": "Enable anonymous usage statistics"
"telemetry_description": "Enable anonymous usage statistics",
"real_debrid_api_token_label": "Real Debrid API token",
"quit_app_instead_hiding": "Quit Hydra instead of minimizing to tray",
"launch_with_system": "Launch Hydra on system start-up",
"general": "General",
"behavior": "Behavior",
"enable_real_debrid": "Enable Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "You can get your API key <0>here</0>.",
"save_changes": "Save changes"
},
"notifications": {
"download_complete": "Download complete",
@@ -137,5 +173,8 @@
"title": "Programs not installed",
"description": "Wine or Lutris executables were not found on your system",
"instructions": "Check the correct way to install any of them on your Linux distro so that the game can run normally"
},
"modal": {
"close": "Close button"
}
}

View File

@@ -15,17 +15,21 @@
"checking_files": "{{title}} ({{percentage}} - Analizando archivos…)",
"paused": "{{title}} (Pausado)",
"downloading": "{{title}} ({{percentage}} - Descargando…)",
"filter": "Filtrar biblioteca",
"home": "Hogar",
"follow_us": "Síganos"
"filter": "Buscar en la biblioteca",
"follow_us": "Síguenos",
"home": "Inicio",
"discord": "Únete a nuestro Discord",
"telegram": "Únete a nuestro Telegram",
"x": "Síguenos en X",
"github": "Contribuye en GitHub"
},
"header": {
"search": "Buscar",
"search": "Buscar juegos",
"home": "Inicio",
"catalogue": "Catálogo",
"downloads": "Descargas",
"search_results": "Resultados de búsqueda",
"settings": "Ajustes",
"home": "Início"
"settings": "Ajustes"
},
"bottom_panel": {
"no_downloads_in_progress": "Sin descargas en progreso",
@@ -33,47 +37,72 @@
"checking_files": "Analizando archivos de {{title}} - ({{percentage}} completado)",
"downloading": "Descargando {{title}}… ({{percentage}} completado) - Finalizando {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Siguiente página",
"previous_page": "Pagina anterior"
},
"game_details": {
"open_download_options": "Ver opciones de descargas",
"download_options_zero": "No hay opciones de descargas disponibles",
"download_options_one": "{{count}} opción de descarga",
"download_options_other": "{{count}} opciones de descargas",
"updated_at": "Actualizado el {{updated_at}}",
"install": "Instalar",
"resume": "Continuar",
"pause": "Pausa",
"cancel": "Cancelar",
"remove": "Eliminar",
"remove_from_list": "Quitar",
"space_left_on_disk": "{{space}} restantes en el disco",
"eta": "Finalizando {{eta}}",
"eta": "Finalizando en {{eta}}",
"downloading_metadata": "Descargando metadatos…",
"checking_files": "Analizando archivos…",
"filter": "Filtrar repacks",
"filter": "Buscar repacks",
"requirements": "Requisitos del Sistema",
"minimum": "Mínimos",
"recommended": "Recomendados",
"no_minimum_requirements": "Sin requisitos mínimos para {{title}}",
"no_recommended_requirements": "{{title}} no tiene requisitos recomendados",
"paused_progress": "{{progress}} (Pausado)",
"release_date": "Fecha de lanzamiento {{date}}",
"publisher": "Publicado por {{publisher}}",
"release_date": "Fecha de lanzamiento: {{date}}",
"publisher": "Publicado por: {{publisher}}",
"copy_link_to_clipboard": "Copiar enlace",
"copied_link_to_clipboard": "Enlace copiado",
"hours": "horas",
"minutes": "minutos",
"amount_hours": "{{amount}} horas",
"amount_minutes": "{{amount}} minutos",
"accuracy": "{{accuracy}}% precisión",
"add_to_library": "Agregar a la biblioteca",
"remove_from_library": "Eliminar de la biblioteca",
"no_downloads": "No hay descargas disponibles",
"next_suggestion": "Siguiente sugerencia",
"play_time": "Jugado por {{cantidad}}",
"install": "Instalar",
"play": "Jugar",
"play_time": "Jugado por {{amount}}",
"last_time_played": "Jugado por última vez {{period}}",
"not_played_yet": "Aún no has jugado a {{title}}",
"close": "Cerca",
"next_suggestion": "Siguiente sugerencia",
"play": "Jugar",
"deleting": "Eliminando instalador…",
"close": "Cerrar",
"playing_now": "Jugando ahora",
"last_time_played": "Jugado por última vez {{period}}"
"change": "Cambiar",
"repacks_modal_description": "Selecciona el repack que quieres descargar",
"select_folder_hint": "Para cambiar la carpeta predeterminada, ve a <0>Ajustes</0>",
"download_now": "Descargar ahora",
"installation_instructions": "Instrucciones de instalación",
"installation_instructions_description": "Se requieren de pasos adicionales para instalar este juego",
"online_fix_instruction": "Los juegos de OnlineFix requieren una contraseña para ser extraídos. Cuando se requiera, usa la siguiente contraseña:",
"dodi_installation_instruction": "Cuando abras el instalador de DODI, presiona la tecla hacia arriba del teclado <0 /> para iniciar el proceso de instalación:",
"dont_show_it_again": "No mostrar de nuevo",
"copy_to_clipboard": "Copiar",
"copied_to_clipboard": "Copiado",
"got_it": "Entendido",
"no_shop_details": "No se pudieron obtener detalles de la tienda.",
"download_options": "Opciones de descarga",
"download_path": "Ruta de descarga",
"previous_screenshot": "Anterior captura",
"next_screenshot": "Siguiente captura",
"screenshot": "Captura {{number}}",
"open_screenshot": "Abrir captura {{number}}"
},
"activation": {
"title": "Activar Hydra",
@@ -86,7 +115,7 @@
"downloads": {
"resume": "Resumir",
"pause": "Pausa",
"eta": "Finalizando {{eta}}",
"eta": "Finalizando en {{eta}}",
"paused": "En Pausa",
"verifying": "Verificando…",
"completed_at": "Completado el {{date}}",
@@ -99,12 +128,14 @@
"downloading_metadata": "Descargando metadatos…",
"checking_files": "Verificando archivos…",
"starting_download": "Iniciando descarga…",
"remove_from_list": "Eliminar",
"delete": "Quitar instalador",
"delete_modal_description": "Esto eliminará todos los archivos de instalación de su computadora.",
"delete_modal_title": "¿Está seguro?",
"deleting": "Eliminando instalador…",
"install": "Instalar"
"delete": "Eliminar instalador",
"remove_from_list": "Eliminar",
"delete_modal_title": "¿Estás seguro?",
"delete_modal_description": "Esto eliminará todos los archivos de instalación de tu computadora.",
"install": "Instalar",
"real_debrid": "Real Debrid",
"torrent": "Torrent"
},
"settings": {
"downloads_path": "Ruta de descarga",
@@ -112,8 +143,17 @@
"notifications": "Notificaciones",
"enable_download_notifications": "Cuando se completa una descarga",
"enable_repack_list_notifications": "Cuando se añade un repack nuevo",
"telemetry": "Telemetria",
"telemetry_description": "Habilitar estadísticas de uso anónimas"
"telemetry": "Telemetría",
"telemetry_description": "Habilitar recopilación de datos de manera anónima",
"real_debrid_api_token_label": "Token API de Real Debrid",
"quit_app_instead_hiding": "Salir de Hydra en vez de minimizar en la bandeja del sistema",
"launch_with_system": "Iniciar Hydra al inicio del sistema",
"general": "General",
"behavior": "Otros",
"enable_real_debrid": "Activar Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "Puedes obtener tu clave de API <0>aquí</0>.",
"save_changes": "Guardar cambios"
},
"notifications": {
"download_complete": "Descarga completada",
@@ -132,10 +172,9 @@
"binary_not_found_modal": {
"title": "Programas no instalados",
"description": "Los ejecutables de Wine o Lutris no se encontraron en su sistema",
"instructions": "Comprueba la forma correcta de instalar cualquiera de ellos en tu distro Linux para que el juego pueda ejecutarse con normalidad"
"instructions": "Comprueba como instalar de forma correcta uno de los dos en tu distro de Linux para ejecutar el juego con normalidad"
},
"catalogue": {
"next_page": "Siguiente página",
"previous_page": "Pagina anterior"
"modal": {
"close": "Botón de cierre"
}
}

View File

@@ -0,0 +1,174 @@
{
"home": {
"featured": "پیشنهادی",
"recently_added": "تازه اضافه شده",
"trending": "پرطرفدار",
"surprise_me": "سوپرایزم کن",
"no_results": "اتمام‌ای پیدا نشد"
},
"sidebar": {
"catalogue": "کاتالوگ",
"downloads": "دانلودها",
"settings": "تنظیمات",
"my_library": "کتابخانه‌ی من",
"downloading_metadata": "{{title}} (در حال دانلود متادیتا...)",
"checking_files": "{{title}} ({{percentage}} - در حال بررسی فایل‌ها...)",
"paused": "{{title}} (متوقف شده)",
"downloading": "{{title}} ({{percentage}} - در حال دانلود…)",
"filter": "فیلتر کردن کتابخانه",
"follow_us": "دنبال کردن ما",
"home": "خانه",
"discord": "عضویت در دیسکورد ما",
"telegram": "عضویت در تلگرام ما",
"x": "دنبال کرد در ایکس",
"github": "مشارکت در گیتهاب"
},
"header": {
"search": "جستجوی بازی‌ها",
"home": "خانه",
"catalogue": "کاتالوگ",
"downloads": "دانلود‌ها",
"search_results": "نتایج جستجو",
"settings": "تنظیمات"
},
"bottom_panel": {
"no_downloads_in_progress": "دانلودی در حال انجام نیست",
"downloading_metadata": "درحال دانلود متادیتاهای {{title}}…",
"checking_files": "در حال چک کردن فایل‌های {{title}}…. ({{percentage}} تکمیل شده)",
"downloading": "در حال دانلود {{title}}… ({{percentage}} تکمیل شده) - اتمام {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "صفحه‌ی بعدی",
"previous_page": "صفحه‌ی قبلی"
},
"game_details": {
"open_download_options": "بازکردن آپشن‌های دانلود",
"download_options_zero": "هیچ آپشن دانلودی وجود ندارد",
"download_options_one": "{{count}} آپشن دانلود",
"download_options_other": "{{count}} آپشن دانلود",
"updated_at": "بروزرسانی شده در {{updated_at}}",
"install": "نصب",
"resume": "ادامه",
"pause": "توقف",
"cancel": "بیخیال",
"remove": "حذف",
"remove_from_list": "حذف",
"space_left_on_disk": "{{space}} فضا در دیسک باقی‌مانده",
"eta": "اتمام {{eta}}",
"downloading_metadata": "در حال دانلود متادیتاها…",
"checking_files": "در حال چک کردن فایل‌ها",
"filter": "فیلترکردن ریپک‌ها",
"requirements": "سیستم مورد نیاز",
"minimum": "حداقل",
"recommended": "پیشنهادی",
"no_minimum_requirements": "{{title}} اطلاعات حداقل سیستم مورد نیاز را فراهم نکرده",
"no_recommended_requirements": "{{title}} اطلاعات پیشنهادی سیستم مورد نیاز را فراهم نکرده",
"paused_progress": "{{progress}} (متوقف شده)",
"release_date": "منتشر شده در {{date}}",
"publisher": "منتشر شده توسط {{publisher}}",
"copy_link_to_clipboard": "کپی لینک",
"copied_link_to_clipboard": "لینک کپی شد",
"hours": "ساعت",
"minutes": "دقیقه",
"amount_hours": "{{amount}} ساعت",
"amount_minutes": "{{amount}} دقیقه",
"accuracy": "{{accuracy}}% دقت",
"add_to_library": "اضافه کردن به کتابخانه",
"remove_from_library": "حذف کردن از کتابخانه",
"no_downloads": "هیچ دانلودی نیست",
"play_time": "{{amount}} بازی شده",
"last_time_played": "آخرین بار بازی شده {{period}}",
"not_played_yet": "شما هنوز {{title}} را بازی نکرده‌اید",
"next_suggestion": "پیشنهاد بعدی",
"play": "بازی",
"deleting": "پاک کردن نصب کننده",
"close": "بستن",
"playing_now": "در حال بازی",
"change": "تغییر",
"repacks_modal_description": "ریپک مورد نظر برای دانلود را انتخاب کنید",
"downloads_path": "آدرس دانلودها",
"select_folder_hint": "برای تغییر پوشه‌ی پیش‌فرض به <0>Settings</0> بروید",
"download_now": "الان دانلود کن",
"installation_instructions": "دستورات نصب",
"installation_instructions_description": "قدم‌های دیگری برای نصب این بازی نیاز است",
"online_fix_instruction": "بازی‌های OnlineFix برای اکسترکت‌ شدن به پسوورد نیاز دارند. در صورت نیاز، از این پسوورد استفاده کنید:",
"dodi_installation_instruction": "زمانی که اینستالر DODI را باز کردید، دکمه‌ی <0 /> را فشار دهید تا فرایند نصب شروع شود:",
"dont_show_it_again": "دیگر نمایش نده",
"copy_to_clipboard": "کپی",
"copied_to_clipboard": "کپی شد",
"got_it": "فهمیدم"
},
"activation": {
"title": "فعال کردن هایدرا",
"installation_id": "ID نصب:",
"enter_activation_code": "کد فعال‌سازی خود را وارد کنید",
"message": "اگر نمی‌دانید از کجا باید درخواست کنید، پس نباید آن را داشته باشید.",
"activate": "فعال‌سازی",
"loading": "در حال بارگزاری…"
},
"downloads": {
"resume": "ادامه",
"pause": "توقف",
"eta": "اتمام {{eta}}",
"paused": "متوقف شده",
"verifying": "در حال اعتبارسنجی…",
"completed_at": "پایان یافته در {{date}}",
"completed": "پایان یافته",
"cancelled": "لغو شده",
"download_again": "دانلود مجدد",
"cancel": "لغو",
"filter": "فیلتر بازی‌های دانلود شده",
"remove": "حذف",
"downloading_metadata": "در حال دانلود متادیتاها…",
"checking_files": "در حال چک کردن فایل‌ها…",
"starting_download": "در حال آغار دانلود…",
"deleting": "در حال پاک کردن اینستالر…",
"delete": "پاک کردن",
"remove_from_list": "حذف",
"delete_modal_title": "مطمئنی؟",
"delete_modal_description": "این کار تمام فایل‌های اینستالر را از کامپیوتر شما حذف می‌کند",
"install": "نصف",
"real_debrid": "Real Debrid",
"torrent": "تورنت"
},
"settings": {
"downloads_path": "مسیر دانلودها",
"change": "بروزرسانی",
"notifications": "نوتیفیکشن‌ها",
"enable_download_notifications": "زمانی که یک دانلود تمام شد",
"enable_repack_list_notifications": "زمانی که یک ریپک جدید اضافه شد",
"telemetry": "تلمتری",
"telemetry_description": "فعال کردن آمارگیری استفاده ناشناس",
"real_debrid_api_token_description": "توکن Real Debrid",
"quit_app_instead_hiding": "به جای کوچک کردن، از هایدرا خارج شو",
"launch_with_system": "زمانی که سیستم روشن می‌شود، هایدرا را باز کن",
"general": "کلی",
"behavior": "رفتار",
"enable_real_debrid": "فعال‌سازی Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "کلید API خود را از <ب0>اینجا</0> بگیرید.",
"save_changes": "ذخیره تغییرات"
},
"notifications": {
"download_complete": "دانلود تمام شد",
"game_ready_to_install": "{{title}} آماده‌ی نصب است",
"repack_list_updated": "لیست ریپک‌ها بروزرسانی شد",
"repack_count_one": "{{count}} ریپک اضافه شد",
"repack_count_other": "{{count}} ریپک اضافه شد"
},
"system_tray": {
"open": "باز کردن هایدرا",
"quit": "خروج"
},
"game_card": {
"no_downloads": "هیچ دانلودی نیست"
},
"binary_not_found_modal": {
"title": "نرم‌افزاری نصب نیست",
"description": "بر روی سیستم شما پیدا نشد Wine یا Lutris فایل‌های اجرایی",
"instructions": "روش صحیح نصب هر کدام از آن‌ها رو روی لینوکس خود چک کنید تا بازی بتواند به درستی اجرا شود"
},
"modal": {
"close": "دکمه‌ی خروج"
}
}

View File

@@ -25,13 +25,13 @@
"downloads": "Téléchargements",
"search_results": "Résultats de la recherche",
"settings": "Paramètres",
"home": "Maison"
"home": "Accueil"
},
"bottom_panel": {
"no_downloads_in_progress": "Aucun téléchargement en cours",
"downloading_metadata": "Téléchargement des métadonnées de {{title}}…",
"checking_files": "Vérification des fichiers de {{title}}… ({{percentage}} complet)",
"downloading": "Téléchargement de {{title}}… ({{percentage}} complet) - Conclusion dans {{eta}} - {{speed}}"
"checking_files": "Vérification des fichiers de {{title}}… ({{percentage}} terminé)",
"downloading": "Téléchargement de {{title}}… ({{percentage}} terminé) - Fin dans {{eta}} - {{speed}}"
},
"game_details": {
"open_download_options": "Ouvrir les options de téléchargement",
@@ -45,15 +45,15 @@
"remove": "Supprimer",
"remove_from_list": "Retirer",
"space_left_on_disk": "{{space}} restant sur le disque",
"eta": "Conclusion dans {{eta}}",
"eta": "Fin dans {{eta}}",
"downloading_metadata": "Téléchargement des métadonnées en cours…",
"checking_files": "Vérification des fichiers…",
"filter": "Filtrer les réductions",
"filter": "Filtrer les repacks",
"requirements": "Configuration requise",
"minimum": "Minimum",
"recommended": "Recommandée",
"no_minimum_requirements": "{{title}} ne fournit pas d'informations sur les exigences minimales",
"no_recommended_requirements": "{{title}} ne fournit pas d'informations sur les exigences recommandées",
"no_minimum_requirements": "{{title}} ne fournit pas d'informations sur les configurations minimales",
"no_recommended_requirements": "{{title}} ne fournit pas d'informations sur les configurations recommandées",
"paused_progress": "{{progress}} (En pause)",
"release_date": "Sorti le {{date}}",
"publisher": "Édité par {{publisher}}",
@@ -61,6 +61,8 @@
"copied_link_to_clipboard": "Lien copié",
"hours": "heures",
"minutes": "minutes",
"amount_hours": "{{amount}} heures",
"amount_minutes": "{{amount}} minutes",
"accuracy": "{{accuracy}}% précision",
"add_to_library": "Ajouter à la bibliothèque",
"remove_from_library": "Supprimer de la bibliothèque",
@@ -72,21 +74,21 @@
"not_played_yet": "Vous n'avez pas encore joué à {{title}}",
"close": "Fermer",
"deleting": "Suppression du programme d'installation…",
"playing_now": "Je joue maintenant",
"last_time_played": "Dernière lecture {{période}}"
"playing_now": "Jeu en cours",
"last_time_played": "Dernièrement joué {{période}}"
},
"activation": {
"title": "Activer Hydra",
"installation_id": "ID d'installation :",
"enter_activation_code": "Entrez votre code d'activation",
"message": "Si vous ne savez pas où demander cela, vous ne devriez pas l'avoir.",
"message": "Si vous ne savez pas où demander ceci, vous ne devriez pas l'avoir.",
"activate": "Activer",
"loading": "Chargement en cours…"
},
"downloads": {
"resume": "Reprendre",
"pause": "Pause",
"eta": "Conclusion dans {{eta}}",
"eta": "Fin dans {{eta}}",
"paused": "En pause",
"verifying": "Vérification en cours…",
"completed_at": "Terminé en {{date}}",
@@ -111,16 +113,16 @@
"change": "Mettre à jour",
"notifications": "Notifications",
"enable_download_notifications": "Quand un téléchargement est terminé",
"enable_repack_list_notifications": "Quand une nouvelle réduction est ajoutée",
"enable_repack_list_notifications": "Quand un nouveau repack est ajouté",
"telemetry": "Télémétrie",
"telemetry_description": "Activer les statistiques d'utilisation anonymes"
},
"notifications": {
"download_complete": "Téléchargement terminé",
"game_ready_to_install": "{{title}} est prêt à être installé",
"repack_list_updated": "Liste de réductions mise à jour",
"repack_count_one": "{{count}} réduction ajoutée",
"repack_count_other": "{{count}} réductions ajoutées"
"repack_list_updated": "Liste de repacks mise à jour",
"repack_count_one": "{{count}} repack ajouté",
"repack_count_other": "{{count}} repacks ajoutés"
},
"system_tray": {
"open": "Ouvrir Hydra",

View File

@@ -0,0 +1,148 @@
{
"home": {
"featured": "Featured",
"recently_added": "Nemrég hozzáadott",
"trending": "Népszerű",
"surprise_me": "Lepj meg",
"no_results": "Nem található"
},
"sidebar": {
"catalogue": "Katalógus",
"downloads": "Letöltések",
"settings": "Beállítások",
"my_library": "Könyvtáram",
"downloading_metadata": "{{title}} (Metadata letöltése…)",
"checking_files": "{{title}} ({{percentage}} - Fájlok ellenőrzése…)",
"paused": "{{title}} (Szünet)",
"downloading": "{{title}} ({{percentage}} - Letöltés…)",
"filter": "Könyvtár szűrése",
"follow_us": "Kövess minket",
"home": "Főoldal"
},
"header": {
"search": "Keresés",
"home": "Főoldal",
"catalogue": "Katalógus",
"downloads": "Letöltések",
"search_results": "Keresési eredmények",
"settings": "Beállítások"
},
"bottom_panel": {
"no_downloads_in_progress": "Nincsenek folyamatban lévő letöltések",
"downloading_metadata": "{{title}} metaadatainak letöltése…",
"checking_files": "{{title}} fájlok ellenőrzése… ({{percentage}} kész)",
"downloading": "{{title}} letöltése… ({{percentage}} kész) - Befejezés {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Következő olda",
"previous_page": "Előző olda"
},
"game_details": {
"open_download_options": "Letöltési lehetőségek",
"download_options_zero": "Nincs letöltési lehetőség",
"download_options_one": "{{count}} letöltési lehetőség",
"download_options_other": "{{count}} letöltési lehetőség",
"updated_at": "Frissítve: {{updated_at}}",
"install": "Letöltés",
"resume": "Folytatás",
"pause": "Szüneteltetés",
"cancel": "Mégse",
"remove": "Eltávolítás",
"remove_from_list": "Eltávolítás",
"space_left_on_disk": "{{space}} szabad hely a lemezen",
"eta": "Befejezés {{eta}}",
"downloading_metadata": "Metaadatok letöltése…",
"checking_files": "Fájlok ellenőrzése…",
"filter": "Repackek szűrése",
"requirements": "Rendszerkövetelmények",
"minimum": "Minimális",
"recommended": "Ajánlott",
"no_minimum_requirements": "{{title}} nem tartalmaz információt a minimális követelményekről",
"no_recommended_requirements": "{{title}} nem tartalmaz információt az ajánlott követelményekről",
"paused_progress": "{{progress}} (Szünetel)",
"release_date": "Megjelenés: {{date}}",
"publisher": "Kiadta: {{publisher}}",
"copy_link_to_clipboard": "Link másolása",
"copied_link_to_clipboard": "Link másolva",
"hours": "óra",
"minutes": "perc",
"amount_hours": "{{amount}} óra",
"amount_minutes": "{{amount}} perc",
"accuracy": "{{accuracy}}% pontosság",
"add_to_library": "Hozzáadás a könyvtárhoz",
"remove_from_library": "Eltávolítás a könyvtárból",
"no_downloads": "Nincs elérhető letöltés",
"play_time": "Játszva: {{amount}}",
"last_time_played": "Utoljára játszva {{period}}",
"not_played_yet": "{{title}} még nem játszottál",
"next_suggestion": "Következő javaslat",
"play": "Játék",
"deleting": "Telepítő törlése…",
"close": "Bezárás",
"playing_now": "Jelenleg játszva",
"change": "Változtatás",
"repacks_modal_description": "Choose the repack you want to download",
"downloads_path": "Letöltések helye",
"select_folder_hint": "Ahhoz, hogy megváltoztasd a helyet, hozzákell férned a",
"download_now": "Töltsd le most"
},
"activation": {
"title": "Hydra Aktiválása",
"installation_id": "Telepítési ID:",
"enter_activation_code": "Add meg az aktiválási kódodat",
"message": "Ha nem tudod, hol kérdezd meg ezt, akkor nem is kellene, hogy legyen ilyened.",
"activate": "Aktiválás",
"loading": "Betöltés…"
},
"downloads": {
"resume": "Folytatás",
"pause": "Szüneteltetés",
"eta": "Befejezés {{eta}}",
"paused": "Szüneteltetve",
"verifying": "Ellenőrzés…",
"completed_at": "Befejezve {{date}}-kor",
"completed": "Befejezve",
"cancelled": "Megszakítva",
"download_again": "Újra letöltés",
"cancel": "Mégse",
"filter": "Letöltött játékok szűrése",
"remove": "Eltávolítás",
"downloading_metadata": "Metaadatok letöltése…",
"checking_files": "Fájlok ellenőrzése…",
"starting_download": "Letöltés indítása…",
"deleting": "Telepítő törlése…",
"delete": "Telepítő eltávolítása",
"remove_from_list": "Eltávolítás",
"delete_modal_title": "Biztos vagy benne?",
"delete_modal_description": "Ez eltávolít minden telepítési fájlt a számítógépedről",
"install": "Telepítés"
},
"settings": {
"downloads_path": "Letöltések helye",
"change": "Frissítés",
"notifications": "Értesítések",
"enable_download_notifications": "Amikor egy letöltés befejeződik",
"enable_repack_list_notifications": "Amikor egy új repack hozzáadásra kerül",
"telemetry": "Telemetria",
"telemetry_description": "Névtelen felhasználási statisztikák engedélyezése"
},
"notifications": {
"download_complete": "Letöltés befejeződött",
"game_ready_to_install": "{{title}} telepítésre kész",
"repack_list_updated": "Repack lista frissítve",
"repack_count_one": "{{count}} repack hozzáadva",
"repack_count_other": "{{count}} repack hozzáadva"
},
"system_tray": {
"open": "Hydra megnyitása",
"quit": "Kilépés"
},
"game_card": {
"no_downloads": "Nincs elérhető letöltés"
},
"binary_not_found_modal": {
"title": "A programok nincsenek telepítve",
"description": "A Wine vagy a Lutris végrehajtható fájljai nem találhatók a rendszereden",
"instructions": "Ellenőrizd a megfelelő telepítési módot bármelyiküknek a Linux disztribúciódon, hogy a játék normálisan fusson"
}
}

View File

@@ -0,0 +1,166 @@
{
"home": {
"featured": "Unggulan",
"recently_added": "Terbaru",
"trending": "Trending",
"surprise_me": "Kejutkan Saya",
"no_results": "Tidak ada hasil"
},
"sidebar": {
"catalogue": "Katalog",
"downloads": "Unduhan",
"settings": "Pengaturan",
"my_library": "Koleksi saya",
"downloading_metadata": "{{title}} (Mengunduh metadata…)",
"checking_files": "{{title}} ({{percentage}} - Memeriksa file…)",
"paused": "{{title}} (Terhenti)",
"downloading": "{{title}} ({{percentage}} - Mengunduh…)",
"filter": "Filter koleksi",
"follow_us": "Ikuti kami",
"home": "Beranda",
"discord": "Gabung Discord kami",
"telegram": "Gabung Telegram kami",
"x": "Ikuti akun X kami",
"github": "Kontribusi di GitHub"
},
"header": {
"search": "Pencarian",
"home": "Beranda",
"catalogue": "Katalog",
"downloads": "Unduhan",
"search_results": "Hasil pencarian",
"settings": "Pengaturan"
},
"bottom_panel": {
"no_downloads_in_progress": "Tidak ada unduhan berjalan",
"downloading_metadata": "Mengunduh metadata {{title}}...",
"checking_files": "Memeriksa file {{title}}… ({{percentage}} selesai)",
"downloading": "Mengunduh {{title}}… ({{percentage}} selesai) - Perkiraan {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Halaman berikutnya",
"previous_page": "Halaman sebelumnya"
},
"game_details": {
"open_download_options": "Buka opsi unduhan",
"download_options_zero": "Tidak ada opsi unduhan",
"download_options_one": "{{count}} opsi unduhan",
"download_options_other": "{{count}} opsi unduhan",
"updated_at": "Diperbarui {{updated_at}}",
"install": "Install",
"resume": "Lanjutkan",
"pause": "Hentikan sementara",
"cancel": "Batalkan",
"remove": "Hapus",
"remove_from_list": "Hapus",
"space_left_on_disk": "{{space}} tersisa pada disk",
"eta": "Perkiraan {{eta}}",
"downloading_metadata": "Mengunduh metadata…",
"checking_files": "Memeriksa file…",
"filter": "Saring repacks",
"requirements": "Keperluan sistem",
"minimum": "Minimum",
"recommended": "Rekomendasi",
"no_minimum_requirements": "{{title}} Tidak ada informasi kebutuhan sistem",
"no_recommended_requirements": "{{title}} Tidak ada informasi rekomendasi kebutuhan sistem",
"paused_progress": "{{progress}} (Terhenti)",
"release_date": "Dirilis pada {{date}}",
"publisher": "Dipublikasikan oleh {{publisher}}",
"copy_link_to_clipboard": "Salin tautan",
"copied_link_to_clipboard": "Tautan tersalin",
"hours": "jam",
"minutes": "menit",
"amount_hours": "{{amount}} jam",
"amount_minutes": "{{amount}} menit",
"accuracy": "{{accuracy}}% akurasi",
"add_to_library": "Tambahkan ke koleksi",
"remove_from_library": "Hapus dari koleksi",
"no_downloads": "Tidak ada unduhan tersedia",
"play_time": "Dimainkan selama {{amount}}",
"last_time_played": "Terakhir dimainkan {{period}}",
"not_played_yet": "Kamu belum memainkan {{title}}",
"next_suggestion": "Rekomendasi berikutnya",
"play": "Mainkan",
"deleting": "Menghapus installer…",
"close": "Tutup",
"playing_now": "Memainkan sekarang",
"change": "Ubah",
"repacks_modal_description": "Pilih repack yang kamu ingin unduh",
"downloads_path": "Lokasi Unduhan",
"select_folder_hint": "Untuk merubah folder bawaan, akses melalui",
"download_now": "Unduh sekarang",
"installation_instructions": "Instruksi Instalasi",
"installation_instructions_description": "Langkah tambahan dibutuhkan untuk meng-instal game ini",
"online_fix_instruction": "OnlineFix games mebutuhkan kata sandi untuk ekstraksi. Saat diperlukan, gunakan kata sandi ini:",
"dodi_installation_instruction": "Saat menjalankan DODI installer, tekan tombol atas pada keyboard <0 /> untuk melanjutkan proses instalasi:",
"dont_show_it_again": "Jangan tunjukkan lagi",
"copy_to_clipboard": "Salin",
"copied_to_clipboard": "Tersalin",
"got_it": "Paham"
},
"activation": {
"title": "Aktivasi Hydra",
"installation_id": "ID instalasi:",
"enter_activation_code": "Masukkan kode aktivasi",
"message": "Jika kamu tidak tau dimana bertanya untuk ini, maka kamu tidak seharusnya memiliki ini.",
"activate": "Aktifkan",
"loading": "Memuat…"
},
"downloads": {
"resume": "Lanjutkan",
"pause": "Hentikan sementara",
"eta": "Perkiraan {{eta}}",
"paused": "Terhenti sementara",
"verifying": "Memeriksa…",
"completed_at": "Selesai pada {{date}}",
"completed": "Selesai",
"cancelled": "Dibatalkan",
"download_again": "Unduh lagi",
"cancel": "Batalkan",
"filter": "Saring game yang diunduh",
"remove": "Hapus",
"downloading_metadata": "Mengunduh metadata…",
"checking_files": "Memeriksa file…",
"starting_download": "Memulai unduhan…",
"deleting": "Menghapus file instalasi…",
"delete": "Hapus file instalasi",
"remove_from_list": "Hapus",
"delete_modal_title": "Kamu yakin?",
"delete_modal_description": "Proses ini akan menghapus semua file instalasi dari komputer kamu",
"install": "Install"
},
"settings": {
"downloads_path": "Lokasi unduhan",
"change": "Perbarui",
"notifications": "Pengingat",
"enable_download_notifications": "Saat unduhan selesai",
"enable_repack_list_notifications": "Saat repack terbaru ditambahkan",
"telemetry": "Telemetri",
"telemetry_description": "Izinkan statistik penggunaan data anonim",
"behavior": "Perilaku",
"quit_app_instead_hiding": "Tutup aplikasi alih-alih menyembunyikan aplikasi",
"launch_with_system": "Jalankan saat memulai sistem"
},
"notifications": {
"download_complete": "Unduhan selesai",
"game_ready_to_install": "{{title}} sudah siap untuk instalasi",
"repack_list_updated": "Daftar repack diperbarui",
"repack_count_one": "{{count}} repack ditambahkan",
"repack_count_other": "{{count}} repack ditambahkan"
},
"system_tray": {
"open": "Buka Hydra",
"quit": "Tutup"
},
"game_card": {
"no_downloads": "Tidak ada unduhan tersedia"
},
"binary_not_found_modal": {
"title": "Program tidak terinstal",
"description": "Wine atau Lutris exe tidak ditemukan pada sistem kamu",
"instructions": "Periksa cara instalasi yang benar pada Linux distro-mu agar game dapat dimainkan dengan benar"
},
"modal": {
"close": "Tombol tutup"
}
}

View File

@@ -1,4 +1,18 @@
export { default as en } from "./en/translation.json";
export { default as pt } from "./pt/translation.json";
export { default as es } from "./es/translation.json";
export { default as nl } from "./nl/translation.json";
export { default as fr } from "./fr/translation.json";
export { default as hu } from "./hu/translation.json";
export { default as it } from "./it/translation.json";
export { default as pl } from "./pl/translation.json";
export { default as ru } from "./ru/translation.json";
export { default as tr } from "./tr/translation.json";
export { default as be } from "./be/translation.json";
export { default as uk } from "./uk/translation.json";
export { default as zh } from "./zh/translation.json";
export { default as id } from "./id/translation.json";
export { default as ko } from "./ko/translation.json";
export { default as da } from "./da/translation.json";
export { default as ar } from "./ar/translation.json";
export { default as fa } from "./fa/translation.json";

View File

@@ -0,0 +1,163 @@
{
"home": {
"featured": "In primo piano",
"recently_added": "Aggiunti di recente",
"trending": "Di tendenza",
"surprise_me": "Sorprendimi",
"no_results": "Nessun risultato trovato"
},
"sidebar": {
"catalogue": "Catalogo",
"downloads": "Download",
"settings": "Impostazioni",
"my_library": "La mia libreria",
"downloading_metadata": "{{title}} (Scaricamento metadati…)",
"checking_files": "{{title}} ({{percentage}} - Verifica file…)",
"paused": "{{title}} (In pausa)",
"downloading": "{{title}} ({{percentage}} - Download…)",
"filter": "Filtra libreria",
"follow_us": "Seguici",
"home": "Home",
"discord": "Unisciti al nostro Discord",
"telegram": "Unisciti al nostro Telegram",
"x": "Segui su X",
"github": "Contribuisci su GitHub"
},
"header": {
"search": "Cerca",
"home": "Home",
"catalogue": "Catalogo",
"downloads": "Download",
"search_results": "Risultati della ricerca",
"settings": "Impostazioni"
},
"bottom_panel": {
"no_downloads_in_progress": "Nessun download in corso",
"downloading_metadata": "Scaricamento metadati di {{title}}…",
"checking_files": "Verifica file di {{title}}… ({{percentage}} completato)",
"downloading": "Download di {{title}}… ({{percentage}} completato) - Conclusione {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Pagina successiva",
"previous_page": "Pagina precedente"
},
"game_details": {
"open_download_options": "Apri opzioni di download",
"download_options_zero": "Nessuna opzione di download",
"download_options_one": "{{count}} opzione di download",
"download_options_other": "{{count}} opzioni di download",
"updated_at": "Aggiornato il {{updated_at}}",
"install": "Installa",
"resume": "Riprendi",
"pause": "Metti in pausa",
"cancel": "Annulla",
"remove": "Rimuovi",
"remove_from_list": "Rimuovi",
"space_left_on_disk": "{{space}} rimasto sul disco",
"eta": "Conclusione {{eta}}",
"downloading_metadata": "Scaricamento metadati…",
"checking_files": "Verifica file…",
"filter": "Filtra repack",
"requirements": "Requisiti di sistema",
"minimum": "Minimi",
"recommended": "Consigliati",
"no_minimum_requirements": "{{title}} non fornisce informazioni sui requisiti minimi",
"no_recommended_requirements": "{{title}} non fornisce informazioni sui requisiti consigliati",
"paused_progress": "{{progress}} (In pausa)",
"release_date": "Rilasciato il {{date}}",
"publisher": "Pubblicato da {{publisher}}",
"copy_link_to_clipboard": "Copia link",
"copied_link_to_clipboard": "Link copiato",
"hours": "ore",
"minutes": "minuti",
"amount_hours": "{{amount}} ore",
"amount_minutes": "{{amount}} minuti",
"accuracy": "{{accuratezza}}% di accuratezza",
"add_to_library": "Aggiungi alla libreria",
"remove_from_library": "Rimuovi dalla libreria",
"no_downloads": "Nessun download disponibile",
"play_time": "Giocato per {{amount}}",
"last_time_played": "Ultimo gioco giocato {{period}}",
"not_played_yet": "Non hai ancora giocato a {{title}}",
"next_suggestion": "Prossimo suggerimento",
"play": "Gioca",
"deleting": "Eliminazione dell'installer…",
"close": "Chiudi",
"playing_now": "Stai giocando adesso",
"change": "Aggiorna",
"repacks_modal_description": "Scegli il repack che vuoi scaricare",
"downloads_path": "Percorso dei download",
"select_folder_hint": "Per cambiare la cartella predefinita, accedi alle",
"download_now": "Scarica ora",
"installation_instructions": "Istruzioni di installazione",
"installation_instructions_description": "Sono necessari passaggi aggiuntivi per installare questo gioco",
"online_fix_instruction": "I giochi OnlineFix richiedono una password per essere estratti. Quando richiesto, utilizza la seguente password:",
"dodi_installation_instruction": "Quando apri l'installatore di DODI, premi il tasto su della tua tastiera <0 /> per avviare il processo di installazione:",
"dont_show_it_again": "Non mostrarlo più",
"copy_to_clipboard": "Copia",
"copied_to_clipboard": "Copiato",
"got_it": "Capito"
},
"activation": {
"title": "Attiva Hydra",
"installation_id": "ID installazione:",
"enter_activation_code": "Inserisci il tuo codice di attivazione",
"message": "Se non sai dove chiederlo, allora non dovresti averlo.",
"activate": "Attiva",
"loading": "Caricamento…"
},
"downloads": {
"resume": "Riprendi",
"pause": "Metti in pausa",
"eta": "Conclusione {{eta}}",
"paused": "In pausa",
"verifying": "Verifica…",
"completed_at": "Completato in {{date}}",
"completed": "Completato",
"cancelled": "Annullato",
"download_again": "Scarica di nuovo",
"cancel": "Annulla",
"filter": "Filtra giochi scaricati",
"remove": "Rimuovi",
"downloading_metadata": "Scaricamento metadati…",
"checking_files": "Verifica file…",
"starting_download": "Avvio download…",
"deleting": "Eliminazione dell'installer…",
"delete": "Rimuovi installer",
"remove_from_list": "Rimuovi",
"delete_modal_title": "Sei sicuro?",
"delete_modal_description": "Questo rimuoverà tutti i file di installazione dal tuo computer",
"install": "Installa"
},
"settings": {
"downloads_path": "Percorso dei download",
"change": "Aggiorna",
"notifications": "Notifiche",
"enable_download_notifications": "Quando un download è completo",
"enable_repack_list_notifications": "Quando viene aggiunto un nuovo repack",
"telemetry": "Telemetria",
"telemetry_description": "Abilita statistiche di utilizzo anonime"
},
"notifications": {
"download_complete": "Download completato",
"game_ready_to_install": "{{title}} è pronto per l'installazione",
"repack_list_updated": "Elenco repack aggiornato",
"repack_count_one": "{{count}} repack aggiunto",
"repack_count_other": "{{count}} repack aggiunti"
},
"system_tray": {
"open": "Apri Hydra",
"quit": "Esci"
},
"game_card": {
"no_downloads": "Nessun download disponibile"
},
"binary_not_found_modal": {
"title": "Programmi non installati",
"description": "Gli eseguibili di Wine o Lutris non sono stati trovati sul tuo sistema",
"instructions": "Verifica il modo corretto di installare uno di essi sulla tua distribuzione Linux in modo che il gioco possa funzionare normalmente"
},
"modal": {
"close": "Pulsante Chiudi"
}
}

View File

@@ -0,0 +1,174 @@
{
"home": {
"featured": "추천",
"recently_added": "최근 추가됨",
"trending": "인기",
"surprise_me": "무작위 추천",
"no_results": "결과 없음"
},
"sidebar": {
"catalogue": "카탈로그",
"downloads": "다운로드",
"settings": "설정",
"my_library": "내 라이브러리",
"downloading_metadata": "{{title}} (메타데이터 다운로드 중…)",
"checking_files": "{{title}} ({{percentage}} - 파일 검사 중…)",
"paused": "{{title}} (일시 정지됨)",
"downloading": "{{title}} ({{percentage}} - 다운로드 중…)",
"filter": "라이브러리 정렬",
"follow_us": "공식 SNS",
"home": "홈",
"discord": "공식 디스코드",
"telegram": "공식 텔레그램",
"x": "공식 X (구 트위터)",
"github": "GitHub에서 기여하기"
},
"header": {
"search": "게임 검색하기",
"home": "홈",
"catalogue": "카탈로그",
"downloads": "다운로드",
"search_results": "검색 결과",
"settings": "설정"
},
"bottom_panel": {
"no_downloads_in_progress": "진행중인 다운로드 없음",
"downloading_metadata": "{{title}}의 메타데이터를 다운로드 중…",
"checking_files": "{{title}}의 파일들을 검사 중… ({{percentage}} 완료)",
"downloading": "{{title}}의 파일들을 다운로드 중… ({{percentage}} 완료) - 완료까지 {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "다음 페이지",
"previous_page": "이전 페이지"
},
"game_details": {
"open_download_options": "다운로드 선택지 열기",
"download_options_zero": "다운로드 선택지 없음",
"download_options_one": "{{count}}개의 다운로드 선택지가 존재함",
"download_options_other": "{{count}}개의 다운로드 선택지들이 존재함",
"updated_at": "{{updated_at}}에 업데이트 됨",
"install": "설치",
"resume": "재개",
"pause": "일시 정지",
"cancel": "취소",
"remove": "제거",
"remove_from_list": "목록에서 제거",
"space_left_on_disk": "여유 저장 용량 {{space}} 남음",
"eta": "완료까지 {{eta}}",
"downloading_metadata": "메타데이터 다운로드 중…",
"checking_files": "파일 검사 중…",
"filter": "리팩들을 다음과 같이 정렬하기",
"requirements": "시스템 사양",
"minimum": "최저 사양",
"recommended": "권장 사양",
"no_minimum_requirements": "{{title}}의 최저 사양을 제공받지 못 함",
"no_recommended_requirements": "{{title}}의 권장 사양을 제공받지 못 함",
"paused_progress": "{{progress}} (일시 정지)",
"release_date": "{{date}}에 발매됨",
"publisher": "{{publisher}} 배급",
"copy_link_to_clipboard": "링크 복사하기",
"copied_link_to_clipboard": "링크 복사됨",
"hours": "시",
"minutes": "분",
"amount_hours": "{{amount}} 시간",
"amount_minutes": "{{amount}} 분",
"accuracy": "정확도 {{accuracy}}%",
"add_to_library": "라이브러리에 추가",
"remove_from_library": "라이브러리에서 제거",
"no_downloads": "가능한 다운로드 없음",
"play_time": "{{amount}}동안 플레이 함",
"last_time_played": "마지막 플레이 날짜 {{period}}",
"not_played_yet": "{{title}}의 플레이 기록 아직 없음",
"next_suggestion": "다음 추천",
"play": "실행",
"deleting": "인스톨러 삭제 중…",
"close": "닫기",
"playing_now": "현재 플레이 중",
"change": "바꾸기",
"repacks_modal_description": "다운로드 할 리팩을 선택해 주세요",
"downloads_path": "다운로드 경로",
"select_folder_hint": "기본 폴더를 바꾸려면 <0>설정</0>으로 가세요",
"download_now": "지금 다운로드",
"installation_instructions": "설치 방법",
"installation_instructions_description": "이 게임을 설치하기 위해서는 추가적인 단계가 필요합니다",
"online_fix_instruction": "OnlineFix 게임들은 압축 해제 시 암호가 필요합니다. 비밀번호를 물을 때 다음을 암호로 사용하기:",
"dodi_installation_instruction": "DODI 인스톨러를 실행했다면 키보드의 위 방향키를 눌러 설치를 시작하세요:",
"dont_show_it_again": "다시 보지 않기",
"copy_to_clipboard": "복사하기",
"copied_to_clipboard": "복사됨",
"got_it": "알았습니다"
},
"activation": {
"title": "Hydra 실행",
"installation_id": "설치 ID:",
"enter_activation_code": "활성 코드를 입력하세요",
"message": "이것을 어디에서 구해야 할 지 모르겠다면 애초에 갖고 있으면 안 됩니다.",
"activate": "활성화",
"loading": "불러오는중..."
},
"downloads": {
"resume": "재개",
"pause": "일시 정지",
"eta": "완료까지 {{eta}}",
"paused": "일시 정지됨",
"verifying": "검증중…",
"completed_at": "{{date}}에 완료됨",
"completed": "완료됨",
"cancelled": "취소됨",
"download_again": "다시 다운로드 하기",
"cancel": "취소",
"filter": "다운로드 된 게임들을 정렬하기",
"remove": "제거하기",
"downloading_metadata": "메타데이터 다운로드 중…",
"checking_files": "파일 검사 중…",
"starting_download": "다운로드 개시 중…",
"deleting": "인스톨러 삭제 중…",
"delete": "인스톨러 삭제하기",
"remove_from_list": "제거하기",
"delete_modal_title": "정말로 하시겠습니까?",
"delete_modal_description": "이 기기의 모든 설치 파일들이 제거될 것입니다",
"install": "설치",
"real_debrid": "Real Debrid",
"torrent": "Torrent"
},
"settings": {
"downloads_path": "다운로드 경로",
"change": "업데이트",
"notifications": "알림",
"enable_download_notifications": "다운로드가 완료되었을 때",
"enable_repack_list_notifications": "새 리팩이 추가되었을 때",
"telemetry": "자동 데이터 수집",
"telemetry_description": "익명 사용 통계를 활성화",
"real_debrid_api_token_description": "Real Debrid API 토큰",
"quit_app_instead_hiding": "작업 표시줄 트레이로 최소화하는 대신 Hydra를 종료",
"launch_with_system": "컴퓨터가 시작되었을 때 Hydra 실행",
"general": "일반",
"behavior": "행동",
"enable_real_debrid": "Real Debrid 활성화",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "API 키를 <0>이곳</0>에서 얻으세요.",
"save_changes": "변경 사항 저장"
},
"notifications": {
"download_complete": "다운로드 완료",
"game_ready_to_install": "이제 {{title}} 설치할 수 있습니다",
"repack_list_updated": "리팩 목록 갱신됨",
"repack_count_one": "{{count}}개의 리팩이 추가됨",
"repack_count_other": "{{count}}개의 리팩들이 추가됨"
},
"system_tray": {
"open": "Hydra 열기",
"quit": "닫기"
},
"game_card": {
"no_downloads": "가능한 다운로드 없음"
},
"binary_not_found_modal": {
"title": "프로그램이 설치되지 않음",
"description": "Wine 또는 Lutris 실행 파일이 시스템에서 발견되지 않았습니다",
"instructions": "게임이 정상적으로 실행될 수 있게 당신의 리눅스 배포판에 Wine 또는 Lutris를 올바르게 설치해 주세요"
},
"modal": {
"close": "닫기 버튼"
}
}

View File

@@ -0,0 +1,174 @@
{
"home": {
"featured": "Uitgelicht",
"recently_added": "Recent Toegevoegd",
"trending": "Trending",
"surprise_me": "Verrasing",
"no_results": "Geen resultaten gevonden"
},
"sidebar": {
"catalogue": "catalogus",
"downloads": "Downloads",
"settings": "Instellingen",
"my_library": "Mijn Bibliotheek",
"downloading_metadata": "{{title}} (Downloading metadata…)",
"checking_files": "{{title}} ({{percentage}} - Folders checken…)",
"paused": "{{title}} (Gepauzeerd)",
"downloading": "{{title}} ({{percentage}} - Downloading…)",
"filter": "Filter Bibliotheek",
"follow_us": "volg ons",
"home": "Home",
"discord": "Volg onze Discord",
"telegram": "Volg onze Telegram",
"x": "Volg ons op X",
"github": "Contribute op GitHub"
},
"header": {
"search": "Zoek spellen",
"home": "Home",
"catalogue": "Bibliotheek",
"downloads": "Downloads",
"search_results": "Zoek resultaten",
"settings": "Instellingen"
},
"bottom_panel": {
"no_downloads_in_progress": "Geen Downloads bezig",
"downloading_metadata": "Downloading {{title}} metadata…",
"checking_files": "Checking {{title}} files… ({{percentage}} complete)",
"downloading": "Downloading {{title}}… ({{percentage}} complete) - Conclusion {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Volgende Pagina",
"previous_page": "Vorige Pagina"
},
"game_details": {
"open_download_options": "Open download Instellingen",
"download_options_zero": "Geen download Instellingen",
"download_options_one": "{{count}} download Instellingen",
"download_options_other": "{{count}} download Instellingen",
"updated_at": "Geupdate {{updated_at}}",
"install": "Instaleer",
"resume": "Verder gaan",
"pause": "Pauze",
"cancel": "Stoppen",
"remove": "Verwijderen",
"remove_from_list": "Verwijdere van lijst",
"space_left_on_disk": "{{space}} Over op schijf",
"eta": "Conclusie {{eta}}",
"downloading_metadata": "Downloading metadata…",
"checking_files": "Files nakijken…",
"filter": "Filter repacks",
"requirements": "Systeem vereisten",
"minimum": "Minimaal",
"recommended": "Aanbevolen",
"no_minimum_requirements": "{{title}} biedt geen informatie over de minimale vereisten",
"no_recommended_requirements": "{{title}} biedt geen informatie over aanbevolen vereisten",
"paused_progress": "{{progress}} (Paused)",
"release_date": "Uitgebracht op {{date}}",
"publisher": "Gepubliceerd door {{publisher}}",
"copy_link_to_clipboard": "Kopieer link",
"copied_link_to_clipboard": "Link Gekopieerd",
"hours": "uren",
"minutes": "minuten",
"amount_hours": "{{amount}} uren",
"amount_minutes": "{{amount}} minuten",
"accuracy": "{{accuracy}}% nauwkeurigheid",
"add_to_library": "Toevoegen aan bibliotheek",
"remove_from_library": "Verwijderen uit bibliotheek",
"no_downloads": "Geen downloads beschikbaar",
"play_time": "Voor gespeeld {{amount}}",
"last_time_played": "Laatst gespeeld {{period}}",
"not_played_yet": "Je hebt nog niet gespeeld {{title}}",
"next_suggestion": "Volgende suggestie",
"play": "Speel",
"deleting": "Installatieprogramma verwijderen…",
"close": "Sluiten",
"playing_now": "Speel nu",
"change": "Verander",
"repacks_modal_description": "Kies de herverpakking die u wilt downloaden",
"downloads_path": "Downloads path",
"select_folder_hint": "Om de standaardmap te wijzigen, gaat u naar <0>instellingen</0>",
"download_now": "Download nu",
"installation_instructions": "Installatie instructies",
"installation_instructions_description": "Er zijn extra stappen vereist om deze game te installeren",
"online_fix_instruction": "OnlineFix-spellen vereisen dat een wachtwoord wordt uitgepakt. Gebruik indien nodig het volgende wachtwoord:",
"dodi_installation_instruction": "Wanneer u het DODI-installatieprogramma opent, drukt u op de toets omhoog <0 /> op uw toetsenbord om het installatieproces te starten:",
"dont_show_it_again": "Laat het niet meer zien",
"copy_to_clipboard": "Kopiëren",
"copied_to_clipboard": "Gekopieerd",
"got_it": "Begrepen"
},
"activation": {
"title": "Activeer Hydra",
"installation_id": "Installatie-ID:",
"enter_activation_code": "Voer uw activatiecode in",
"message": "Als je niet weet waar je dit moet vragen, dan moet je dit niet hebben.",
"activate": "Activeren",
"loading": "Bezig met laden…"
},
"downloads": {
"resume": "Hervatten",
"pause": "Pauze",
"eta": "Conclusie{{eta}}",
"paused": "Gepauzeerd",
"verifying": "Verifiëren…",
"completed_at": "Voltooid binnen {{date}}",
"completed": "Voltooid",
"cancelled": "Geannuleerd",
"download_again": "Opnieuw downloaden",
"cancel": "Annuleren",
"filter": "Filter gedownloade games",
"remove": "Verwijderen",
"downloading_metadata": "Metagegevens downloaden",
"checking_files": "Bestanden controleren",
"starting_download": "download starten",
"deleting": "Installatieprogramma verwijderen…",
"delete": "Installatieprogramma verwijderen",
"remove_from_list": "Verwijderen",
"delete_modal_title": "Weet je het zeker?",
"delete_modal_description": "Hiermee worden alle installatiebestanden van uw computer verwijderd",
"install": "Installeren",
"real_debrid": "Real Debrid",
"torrent": "Torrent"
},
"settings": {
"downloads_path": "Downloadpad",
"change": "Update",
"notifications": "Meldingen",
"enable_download_notifications": "Wanneer een download voltooid is",
"enable_repack_list_notifications": "Wanneer een nieuwe herverpakking wordt toegevoegd",
"telemetry": "Telemetrie",
"telemetry_description": "Schakel anonieme gebruiksstatistieken in",
"real_debrid_api_token_label": "Real Debrid API token",
"quit_app_instead_hiding": "Sluit Hydra af in plaats van te minimaliseren naar de lade",
"launch_with_system": "Start Hydra bij het opstarten van het systeem",
"general": "Algemeen",
"behavior": "Gedrag",
"enable_real_debrid": "Enable Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "U kunt uw API-sleutel <0>hier</0> verkrijgen.",
"save_changes": "Wijzigingen opslaan"
},
"notifications": {
"download_complete": "Download compleet",
"game_ready_to_install": "{{title}} is klaar om te installeren",
"repack_list_updated": "Herpaklijst bijgewerkt",
"repack_count_one": "{{count}} herverpakking toegevoegd",
"repack_count_other": "{{count}} herverpakkingen toegevoegd"
},
"system_tray": {
"open": "Open Hydra",
"quit": "Verlaten"
},
"game_card": {
"no_downloads": "Geen downloads beschikbaar"
},
"binary_not_found_modal": {
"title": "Programma's niet geïnstalleerd",
"description": "Er zijn geen uitvoerbare bestanden van Wine of Lutris gevonden op uw systeem",
"instructions": "Controleer de juiste manier om ze op je Linux-distro te installeren, zodat de game normaal kan werken"
},
"modal": {
"close": "Knop Sluiten"
}
}

View File

@@ -0,0 +1,180 @@
{
"home": {
"featured": "Wyróżnione",
"recently_added": "Ostatnio dodane",
"trending": "Trendujące",
"surprise_me": "Zaskocz mnie",
"no_results": "Nie znaleziono wyników"
},
"sidebar": {
"catalogue": "Katalog",
"downloads": "Pobrane",
"settings": "Ustawienia",
"my_library": "Moja biblioteka",
"downloading_metadata": "{{title}} (Pobieranie metadata…)",
"checking_files": "{{title}} ({{percentage}} - Sprawdzanie plików…)",
"paused": "{{title}} (Zatrzymano)",
"downloading": "{{title}} ({{percentage}} - Pobieranie…)",
"filter": "Filtruj biblioteke",
"follow_us": "Śledź nas",
"home": "Główna",
"discord": "Dołącz nasz Discord",
"telegram": "Dołącz nasz Telegram",
"x": "Śledź na X",
"github": "Przyczyń się na GitHub"
},
"header": {
"search": "Szukaj",
"home": "Główna",
"catalogue": "Katalog",
"downloads": "Pobrane",
"search_results": "Wyniki wyszukiwania",
"settings": "Ustawienia"
},
"bottom_panel": {
"no_downloads_in_progress": "Brak pobierań w toku",
"downloading_metadata": "Pobieranie {{title}} metadata…",
"checking_files": "Sprawdzanie {{title}} plików… (ukończone w {{percentage}})",
"downloading": "Pobieranie {{title}}… (ukończone w {{percentage}}) - Podsumowanie {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Następna strona",
"previous_page": "Poprzednia strona"
},
"game_details": {
"open_download_options": "Otwórz opcje pobierania",
"download_options_zero": "Brak opcji pobierania",
"download_options_one": "{{count}} opcja pobierania",
"download_options_other": "{{count}} opcji pobierania",
"updated_at": "Zaktualizowano {{updated_at}}",
"install": "Instaluj",
"resume": "Wznów",
"pause": "Zatrzymaj",
"cancel": "Anuluj",
"remove": "Usuń",
"remove_from_list": "Usuń",
"space_left_on_disk": "{{space}} wolnego na dysku",
"eta": "Podsumowanie {{eta}}",
"downloading_metadata": "Pobieranie metadata…",
"checking_files": "Sprawdzanie plików…",
"filter": "Filtruj repacki",
"requirements": "Wymagania systemowe",
"minimum": "Minimalne",
"recommended": "Zalecane",
"no_minimum_requirements": "{{title}} nie zawiera informacji o minimalnych wymaganiach",
"no_recommended_requirements": "{{title}} nie zawiera informacji o zalecanych wymaganiach",
"paused_progress": "{{progress}} (Zatrzymano)",
"release_date": "Wydano w {{date}}",
"publisher": "Opublikowany przez {{publisher}}",
"copy_link_to_clipboard": "Kopiuj łącze",
"copied_link_to_clipboard": "Skopiowano łącze",
"hours": "godzin",
"minutes": "minut",
"amount_hours": "{{amount}} godzin",
"amount_minutes": "{{amount}} minut",
"accuracy": "{{accuracy}}% dokładność",
"add_to_library": "Dodaj do biblioteki",
"remove_from_library": "Usuń z biblioteki",
"no_downloads": "Brak dostępnych plików do pobrania",
"play_time": "Grano przez {{amount}}",
"last_time_played": "Ostatnio grano {{period}}",
"not_played_yet": "Nie grano {{title}}",
"next_suggestion": "Następna sugestia",
"play": "Graj",
"deleting": "Usuwanie instalatora…",
"close": "Zamknij",
"playing_now": "Granie teraz",
"change": "Zmień",
"repacks_modal_description": "Wybierz repack, który chcesz pobrać",
"select_folder_hint": "Aby zmienić domyślny folder, przejdź do",
"download_now": "Pobierz teraz",
"installation_instructions": "Instrukcja instalacji",
"installation_instructions_description": "Do zainstalowania tej gry wymagane są dodatkowe kroki",
"online_fix_instruction": "Gry OnlineFix wymagają hasła do wyodrębnienia. W razie potrzeby użyj następującego hasła:",
"dodi_installation_instruction": "Po otwarciu instalatora DODI naciśnij klawisz <0 /> w górę, aby rozpocząć proces instalacji:",
"dont_show_it_again": "Nie pokazuj tego ponownie",
"copy_to_clipboard": "Skopiuj",
"copied_to_clipboard": "Skopiowano",
"got_it": "Rozumiem",
"no_shop_details": "Nie udało się pobrać danych sklepu.",
"download_options": "Opcje pobierania",
"download_path": "Ścieżka pobierania",
"previous_screenshot": "Poprzedni zrzut ekranu",
"next_screenshot": "Następny zrzut ekranu",
"screenshot": "Zrzut ekranu {{number}}",
"open_screenshot": "Otwórz zrzut ekranu {{number}}"
},
"activation": {
"title": "Aktywuj Hydra",
"installation_id": "Identyfikator instalacji:",
"enter_activation_code": "Enter your activation code",
"message": "Jeśli nie wiesz, gdzie o to poprosić, to nie powinieneś/aś tego mieć.",
"activate": "Aktywuj",
"loading": "Ładowanie…"
},
"downloads": {
"resume": "Wznów",
"pause": "Zatrzymaj",
"eta": "Podsumowanie {{eta}}",
"paused": "Zatrzymano",
"verifying": "Weryfikowanie…",
"completed_at": "Zakończono w {{date}}",
"completed": "Zakończono",
"cancelled": "Anulowano",
"download_again": "Pobierz ponownie",
"cancel": "Anuluj",
"filter": "Filtruj pobrane gry",
"remove": "Usuń",
"downloading_metadata": "Pobieranie metadata…",
"checking_files": "Sprawdzanie plików…",
"starting_download": "Rozpoczęto pobieranie…",
"deleting": "Usuwanie instalatora…",
"delete": "Usuń instalator",
"remove_from_list": "Usuń",
"delete_modal_title": "Czy na pewno?",
"delete_modal_description": "Spowoduje to usunięcie wszystkich plików instalacyjnych z komputera",
"install": "Instaluj",
"real_debrid": "Real Debrid",
"torrent": "Torrent"
},
"settings": {
"downloads_path": "Ścieżka pobierania",
"change": "Aktualizuj",
"notifications": "Powiadomienia",
"enable_download_notifications": "Gdy pobieranie zostanie zakończone",
"enable_repack_list_notifications": "Gdy dodawany jest nowy repack",
"telemetry": "Telemetria",
"telemetry_description": "Włącz anonimowe statystyki użycia",
"real_debrid_api_token_label": "Real Debrid API token",
"quit_app_instead_hiding": "Zamknij Hydr zamiast minimalizować do zasobnika",
"launch_with_system": "Uruchom Hydra przy starcie systemu",
"general": "Ogólne",
"behavior": "Zachowania",
"enable_real_debrid": "Włącz Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "Możesz uzyskać swój klucz API <0>tutaj</0>.",
"save_changes": "Zapisz zmiany"
},
"notifications": {
"download_complete": "Pobieranie zakończone",
"game_ready_to_install": "{{title}} jest gotowe do zainstalowania",
"repack_list_updated": "Lista repacków zaktualizowana",
"repack_count_one": "{{count}} repack dodany",
"repack_count_other": "{{count}} repacki dodane"
},
"system_tray": {
"open": "Otwórz Hydra",
"quit": "Wyjdź"
},
"game_card": {
"no_downloads": "Brak dostępnych plików do pobrania"
},
"binary_not_found_modal": {
"title": "Programy nie są zainstalowane",
"description": "Pliki wykonywalne Wine lub Lutris nie zostały znalezione na twoim systemie",
"instructions": "Sprawdź prawidłowy sposób instalacji dowolnego z nich w swojej dystrybucji Linuksa, aby gra działała normalnie"
},
"modal": {
"close": "Zamknij"
}
}

View File

@@ -1,9 +1,9 @@
{
"home": {
"featured": "Destaque",
"recently_added": "Novidades",
"recently_added": "Recém adicionados",
"trending": "Populares",
"surprise_me": "Me surpreenda",
"surprise_me": "Surpreenda-me",
"no_results": "Nenhum resultado encontrado"
},
"sidebar": {
@@ -17,10 +17,14 @@
"downloading": "{{title}} ({{percentage}} - Baixando…)",
"filter": "Filtrar biblioteca",
"home": "Início",
"follow_us": "Acompanhe-nos"
"follow_us": "Acompanhe-nos",
"discord": "Entre no nosso Discord",
"telegram": "Entre no nosso Telegram",
"x": "Siga-nos no X",
"github": "Contribua no GitHub"
},
"header": {
"search": "Buscar",
"search": "Buscar jogos",
"catalogue": "Catálogo",
"downloads": "Downloads",
"search_results": "Resultados da busca",
@@ -61,6 +65,8 @@
"copied_link_to_clipboard": "Link copiado",
"hours": "horas",
"minutes": "minutos",
"amount_hours": "{{amount}} horas",
"amount_minutes": "{{amount}} minutos",
"accuracy": "{{accuracy}}% de precisão",
"add_to_library": "Adicionar à biblioteca",
"remove_from_library": "Remover da biblioteca",
@@ -73,7 +79,26 @@
"not_played_yet": "Você ainda não jogou {{title}}",
"close": "Fechar",
"deleting": "Excluindo instalador…",
"playing_now": "Jogando agora"
"playing_now": "Jogando agora",
"change": "Mudar",
"repacks_modal_description": "Escolha o repack do jogo que deseja baixar",
"select_folder_hint": "Para trocar a pasta padrão, acesse a <0>Tela de Configurações</0>",
"download_now": "Baixe agora",
"installation_instructions": "Instruções de Instalação",
"installation_instructions_description": "Passos adicionais são necessários para instalar esse jogo",
"online_fix_instruction": "Jogos OnlineFix precisam de uma senha para serem extraídos. Quando solicitado, utilize a seguinte senha:",
"dodi_installation_instruction": "Quando o instalador do DODI for aberto, pressione a seta para cima <0 /> do teclado para iniciar o processo de instalação:",
"dont_show_it_again": "Não mostrar novamente",
"copy_to_clipboard": "Copiar",
"copied_to_clipboard": "Copiado",
"got_it": "Entendi",
"no_shop_details": "Não foi possível obter os detalhes da loja.",
"download_options": "Opções de download",
"download_path": "Diretório de download",
"previous_screenshot": "Captura de tela anterior",
"next_screenshot": "Próxima captura de tela",
"screenshot": "Captura de tela {{number}}",
"open_screenshot": "Ver captura de tela {{number}}"
},
"activation": {
"title": "Ativação",
@@ -104,7 +129,9 @@
"delete_modal_description": "Isso removerá todos os arquivos de instalação do seu computador",
"delete_modal_title": "Tem certeza?",
"deleting": "Excluindo instalador…",
"install": "Instalar"
"install": "Instalar",
"torrent": "Torrent",
"real_debrid": "Real Debrid"
},
"settings": {
"downloads_path": "Diretório dos downloads",
@@ -113,7 +140,16 @@
"enable_download_notifications": "Quando um download for concluído",
"enable_repack_list_notifications": "Quando a lista de repacks for atualizada",
"telemetry": "Telemetria",
"telemetry_description": "Habilitar estatísticas de uso anônimas"
"telemetry_description": "Habilitar estatísticas de uso anônimas",
"real_debrid_api_token_label": "Token de API do Real Debrid",
"quit_app_instead_hiding": "Fechar o aplicativo em vez de minimizá-lo",
"launch_with_system": "Iniciar aplicativo na inicialização do sistema",
"general": "Geral",
"behavior": "Comportamento",
"enable_real_debrid": "Habilitar Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "Você pode obter sua chave de API <0>aqui</0>.",
"save_changes": "Salvar mudanças"
},
"notifications": {
"download_complete": "Download concluído",
@@ -132,10 +168,13 @@
"binary_not_found_modal": {
"title": "Programas não instalados",
"description": "Não foram encontrados no seu sistema os executáveis do Wine ou Lutris",
"instructions": "Verifique a forma correta de instalar algum deles na sua distro Linux para que o jogo possa ser executado normalmente"
"instructions": "Verifique a forma correta de instalar algum deles no seu distro Linux, garantindo assim a execução normal do jogo"
},
"catalogue": {
"next_page": "Próxima página",
"previous_page": "Página anterior"
},
"modal": {
"close": "Botão de fechar"
}
}

View File

@@ -0,0 +1,180 @@
{
"home": {
"featured": "Рекомендованное",
"recently_added": "Новинки",
"trending": "В тренде",
"surprise_me": "Удиви меня",
"no_results": "Ничего не найдено"
},
"sidebar": {
"catalogue": "Каталог",
"downloads": "Загрузки",
"settings": "Настройки",
"my_library": "Библиотека",
"downloading_metadata": "{{title}} (Загрузка метаданных…)",
"checking_files": "{{title}} ({{percentage}} - Проверка файлов…)",
"paused": "{{title}} (Приостановлено)",
"downloading": "{{title}} ({{percentage}} - Загрузка…)",
"filter": "Фильтр библиотеки",
"follow_us": "Подписывайтесь на нас",
"home": "Главная",
"discord": "Присоединяйтесь к Discord",
"telegram": "Присоединяйтесь к Telegram",
"x": "Подписывайтесь на X",
"github": "Внести свой вклад на GitHub"
},
"header": {
"search": "Поиск",
"home": "Главная",
"catalogue": "Каталог",
"downloads": "Загрузки",
"search_results": "Результаты поиска",
"settings": "Настройки"
},
"bottom_panel": {
"no_downloads_in_progress": "Нет активных загрузок",
"downloading_metadata": "Загрузка метаданных {{title}}…",
"checking_files": "Проверка файлов {{title}}… ({{percentage}} завершено)",
"downloading": "Загрузка {{title}}… ({{percentage}} завершено) - Окончание {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Следующая страница",
"previous_page": "Предыдущая страница"
},
"game_details": {
"open_download_options": "Открыть варианты загрузки",
"download_options_zero": "Нет вариантов загрузки",
"download_options_one": "{{count}} вариант загрузки",
"download_options_other": "{{count}} вариантов загрузки",
"updated_at": "Обновлено {{updated_at}}",
"install": "Установить",
"resume": "Возобновить",
"pause": "Приостановить",
"cancel": "Отменить",
"remove": "Удалить",
"remove_from_list": "Удалить",
"space_left_on_disk": "{{space}} свободно на диске",
"eta": "Окончание {{eta}}",
"downloading_metadata": "Загрузка метаданных…",
"checking_files": "Проверка файлов…",
"filter": "Фильтр репаков",
"requirements": "Системные требования",
"minimum": "Минимальные",
"recommended": "Рекомендуемые",
"no_minimum_requirements": "Для {{title}} не указаны минимальные требования",
"no_recommended_requirements": "Для {{title}} не указаны рекомендуемые требования",
"paused_progress": "{{progress}} (Приостановлено)",
"release_date": "Выпущено {{date}}",
"publisher": "Издатель {{publisher}}",
"copy_link_to_clipboard": "Копировать ссылку",
"copied_link_to_clipboard": "Ссылка скопирована",
"hours": "часов",
"minutes": "минут",
"amount_hours": "{{amount}} часов",
"amount_minutes": "{{amount}} минут",
"accuracy": "точность {{accuracy}}%",
"add_to_library": "Добавить в библиотеку",
"remove_from_library": "Удалить из библиотеки",
"no_downloads": "Нет доступных загрузок",
"play_time": "Сыграно {{amount}}",
"last_time_played": "Последний запуск {{period}}",
"not_played_yet": "Вы ещё не играли в {{title}}",
"next_suggestion": "Следующее предложение",
"play": "Играть",
"deleting": "Удаление установщика…",
"close": "Закрыть",
"playing_now": "Запущено",
"change": "Изменить",
"repacks_modal_description": "Выберите репак для загрузки",
"select_folder_hint": "Чтобы изменить папку загрузок по умолчанию, откройте <0>Настройки</0>",
"download_now": "Загрузить сейчас",
"installation_instructions": "Инструкция по установке",
"installation_instructions_description": "Для установки этой игры требуются дополнительные шаги",
"online_fix_instruction": "В играх с OnlineFix требуется ввести пароль для извлечения. При необходимости используйте следующий пароль:",
"dodi_installation_instruction": "Когда вы откроете установщик DODI, нажмите на клавиатуре клавишу 'вверх' <0 />, чтобы начать процесс установки:",
"dont_show_it_again": "Не показывать снова",
"copy_to_clipboard": "Копировать",
"copied_to_clipboard": "Скопировано",
"got_it": "Понятно",
"no_shop_details": "Не удалось получить описание",
"download_options": "Вариантов загрузки",
"download_path": "Путь для загрузок",
"previous_screenshot": "Предыдущий скриншот",
"next_screenshot": "Следующий скриншот",
"screenshot": "Скриншот {{number}}",
"open_screenshot": "Открыть скриншот {{number}}"
},
"activation": {
"title": "Активировать Hydra",
"installation_id": "ID установки:",
"enter_activation_code": "Введите ваш активационный код",
"message": "Если вы не знаете, где его запросить, у вас его не должно быть.",
"activate": "Активировать",
"loading": "Загрузка…"
},
"downloads": {
"resume": "Возобновить",
"pause": "Приостановить",
"eta": "Окончание {{eta}}",
"paused": "Приостановлено",
"verifying": "Проверка…",
"completed_at": "Завершено в {{date}}",
"completed": "Завершено",
"cancelled": "Отменено",
"download_again": "Загрузить снова",
"cancel": "Отменить",
"filter": "Фильтр загруженных игр",
"remove": "Удалить",
"downloading_metadata": "Загрузка метаданных…",
"checking_files": "Проверка файлов…",
"starting_download": "Начало загрузки…",
"deleting": "Удаление установщика…",
"delete": "Удалить установщик",
"remove_from_list": "Удалить",
"delete_modal_title": "Вы уверены?",
"delete_modal_description": "Это удалит все установщики с вашего компьютера",
"install": "Установить",
"real_debrid": "Real Debrid",
"torrent": "Torrent"
},
"settings": {
"downloads_path": "Путь загрузок",
"change": "Изменить",
"notifications": "Уведомления",
"enable_download_notifications": "По завершении загрузки",
"enable_repack_list_notifications": "При добавлении нового репака",
"telemetry": "Телеметрия",
"telemetry_description": "Отправлять анонимную статистику использования",
"real_debrid_api_token_label": "Real Debrid API-токен",
"quit_app_instead_hiding": "Закрывать Hydra вместо того, чтобы сворачивать его в трей",
"launch_with_system": "Запуск Hydra вместе с системой",
"general": "Основные",
"behavior": "Поведение",
"enable_real_debrid": "Включить Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "API ключ можно получить <0>здесь</0>.",
"save_changes": "Сохранить изменения"
},
"notifications": {
"download_complete": "Загрузка завершена",
"game_ready_to_install": "{{title}} готова к установке",
"repack_list_updated": "Список репаков обновлен",
"repack_count_one": "{{count}} репак добавлен",
"repack_count_other": "{{count}} репаков добавлено"
},
"system_tray": {
"open": "Открыть Hydra",
"quit": "Выйти"
},
"game_card": {
"no_downloads": "Нет доступных загрузок"
},
"binary_not_found_modal": {
"title": "Программы не установлены",
"description": "Wine или Lutris не найдены",
"instructions": "Узнайте правильный способ установить любой из них на ваш дистрибутив Linux, чтобы игра могла нормально работать"
},
"modal": {
"close": "Закрыть"
}
}

View File

@@ -0,0 +1,163 @@
{
"home": {
"featured": "Öne çıkan",
"recently_added": "Son eklenen",
"trending": "Popüler",
"surprise_me": "Şaşırt beni",
"no_results": "Sonuç bulunamadı"
},
"sidebar": {
"catalogue": "Katalog",
"downloads": "İndirmeler",
"settings": "Ayarlar",
"my_library": "Kütüphane",
"downloading_metadata": "{{title}} (Metadata indiriliyor…)",
"checking_files": "{{title}} ({{percentage}} - Dosyalar kontrol ediliyor…)",
"paused": "{{title}} (Duraklatıldı)",
"downloading": "{{title}} ({{percentage}} - İndiriliyor…)",
"filter": "Kütüphaneyi filtrele",
"follow_us": "Bizi takip et",
"home": "Ana menü",
"discord": "Discord'umuza katıl",
"telegram": "Telegram'umuza katıl",
"x": "X'te bizi takip et",
"github": "GitHub'da bize katkı yap"
},
"header": {
"search": "Ara",
"home": "Ana menü",
"catalogue": "Katalog",
"downloads": "İndirmeler",
"search_results": "Arama sonuçları",
"settings": "Ayarlar"
},
"bottom_panel": {
"no_downloads_in_progress": "İndirilen bir şey yok",
"downloading_metadata": "{{title}} metadatası indiriliyor…",
"checking_files": "{{title}} dosyaları kontrol ediliyor… ({{percentage}} tamamlandı)",
"downloading": "{{title}} indiriliyor… ({{percentage}} tamamlandı) - Bitiş {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Sonraki sayfa",
"previous_page": "Önceki sayfa"
},
"game_details": {
"open_download_options": "İndirme seçeneklerini aç",
"download_options_zero": "İndirme seçeneği yok",
"download_options_one": "{{count}} indirme seçeneği",
"download_options_other": "{{count}} indirme seçeneği",
"updated_at": "{{updated_at}} güncellendi",
"install": "İndir",
"resume": "Devam et",
"pause": "Duraklat",
"cancel": "İptal et",
"remove": "Sil",
"remove_from_list": "Sil",
"space_left_on_disk": "Diskte {{space}} yer kaldı",
"eta": "Bitiş {{eta}}",
"downloading_metadata": "Metadata indiriliyor…",
"checking_files": "Dosyalar kontrol ediliyor…",
"filter": "Repackleri filtrele",
"requirements": "Sistem gereksinimleri",
"minimum": "Minimum",
"recommended": "Önerilen",
"no_minimum_requirements": "{{title}} minimum sistem gereksinim bilgilerini karşılamıyor",
"no_recommended_requirements": "{{title}} önerilen sistem gereksinim bilgilerini karşılamıyor",
"paused_progress": "{{progress}} (Duraklatıldı)",
"release_date": "{{date}} tarihinde çıktı",
"publisher": "{{publisher}} tarihinde yayınlandı",
"copy_link_to_clipboard": "Link'i kopyala",
"copied_link_to_clipboard": "Link kopyalandı",
"hours": "saatler",
"minutes": "dakikalar",
"amount_hours": "{{amount}} saat",
"amount_minutes": "{{amount}} dakika",
"accuracy": "%{{accuracy}} doğruluk",
"add_to_library": "Kütüphaneye ekle",
"remove_from_library": "Kütüphaneden kaldır",
"no_downloads": "İndirme yok",
"play_time": "{{amount}} oynandı",
"last_time_played": "Son oynanan {{period}}",
"not_played_yet": "Bu {{title}} hiç oynanmadı",
"next_suggestion": "Sıradaki öneri",
"play": "Oyna",
"deleting": "Installer siliniyor…",
"close": "Kapat",
"playing_now": "Şimdi oynanıyor",
"change": "Değiştir",
"repacks_modal_description": "İndirmek istediğiiniz repacki seçin",
"downloads_path": "İndirme yolu",
"select_folder_hint": "Varsayılan klasörü değiştirmek için ulaşmanız gereken ayar",
"download_now": "Şimdi",
"installation_instructions": "Kurulum",
"installation_instructions_description": "Bu oyunu kurmak için ek adımlar gerekiyor",
"online_fix_instruction": "OnlineFix oyunlarını ayıklamak için parola gerekiyor. Gerekli olduğunda bu parolayı kullanın:",
"dodi_installation_instruction": "Dodi installerını açtığınızda, kurulumu başlatmak için bu tuşa basın <0 />:",
"dont_show_it_again": "Tekrar gösterme",
"copy_to_clipboard": "Kopyala",
"copied_to_clipboard": "Kopyalandı",
"got_it": "Tamam"
},
"activation": {
"title": "Hydra'yı aktif et",
"installation_id": "Kurulum ID'si:",
"enter_activation_code": "Aktifleştirme kodunuzu girin",
"message": "Bunu nerede soracağınızı bilmiyorsanız, buna sahip olmamanız gerekiyor.",
"activate": "Aktif et",
"loading": "Yükleniyor…"
},
"downloads": {
"resume": "Devam et",
"pause": "Duraklat",
"eta": "Bitiş {{eta}}",
"paused": "Duraklatıldı",
"verifying": "Doğrulanıyor…",
"completed_at": "{{date}} tarihinde tamamlanacak",
"completed": "Tamamlandı",
"cancelled": "İptal edildi",
"download_again": "Tekrar indir",
"cancel": "İptal et",
"filter": "Yüklü oyunları filtrele",
"remove": "Kaldır",
"downloading_metadata": "Metadata indiriliyor…",
"checking_files": "Dosyalar kontrol ediliyor…",
"starting_download": "İndirme başlatılıyor…",
"deleting": "Installer siliniyor…",
"delete": "Installer'ı sil",
"remove_from_list": "Kaldır",
"delete_modal_title": "Emin misiniz?",
"delete_modal_description": "Bu bilgisayarınızdan tüm kurulum dosyalarını silecek",
"install": "Kur"
},
"settings": {
"downloads_path": "İndirme yolu",
"change": "Güncelle",
"notifications": "Bildirimler",
"enable_download_notifications": "Bir indirme bittiğinde",
"enable_repack_list_notifications": "Yeni bir repack eklendiğinde",
"telemetry": "Telemetri",
"telemetry_description": "Anonim kullanım istatistiklerini aktifleştir"
},
"notifications": {
"download_complete": "İndirme tamamlandı",
"game_ready_to_install": "{{title}} kuruluma hazır",
"repack_list_updated": "Repack listesi güncellendi",
"repack_count_one": "{{count}} yeni repack eklendi",
"repack_count_other": "{{count}} yeni repack eklendi"
},
"system_tray": {
"open": "Hydra'yı aç",
"quit": ık"
},
"game_card": {
"no_downloads": "İndirme mevcut değil"
},
"binary_not_found_modal": {
"title": "Programlar yüklü değil",
"description": "Sisteminizde Wine veya Lutris çalıştırılabiliri bulunamadı",
"instructions": "Oyunları düzgün şekilde çalıştırmak için Linux distronuza bunlardan birini nasıl yükleyebileceğinize bakın"
},
"modal": {
"close": "Kapat tuşu"
}
}

View File

@@ -0,0 +1,166 @@
{
"home": {
"featured": "Рекомендоване",
"recently_added": "Нове",
"trending": "У тренді",
"surprise_me": "Здивуй мене",
"no_results": "Результатів не знайдено"
},
"sidebar": {
"catalogue": "Каталог",
"downloads": "Завантаження",
"settings": "Налаштування",
"my_library": "Бібліотека",
"downloading_metadata": "{{title}} (Завантаження метаданих…)",
"checking_files": "{{title}} ({{percentage}} - Перевірка файлів…)",
"paused": "{{title}} (Призупинено)",
"downloading": "{{title}} ({{percentage}} - Завантаження…)",
"filter": "Фільтр бібліотеки",
"follow_us": "Підписуйтесь на нас",
"home": "Головна",
"discord": "Приєднуйтесь до Discord",
"telegram": "Приєднуйтесь до Telegram",
"x": "Підписуйтесь на X",
"github": "Зробіть свій внесок на GitHub"
},
"header": {
"search": "Пошук",
"home": "Головна",
"catalogue": "Каталог",
"downloads": "Завантаження",
"search_results": "Результати пошуку",
"settings": "Налаштування"
},
"bottom_panel": {
"no_downloads_in_progress": "Немає активних завантажень",
"downloading_metadata": "Завантаження метаданих {{title}}…",
"checking_files": "Перевірка файлів {{title}}… ({{percentage}} завершено)",
"downloading": "Завантаження {{title}}… ({{percentage}} завершено) - Закінчення {{eta}} - {{speed}}"
},
"catalogue": {
"next_page": "Наступна сторінка",
"previous_page": "Попередня сторінка"
},
"game_details": {
"open_download_options": "Відкрити варіанти завантаження",
"download_options_zero": "Немає варіантів завантаження",
"download_options_one": "{{count}} варіант завантаження",
"download_options_other": "{{count}} варіантів завантаження",
"updated_at": "Оновлено {{updated_at}}",
"install": "Встановити",
"resume": "Відновити",
"pause": "Призупинити",
"cancel": "Скасувати",
"remove": "Видалити",
"remove_from_list": "Видалити",
"space_left_on_disk": "{{space}} вільно на диску",
"eta": "Закінчення {{eta}}",
"downloading_metadata": "Завантаження метаданих…",
"checking_files": "Перевірка файлів…",
"filter": "Фільтр репаків",
"requirements": "Системні вимоги",
"minimum": "Мінімальні",
"recommended": "Рекомендовані",
"no_minimum_requirements": "Для {{title}} не вказані мінімальні вимоги",
"no_recommended_requirements": "Для {{title}} не вказані рекомендовані вимоги",
"paused_progress": "{{progress}} (Призупинено)",
"release_date": "Випущено {{date}}",
"publisher": "Видавець {{publisher}}",
"copy_link_to_clipboard": "Скопіювати посилання",
"copied_link_to_clipboard": "Посилання скопійовано",
"hours": "годин",
"minutes": "хвилин",
"amount_hours": "{{amount}} годин",
"amount_minutes": "{{amount}} хвилин",
"accuracy": "{{accuracy}}% точність",
"add_to_library": "Додати до бібліотеки",
"remove_from_library": "Видалити з бібліотеки",
"no_downloads": "Немає доступних завантажень",
"play_time": "Час гри: {{amount}}",
"last_time_played": "Востаннє зіграно: {{period}}",
"not_played_yet": "Ви ще не грали в {{title}}",
"next_suggestion": "Наступна пропозиція",
"play": "Грати",
"deleting": "Видалення інсталятора…",
"close": "Закрити",
"playing_now": "Поточна гра",
"change": "Змінити",
"repacks_modal_description": "Виберіть репак, який хочете завантажити",
"downloads_path": "Шлях завантажень",
"select_folder_hint": "Щоб змінити теку за замовчуванням, відкрийте",
"download_now": "Завантажити зараз",
"installation_instructions": "Інструкція зі встановлення",
"installation_instructions_description": "Для встановлення цієї гри потрібні додаткові кроки",
"online_fix_instruction": "В іграх з OnlineFix потрібно ввести пароль для вилучення. За необхідності використовуйте наступний пароль:",
"dodi_installation_instruction": "Коли ви відкриєте інсталятор DODI, натисніть на клавіатурі клавішу 'вгору' <0 />, щоб почати процес встановлення:",
"dont_show_it_again": "Не показувати це знову",
"copy_to_clipboard": "Копіювати",
"copied_to_clipboard": "Скопійовано",
"got_it": "Зрозуміло"
},
"activation": {
"title": "Активувати Hydra",
"installation_id": "ID установки:",
"enter_activation_code": "Введіть ваш активаційний код",
"message": "Якщо ви не знаєте, де його запросити, то не повинні мати цього.",
"activate": "Активувати",
"loading": "Завантаження…"
},
"downloads": {
"resume": "Продовжити",
"pause": "Призупинити",
"eta": "Закінчення {{eta}}",
"paused": "Призупинено",
"verifying": "Перевірка…",
"completed_at": "Завершено в {{date}}",
"completed": "Завершено",
"cancelled": "Скасовано",
"download_again": "Завантажити знову",
"cancel": "Скасувати",
"filter": "Фільтр завантажених ігор",
"remove": "Видалити",
"downloading_metadata": "Завантаження метаданих…",
"checking_files": "Перевірка файлів…",
"starting_download": "Початок завантаження…",
"deleting": "Видалення інсталятора…",
"delete": "Видалити інсталятор",
"remove_from_list": "Видалити",
"delete_modal_title": "Ви впевнені?",
"delete_modal_description": "Це видалить усі інсталяційні файли з вашого комп'ютера",
"install": "Встановити"
},
"settings": {
"downloads_path": "Тека завантажень",
"change": "Змінити",
"notifications": "Повідомлення",
"enable_download_notifications": "Після завершення завантаження",
"enable_repack_list_notifications": "Коли додається новий репак",
"telemetry": "Телеметрія",
"telemetry_description": "Відправляти анонімну статистику використання",
"behavior": "Поведінка",
"quit_app_instead_hiding": "Закривати програму замість того, щоб згортати її в трей",
"launch_with_system": "Запускати програми із запуском комп'ютера"
},
"notifications": {
"download_complete": "Завантаження завершено",
"game_ready_to_install": "{{title}} готова до встановлення",
"repack_list_updated": "Список репаків оновлено",
"repack_count_one": "{{count}} репак додано",
"repack_count_other": "{{count}} репаків додано"
},
"system_tray": {
"open": "Відкрити Hydra",
"quit": "Вийти"
},
"game_card": {
"no_downloads": "Немає доступних завантажень"
},
"binary_not_found_modal": {
"title": "Програми не встановлені",
"description": "Виконувані файли Wine або Lutris не знайдено у вашій системі",
"instructions": "Дізнайтеся правильний спосіб встановити будь-який з них на ваш дистрибутив Linux, щоб гра могла нормально працювати"
},
"modal": {
"close": "Закрити"
}
}

View File

@@ -0,0 +1,178 @@
{
"home": {
"featured": "特色推荐",
"recently_added": "最近添加",
"trending": "最近热门",
"surprise_me": "向我推荐",
"no_results": "没有找到结果"
},
"sidebar": {
"catalogue": "游戏目录",
"downloads": "下载中心",
"settings": "设置",
"my_library": "我的游戏库",
"downloading_metadata": "{{title}} (正在下载元数据…)",
"checking_files": "{{title}} ({{percentage}} - 正在检查文件…)",
"paused": "{{title}} (已暂停)",
"downloading": "{{title}} ({{percentage}} - 正在下载…)",
"filter": "筛选游戏库",
"follow_us": "关注我们",
"home": "主页",
"discord": "加入我们的Discord",
"telegram": "加入我们的Telegram",
"x": "在X上关注我们",
"github": "在GitHub上贡献"
},
"header": {
"search": "搜索",
"home": "主页",
"catalogue": "游戏目录",
"downloads": "下载中心",
"search_results": "搜索结果",
"settings": "设置"
},
"bottom_panel": {
"no_downloads_in_progress": "没有正在进行的下载",
"downloading_metadata": "正在下载{{title}}的元数据…",
"checking_files": "正在检查{{title}}的文件… ({{percentage}}完成)",
"downloading": "正在下载{{title}}… ({{percentage}}完成) - 剩余时间{{eta}} - 速度{{speed}}"
},
"catalogue": {
"next_page": "下一页",
"previous_page": "上一页"
},
"game_details": {
"open_download_options": "打开下载选项",
"download_options_zero": "无下载选项",
"download_options_one": "{{count}}个下载选项",
"download_options_other": "{{count}}个下载选项",
"updated_at": "更新于{{updated_at}}",
"install": "安装",
"resume": "恢复",
"pause": "暂停",
"cancel": "取消",
"remove": "移除",
"remove_from_list": "从列表中移除",
"space_left_on_disk": "磁盘剩余空间{{space}}",
"eta": "预计完成时间{{eta}}",
"downloading_metadata": "正在下载元数据…",
"checking_files": "正在检查文件…",
"filter": "筛选重打包",
"requirements": "配置要求",
"minimum": "最低要求",
"recommended": "推荐要求",
"no_minimum_requirements": "{{title}}没有提供最低要求信息",
"no_recommended_requirements": "{{title}}没有提供推荐要求信息",
"paused_progress": "{{progress}} (已暂停)",
"release_date": "发布于{{date}}",
"publisher": "发行商{{publisher}}",
"copy_link_to_clipboard": "复制链接",
"copied_link_to_clipboard": "链接已复制",
"hours": "小时",
"minutes": "分钟",
"amount_hours": "{{amount}}小时",
"amount_minutes": "{{amount}}分钟",
"accuracy": "准确度{{accuracy}}%",
"add_to_library": "添加到游戏库",
"remove_from_library": "从游戏库移除",
"no_downloads": "没有可用的下载",
"play_time": "游戏时长{{amount}}",
"last_time_played": "上次玩{{period}}",
"not_played_yet": "您还没有玩过{{title}}",
"next_suggestion": "下一个建议",
"play": "开始游戏",
"deleting": "正在删除安装程序…",
"close": "关闭",
"playing_now": "正在游戏中",
"change": "更改",
"repacks_modal_description": "选择您想要下载的重打包",
"downloads_path": "下载路径",
"select_folder_hint": "要更改默认文件夹,请访问",
"settings": "设置",
"download_now": "立即下载",
"installation_instructions": "安装说明",
"installation_instructions_description": "安装这个游戏需要额外的步骤",
"online_fix_instruction": "OnlineFix游戏需要密码才能解压。需要时,使用以下密码:",
"dodi_installation_instruction": "打开DODI安装程序时,按键盘上的键<0 />开始安装过程:",
"dont_show_it_again": "不再显示",
"copied_to_clipboard": "已复制到剪贴板",
"got_it": "我已知晓",
"previous_screenshot": "上一张截图",
"next_screenshot": "下一张截图",
"screenshot": "截图 {{number}}",
"open_screenshot": "打开截图 {{number}}"
},
"activation": {
"title": "激活 Hydra",
"installation_id": "安装ID:",
"enter_activation_code": "输入您的激活码",
"message": "如果你不知道在哪里请求这个,那么您将无法继续。",
"activate": "激活",
"loading": "加载中…"
},
"downloads": {
"resume": "继续",
"pause": "暂停",
"eta": "预计完成时间{{eta}}",
"paused": "已暂停",
"verifying": "正在验证…",
"completed_at": "完成于{{date}}",
"completed": "已完成",
"cancelled": "已取消",
"download_again": "再次下载",
"cancel": "取消",
"filter": "筛选已下载游戏",
"remove": "移除",
"downloading_metadata": "正在下载元数据…",
"checking_files": "正在检查文件…",
"starting_download": "开始下载…",
"deleting": "正在删除安装程序…",
"delete": "移除安装程序",
"remove_from_list": "移除",
"delete_modal_title": "您确定吗?",
"delete_modal_description": "这将从您的电脑上移除所有的安装文件",
"install": "安装",
"real_debrid": "Real Debrid",
"torrent": "种子"
},
"settings": {
"downloads_path": "下载路径",
"change": "更改",
"notifications": "通知",
"enable_download_notifications": "下载完成时",
"enable_repack_list_notifications": "添加新重打包时",
"telemetry": "遥测",
"telemetry_description": "启用匿名使用统计",
"real_debrid_api_token_description": "Real Debrid API密钥",
"behavior": "行为",
"general": "常规",
"quit_app_instead_hiding": "关闭应用程序而不是最小化到托盘",
"launch_with_system": "随系统启动时运行应用程序",
"enable_real_debrid": "启用 Real Debrid",
"real_debrid": "Real Debrid",
"real_debrid_api_token_hint": "您可以从<0>这里</0>获取API密钥.",
"save_changes": "保存更改"
},
"notifications": {
"download_complete": "下载完成",
"game_ready_to_install": "{{title}}已准备好安装",
"repack_list_updated": "重打包列表已更新",
"repack_count_one": "已添加{{count}}个重打包",
"repack_count_other": "已添加{{count}}个重打包"
},
"system_tray": {
"open": "打开Hydra",
"quit": "退出"
},
"game_card": {
"no_downloads": "没有可用的下载"
},
"binary_not_found_modal": {
"title": "程序未安装",
"description": "在您的系统上未找到Wine或Lutris的可执行文件",
"instructions": "检查在您的Linux发行版上正确安装它们的方法,以便游戏可以正常运行"
},
"modal": {
"close": "关闭按钮"
}
}

View File

@@ -1,5 +1,4 @@
import { app } from "electron";
import os from "node:os";
import path from "node:path";
export const repackersOn1337x = [
@@ -13,8 +12,8 @@ export const repackersOn1337x = [
export const repackers = [
...repackersOn1337x,
"Xatab",
"CPG",
"TinyRepacks",
"CPG",
"GOG",
"onlinefix",
] as const;
@@ -34,16 +33,7 @@ export const months = [
"Dec",
];
export enum GameStatus {
Seeding = "seeding",
Downloading = "downloading",
Paused = "paused",
CheckingFiles = "checking_files",
DownloadingMetadata = "downloading_metadata",
Cancelled = "cancelled",
}
export const defaultDownloadsPath = path.join(os.homedir(), "downloads");
export const defaultDownloadsPath = app.getPath("downloads");
export const databasePath = path.join(
app.getPath("appData"),

View File

@@ -2,34 +2,24 @@ import { DataSource } from "typeorm";
import {
Game,
GameShopCache,
ImageCache,
Repack,
RepackerFriendlyName,
UserPreferences,
MigrationScript,
SteamGame,
} from "@main/entity";
import type { SqliteConnectionOptions } from "typeorm/driver/sqlite/SqliteConnectionOptions";
import { databasePath } from "./constants";
import migrations from "./migrations";
export const createDataSource = (options: Partial<SqliteConnectionOptions>) =>
new DataSource({
type: "sqlite",
type: "better-sqlite3",
database: databasePath,
entities: [
Game,
ImageCache,
Repack,
RepackerFriendlyName,
UserPreferences,
GameShopCache,
MigrationScript,
SteamGame,
],
entities: [Game, Repack, UserPreferences, GameShopCache, SteamGame],
synchronize: true,
...options,
});
export const dataSource = createDataSource({
synchronize: true,
migrations: migrations,
});

View File

@@ -7,9 +7,11 @@ import {
OneToOne,
JoinColumn,
} from "typeorm";
import type { GameShop } from "@types";
import { Repack } from "./repack.entity";
import type { GameShop } from "@types";
import { Downloader, GameStatus } from "@shared";
@Entity("game")
export class Game {
@PrimaryGeneratedColumn()
@@ -40,8 +42,14 @@ export class Game {
shop: GameShop;
@Column("text", { nullable: true })
status: string;
status: GameStatus | null;
@Column("int", { default: Downloader.Torrent })
downloader: Downloader;
/**
* Progress is a float between 0 and 1
*/
@Column("float", { default: 0 })
progress: number;
@@ -61,6 +69,9 @@ export class Game {
@JoinColumn()
repack: Repack;
@Column("boolean", { default: false })
isDeleted: boolean;
@CreateDateColumn()
createdAt: Date;

View File

@@ -1,25 +0,0 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
} from "typeorm";
@Entity("image_cache")
export class ImageCache {
@PrimaryGeneratedColumn()
id: number;
@Column("text", { unique: true })
url: string;
@Column("text")
data: string;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -1,8 +1,5 @@
export * from "./game.entity";
export * from "./image-cache.entity";
export * from "./repack.entity";
export * from "./repacker-friendly-name.entity";
export * from "./user-preferences.entity";
export * from "./game-shop-cache.entity";
export * from "./migration-script.entity";
export * from "./steam-game.entity";

View File

@@ -1,22 +0,0 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
} from "typeorm";
@Entity("migration_script")
export class MigrationScript {
@PrimaryGeneratedColumn()
id: number;
@Column("text", { unique: true })
version: string;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -1,25 +0,0 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
} from "typeorm";
@Entity("repacker_friendly_name")
export class RepackerFriendlyName {
@PrimaryGeneratedColumn()
id: number;
@Column("text", { unique: true })
name: string;
@Column("text")
friendlyName: string;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -17,14 +17,20 @@ export class UserPreferences {
@Column("text", { default: "en" })
language: string;
@Column("text", { nullable: true })
realDebridApiToken: string | null;
@Column("boolean", { default: false })
downloadNotificationsEnabled: boolean;
@Column("boolean", { default: false })
repackUpdatesNotificationsEnabled: boolean;
@Column("boolean", { default: true })
telemetryEnabled: boolean;
@Column("boolean", { default: false })
preferQuitInsteadOfHiding: boolean;
@Column("boolean", { default: false })
runAtStartup: boolean;
@CreateDateColumn()
createdAt: Date;

View File

@@ -8,42 +8,35 @@ import { requestSteam250 } from "@main/services";
const repacks = stateManager.getValue("repacks");
interface GetStringForLookup {
(index: number): string;
}
const getStringForLookup = (index: number): string => {
const repack = repacks[index];
const formatter =
repackerFormatter[repack.repacker as keyof typeof repackerFormatter];
return formatName(formatter(repack.title));
};
const resultSize = 12;
const getCatalogue = async (
_event: Electron.IpcMainInvokeEvent,
category: CatalogueCategory
) => {
const getStringForLookup = (index: number): string => {
const repack = repacks[index];
const formatter =
repackerFormatter[repack.repacker as keyof typeof repackerFormatter];
return formatName(formatter(repack.title));
};
if (!repacks.length) return [];
const resultSize = 12;
if (category === "trending") {
return getTrendingCatalogue(resultSize);
} else {
return getRecentlyAddedCatalogue(
resultSize,
resultSize,
getStringForLookup
);
}
return getRecentlyAddedCatalogue(resultSize);
};
const getTrendingCatalogue = async (
resultSize: number
): Promise<CatalogueEntry[]> => {
const results: CatalogueEntry[] = [];
const trendingGames = await requestSteam250("/30day");
const trendingGames = await requestSteam250("/90day");
for (
let i = 0;
i < trendingGames.length && results.length < resultSize;
@@ -51,7 +44,7 @@ const getTrendingCatalogue = async (
) {
if (!trendingGames[i]) continue;
const { title, objectID } = trendingGames[i];
const { title, objectID } = trendingGames[i]!;
const repacks = searchRepacks(title);
if (title && repacks.length) {
@@ -69,11 +62,8 @@ const getTrendingCatalogue = async (
};
const getRecentlyAddedCatalogue = async (
resultSize: number,
requestSize: number,
getStringForLookup: GetStringForLookup
resultSize: number
): Promise<CatalogueEntry[]> => {
let lookupRequest = [];
const results: CatalogueEntry[] = [];
for (let i = 0; results.length < resultSize; i++) {
@@ -84,15 +74,7 @@ const getRecentlyAddedCatalogue = async (
continue;
}
lookupRequest.push(searchGames({ query: stringForLookup }));
if (lookupRequest.length < requestSize) {
continue;
}
const games = (await Promise.all(lookupRequest)).map((value) =>
value.at(0)
);
const games = searchGames({ query: stringForLookup });
for (const game of games) {
const isAlreadyIncluded = results.some(
@@ -105,13 +87,9 @@ const getRecentlyAddedCatalogue = async (
results.push(game);
}
lookupRequest = [];
}
return results.slice(0, resultSize);
};
registerEvent(getCatalogue, {
name: "getCatalogue",
memoize: true,
});
registerEvent("getCatalogue", getCatalogue);

View File

@@ -1,10 +1,32 @@
import { gameShopCacheRepository } from "@main/repository";
import { gameShopCacheRepository, steamGameRepository } from "@main/repository";
import { getSteamAppDetails } from "@main/services";
import type { ShopDetails, GameShop, SteamAppDetails } from "@types";
import { registerEvent } from "../register-event";
import { searchRepacks } from "../helpers/search-games";
const getLocalizedSteamAppDetails = (
objectID: string,
language: string
): Promise<ShopDetails | null> => {
if (language === "english") {
return getSteamAppDetails(objectID, language);
}
return Promise.all([
steamGameRepository.findOne({ where: { id: Number(objectID) } }),
getSteamAppDetails(objectID, language),
]).then(([steamGame, localizedAppDetails]) => {
if (steamGame && localizedAppDetails) {
return {
...localizedAppDetails,
name: steamGame.name,
};
}
return null;
});
};
const getGameShopDetails = async (
_event: Electron.IpcMainInvokeEvent,
@@ -17,27 +39,21 @@ const getGameShopDetails = async (
where: { objectID, language },
});
const result = Promise.all([
getSteamAppDetails(objectID, "english"),
getSteamAppDetails(objectID, language),
]).then(([appDetails, localizedAppDetails]) => {
if (appDetails && localizedAppDetails) {
const appDetails = getLocalizedSteamAppDetails(objectID, language).then(
(result) => {
gameShopCacheRepository.upsert(
{
objectID,
shop: "steam",
language,
serializedData: JSON.stringify({
...localizedAppDetails,
name: appDetails.name,
}),
serializedData: JSON.stringify(result),
},
["objectID"]
);
}
return [appDetails, localizedAppDetails];
});
return result;
}
);
const cachedGame = cachedData?.serializedData
? (JSON.parse(cachedData?.serializedData) as SteamAppDetails)
@@ -46,27 +62,14 @@ const getGameShopDetails = async (
if (cachedGame) {
return {
...cachedGame,
repacks: searchRepacks(cachedGame.name),
objectID,
} as ShopDetails;
}
return result.then(([appDetails, localizedAppDetails]) => {
if (!appDetails || !localizedAppDetails) return null;
return {
...localizedAppDetails,
name: appDetails.name,
repacks: searchRepacks(appDetails.name),
objectID,
} as ShopDetails;
});
return Promise.resolve(appDetails);
}
throw new Error("Not implemented");
};
registerEvent(getGameShopDetails, {
name: "getGameShopDetails",
memoize: true,
});
registerEvent("getGameShopDetails", getGameShopDetails);

View File

@@ -9,7 +9,7 @@ const steamGames = stateManager.getValue("steamGames");
const getGames = async (
_event: Electron.IpcMainInvokeEvent,
take?: number,
take = 12,
cursor = 0
): Promise<{ results: CatalogueEntry[]; cursor: number }> => {
const results: CatalogueEntry[] = [];
@@ -36,7 +36,4 @@ const getGames = async (
return { results, cursor: i };
};
registerEvent(getGames, {
name: "getGames",
memoize: true,
});
registerEvent("getGames", getGames);

View File

@@ -42,7 +42,4 @@ const getHowLongToBeat = async (
});
};
registerEvent(getHowLongToBeat, {
name: "getHowLongToBeat",
memoize: true,
});
registerEvent("getHowLongToBeat", getHowLongToBeat);

View File

@@ -1,29 +1,39 @@
import shuffle from "lodash/shuffle";
import { shuffle } from "lodash-es";
import { getRandomSteam250List } from "@main/services";
import { getSteam250List } from "@main/services";
import { registerEvent } from "../register-event";
import { searchGames, searchRepacks } from "../helpers/search-games";
import { formatName } from "@main/helpers";
import type { Steam250Game } from "@types";
const state = { games: Array<Steam250Game>(), index: 0 };
const getRandomGame = async (_event: Electron.IpcMainInvokeEvent) => {
return getRandomSteam250List().then(async (games) => {
const shuffledList = shuffle(games);
if (state.games.length == 0) {
const steam250List = await getSteam250List();
for (const game of shuffledList) {
const repacks = searchRepacks(formatName(game.title));
const filteredSteam250List = steam250List.filter((game) => {
const repacks = searchRepacks(game.title);
const catalogue = searchGames({ query: game.title });
if (repacks.length) {
const results = await searchGames({ query: game.title });
return repacks.length && catalogue.length;
});
if (results.length) {
return results[0].objectID;
}
}
}
});
state.games = shuffle(filteredSteam250List);
}
if (state.games.length == 0) {
return "";
}
state.index += 1;
if (state.index == state.games.length) {
state.index = 0;
state.games = shuffle(state.games);
}
return state.games[state.index];
};
registerEvent(getRandomGame, {
name: "getRandomGame",
});
registerEvent("getRandomGame", getRandomGame);

View File

@@ -0,0 +1,11 @@
import { searchRepacks } from "../helpers/search-games";
import { registerEvent } from "../register-event";
const searchGameRepacks = (
_event: Electron.IpcMainInvokeEvent,
query: string
) => {
return searchRepacks(query);
};
registerEvent("searchGameRepacks", searchGameRepacks);

View File

@@ -1,11 +1,12 @@
import { registerEvent } from "../register-event";
import { searchGames } from "../helpers/search-games";
import { CatalogueEntry } from "@types";
registerEvent(
(_event: Electron.IpcMainInvokeEvent, query: string) =>
searchGames({ query, take: 12 }),
{
name: "searchGames",
memoize: true,
}
);
const searchGamesEvent = async (
_event: Electron.IpcMainInvokeEvent,
query: string
): Promise<CatalogueEntry[]> => {
return searchGames({ query, take: 12 });
};
registerEvent("searchGames", searchGamesEvent);

View File

@@ -1,11 +1,10 @@
import checkDiskSpace from "check-disk-space";
import { registerEvent } from "../register-event";
import { getDownloadsPath } from "../helpers/get-downloads-path";
const getDiskFreeSpace = async (_event: Electron.IpcMainInvokeEvent) =>
checkDiskSpace(await getDownloadsPath());
const getDiskFreeSpace = async (
_event: Electron.IpcMainInvokeEvent,
path: string
) => checkDiskSpace(path);
registerEvent(getDiskFreeSpace, {
name: "getDiskFreeSpace",
});
registerEvent("getDiskFreeSpace", getDiskFreeSpace);

View File

@@ -28,8 +28,8 @@ export const generateYML = (game: Game) => {
{
task: {
executable: path.join(
game.downloadPath,
game.folderName,
game.downloadPath!,
game.folderName!,
"setup.exe"
),
name: "wineexec",

View File

@@ -1,5 +1,5 @@
import flexSearch from "flexsearch";
import orderBy from "lodash/orderBy";
import { orderBy } from "lodash-es";
import type { GameRepack, GameShop, CatalogueEntry } from "@types";
@@ -8,7 +8,7 @@ import { stateManager } from "@main/state-manager";
const { Index } = flexSearch;
const repacksIndex = new Index();
const steamGamesIndex = new Index({ tokenize: "reverse" });
const steamGamesIndex = new Index({ tokenize: "forward" });
const repacks = stateManager.getValue("repacks");
const steamGames = stateManager.getValue("steamGames");
@@ -42,11 +42,11 @@ export interface SearchGamesArgs {
skip?: number;
}
export const searchGames = async ({
export const searchGames = ({
query,
take,
skip,
}: SearchGamesArgs): Promise<CatalogueEntry[]> => {
}: SearchGamesArgs): CatalogueEntry[] => {
const results = steamGamesIndex
.search(formatName(query || ""), { limit: take, offset: skip })
.map((index) => {
@@ -61,11 +61,9 @@ export const searchGames = async ({
};
});
return Promise.all(results).then((resultsWithRepacks) =>
orderBy(
resultsWithRepacks,
[({ repacks }) => repacks.length, "repacks"],
["desc"]
)
return orderBy(
results,
[({ repacks }) => repacks.length, "repacks"],
["desc"]
);
};

View File

@@ -7,17 +7,17 @@ import "./catalogue/get-games";
import "./catalogue/get-how-long-to-beat";
import "./catalogue/get-random-game";
import "./catalogue/search-games";
import "./catalogue/search-game-repacks";
import "./hardware/get-disk-free-space";
import "./library/add-game-to-library";
import "./library/close-game";
import "./library/delete-game-folder";
import "./library/get-game-by-object-id";
import "./library/get-library";
import "./library/get-repackers-friendly-names";
import "./library/open-game";
import "./library/open-game-installer";
import "./library/remove-game";
import "./misc/get-or-cache-image";
import "./library/remove-game-from-library";
import "./misc/open-external";
import "./misc/show-open-dialog";
import "./torrenting/cancel-game-download";
@@ -26,6 +26,7 @@ import "./torrenting/resume-game-download";
import "./torrenting/start-game-download";
import "./user-preferences/get-user-preferences";
import "./user-preferences/update-user-preferences";
import "./user-preferences/auto-launch";
ipcMain.handle("ping", () => "pong");
ipcMain.handle("getVersion", () => app.getVersion());

View File

@@ -3,7 +3,7 @@ import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import type { GameShop } from "@types";
import { getImageBase64 } from "@main/helpers";
import { getFileBase64 } from "@main/helpers";
import { getSteamGameIconUrl } from "@main/services";
const addGameToLibrary = async (
@@ -11,19 +11,35 @@ const addGameToLibrary = async (
objectID: string,
title: string,
gameShop: GameShop,
executablePath: string
executablePath: string | null
) => {
const iconUrl = await getImageBase64(await getSteamGameIconUrl(objectID));
return gameRepository
.update(
{
objectID,
},
{
shop: gameShop,
status: null,
executablePath,
isDeleted: false,
}
)
.then(async ({ affected }) => {
if (!affected) {
const iconUrl = await getFileBase64(
await getSteamGameIconUrl(objectID)
);
return gameRepository.insert({
title,
iconUrl,
objectID,
shop: gameShop,
executablePath,
});
await gameRepository.insert({
title,
iconUrl,
objectID,
shop: gameShop,
executablePath,
});
}
});
};
registerEvent(addGameToLibrary, {
name: "addGameToLibrary",
});
registerEvent("addGameToLibrary", addGameToLibrary);

View File

@@ -1,24 +1,30 @@
import path from "node:path";
import { gameRepository } from "@main/repository";
import { getProcesses } from "@main/helpers";
import { registerEvent } from "../register-event";
import { getProcesses } from "@main/helpers";
const closeGame = async (
_event: Electron.IpcMainInvokeEvent,
gameId: number
) => {
const processes = await getProcesses();
const game = await gameRepository.findOne({ where: { id: gameId } });
const game = await gameRepository.findOne({
where: { id: gameId, isDeleted: false },
});
if (!game) return false;
const executablePath = game.executablePath!;
const basename = path.win32.basename(executablePath);
const basenameWithoutExtension = path.win32.basename(
executablePath,
path.extname(executablePath)
);
const gameProcess = processes.find((runningProcess) => {
const basename = path.win32.basename(game.executablePath);
const basenameWithoutExtension = path.win32.basename(
game.executablePath,
path.extname(game.executablePath)
);
if (process.platform === "win32") {
return runningProcess.name === basename;
}
@@ -30,6 +36,4 @@ const closeGame = async (
return false;
};
registerEvent(closeGame, {
name: "closeGame",
});
registerEvent("closeGame", closeGame);

View File

@@ -1,7 +1,7 @@
import path from "node:path";
import fs from "node:fs";
import { GameStatus } from "@main/constants";
import { GameStatus } from "@shared";
import { gameRepository } from "@main/repository";
import { getDownloadsPath } from "../helpers/get-downloads-path";
@@ -11,18 +11,22 @@ import { registerEvent } from "../register-event";
const deleteGameFolder = async (
_event: Electron.IpcMainInvokeEvent,
gameId: number
) => {
): Promise<void> => {
const game = await gameRepository.findOne({
where: {
id: gameId,
status: GameStatus.Cancelled,
isDeleted: false,
},
});
if (!game) return;
if (game.folderName) {
const folderPath = path.join(await getDownloadsPath(), game.folderName);
const folderPath = path.join(
game.downloadPath ?? (await getDownloadsPath()),
game.folderName
);
if (fs.existsSync(folderPath)) {
return new Promise((resolve, reject) => {
@@ -34,7 +38,8 @@ const deleteGameFolder = async (
logger.error(error);
reject();
}
resolve(null);
resolve();
}
);
});
@@ -42,6 +47,4 @@ const deleteGameFolder = async (
}
};
registerEvent(deleteGameFolder, {
name: "deleteGameFolder",
});
registerEvent("deleteGameFolder", deleteGameFolder);

View File

@@ -9,12 +9,11 @@ const getGameByObjectID = async (
gameRepository.findOne({
where: {
objectID,
isDeleted: false,
},
relations: {
repack: true,
},
});
registerEvent(getGameByObjectID, {
name: "getGameByObjectID",
});
registerEvent("getGameByObjectID", getGameByObjectID);

View File

@@ -1,13 +1,16 @@
import { gameRepository } from "@main/repository";
import { GameStatus } from "@main/constants";
import { searchRepacks } from "../helpers/search-games";
import { registerEvent } from "../register-event";
import sortBy from "lodash/sortBy";
import { GameStatus } from "@shared";
import { sortBy } from "lodash-es";
const getLibrary = async (_event: Electron.IpcMainInvokeEvent) =>
const getLibrary = async () =>
gameRepository
.find({
where: {
isDeleted: false,
},
order: {
createdAt: "desc",
},
@@ -25,6 +28,4 @@ const getLibrary = async (_event: Electron.IpcMainInvokeEvent) =>
)
);
registerEvent(getLibrary, {
name: "getLibrary",
});
registerEvent("getLibrary", getLibrary);

View File

@@ -1,12 +0,0 @@
import { registerEvent } from "../register-event";
import { stateManager } from "@main/state-manager";
const getRepackersFriendlyNames = async (_event: Electron.IpcMainInvokeEvent) =>
stateManager.getValue("repackersFriendlyNames").reduce((prev, next) => {
return { ...prev, [next.name]: next.friendlyName };
}, {});
registerEvent(getRepackersFriendlyNames, {
name: "getRepackersFriendlyNames",
memoize: true,
});

View File

@@ -13,17 +13,19 @@ const openGameInstaller = async (
_event: Electron.IpcMainInvokeEvent,
gameId: number
) => {
const game = await gameRepository.findOne({ where: { id: gameId } });
const game = await gameRepository.findOne({
where: { id: gameId, isDeleted: false },
});
if (!game) return true;
const gamePath = path.join(
game.downloadPath ?? (await getDownloadsPath()),
game.folderName
game.folderName!
);
if (!fs.existsSync(gamePath)) {
await gameRepository.delete({ id: gameId });
await gameRepository.update({ id: gameId }, { status: null });
return true;
}
@@ -53,6 +55,4 @@ const openGameInstaller = async (
return false;
};
registerEvent(openGameInstaller, {
name: "openGameInstaller",
});
registerEvent("openGameInstaller", openGameInstaller);

View File

@@ -13,6 +13,4 @@ const openGame = async (
shell.openPath(executablePath);
};
registerEvent(openGame, {
name: "openGame",
});
registerEvent("openGame", openGame);

View File

@@ -0,0 +1,11 @@
import { registerEvent } from "../register-event";
import { gameRepository } from "../../repository";
const removeGameFromLibrary = async (
_event: Electron.IpcMainInvokeEvent,
gameId: number
) => {
gameRepository.update({ id: gameId }, { isDeleted: true });
};
registerEvent("removeGameFromLibrary", removeGameFromLibrary);

View File

@@ -1,11 +1,23 @@
import { registerEvent } from "../register-event";
import { gameRepository } from "../../repository";
import { GameStatus } from "@shared";
const removeGame = async (
_event: Electron.IpcMainInvokeEvent,
gameId: number
) => gameRepository.delete({ id: gameId });
) => {
await gameRepository.update(
{
id: gameId,
status: GameStatus.Cancelled,
},
{
status: null,
downloadPath: null,
bytesDownloaded: 0,
progress: 0,
}
);
};
registerEvent(removeGame, {
name: "removeGame",
});
registerEvent("removeGame", removeGame);

View File

@@ -1,37 +0,0 @@
import { imageCacheRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { getImageBase64 } from "@main/helpers";
import { logger } from "@main/services";
const getOrCacheImage = async (
_event: Electron.IpcMainInvokeEvent,
url: string
) => {
const cache = await imageCacheRepository.findOne({
where: {
url,
},
});
if (cache) return cache.data;
getImageBase64(url).then((data) =>
imageCacheRepository
.save({
url,
data,
})
.catch(() => {
logger.error(`Failed to cache image "${url}"`, {
method: "getOrCacheImage",
});
})
);
return url;
};
registerEvent(getOrCacheImage, {
name: "getOrCacheImage",
});

View File

@@ -4,6 +4,4 @@ import { registerEvent } from "../register-event";
const openExternal = async (_event: Electron.IpcMainInvokeEvent, src: string) =>
shell.openExternal(src);
registerEvent(openExternal, {
name: "openExternal",
});
registerEvent("openExternal", openExternal);

View File

@@ -5,8 +5,12 @@ import { registerEvent } from "../register-event";
const showOpenDialog = async (
_event: Electron.IpcMainInvokeEvent,
options: Electron.OpenDialogOptions
) => dialog.showOpenDialog(WindowManager.mainWindow, options);
) => {
if (WindowManager.mainWindow) {
return dialog.showOpenDialog(WindowManager.mainWindow, options);
}
registerEvent(showOpenDialog, {
name: "showOpenDialog",
});
throw new Error("Main window is not available");
};
registerEvent("showOpenDialog", showOpenDialog);

View File

@@ -1,37 +1,11 @@
import { ipcMain } from "electron";
import { stateManager } from "@main/state-manager";
interface EventArgs {
name: string;
memoize?: boolean;
}
export const registerEvent = (
listener: (event: Electron.IpcMainInvokeEvent, ...args: any[]) => any,
{ name, memoize = false }: EventArgs
name: string,
listener: (event: Electron.IpcMainInvokeEvent, ...args: any[]) => any
) => {
ipcMain.handle(name, (event: Electron.IpcMainInvokeEvent, ...args) => {
const eventResults = stateManager.getValue("eventResults");
const keys = Array.from(eventResults.keys());
const key = [name, args] as [string, any[]];
const memoizationKey = keys.find(([memoizedEvent, memoizedArgs]) => {
const sameEvent = name === memoizedEvent;
const sameArgs = memoizedArgs.every((arg, index) => arg === args[index]);
return sameEvent && sameArgs;
});
if (memoizationKey) return eventResults.get(memoizationKey);
ipcMain.handle(name, async (event: Electron.IpcMainInvokeEvent, ...args) => {
return Promise.resolve(listener(event, ...args)).then((result) => {
if (memoize) {
eventResults.set(key, JSON.parse(JSON.stringify(result)));
stateManager.setValue("eventResults", eventResults);
}
if (!result) return result;
return JSON.parse(JSON.stringify(result));
});

View File

@@ -1,10 +1,11 @@
import { GameStatus } from "@main/constants";
import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { WindowManager, writePipe } from "@main/services";
import { WindowManager } from "@main/services";
import { In } from "typeorm";
import { DownloadManager } from "@main/services";
import { GameStatus } from "@shared";
const cancelGameDownload = async (
_event: Electron.IpcMainInvokeEvent,
@@ -13,26 +14,28 @@ const cancelGameDownload = async (
const game = await gameRepository.findOne({
where: {
id: gameId,
isDeleted: false,
status: In([
GameStatus.Downloading,
GameStatus.DownloadingMetadata,
GameStatus.CheckingFiles,
GameStatus.Paused,
GameStatus.Seeding,
GameStatus.Finished,
]),
},
});
if (!game) return;
DownloadManager.cancelDownload();
gameRepository
await gameRepository
.update(
{
id: game.id,
},
{
status: GameStatus.Cancelled,
downloadPath: null,
bytesDownloaded: 0,
progress: 0,
}
@@ -42,12 +45,9 @@ const cancelGameDownload = async (
game.status !== GameStatus.Paused &&
game.status !== GameStatus.Seeding
) {
writePipe.write({ action: "cancel" });
if (result.affected) WindowManager.mainWindow.setProgressBar(-1);
if (result.affected) WindowManager.mainWindow?.setProgressBar(-1);
}
});
};
registerEvent(cancelGameDownload, {
name: "cancelGameDownload",
});
registerEvent("cancelGameDownload", cancelGameDownload);

View File

@@ -1,14 +1,15 @@
import { WindowManager, writePipe } from "@main/services";
import { registerEvent } from "../register-event";
import { GameStatus } from "../../constants";
import { gameRepository } from "../../repository";
import { In } from "typeorm";
import { DownloadManager, WindowManager } from "@main/services";
import { GameStatus } from "@shared";
const pauseGameDownload = async (
_event: Electron.IpcMainInvokeEvent,
gameId: number
) => {
DownloadManager.pauseDownload();
await gameRepository
.update(
{
@@ -22,13 +23,8 @@ const pauseGameDownload = async (
{ status: GameStatus.Paused }
)
.then((result) => {
if (result.affected) {
writePipe.write({ action: "pause" });
WindowManager.mainWindow.setProgressBar(-1);
}
if (result.affected) WindowManager.mainWindow?.setProgressBar(-1);
});
};
registerEvent(pauseGameDownload, {
name: "pauseGameDownload",
});
registerEvent("pauseGameDownload", pauseGameDownload);

View File

@@ -1,9 +1,9 @@
import { registerEvent } from "../register-event";
import { GameStatus } from "../../constants";
import { gameRepository } from "../../repository";
import { getDownloadsPath } from "../helpers/get-downloads-path";
import { In } from "typeorm";
import { writePipe } from "@main/services";
import { DownloadManager } from "@main/services";
import { GameStatus } from "@shared";
const resumeGameDownload = async (
_event: Electron.IpcMainInvokeEvent,
@@ -12,23 +12,18 @@ const resumeGameDownload = async (
const game = await gameRepository.findOne({
where: {
id: gameId,
isDeleted: false,
},
relations: { repack: true },
});
if (!game) return;
writePipe.write({ action: "pause" });
DownloadManager.pauseDownload();
if (game.status === GameStatus.Paused) {
const downloadsPath = game.downloadPath ?? (await getDownloadsPath());
writePipe.write({
action: "start",
game_id: gameId,
magnet: game.repack.magnet,
save_path: downloadsPath,
});
DownloadManager.resumeDownload(gameId);
await gameRepository.update(
{
@@ -44,13 +39,11 @@ const resumeGameDownload = async (
await gameRepository.update(
{ id: game.id },
{
status: GameStatus.DownloadingMetadata,
status: GameStatus.Downloading,
downloadPath: downloadsPath,
}
);
}
};
registerEvent(resumeGameDownload, {
name: "resumeGameDownload",
});
registerEvent("resumeGameDownload", resumeGameDownload);

View File

@@ -1,21 +1,34 @@
import { getSteamGameIconUrl, writePipe } from "@main/services";
import { gameRepository, repackRepository } from "@main/repository";
import { GameStatus } from "@main/constants";
import { getSteamGameIconUrl } from "@main/services";
import {
gameRepository,
repackRepository,
userPreferencesRepository,
} from "@main/repository";
import { registerEvent } from "../register-event";
import type { GameShop } from "@types";
import { getDownloadsPath } from "../helpers/get-downloads-path";
import { getImageBase64 } from "@main/helpers";
import { getFileBase64 } from "@main/helpers";
import { In } from "typeorm";
import { DownloadManager } from "@main/services";
import { Downloader, GameStatus } from "@shared";
const startGameDownload = async (
_event: Electron.IpcMainInvokeEvent,
repackId: number,
objectID: string,
title: string,
gameShop: GameShop
gameShop: GameShop,
downloadPath: string
) => {
const userPreferences = await userPreferencesRepository.findOne({
where: { id: 1 },
});
const downloader = userPreferences?.realDebridApiToken
? Downloader.RealDebrid
: Downloader.Torrent;
const [game, repack] = await Promise.all([
gameRepository.findOne({
where: {
@@ -29,15 +42,8 @@ const startGameDownload = async (
}),
]);
if (!repack) return;
if (game?.status === GameStatus.Downloading) {
return;
}
writePipe.write({ action: "pause" });
const downloadsPath = game?.downloadPath ?? (await getDownloadsPath());
if (!repack || game?.status === GameStatus.Downloading) return;
DownloadManager.pauseDownload();
await gameRepository.update(
{
@@ -57,47 +63,33 @@ const startGameDownload = async (
},
{
status: GameStatus.DownloadingMetadata,
downloadPath: downloadsPath,
downloadPath: downloadPath,
downloader,
repack: { id: repackId },
isDeleted: false,
}
);
writePipe.write({
action: "start",
game_id: game.id,
magnet: repack.magnet,
save_path: downloadsPath,
});
DownloadManager.downloadGame(game.id);
game.status = GameStatus.DownloadingMetadata;
writePipe.write({
action: "start",
game_id: game.id,
magnet: repack.magnet,
save_path: downloadsPath,
});
return game;
} else {
const iconUrl = await getImageBase64(await getSteamGameIconUrl(objectID));
const iconUrl = await getFileBase64(await getSteamGameIconUrl(objectID));
const createdGame = await gameRepository.save({
title,
iconUrl,
objectID,
downloader,
shop: gameShop,
status: GameStatus.DownloadingMetadata,
downloadPath: downloadsPath,
status: GameStatus.Downloading,
downloadPath,
repack: { id: repackId },
});
writePipe.write({
action: "start",
game_id: createdGame.id,
magnet: repack.magnet,
save_path: downloadsPath,
});
DownloadManager.downloadGame(createdGame.id);
const { repack: _, ...rest } = createdGame;
@@ -105,6 +97,4 @@ const startGameDownload = async (
}
};
registerEvent(startGameDownload, {
name: "startGameDownload",
});
registerEvent("startGameDownload", startGameDownload);

View File

@@ -0,0 +1,19 @@
import { registerEvent } from "../register-event";
import AutoLaunch from "auto-launch";
import { app } from "electron";
const autoLaunch = async (
_event: Electron.IpcMainInvokeEvent,
enabled: boolean
) => {
const appLauncher = new AutoLaunch({
name: app.getName(),
});
if (enabled) {
appLauncher.enable().catch();
} else {
appLauncher.disable().catch();
}
};
registerEvent("autoLaunch", autoLaunch);

View File

@@ -1,11 +1,9 @@
import { userPreferencesRepository } from "@main/repository";
import { registerEvent } from "../register-event";
const getUserPreferences = async (_event: Electron.IpcMainInvokeEvent) =>
const getUserPreferences = async () =>
userPreferencesRepository.findOne({
where: { id: 1 },
});
registerEvent(getUserPreferences, {
name: "getUserPreferences",
});
registerEvent("getUserPreferences", getUserPreferences);

View File

@@ -2,11 +2,16 @@ import { userPreferencesRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import type { UserPreferences } from "@types";
import { RealDebridClient } from "@main/services/real-debrid";
const updateUserPreferences = async (
_event: Electron.IpcMainInvokeEvent,
preferences: Partial<UserPreferences>
) => {
if (preferences.realDebridApiToken) {
RealDebridClient.authorize(preferences.realDebridApiToken);
}
await userPreferencesRepository.upsert(
{
id: 1,
@@ -16,6 +21,4 @@ const updateUserPreferences = async (
);
};
registerEvent(updateUserPreferences, {
name: "updateUserPreferences",
});
registerEvent("updateUserPreferences", updateUserPreferences);

View File

@@ -74,12 +74,29 @@ export const getSteamAppAsset = (
return `https://cdn.cloudflare.steamstatic.com/steamcommunity/public/images/apps/${objectID}/${clientIcon}.ico`;
};
export const getImageBase64 = async (url: string) =>
export const getFileBuffer = async (url: string) =>
fetch(url, { method: "GET" }).then((response) =>
response.arrayBuffer().then((buffer) => Buffer.from(buffer))
);
export const getFileBase64 = async (url: string) =>
fetch(url, { method: "GET" }).then((response) =>
response.arrayBuffer().then((buffer) => {
return `data:image/jpeg;base64,${Buffer.from(buffer).toString("base64")}`;
const base64 = Buffer.from(buffer).toString("base64");
const contentType = response.headers.get("content-type");
return `data:${contentType};base64,${base64}`;
})
);
export const steamUrlBuilder = {
library: (objectID: string) =>
`https://steamcdn-a.akamaihd.net/steam/apps/${objectID}/header.jpg`,
libraryHero: (objectID: string) =>
`https://steamcdn-a.akamaihd.net/steam/apps/${objectID}/library_hero.jpg`,
logo: (objectID: string) =>
`https://cdn.cloudflare.steamstatic.com/steam/apps/${objectID}/logo.png`,
};
export * from "./formatters";
export * from "./ps";

Some files were not shown because too many files have changed in this diff Show More