Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
ingame
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vladislav
ingame
Commits
a1b95aea
Commit
a1b95aea
authored
May 14, 2024
by
ADav
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
GameAgent 14.05 async update
parent
ac8c42df
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
38 additions
and
11 deletions
+38
-11
App.py
ingame/models/App.py
+16
-4
GameAgent.py
ingame/models/GameAgent.py
+13
-5
qml.qml
qml/qml.qml
+4
-0
GameInfoScene.qml
qml/scenes/GameInfoScene.qml
+5
-2
No files found.
ingame/models/App.py
View file @
a1b95aea
...
...
@@ -27,6 +27,8 @@ class App(QtCore.QObject):
game_started
=
Signal
(
bool
,
name
=
"gameStarted"
)
game_ended
=
Signal
(
bool
,
name
=
"gameEnded"
)
data_found
=
Signal
(
dict
,
name
=
"gotGameData"
)
gamepad_clicked_LB
=
Signal
(
bool
,
name
=
"gamepadClickedLB"
)
gamepad_clicked_RB
=
Signal
(
bool
,
name
=
"gamepadClickedRB"
)
gamepad_clicked_apply
=
Signal
(
bool
,
name
=
"gamepadClickedApply"
)
...
...
@@ -121,10 +123,20 @@ class App(QtCore.QObject):
@Slot
(
str
,
result
=
dict
)
def
get_game_data
(
self
,
game_name
):
print
(
game_name
)
# self.agent.search_game("Risk of rain 2") # оригинальной osu в стиме нет =) Плейсхолдер
return
self
.
agent
.
search_game
(
game_name
)
# self.agent.search_game("asdjfiawefhawijefh")
#print(game_name)
def
search_thread
(
t
,
name
):
search_result
=
t
.
agent
.
search_game
(
name
)
t
.
data_found
.
emit
(
search_result
)
return
thread
=
threading
.
Thread
(
target
=
search_thread
,
args
=
(
self
,
game_name
))
thread
.
start
()
pass
@Slot
(
str
)
def
start_game
(
self
,
exec
):
...
...
ingame/models/GameAgent.py
View file @
a1b95aea
...
...
@@ -2,12 +2,11 @@ import os
import
pickle
from
steam_web_api
import
Steam
# TODO:
#
-
Определиться, используется ли Lutris. Если да, вместо этого будет обращение к нему. Если нет,
#
[?]
Определиться, используется ли Lutris. Если да, вместо этого будет обращение к нему. Если нет,
# продумать "рыбу" более логично.
#
-
Починить отображение системных требований (точнее, разобраться, что именно возвращает API.
#
-
Додумать форматированные данные, что именно мы видим на странице игры?
#
[?]
Починить отображение системных требований (точнее, разобраться, что именно возвращает API.
#
[done 1/2]
Додумать форматированные данные, что именно мы видим на странице игры?
class
GameAgent
:
...
...
@@ -22,6 +21,8 @@ class GameAgent:
self
.
steam_process
=
Steam
(
agent_key
)
self
.
get_all_data
()
def
add_game_info
(
self
,
data
,
name
):
if
not
data
[
'apps'
]:
self
.
all_data
[
name
]
=
0
...
...
@@ -34,7 +35,9 @@ class GameAgent:
self
.
get_all_data
()
def
search_game
(
self
,
game_name
):
self
.
get_all_data
()
if
game_name
in
self
.
all_data
:
print
(
"ITS HERE!"
)
else
:
...
...
@@ -59,8 +62,13 @@ class GameAgent:
# for key, value in formatted_data.items():
# print("{0}: {1}".format(key, value))
else
:
print
(
"Игра не распознана!"
)
#TODO исправить это недоразумение, временная затычка
formatted_data
[
'title'
]
=
"Информация не найдена!"
formatted_data
[
'desc'
]
=
"Информация не найдена!"
formatted_data
[
'languages'
]
=
"Информация не найдена!"
formatted_data
[
'reqs'
]
=
"Информация не найдена!"
# print(formatted_data)
return
formatted_data
def
clean_data
(
self
):
...
...
qml/qml.qml
View file @
a1b95aea
...
...
@@ -28,6 +28,10 @@ Window {
// console.log("core_app: gameEnded");
window
.
scene
=
SceneConstants
.
gameInfoScene
;
}
function
onGotGameData
(
result
)
{
// console.log(JSON.stringify(result))
gameInfoScene
.
setGameData
(
result
)
}
function
onGamepadClickedLB
(
done
){
window
.
_trigger
(
"onGamepadClickedLB"
,
done
);
}
...
...
qml/scenes/GameInfoScene.qml
View file @
a1b95aea
...
...
@@ -40,8 +40,8 @@ Rectangle {
let
_l
=
v
[
'languages'
];
let
_r
=
v
[
'reqs'
];
// console.log(_t, _d, _l, _r);
let
pretty_title
=
((
_t
===
undefined
)
?
"
Нет информации об игре
"
:
_t
);
let
pretty_description
=
((
_d
===
undefined
)
?
"
Нет информации об игре
"
:
_d
);
let
pretty_title
=
((
_t
===
undefined
)
?
"
Поиск информации...
"
:
_t
);
let
pretty_description
=
((
_d
===
undefined
)
?
"
Поиск информации...
"
:
_d
);
description
.
text
=
"Наименование игры:
\
n"
+
pretty_title
+
"
\
n
\
nОписание игры:
\
n"
+
pretty_description
;
}
...
...
@@ -386,6 +386,9 @@ Rectangle {
c
[
i
].
forceActiveFocus
();
}
function
setGameData
(
result
){
description
.
text
=
"Наименование игры:
\
n"
+
result
[
'title'
]
+
"
\
n
\
nОписание игры:
\
n"
+
result
[
'desc'
]
}
function
onGamepadAxisLeft
(
done
){
if
(
window
.
scene
!==
S
.
gameInfoScene
)
return
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment