MarvinRoque commited on
Commit
36e49ea
·
1 Parent(s): e09da12
Files changed (2) hide show
  1. app.py +17 -4
  2. exercicios.json +107 -14
app.py CHANGED
@@ -250,7 +250,7 @@ def montar_treino(musculos_alvo, budget=45, objetivo="hipertrofia"):
250
  "hipertrofia": (6, 15),
251
  "forca": (2, 5),
252
  "condicionamento": (15, 50),
253
- "explosividade": (12, 20)
254
  }
255
 
256
  def escolher_reps(objetivo):
@@ -266,9 +266,18 @@ def montar_treino(musculos_alvo, budget=45, objetivo="hipertrofia"):
266
  if ex["nome"] in usados:
267
  return False
268
  if custo_total + custo_ex <= budget:
 
 
 
 
 
 
 
 
 
269
  treino.append({
270
  "nome": ex["nome"],
271
- "descricao": variacao["descricao"],
272
  "series": series,
273
  "reps": reps,
274
  "custo_total": custo_ex,
@@ -288,8 +297,12 @@ def montar_treino(musculos_alvo, budget=45, objetivo="hipertrofia"):
288
  for v in ex["variacoes"]:
289
  if v["custo"] == 5:
290
  # Se for explosividade, só aceita pliométrico
291
- if objetivo == "explosividade" and not ex.get("pliometrico", False):
292
- continue
 
 
 
 
293
  cobertura = len(set(ex["musculos"]) & set(musculos_alvo))
294
  candidatos_multi.append((ex, v, cobertura))
295
 
 
250
  "hipertrofia": (6, 15),
251
  "forca": (2, 5),
252
  "condicionamento": (15, 50),
253
+ "explosividade": (5, 12)
254
  }
255
 
256
  def escolher_reps(objetivo):
 
266
  if ex["nome"] in usados:
267
  return False
268
  if custo_total + custo_ex <= budget:
269
+
270
+ descricao_final = variacao["descricao"]
271
+ # Se for explosividade e o exercício não é marcado como pliométrico
272
+ if objetivo == "explosividade" and not ex.get("pliometrico", False):
273
+ if ex.get("equipamento") == "peso_livre":
274
+ descricao_final += " (executar com carga moderada e máxima velocidade)"
275
+ else:
276
+ return False # descarta máquinas, elásticos etc. no treino explosivo
277
+
278
  treino.append({
279
  "nome": ex["nome"],
280
+ "descricao": descricao_final,
281
  "series": series,
282
  "reps": reps,
283
  "custo_total": custo_ex,
 
297
  for v in ex["variacoes"]:
298
  if v["custo"] == 5:
299
  # Se for explosividade, só aceita pliométrico
300
+ if objetivo == "explosividade":
301
+ if ex.get("pliometrico", False):
302
+ candidatos.append((ex, v, cobertura))
303
+ elif ex.get("equipamento") == "peso_livre":
304
+ candidatos.append((ex, v, cobertura, "explosivo"))
305
+
306
  cobertura = len(set(ex["musculos"]) & set(musculos_alvo))
307
  candidatos_multi.append((ex, v, cobertura))
308
 
exercicios.json CHANGED
@@ -5,7 +5,6 @@
5
  "articulacoes": ["joelho", "quadril"],
6
  "equipamento": ["peso_livre", "peso_corporal", "maquina"],
7
  "variacoes": [
8
- {"equipamento": "peso_livre", "custo" : 5, "descricao": "Agachamento com barra", "video": "https://www.youtube.com/watch?v=4L5nBs8Eq7g"},
9
  {"equipamento": "peso_corporal", "custo" : 2 , "descricao": "Agachamento sem peso", "video": "https://www.youtube.com/watch?v=3it7EFE9Mdc"},
10
  {"equipamento": "maquina", "custo" : 4 , "descricao": "Agachamento na Smith Machine", "video": "https://www.youtube.com/watch?v=4L5nBs8Eq7g"}
11
  ],
@@ -202,14 +201,14 @@
202
  }
203
  },
204
  {
205
- "nome": "Flexão de Braço",
206
  "musculos": ["peito"],
207
  "articulacoes": ["ombro", "cotovelo"],
208
- "equipamento": ["peso_corporal"],
209
  "variacoes": [
210
- {"equipamento": "peso_corporal", "custo" : 3, "descricao": "Flexão Tradicional", "video": "https://www.youtube.com/shorts/pRzxpe5_LLk"},
211
- {"equipamento": "peso_corporal", "custo" : 2, "descricao": "Flexão com Apoio Elevado", "video": "https://www.youtube.com/shorts/so5nuzZWwmI"},
212
- {"equipamento": "peso_corporal", "custo" : 4, "descricao": "Flexão declinada", "video": "https://www.youtube.com/shorts/xARTt_hMvj4"}
213
  ],
214
  "intensidade_articulacao": {
215
  "ombro": "media",
@@ -217,12 +216,12 @@
217
  }
218
  },
219
  {
220
- "nome": "Crossover",
221
  "musculos": ["peito"],
222
  "articulacoes": ["ombro", "cotovelo"],
223
  "equipamento": ["maquina"],
224
  "variacoes": [
225
- {"equipamento": "maquina", "custo" : 3, "descricao": "Crossover no cabo", "video": "https://www.youtube.com/shorts/dapX3bOjuxs"}
226
  ],
227
  "intensidade_articulacao": {
228
  "ombro": "media",
@@ -230,18 +229,115 @@
230
  }
231
  },
232
  {
233
- "nome": "Crucifixo",
234
  "musculos": ["peito"],
235
  "articulacoes": ["ombro", "cotovelo"],
236
- "equipamento": ["maquina"],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  "variacoes": [
238
- {"equipamento": "maquina", "custo" : 3, "descricao": "Peck Deck Sentado", "video": "https://www.youtube.com/shorts/9BEQWr0u-ac"}
 
 
239
  ],
240
  "intensidade_articulacao": {
241
  "ombro": "media",
242
  "cotovelo": "media"
243
  }
244
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
 
246
 
247
 
@@ -500,9 +596,6 @@
500
  "cotovelo": "media"
501
  }
502
  },
