Omnibus commited on
Commit
d348f6f
1 Parent(s): a9229d0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +90 -23
app.py CHANGED
@@ -7,14 +7,14 @@ import random
7
  import bg
8
  from rembg import remove as rm
9
  import datetime
10
- from huggingface_hub import (HfApi)
11
  import uuid
12
  import json
13
  import requests
14
  uid=uuid.uuid4()
15
  proc1=diff
16
  proc2=diff
17
-
18
  save_data='https://huggingface.co/datasets/Omnibus/game-data-1/raw/main/'
19
  token_self = os.environ['HF_TOKEN']
20
  api=HfApi(token=token_self)
@@ -26,7 +26,30 @@ platform = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/
26
  star = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/star.png'
27
  bomb = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/bomb.png'
28
  dude = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/dude.png'
29
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
 
32
  def game_fn(sky=sky,star=star,bomb=bomb,platform=platform,dude=dude):
@@ -96,8 +119,18 @@ def enemy_fn(inp):
96
  out_url = f'https://omnibus-game-test.hf.space/file={out_file}'
97
  return out,out_url
98
 
99
- def save_game(background_img,star_img,enemy_img,platform_img,dude_img):
100
  user_repo=save_data.split('datasets/',1)[1].split('/raw',1)[0]
 
 
 
 
 
 
 
 
 
 
101
  #out_lod=[]
102
  try:
103
  r = requests.get(f'{save_data}game_data.json')
@@ -107,13 +140,12 @@ def save_game(background_img,star_img,enemy_img,platform_img,dude_img):
107
  except:
108
  lod=[]
109
  pass
110
- timestamp=str(datetime.datetime.now())
111
- timename=timestamp.replace(" ","--").replace(":","-").replace(".","-")
112
  print(timestamp)
113
  try:
114
  api.upload_file(
115
  path_or_fileobj=background_img,
116
- path_in_repo=f"{save_data.split('main/',1)[1]}/images/background/{timename}-background_img.png",
117
  repo_id=save_data.split('datasets/',1)[1].split('/raw',1)[0],
118
  token=token_self,
119
  repo_type="dataset",
@@ -124,7 +156,7 @@ def save_game(background_img,star_img,enemy_img,platform_img,dude_img):
124
  try:
125
  api.upload_file(
126
  path_or_fileobj=star_img,
127
- path_in_repo=f"{save_data.split('main/',1)[1]}/images/star/{timename}-star_img.png",
128
  repo_id=save_data.split('datasets/',1)[1].split('/raw',1)[0],
129
  token=token_self,
130
  repo_type="dataset",
@@ -135,7 +167,7 @@ def save_game(background_img,star_img,enemy_img,platform_img,dude_img):
135
  try:
136
  api.upload_file(
137
  path_or_fileobj=enemy_img,
138
- path_in_repo=f"{save_data.split('main/',1)[1]}/images/enemy/{timename}-enemy_img.png",
139
  repo_id=save_data.split('datasets/',1)[1].split('/raw',1)[0],
140
  token=token_self,
141
  repo_type="dataset",
@@ -145,9 +177,11 @@ def save_game(background_img,star_img,enemy_img,platform_img,dude_img):
145
  pass
146
  block = {'index': len(lod) + 1,
147
  'timestamp': timestamp,
148
- 'background_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/background/{timename}-background_img.png',
149
- 'star_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/star/{timename}-star_img.png',
150
- 'enemy_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/enemy/{timename}-enemy_img.png',
 
 
151
  #'platform_url': f'https://huggingface.co/datasets/{repo}/{space}/raw/main/{platform_img}',
152
  #'dude_url': f'https://huggingface.co/datasets/{repo}/{space}/raw/main/{dude_img}',
153
  }
@@ -169,7 +203,38 @@ def save_game(background_img,star_img,enemy_img,platform_img,dude_img):
169
  print("success")
170
  except Exception as e:
171
  print (e)
172
- pass
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  score_js="""
174
 
175
  function(text_input) {
@@ -204,25 +269,27 @@ with gr.Blocks() as app:
204
  update_game=gr.Button("Make Game")
205
  #start_prompt=gr.Textbox(value="beautiful landscape, real, 8k",visible=False)
206
  html_game = gr.HTML()
207
- save_btn=gr.Button("Save")
 
 
 
208
  get_score=gr.Button("Get Score")
 
 
 
209
  with gr.Row():
210
  text_input=gr.Textbox()
211
  url_params=gr.Textbox()
212
-
213
  def return_score(text):
214
- '''if url_params.get('url') ==check_acc:
215
- out = gr.update(visible=True)
216
- else:
217
- out=gr.update(visible=False)
218
- #out=gr.HTML.update("""<head><meta http-equiv="refresh" content="0;URL='https://huggingface.co/spaces"></head>""")'''
219
- return ["" + text + ""]
220
- get_score.click(return_score,text_input,[text_input],_js=score_js)
221
- save_btn.click(save_game,[out_im_sky,out_im_star,out_im_enemy,out_im_enemy,out_im_enemy],None)
222
  update_game.click(game_fn,[out_sky_url,out_star_url,out_enemy_url],html_game)
223
  btn_sky.click(sky_fn,prompt_sky,[out_im_sky,out_sky_url])
224
  btn_star.click(star_fn,prompt_star,[out_im_star,out_star_url])
225
  btn_enemy.click(enemy_fn,prompt_enemy,[out_im_enemy,out_enemy_url])
 
226
 
227
  #app.load(sky_fn,prompt_sky,[out_im_sky,out_sky_url]).then(game_fn,[out_sky_url],html_game)
228
  app.queue(concurrency_count=10).launch()
 
7
  import bg
8
  from rembg import remove as rm
9
  import datetime
10
+ from huggingface_hub import (HfApi,file_exists)
11
  import uuid
12
  import json
13
  import requests
14
  uid=uuid.uuid4()
15
  proc1=diff
16
  proc2=diff
17
+ this_url='https://omnibus-game-test.hf.space/'
18
  save_data='https://huggingface.co/datasets/Omnibus/game-data-1/raw/main/'
19
  token_self = os.environ['HF_TOKEN']
20
  api=HfApi(token=token_self)
 
26
  star = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/star.png'
27
  bomb = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/bomb.png'
28
  dude = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/dude.png'
29
+ def predict(text, url_params):
30
+ load_game=url_params.get('game')
31
+ print (load_game)
32
+ if load_game != None:
33
+ try:
34
+ r = requests.get(f'{save_data}/games/{load_game}.omnigame')
35
+ lod = json.loads(r.text)
36
+ #out_lod.append(lod)
37
+ print (lod)
38
+ except:
39
+ print("cannot load game")
40
+ pass
41
+
42
+ else:
43
+ pass
44
+ return ["" + text + "", 'out']
45
+ get_window_url_params = """
46
+ function(text_input, url_params) {
47
+ console.log(text_input, url_params);
48
+ const params = new URLSearchParams(window.location.search);
49
+ url_params = Object.fromEntries(params);
50
+ return [text_input, url_params];
51
+ }
52
+ """
53
 
54
 
55
  def game_fn(sky=sky,star=star,bomb=bomb,platform=platform,dude=dude):
 
119
  out_url = f'https://omnibus-game-test.hf.space/file={out_file}'
120
  return out,out_url
121
 
122
+ def save_game(name,score,background_img,star_img,enemy_img,platform_img,dude_img):
123
  user_repo=save_data.split('datasets/',1)[1].split('/raw',1)[0]
124
+ timestamp=str(datetime.datetime.now())
125
+ timename=timestamp.replace(" ","--").replace(":","-").replace(".","-")
126
+ if name != "":
127
+ if file_exists(f"{user_repo}", f"games/{name}.omnigame",repo_type="dataset"):
128
+ return "Game Saved with this Name. Choose a different Name."
129
+ else:
130
+ game=name
131
+ else:
132
+ game=timename
133
+
134
  #out_lod=[]
135
  try:
136
  r = requests.get(f'{save_data}game_data.json')
 
140
  except:
141
  lod=[]
142
  pass
143
+
 
144
  print(timestamp)
145
  try:
146
  api.upload_file(
147
  path_or_fileobj=background_img,
148
+ path_in_repo=f"{save_data.split('main/',1)[1]}/images/background/{game}-background_img.png",
149
  repo_id=save_data.split('datasets/',1)[1].split('/raw',1)[0],
150
  token=token_self,
151
  repo_type="dataset",
 
156
  try:
157
  api.upload_file(
158
  path_or_fileobj=star_img,
159
+ path_in_repo=f"{save_data.split('main/',1)[1]}/images/star/{game}-star_img.png",
160
  repo_id=save_data.split('datasets/',1)[1].split('/raw',1)[0],
161
  token=token_self,
162
  repo_type="dataset",
 
167
  try:
168
  api.upload_file(
169
  path_or_fileobj=enemy_img,
170
+ path_in_repo=f"{save_data.split('main/',1)[1]}/images/enemy/{game}-enemy_img.png",
171
  repo_id=save_data.split('datasets/',1)[1].split('/raw',1)[0],
172
  token=token_self,
173
  repo_type="dataset",
 
177
  pass
178
  block = {'index': len(lod) + 1,
179
  'timestamp': timestamp,
180
+ 'game_name': game,
181
+ 'score': score,
182
+ 'background_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/background/{game}-background_img.png',
183
+ 'star_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/star/{game}-star_img.png',
184
+ 'enemy_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/enemy/{game}-enemy_img.png',
185
  #'platform_url': f'https://huggingface.co/datasets/{repo}/{space}/raw/main/{platform_img}',
186
  #'dude_url': f'https://huggingface.co/datasets/{repo}/{space}/raw/main/{dude_img}',
187
  }
 
203
  print("success")
204
  except Exception as e:
205
  print (e)
206
+ return f'Error Saving Game: {e}'
207
+ block = {'game_name': game,
208
+ 'timestamp': timestamp,
209
+ 'background_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/background/{game}-background_img.png',
210
+ 'star_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/star/{game}-star_img.png',
211
+ 'enemy_url': f'https://huggingface.co/datasets/{user_repo}/resolve/main/images/enemy/{game}-enemy_img.png',
212
+ #'platform_url': f'https://huggingface.co/datasets/{repo}/{space}/raw/main/{platform_img}',
213
+ #'dude_url': f'https://huggingface.co/datasets/{repo}/{space}/raw/main/{dude_img}',
214
+ }
215
+ print(block)
216
+ lod.append(block)
217
+
218
+ json_object = json.dumps(lod, indent=4)
219
+ with open("tmp2.json", "w") as outfile:
220
+ outfile.write(json_object)
221
+ try:
222
+ api.upload_file(
223
+ path_or_fileobj="tmp2.json",
224
+ path_in_repo=f"{save_data.split('main/',1)[1]}/games/{game}.omnigame",
225
+ repo_id=save_data.split('datasets/',1)[1].split('/raw',1)[0],
226
+ token=token_self,
227
+ repo_type="dataset",
228
+ )
229
+ os.remove("tmp2.json")
230
+ print("success")
231
+ game_url=f'{this_url}?game={game}'
232
+ except Exception as e:
233
+ print (e)
234
+ return f'Error Saving Game: {e}'
235
+ return f"Game Saved\nURL: {game_url}"
236
+
237
+
238
  score_js="""
239
 
240
  function(text_input) {
 
269
  update_game=gr.Button("Make Game")
270
  #start_prompt=gr.Textbox(value="beautiful landscape, real, 8k",visible=False)
271
  html_game = gr.HTML()
272
+ with gr.Row():
273
+ game_name=gr.Textbox(label="Name for Game (optional)")
274
+ save_btn=gr.Button("Save")
275
+ message=gr.Textbox(label="Status",interactive=False)
276
  get_score=gr.Button("Get Score")
277
+ with gr.Row():
278
+ score=gr.Textbox()
279
+ url_params=gr.Textbox()
280
  with gr.Row():
281
  text_input=gr.Textbox()
282
  url_params=gr.Textbox()
283
+ acc=gr.Textbox()
284
  def return_score(text):
285
+ return text
286
+ get_score.click(return_score,score,[score],_js=score_js)
287
+ save_btn.click(save_game,[game_name,score,out_im_sky,out_im_star,out_im_enemy,out_im_enemy,out_im_enemy],message)
 
 
 
 
 
288
  update_game.click(game_fn,[out_sky_url,out_star_url,out_enemy_url],html_game)
289
  btn_sky.click(sky_fn,prompt_sky,[out_im_sky,out_sky_url])
290
  btn_star.click(star_fn,prompt_star,[out_im_star,out_star_url])
291
  btn_enemy.click(enemy_fn,prompt_enemy,[out_im_enemy,out_enemy_url])
292
+ app.load(predict,[text_input,url_params],[text_output,acc], _js=get_window_url_params)
293
 
294
  #app.load(sky_fn,prompt_sky,[out_im_sky,out_sky_url]).then(game_fn,[out_sky_url],html_game)
295
  app.queue(concurrency_count=10).launch()