503
-
504
-
505
-
506
  {
507
  "nome": "Flexão de Punho",
508
  "musculos": ["antebracos"],
 
5
  "articulacoes": ["joelho", "quadril"],
6
  "equipamento": ["peso_livre", "peso_corporal", "maquina"],
7
  "variacoes": [
 
8
  {"equipamento": "peso_corporal", "custo" : 2 , "descricao": "Agachamento sem peso", "video": "https://www.youtube.com/watch?v=3it7EFE9Mdc"},
9
  {"equipamento": "maquina", "custo" : 4 , "descricao": "Agachamento na Smith Machine", "video": "https://www.youtube.com/watch?v=4L5nBs8Eq7g"}
10
  ],
 
201
  }
202
  },
203
  {
204
+ "nome": "Crossover",
205
  "musculos": ["peito"],
206
  "articulacoes": ["ombro", "cotovelo"],
207
+ "equipamento": ["maquina"],
208
  "variacoes": [
209
+ {"equipamento": "maquina", "custo" : 3, "descricao": "Crossover na polia", "video": "https://www.youtube.com/shorts/dapX3bOjuxs"},
210
+ {"equipamento": "maquina", "custo" : 3, "descricao": "Crossover na polia baixa", "video": "https://www.youtube.com/shorts/Iz-sypmKQ5U"},
211
+ {"equipamento": "maquina", "custo" : 3, "descricao": "Crossover na polia alta", "video": "https://www.youtube.com/watch?v=pdMWt71MPlw"}
212
  ],
213
  "intensidade_articulacao": {
214
  "ombro": "media",
 
216
  }
217
  },
218
  {
219
+ "nome": "Crucifixo",
220
  "musculos": ["peito"],
221
  "articulacoes": ["ombro", "cotovelo"],
222
  "equipamento": ["maquina"],
223
  "variacoes": [
224
+ {"equipamento": "maquina", "custo" : 3, "descricao": "Crucifixo máquina sentado", "video": "https://www.youtube.com/shorts/9BEQWr0u-ac"}
225
  ],
226
  "intensidade_articulacao": {
227
  "ombro": "media",
 
229
  }
230
  },
231
  {
232
+ "nome": "Flexão de braços batendo palmas",
233
  "musculos": ["peito"],
234
  "articulacoes": ["ombro", "cotovelo"],
235
+ "equipamento": ["peso_corporal"],
236
+ "pliometrico": true,
237
+ "variacoes": [
238
+ {"equipamento": "maquina", "custo" : 3, "descricao": "Flexão máquina sentado", "video": "https://www.youtube.com/shorts/9BEQWr0u-ac"}
239
+ ],
240
+ "intensidade_articulacao": {
241
+ "ombro": "media",
242
+ "cotovelo": "media"
243
+ }
244
+ },
245
+ {
246
+ "nome": "Arremesso com bola medicinal",
247
+ "musculos": ["peito"],
248
+ "articulacoes": ["ombro", "cotovelo"],
249
+ "equipamento": ["peso_livre"],
250
+ "pliometrico": true,
251
  "variacoes": [
252
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Arremesso com bola medicinal lateral", "video": "https://www.youtube.com/shorts/NgXXG9kCpq8"},
253
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Arremesso com bola medicinal para baixo", "video": "https://www.youtube.com/shorts/c5jh0JDeFGQ"},
254
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Arremesso com bola medicinal para frente", "video": "https://www.youtube.com/shorts/qrKNbdCdclE"}
255
  ],
256
  "intensidade_articulacao": {
257
  "ombro": "media",
258
  "cotovelo": "media"
259
  }
260
  },
261
+ {
262
+ "nome": "Arremesso com bola medicinal",
263
+ "musculos": ["dorsal"],
264
+ "articulacoes": ["ombro", "cotovelo"],
265
+ "equipamento": ["peso_livre"],
266
+ "pliometrico": true,
267
+ "variacoes": [
268
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Arremesso com bola medicinal por cima da cabeca(overhead)", "video": "https://www.youtube.com/shorts/NktkzTpq1Lo"}
269
+ ],
270
+ "intensidade_articulacao": {
271
+ "ombro": "media",
272
+ "cotovelo": "media"
273
+ }
274
+ },
275
+ {
276
+ "nome": "Puxada explosiva com elástico",
277
+ "musculos": ["dorsal"],
278
+ "articulacoes": ["ombro", "cotovelo"],
279
+ "equipamento": ["peso_livre"],
280
+ "pliometrico": true,
281
+ "variacoes": [
282
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Barra fixa com elástico", "video": "https://www.youtube.com/shorts/K_v30Pt7F5s"},
283
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Remada com elástico", "video": "https://www.youtube.com/shorts/n7t3IJt1Rgw"}
284
+ ],
285
+ "intensidade_articulacao": {
286
+ "ombro": "media"
287
+ }
288
+ },
289
+ {
290
+ "nome": "Agachamento com salto",
291
+ "musculos": ["quadriceps"],
292
+ "articulacoes": ["joelho"],
293
+ "equipamento": ["peso_livre"],
294
+ "pliometrico": true,
295
+ "variacoes": [
296
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Agachamento com salto", "video": "https://www.youtube.com/shorts/drxVSibK550"}
297
+ ],
298
+ "intensidade_articulacao": {
299
+ "joelho": "media"
300
+ }
301
+ },
302
+ {
303
+ "nome": "Salto na caixa",
304
+ "musculos": ["quadriceps"],
305
+ "articulacoes": ["joelho"],
306
+ "equipamento": ["peso_livre"],
307
+ "pliometrico": true,
308
+ "variacoes": [
309
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Salto na caixa", "video": "https://www.youtube.com/shorts/V5eNw6lVQ6I"}
310
+ ],
311
+ "intensidade_articulacao": {
312
+ "joelho": "baixa"
313
+ }
314
+ },
315
+ {
316
+ "nome": "Afundo com salto alternado",
317
+ "musculos": ["quadriceps"],
318
+ "articulacoes": ["joelho"],
319
+ "equipamento": ["peso_livre"],
320
+ "pliometrico": true,
321
+ "variacoes": [
322
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Afundo com salto alternado", "video": "https://www.youtube.com/watch?v=3vfpet5oKcg"}
323
+ ],
324
+ "intensidade_articulacao": {
325
+ "joelho": "baixa"
326
+ }
327
+ },
328
+ {
329
+ "nome": "Salto horizontal",
330
+ "musculos": ["quadriceps"],
331
+ "articulacoes": ["joelho"],
332
+ "equipamento": ["peso_livre"],
333
+ "pliometrico": true,
334
+ "variacoes": [
335
+ {"equipamento": "peso_livre", "custo" : 3, "descricao": "Saldo horizontal", "video": "https://www.youtube.com/shorts/O_bKrAG72Qc"}
336
+ ],
337
+ "intensidade_articulacao": {
338
+ "joelho": "baixa"
339
+ }
340
+ },
341
 
342
 
343
 
 
596
  "cotovelo": "media"
597
  }
598
  },
 
 
 
599
  {
600
  "nome": "Flexão de Punho",
601
  "musculos": ["antebracos"],